commit 85810292269742e787acea745c3bfd82badbdafa Author: Dom Date: Thu Mar 5 00:20:23 2026 +0100 Initial commit diff --git a/.idea/agent_v0.iml b/.idea/agent_v0.iml new file mode 100644 index 0000000..becbb0b --- /dev/null +++ b/.idea/agent_v0.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..fbb7ba0 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..350ddd0 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..04c3bc8 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + { + "associatedIndex": 6 +} + + + + + + + + + + + + + + 1763755481384 + + + + \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..3a81bed --- /dev/null +++ b/__init__.py @@ -0,0 +1,7 @@ +# __init__.py +""" +agent_v0 : petit agent de capture de sessions (clics + screenshots) +pour RPA 100% vision. + +Version v0 : squelette minimal. +""" diff --git a/__pycache__/config.cpython-312.pyc b/__pycache__/config.cpython-312.pyc new file mode 100644 index 0000000..74e971f Binary files /dev/null and b/__pycache__/config.cpython-312.pyc differ diff --git a/__pycache__/event_captor.cpython-312.pyc b/__pycache__/event_captor.cpython-312.pyc new file mode 100644 index 0000000..3b37ecd Binary files /dev/null and b/__pycache__/event_captor.cpython-312.pyc differ diff --git a/__pycache__/key_captor.cpython-312.pyc b/__pycache__/key_captor.cpython-312.pyc new file mode 100644 index 0000000..1744418 Binary files /dev/null and b/__pycache__/key_captor.cpython-312.pyc differ diff --git a/__pycache__/logger_conf.cpython-312.pyc b/__pycache__/logger_conf.cpython-312.pyc new file mode 100644 index 0000000..495c3fa Binary files /dev/null and b/__pycache__/logger_conf.cpython-312.pyc differ diff --git a/__pycache__/raw_session.cpython-312.pyc b/__pycache__/raw_session.cpython-312.pyc new file mode 100644 index 0000000..d805034 Binary files /dev/null and b/__pycache__/raw_session.cpython-312.pyc differ diff --git a/__pycache__/screen_capturer.cpython-312.pyc b/__pycache__/screen_capturer.cpython-312.pyc new file mode 100644 index 0000000..196eb7b Binary files /dev/null and b/__pycache__/screen_capturer.cpython-312.pyc differ diff --git a/__pycache__/storage.cpython-312.pyc b/__pycache__/storage.cpython-312.pyc new file mode 100644 index 0000000..17af3eb Binary files /dev/null and b/__pycache__/storage.cpython-312.pyc differ diff --git a/__pycache__/tray_ui.cpython-312.pyc b/__pycache__/tray_ui.cpython-312.pyc new file mode 100644 index 0000000..1b94a9c Binary files /dev/null and b/__pycache__/tray_ui.cpython-312.pyc differ diff --git a/__pycache__/uploader.cpython-312.pyc b/__pycache__/uploader.cpython-312.pyc new file mode 100644 index 0000000..f4e1620 Binary files /dev/null and b/__pycache__/uploader.cpython-312.pyc differ diff --git a/__pycache__/user_config.cpython-312.pyc b/__pycache__/user_config.cpython-312.pyc new file mode 100644 index 0000000..6a45c9e Binary files /dev/null and b/__pycache__/user_config.cpython-312.pyc differ diff --git a/__pycache__/window_info.cpython-312.pyc b/__pycache__/window_info.cpython-312.pyc new file mode 100644 index 0000000..dfb11a2 Binary files /dev/null and b/__pycache__/window_info.cpython-312.pyc differ diff --git a/agent_config.json b/agent_config.json new file mode 100644 index 0000000..b2d25e6 --- /dev/null +++ b/agent_config.json @@ -0,0 +1,15 @@ +{ + "user_id": "demo_user", + "user_label": "Démo agent_v0", + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos.", + "mode": "enriched", + "screenshot_mode": "crop", + "screenshot_crop_width": 900, + "screenshot_crop_height": 700, + "capture_hover": true, + "hover_min_idle_ms": 700, + "capture_scroll": true, + "network_save_path": "" +} \ No newline at end of file diff --git a/agent_v0_tray.spec b/agent_v0_tray.spec new file mode 100644 index 0000000..8d4f27b --- /dev/null +++ b/agent_v0_tray.spec @@ -0,0 +1,38 @@ +# -*- mode: python ; coding: utf-8 -*- + + +a = Analysis( + ['main.py'], + pathex=['/home/dom/ai/agent_v0'], + binaries=[], + datas=[], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + noarchive=False, + optimize=0, +) +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.datas, + [], + name='agent_v0_tray', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..ef87195 --- /dev/null +++ b/build.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -e + +BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$BASE_DIR" + +echo "[agent_v0] Build depuis : $BASE_DIR" + +# 1) Activer le venv +if [ ! -d ".venv" ]; then + echo "[agent_v0] Pas de .venv trouvé. Lance d'abord ./run.sh une fois pour le créer." + exit 1 +fi + +# shellcheck disable=SC1091 +source .venv/bin/activate + +echo "[agent_v0] Python : $(which python)" + +# 2) Vérifier / installer pyinstaller +if ! command -v pyinstaller >/dev/null 2>&1; then + echo "[agent_v0] Installation de pyinstaller..." + pip install pyinstaller +fi + +# 3) Nettoyage build précédent +rm -rf build dist *.spec + +# 4) Build +echo "[agent_v0] Lancement de PyInstaller..." +pyinstaller \ + --name agent_v0_tray \ + --onefile \ + --noconfirm \ + --paths "$BASE_DIR" \ + main.py + +echo "[agent_v0] Build terminé." +echo "[agent_v0] Binaire disponible dans : $BASE_DIR/dist/agent_v0_tray" diff --git a/build/agent_v0_tray/Analysis-00.toc b/build/agent_v0_tray/Analysis-00.toc new file mode 100644 index 0000000..c186c9c --- /dev/null +++ b/build/agent_v0_tray/Analysis-00.toc @@ -0,0 +1,2278 @@ +(['/home/dom/ai/agent_v0/main.py'], + ['/home/dom/ai', '/home/dom/ai/agent_v0'], + [], + [('/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_pyinstaller_hooks_contrib/stdhooks', + -1000), + ('/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_pyinstaller_hooks_contrib', + -1000)], + {}, + [], + [], + False, + {}, + 0, + [], + [], + '3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0]', + [('pyi_rth_inspect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py', + 'PYSOURCE'), + ('pyi_rth_setuptools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_setuptools.py', + 'PYSOURCE'), + ('pyi_rth_pkgutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py', + 'PYSOURCE'), + ('pyi_rth_multiprocessing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py', + 'PYSOURCE'), + ('main', '/home/dom/ai/agent_v0/main.py', 'PYSOURCE')], + [('subprocess', '/usr/lib/python3.12/subprocess.py', 'PYMODULE'), + ('selectors', '/usr/lib/python3.12/selectors.py', 'PYMODULE'), + ('contextlib', '/usr/lib/python3.12/contextlib.py', 'PYMODULE'), + ('threading', '/usr/lib/python3.12/threading.py', 'PYMODULE'), + ('_threading_local', '/usr/lib/python3.12/_threading_local.py', 'PYMODULE'), + ('signal', '/usr/lib/python3.12/signal.py', 'PYMODULE'), + ('_strptime', '/usr/lib/python3.12/_strptime.py', 'PYMODULE'), + ('datetime', '/usr/lib/python3.12/datetime.py', 'PYMODULE'), + ('_pydatetime', '/usr/lib/python3.12/_pydatetime.py', 'PYMODULE'), + ('calendar', '/usr/lib/python3.12/calendar.py', 'PYMODULE'), + ('argparse', '/usr/lib/python3.12/argparse.py', 'PYMODULE'), + ('textwrap', '/usr/lib/python3.12/textwrap.py', 'PYMODULE'), + ('shutil', '/usr/lib/python3.12/shutil.py', 'PYMODULE'), + ('zipfile', '/usr/lib/python3.12/zipfile/__init__.py', 'PYMODULE'), + ('zipfile._path', + '/usr/lib/python3.12/zipfile/_path/__init__.py', + 'PYMODULE'), + ('zipfile._path.glob', + '/usr/lib/python3.12/zipfile/_path/glob.py', + 'PYMODULE'), + ('pathlib', '/usr/lib/python3.12/pathlib.py', 'PYMODULE'), + ('urllib.parse', '/usr/lib/python3.12/urllib/parse.py', 'PYMODULE'), + ('urllib', '/usr/lib/python3.12/urllib/__init__.py', 'PYMODULE'), + ('ipaddress', '/usr/lib/python3.12/ipaddress.py', 'PYMODULE'), + ('py_compile', '/usr/lib/python3.12/py_compile.py', 'PYMODULE'), + ('importlib.machinery', + '/usr/lib/python3.12/importlib/machinery.py', + 'PYMODULE'), + ('importlib', '/usr/lib/python3.12/importlib/__init__.py', 'PYMODULE'), + ('importlib._bootstrap', + '/usr/lib/python3.12/importlib/_bootstrap.py', + 'PYMODULE'), + ('importlib._bootstrap_external', + '/usr/lib/python3.12/importlib/_bootstrap_external.py', + 'PYMODULE'), + ('importlib.metadata', + '/usr/lib/python3.12/importlib/metadata/__init__.py', + 'PYMODULE'), + ('typing', '/usr/lib/python3.12/typing.py', 'PYMODULE'), + ('importlib.abc', '/usr/lib/python3.12/importlib/abc.py', 'PYMODULE'), + ('importlib.resources.abc', + '/usr/lib/python3.12/importlib/resources/abc.py', + 'PYMODULE'), + ('importlib.resources', + '/usr/lib/python3.12/importlib/resources/__init__.py', + 'PYMODULE'), + ('importlib.resources._legacy', + '/usr/lib/python3.12/importlib/resources/_legacy.py', + 'PYMODULE'), + ('importlib.resources._common', + '/usr/lib/python3.12/importlib/resources/_common.py', + 'PYMODULE'), + ('importlib.resources._adapters', + '/usr/lib/python3.12/importlib/resources/_adapters.py', + 'PYMODULE'), + ('tempfile', '/usr/lib/python3.12/tempfile.py', 'PYMODULE'), + ('random', '/usr/lib/python3.12/random.py', 'PYMODULE'), + ('statistics', '/usr/lib/python3.12/statistics.py', 'PYMODULE'), + ('decimal', '/usr/lib/python3.12/decimal.py', 'PYMODULE'), + ('_pydecimal', '/usr/lib/python3.12/_pydecimal.py', 'PYMODULE'), + ('contextvars', '/usr/lib/python3.12/contextvars.py', 'PYMODULE'), + ('fractions', '/usr/lib/python3.12/fractions.py', 'PYMODULE'), + ('numbers', '/usr/lib/python3.12/numbers.py', 'PYMODULE'), + ('hashlib', '/usr/lib/python3.12/hashlib.py', 'PYMODULE'), + ('logging', '/usr/lib/python3.12/logging/__init__.py', 'PYMODULE'), + ('pickle', '/usr/lib/python3.12/pickle.py', 'PYMODULE'), + ('pprint', '/usr/lib/python3.12/pprint.py', 'PYMODULE'), + ('dataclasses', '/usr/lib/python3.12/dataclasses.py', 'PYMODULE'), + ('_compat_pickle', '/usr/lib/python3.12/_compat_pickle.py', 'PYMODULE'), + ('string', '/usr/lib/python3.12/string.py', 'PYMODULE'), + ('bisect', '/usr/lib/python3.12/bisect.py', 'PYMODULE'), + ('importlib._abc', '/usr/lib/python3.12/importlib/_abc.py', 'PYMODULE'), + ('importlib.metadata._itertools', + '/usr/lib/python3.12/importlib/metadata/_itertools.py', + 'PYMODULE'), + ('importlib.metadata._functools', + '/usr/lib/python3.12/importlib/metadata/_functools.py', + 'PYMODULE'), + ('importlib.metadata._collections', + '/usr/lib/python3.12/importlib/metadata/_collections.py', + 'PYMODULE'), + ('importlib.metadata._meta', + '/usr/lib/python3.12/importlib/metadata/_meta.py', + 'PYMODULE'), + ('importlib.metadata._adapters', + '/usr/lib/python3.12/importlib/metadata/_adapters.py', + 'PYMODULE'), + ('importlib.metadata._text', + '/usr/lib/python3.12/importlib/metadata/_text.py', + 'PYMODULE'), + ('email.message', '/usr/lib/python3.12/email/message.py', 'PYMODULE'), + ('email.policy', '/usr/lib/python3.12/email/policy.py', 'PYMODULE'), + ('email.contentmanager', + '/usr/lib/python3.12/email/contentmanager.py', + 'PYMODULE'), + ('email.quoprimime', '/usr/lib/python3.12/email/quoprimime.py', 'PYMODULE'), + ('email.headerregistry', + '/usr/lib/python3.12/email/headerregistry.py', + 'PYMODULE'), + ('email._header_value_parser', + '/usr/lib/python3.12/email/_header_value_parser.py', + 'PYMODULE'), + ('email.iterators', '/usr/lib/python3.12/email/iterators.py', 'PYMODULE'), + ('email.generator', '/usr/lib/python3.12/email/generator.py', 'PYMODULE'), + ('email._encoded_words', + '/usr/lib/python3.12/email/_encoded_words.py', + 'PYMODULE'), + ('base64', '/usr/lib/python3.12/base64.py', 'PYMODULE'), + ('getopt', '/usr/lib/python3.12/getopt.py', 'PYMODULE'), + ('email.charset', '/usr/lib/python3.12/email/charset.py', 'PYMODULE'), + ('email.encoders', '/usr/lib/python3.12/email/encoders.py', 'PYMODULE'), + ('email.base64mime', '/usr/lib/python3.12/email/base64mime.py', 'PYMODULE'), + ('email._policybase', '/usr/lib/python3.12/email/_policybase.py', 'PYMODULE'), + ('email.header', '/usr/lib/python3.12/email/header.py', 'PYMODULE'), + ('email.errors', '/usr/lib/python3.12/email/errors.py', 'PYMODULE'), + ('email.utils', '/usr/lib/python3.12/email/utils.py', 'PYMODULE'), + ('email._parseaddr', '/usr/lib/python3.12/email/_parseaddr.py', 'PYMODULE'), + ('socket', '/usr/lib/python3.12/socket.py', 'PYMODULE'), + ('quopri', '/usr/lib/python3.12/quopri.py', 'PYMODULE'), + ('inspect', '/usr/lib/python3.12/inspect.py', 'PYMODULE'), + ('token', '/usr/lib/python3.12/token.py', 'PYMODULE'), + ('dis', '/usr/lib/python3.12/dis.py', 'PYMODULE'), + ('opcode', '/usr/lib/python3.12/opcode.py', 'PYMODULE'), + ('ast', '/usr/lib/python3.12/ast.py', 'PYMODULE'), + ('email', '/usr/lib/python3.12/email/__init__.py', 'PYMODULE'), + ('email.parser', '/usr/lib/python3.12/email/parser.py', 'PYMODULE'), + ('email.feedparser', '/usr/lib/python3.12/email/feedparser.py', 'PYMODULE'), + ('csv', '/usr/lib/python3.12/csv.py', 'PYMODULE'), + ('importlib.readers', '/usr/lib/python3.12/importlib/readers.py', 'PYMODULE'), + ('importlib.resources.readers', + '/usr/lib/python3.12/importlib/resources/readers.py', + 'PYMODULE'), + ('importlib.resources._itertools', + '/usr/lib/python3.12/importlib/resources/_itertools.py', + 'PYMODULE'), + ('tokenize', '/usr/lib/python3.12/tokenize.py', 'PYMODULE'), + ('struct', '/usr/lib/python3.12/struct.py', 'PYMODULE'), + ('importlib.util', '/usr/lib/python3.12/importlib/util.py', 'PYMODULE'), + ('tarfile', '/usr/lib/python3.12/tarfile.py', 'PYMODULE'), + ('gzip', '/usr/lib/python3.12/gzip.py', 'PYMODULE'), + ('_compression', '/usr/lib/python3.12/_compression.py', 'PYMODULE'), + ('lzma', '/usr/lib/python3.12/lzma.py', 'PYMODULE'), + ('bz2', '/usr/lib/python3.12/bz2.py', 'PYMODULE'), + ('fnmatch', '/usr/lib/python3.12/fnmatch.py', 'PYMODULE'), + ('copy', '/usr/lib/python3.12/copy.py', 'PYMODULE'), + ('gettext', '/usr/lib/python3.12/gettext.py', 'PYMODULE'), + ('multiprocessing.spawn', + '/usr/lib/python3.12/multiprocessing/spawn.py', + 'PYMODULE'), + ('multiprocessing.resource_tracker', + '/usr/lib/python3.12/multiprocessing/resource_tracker.py', + 'PYMODULE'), + ('multiprocessing.util', + '/usr/lib/python3.12/multiprocessing/util.py', + 'PYMODULE'), + ('multiprocessing.forkserver', + '/usr/lib/python3.12/multiprocessing/forkserver.py', + 'PYMODULE'), + ('multiprocessing.connection', + '/usr/lib/python3.12/multiprocessing/connection.py', + 'PYMODULE'), + ('multiprocessing.resource_sharer', + '/usr/lib/python3.12/multiprocessing/resource_sharer.py', + 'PYMODULE'), + ('xmlrpc.client', '/usr/lib/python3.12/xmlrpc/client.py', 'PYMODULE'), + ('xmlrpc', '/usr/lib/python3.12/xmlrpc/__init__.py', 'PYMODULE'), + ('xml.parsers.expat', '/usr/lib/python3.12/xml/parsers/expat.py', 'PYMODULE'), + ('xml.parsers', '/usr/lib/python3.12/xml/parsers/__init__.py', 'PYMODULE'), + ('xml', '/usr/lib/python3.12/xml/__init__.py', 'PYMODULE'), + ('xml.sax.expatreader', + '/usr/lib/python3.12/xml/sax/expatreader.py', + 'PYMODULE'), + ('xml.sax.saxutils', '/usr/lib/python3.12/xml/sax/saxutils.py', 'PYMODULE'), + ('urllib.request', '/usr/lib/python3.12/urllib/request.py', 'PYMODULE'), + ('getpass', '/usr/lib/python3.12/getpass.py', 'PYMODULE'), + ('nturl2path', '/usr/lib/python3.12/nturl2path.py', 'PYMODULE'), + ('ftplib', '/usr/lib/python3.12/ftplib.py', 'PYMODULE'), + ('netrc', '/usr/lib/python3.12/netrc.py', 'PYMODULE'), + ('mimetypes', '/usr/lib/python3.12/mimetypes.py', 'PYMODULE'), + ('http.cookiejar', '/usr/lib/python3.12/http/cookiejar.py', 'PYMODULE'), + ('http', '/usr/lib/python3.12/http/__init__.py', 'PYMODULE'), + ('ssl', '/usr/lib/python3.12/ssl.py', 'PYMODULE'), + ('urllib.response', '/usr/lib/python3.12/urllib/response.py', 'PYMODULE'), + ('urllib.error', '/usr/lib/python3.12/urllib/error.py', 'PYMODULE'), + ('xml.sax', '/usr/lib/python3.12/xml/sax/__init__.py', 'PYMODULE'), + ('xml.sax.handler', '/usr/lib/python3.12/xml/sax/handler.py', 'PYMODULE'), + ('xml.sax._exceptions', + '/usr/lib/python3.12/xml/sax/_exceptions.py', + 'PYMODULE'), + ('xml.sax.xmlreader', '/usr/lib/python3.12/xml/sax/xmlreader.py', 'PYMODULE'), + ('http.client', '/usr/lib/python3.12/http/client.py', 'PYMODULE'), + ('hmac', '/usr/lib/python3.12/hmac.py', 'PYMODULE'), + ('multiprocessing.context', + '/usr/lib/python3.12/multiprocessing/context.py', + 'PYMODULE'), + ('multiprocessing.popen_spawn_win32', + '/usr/lib/python3.12/multiprocessing/popen_spawn_win32.py', + 'PYMODULE'), + ('multiprocessing.popen_forkserver', + '/usr/lib/python3.12/multiprocessing/popen_forkserver.py', + 'PYMODULE'), + ('multiprocessing.popen_spawn_posix', + '/usr/lib/python3.12/multiprocessing/popen_spawn_posix.py', + 'PYMODULE'), + ('multiprocessing.popen_fork', + '/usr/lib/python3.12/multiprocessing/popen_fork.py', + 'PYMODULE'), + ('multiprocessing.sharedctypes', + '/usr/lib/python3.12/multiprocessing/sharedctypes.py', + 'PYMODULE'), + ('multiprocessing.heap', + '/usr/lib/python3.12/multiprocessing/heap.py', + 'PYMODULE'), + ('ctypes', '/usr/lib/python3.12/ctypes/__init__.py', 'PYMODULE'), + ('ctypes.wintypes', '/usr/lib/python3.12/ctypes/wintypes.py', 'PYMODULE'), + ('ctypes._endian', '/usr/lib/python3.12/ctypes/_endian.py', 'PYMODULE'), + ('multiprocessing.pool', + '/usr/lib/python3.12/multiprocessing/pool.py', + 'PYMODULE'), + ('multiprocessing.dummy', + '/usr/lib/python3.12/multiprocessing/dummy/__init__.py', + 'PYMODULE'), + ('multiprocessing.dummy.connection', + '/usr/lib/python3.12/multiprocessing/dummy/connection.py', + 'PYMODULE'), + ('queue', '/usr/lib/python3.12/queue.py', 'PYMODULE'), + ('multiprocessing.queues', + '/usr/lib/python3.12/multiprocessing/queues.py', + 'PYMODULE'), + ('multiprocessing.synchronize', + '/usr/lib/python3.12/multiprocessing/synchronize.py', + 'PYMODULE'), + ('multiprocessing.managers', + '/usr/lib/python3.12/multiprocessing/managers.py', + 'PYMODULE'), + ('multiprocessing.shared_memory', + '/usr/lib/python3.12/multiprocessing/shared_memory.py', + 'PYMODULE'), + ('secrets', '/usr/lib/python3.12/secrets.py', 'PYMODULE'), + ('multiprocessing.reduction', + '/usr/lib/python3.12/multiprocessing/reduction.py', + 'PYMODULE'), + ('multiprocessing.process', + '/usr/lib/python3.12/multiprocessing/process.py', + 'PYMODULE'), + ('runpy', '/usr/lib/python3.12/runpy.py', 'PYMODULE'), + ('pkgutil', '/usr/lib/python3.12/pkgutil.py', 'PYMODULE'), + ('zipimport', '/usr/lib/python3.12/zipimport.py', 'PYMODULE'), + ('multiprocessing', + '/usr/lib/python3.12/multiprocessing/__init__.py', + 'PYMODULE'), + ('_distutils_hack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_distutils_hack/__init__.py', + 'PYMODULE'), + ('setuptools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/__init__.py', + 'PYMODULE'), + ('setuptools.msvc', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/msvc.py', + 'PYMODULE'), + ('setuptools._vendor.typing_extensions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/typing_extensions.py', + 'PYMODULE'), + ('setuptools._vendor', '-', 'PYMODULE'), + ('setuptools._distutils.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/errors.py', + 'PYMODULE'), + ('setuptools._distutils.sysconfig', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/sysconfig.py', + 'PYMODULE'), + ('setuptools._distutils.text_file', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/text_file.py', + 'PYMODULE'), + ('setuptools._distutils.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/util.py', + 'PYMODULE'), + ('setuptools._distutils.spawn', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/spawn.py', + 'PYMODULE'), + ('setuptools._distutils.debug', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/debug.py', + 'PYMODULE'), + ('setuptools._distutils._modified', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_modified.py', + 'PYMODULE'), + ('setuptools._distutils._log', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_log.py', + 'PYMODULE'), + ('setuptools._distutils.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/py39.py', + 'PYMODULE'), + ('setuptools._distutils.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/__init__.py', + 'PYMODULE'), + ('setuptools._distutils.ccompiler', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py', + 'PYMODULE'), + ('setuptools._distutils.compilers.C.base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/base.py', + 'PYMODULE'), + ('setuptools._distutils.fancy_getopt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/fancy_getopt.py', + 'PYMODULE'), + ('setuptools._distutils.file_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/file_util.py', + 'PYMODULE'), + ('setuptools._distutils.dir_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/dir_util.py', + 'PYMODULE'), + ('setuptools._distutils.compilers.C', '-', 'PYMODULE'), + ('setuptools._distutils.compilers.C.msvc', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/msvc.py', + 'PYMODULE'), + ('unittest.mock', '/usr/lib/python3.12/unittest/mock.py', 'PYMODULE'), + ('unittest', '/usr/lib/python3.12/unittest/__init__.py', 'PYMODULE'), + ('unittest.async_case', + '/usr/lib/python3.12/unittest/async_case.py', + 'PYMODULE'), + ('unittest.signals', '/usr/lib/python3.12/unittest/signals.py', 'PYMODULE'), + ('unittest.main', '/usr/lib/python3.12/unittest/main.py', 'PYMODULE'), + ('unittest.runner', '/usr/lib/python3.12/unittest/runner.py', 'PYMODULE'), + ('unittest.loader', '/usr/lib/python3.12/unittest/loader.py', 'PYMODULE'), + ('unittest.suite', '/usr/lib/python3.12/unittest/suite.py', 'PYMODULE'), + ('unittest.case', '/usr/lib/python3.12/unittest/case.py', 'PYMODULE'), + ('unittest._log', '/usr/lib/python3.12/unittest/_log.py', 'PYMODULE'), + ('difflib', '/usr/lib/python3.12/difflib.py', 'PYMODULE'), + ('unittest.result', '/usr/lib/python3.12/unittest/result.py', 'PYMODULE'), + ('unittest.util', '/usr/lib/python3.12/unittest/util.py', 'PYMODULE'), + ('asyncio', '/usr/lib/python3.12/asyncio/__init__.py', 'PYMODULE'), + ('asyncio.unix_events', + '/usr/lib/python3.12/asyncio/unix_events.py', + 'PYMODULE'), + ('asyncio.log', '/usr/lib/python3.12/asyncio/log.py', 'PYMODULE'), + ('asyncio.windows_events', + '/usr/lib/python3.12/asyncio/windows_events.py', + 'PYMODULE'), + ('asyncio.windows_utils', + '/usr/lib/python3.12/asyncio/windows_utils.py', + 'PYMODULE'), + ('asyncio.selector_events', + '/usr/lib/python3.12/asyncio/selector_events.py', + 'PYMODULE'), + ('asyncio.proactor_events', + '/usr/lib/python3.12/asyncio/proactor_events.py', + 'PYMODULE'), + ('asyncio.base_subprocess', + '/usr/lib/python3.12/asyncio/base_subprocess.py', + 'PYMODULE'), + ('asyncio.threads', '/usr/lib/python3.12/asyncio/threads.py', 'PYMODULE'), + ('asyncio.taskgroups', + '/usr/lib/python3.12/asyncio/taskgroups.py', + 'PYMODULE'), + ('asyncio.subprocess', + '/usr/lib/python3.12/asyncio/subprocess.py', + 'PYMODULE'), + ('asyncio.streams', '/usr/lib/python3.12/asyncio/streams.py', 'PYMODULE'), + ('asyncio.queues', '/usr/lib/python3.12/asyncio/queues.py', 'PYMODULE'), + ('asyncio.runners', '/usr/lib/python3.12/asyncio/runners.py', 'PYMODULE'), + ('asyncio.base_events', + '/usr/lib/python3.12/asyncio/base_events.py', + 'PYMODULE'), + ('concurrent.futures', + '/usr/lib/python3.12/concurrent/futures/__init__.py', + 'PYMODULE'), + ('concurrent.futures.thread', + '/usr/lib/python3.12/concurrent/futures/thread.py', + 'PYMODULE'), + ('concurrent.futures.process', + '/usr/lib/python3.12/concurrent/futures/process.py', + 'PYMODULE'), + ('concurrent.futures._base', + '/usr/lib/python3.12/concurrent/futures/_base.py', + 'PYMODULE'), + ('concurrent', '/usr/lib/python3.12/concurrent/__init__.py', 'PYMODULE'), + ('asyncio.trsock', '/usr/lib/python3.12/asyncio/trsock.py', 'PYMODULE'), + ('asyncio.staggered', '/usr/lib/python3.12/asyncio/staggered.py', 'PYMODULE'), + ('asyncio.timeouts', '/usr/lib/python3.12/asyncio/timeouts.py', 'PYMODULE'), + ('asyncio.tasks', '/usr/lib/python3.12/asyncio/tasks.py', 'PYMODULE'), + ('asyncio.base_tasks', + '/usr/lib/python3.12/asyncio/base_tasks.py', + 'PYMODULE'), + ('asyncio.locks', '/usr/lib/python3.12/asyncio/locks.py', 'PYMODULE'), + ('asyncio.mixins', '/usr/lib/python3.12/asyncio/mixins.py', 'PYMODULE'), + ('asyncio.sslproto', '/usr/lib/python3.12/asyncio/sslproto.py', 'PYMODULE'), + ('asyncio.transports', + '/usr/lib/python3.12/asyncio/transports.py', + 'PYMODULE'), + ('asyncio.protocols', '/usr/lib/python3.12/asyncio/protocols.py', 'PYMODULE'), + ('asyncio.futures', '/usr/lib/python3.12/asyncio/futures.py', 'PYMODULE'), + ('asyncio.base_futures', + '/usr/lib/python3.12/asyncio/base_futures.py', + 'PYMODULE'), + ('asyncio.exceptions', + '/usr/lib/python3.12/asyncio/exceptions.py', + 'PYMODULE'), + ('asyncio.events', '/usr/lib/python3.12/asyncio/events.py', 'PYMODULE'), + ('asyncio.format_helpers', + '/usr/lib/python3.12/asyncio/format_helpers.py', + 'PYMODULE'), + ('asyncio.coroutines', + '/usr/lib/python3.12/asyncio/coroutines.py', + 'PYMODULE'), + ('asyncio.constants', '/usr/lib/python3.12/asyncio/constants.py', 'PYMODULE'), + ('setuptools._distutils.compilers', '-', 'PYMODULE'), + ('setuptools._distutils.compat.numpy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/numpy.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco.functools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/functools/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco', '-', 'PYMODULE'), + ('sysconfig', '/usr/lib/python3.12/sysconfig.py', 'PYMODULE'), + ('_sysconfigdata__x86_64-linux-gnu', + '/usr/lib/python3.12/_sysconfigdata__x86_64-linux-gnu.py', + 'PYMODULE'), + ('_aix_support', '/usr/lib/python3.12/_aix_support.py', 'PYMODULE'), + ('setuptools._distutils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/__init__.py', + 'PYMODULE'), + ('setuptools._distutils.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/version.py', + 'PYMODULE'), + ('setuptools._distutils.archive_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/archive_util.py', + 'PYMODULE'), + ('setuptools._distutils.compilers.C.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/errors.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools.recipes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/recipes.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools.more', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/more.py', + 'PYMODULE'), + ('platform', '/usr/lib/python3.12/platform.py', 'PYMODULE'), + ('json', '/usr/lib/python3.12/json/__init__.py', 'PYMODULE'), + ('json.encoder', '/usr/lib/python3.12/json/encoder.py', 'PYMODULE'), + ('json.decoder', '/usr/lib/python3.12/json/decoder.py', 'PYMODULE'), + ('json.scanner', '/usr/lib/python3.12/json/scanner.py', 'PYMODULE'), + ('setuptools._distutils.command.build_ext', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py', + 'PYMODULE'), + ('setuptools._distutils.command', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/__init__.py', + 'PYMODULE'), + ('setuptools._distutils._msvccompiler', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_msvccompiler.py', + 'PYMODULE'), + ('setuptools._distutils.extension', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/extension.py', + 'PYMODULE'), + ('site', '/usr/lib/python3.12/site.py', 'PYMODULE'), + ('sitecustomize', '/usr/lib/python3.12/sitecustomize.py', 'PYMODULE'), + ('rlcompleter', '/usr/lib/python3.12/rlcompleter.py', 'PYMODULE'), + ('_sitebuiltins', '/usr/lib/python3.12/_sitebuiltins.py', 'PYMODULE'), + ('pydoc', '/usr/lib/python3.12/pydoc.py', 'PYMODULE'), + ('webbrowser', '/usr/lib/python3.12/webbrowser.py', 'PYMODULE'), + ('shlex', '/usr/lib/python3.12/shlex.py', 'PYMODULE'), + ('http.server', '/usr/lib/python3.12/http/server.py', 'PYMODULE'), + ('socketserver', '/usr/lib/python3.12/socketserver.py', 'PYMODULE'), + ('html', '/usr/lib/python3.12/html/__init__.py', 'PYMODULE'), + ('html.entities', '/usr/lib/python3.12/html/entities.py', 'PYMODULE'), + ('pydoc_data.topics', '/usr/lib/python3.12/pydoc_data/topics.py', 'PYMODULE'), + ('pydoc_data', '/usr/lib/python3.12/pydoc_data/__init__.py', 'PYMODULE'), + ('tty', '/usr/lib/python3.12/tty.py', 'PYMODULE'), + ('setuptools._distutils.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/core.py', + 'PYMODULE'), + ('setuptools._distutils.dist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/dist.py', + 'PYMODULE'), + ('setuptools._distutils.versionpredicate', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/versionpredicate.py', + 'PYMODULE'), + ('configparser', '/usr/lib/python3.12/configparser.py', 'PYMODULE'), + ('packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/utils.py', + 'PYMODULE'), + ('packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/__init__.py', + 'PYMODULE'), + ('packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_musllinux.py', + 'PYMODULE'), + ('packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_elffile.py', + 'PYMODULE'), + ('packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_manylinux.py', + 'PYMODULE'), + ('packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/version.py', + 'PYMODULE'), + ('packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_structures.py', + 'PYMODULE'), + ('packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/tags.py', + 'PYMODULE'), + ('setuptools._distutils.cmd', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/cmd.py', + 'PYMODULE'), + ('setuptools.warnings', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/warnings.py', + 'PYMODULE'), + ('setuptools.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/version.py', + 'PYMODULE'), + ('setuptools._importlib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_importlib.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._adapters', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._text', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_text.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._functools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_functools.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_compat.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._collections', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_collections.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat.py311', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._meta', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_meta.py', + 'PYMODULE'), + ('setuptools._vendor.zipp', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.glob', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/glob.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.compat.py310', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/compat/py310.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/compat/__init__.py', + 'PYMODULE'), + ('setuptools.extension', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/extension.py', + 'PYMODULE'), + ('setuptools._path', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_path.py', + 'PYMODULE'), + ('setuptools.dist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/dist.py', + 'PYMODULE'), + ('setuptools.command.bdist_wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.macosx_libfile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/macosx_libfile.py', + 'PYMODULE'), + ('setuptools._vendor.wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/__init__.py', + 'PYMODULE'), + ('setuptools.command.egg_info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/egg_info.py', + 'PYMODULE'), + ('setuptools._distutils.filelist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/filelist.py', + 'PYMODULE'), + ('setuptools.command._requirestxt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/_requirestxt.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco.text', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco.context', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/context.py', + 'PYMODULE'), + ('setuptools.glob', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/glob.py', + 'PYMODULE'), + ('setuptools.command.setopt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/setopt.py', + 'PYMODULE'), + ('setuptools.command.sdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/sdist.py', + 'PYMODULE'), + ('setuptools._distutils.command.sdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py', + 'PYMODULE'), + ('setuptools.command.build', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/build.py', + 'PYMODULE'), + ('setuptools._distutils.command.build', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/build.py', + 'PYMODULE'), + ('setuptools.command.bdist_egg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/bdist_egg.py', + 'PYMODULE'), + ('setuptools.unicode_utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/unicode_utils.py', + 'PYMODULE'), + ('setuptools.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py39.py', + 'PYMODULE'), + ('setuptools.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/__init__.py', + 'PYMODULE'), + ('setuptools.compat.py311', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py311.py', + 'PYMODULE'), + ('packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/requirements.py', + 'PYMODULE'), + ('packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py', + 'PYMODULE'), + ('packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.wheelfile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/wheelfile.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/util.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/tags.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.convert', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/convert.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/metadata.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.pack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/pack.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.unpack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/unpack.py', + 'PYMODULE'), + ('setuptools.installer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/installer.py', + 'PYMODULE'), + ('setuptools.wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/wheel.py', + 'PYMODULE'), + ('setuptools._discovery', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_discovery.py', + 'PYMODULE'), + ('setuptools.archive_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/archive_util.py', + 'PYMODULE'), + ('setuptools._distutils.log', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/log.py', + 'PYMODULE'), + ('setuptools.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/errors.py', + 'PYMODULE'), + ('setuptools.config.setupcfg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/setupcfg.py', + 'PYMODULE'), + ('setuptools.config.expand', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/expand.py', + 'PYMODULE'), + ('setuptools.config.pyprojecttoml', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/__init__.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.fastjsonschema_validations', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.fastjsonschema_exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.extra_validations', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/extra_validations.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.error_reporting', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/error_reporting.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.formats', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/formats.py', + 'PYMODULE'), + ('packaging.licenses', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/licenses/__init__.py', + 'PYMODULE'), + ('packaging.licenses._spdx', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/requirements.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/utils.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/version.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_structures.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/tags.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_musllinux.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_elffile.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_manylinux.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/specifiers.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/markers.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_tokenizer.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/__init__.py', + 'PYMODULE'), + ('setuptools.compat.py310', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py310.py', + 'PYMODULE'), + ('setuptools._vendor.tomli', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._types', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_types.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._re', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_re.py', + 'PYMODULE'), + ('tomllib', '/usr/lib/python3.12/tomllib/__init__.py', 'PYMODULE'), + ('tomllib._parser', '/usr/lib/python3.12/tomllib/_parser.py', 'PYMODULE'), + ('tomllib._types', '/usr/lib/python3.12/tomllib/_types.py', 'PYMODULE'), + ('tomllib._re', '/usr/lib/python3.12/tomllib/_re.py', 'PYMODULE'), + ('setuptools.config._apply_pyprojecttoml', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py', + 'PYMODULE'), + ('setuptools.config', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/__init__.py', + 'PYMODULE'), + ('setuptools._static', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_static.py', + 'PYMODULE'), + ('packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/specifiers.py', + 'PYMODULE'), + ('packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/markers.py', + 'PYMODULE'), + ('glob', '/usr/lib/python3.12/glob.py', 'PYMODULE'), + ('setuptools._shutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_shutil.py', + 'PYMODULE'), + ('setuptools.windows_support', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/windows_support.py', + 'PYMODULE'), + ('setuptools.command', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/__init__.py', + 'PYMODULE'), + ('setuptools._distutils.command.bdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/bdist.py', + 'PYMODULE'), + ('setuptools._entry_points', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_entry_points.py', + 'PYMODULE'), + ('setuptools._itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_itertools.py', + 'PYMODULE'), + ('setuptools.discovery', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/discovery.py', + 'PYMODULE'), + ('setuptools.depends', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/depends.py', + 'PYMODULE'), + ('setuptools._imp', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_imp.py', + 'PYMODULE'), + ('setuptools.logging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/logging.py', + 'PYMODULE'), + ('setuptools.monkey', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/monkey.py', + 'PYMODULE'), + ('setuptools._core_metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_core_metadata.py', + 'PYMODULE'), + ('setuptools._reqs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_reqs.py', + 'PYMODULE'), + ('setuptools._normalization', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_normalization.py', + 'PYMODULE'), + ('_distutils_hack.override', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_distutils_hack/override.py', + 'PYMODULE'), + ('_py_abc', '/usr/lib/python3.12/_py_abc.py', 'PYMODULE'), + ('stringprep', '/usr/lib/python3.12/stringprep.py', 'PYMODULE'), + ('tracemalloc', '/usr/lib/python3.12/tracemalloc.py', 'PYMODULE'), + ('tray_ui', '/home/dom/ai/agent_v0/tray_ui.py', 'PYMODULE'), + ('uploader', '/home/dom/ai/agent_v0/uploader.py', 'PYMODULE'), + ('requests', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/__init__.py', + 'PYMODULE'), + ('requests.status_codes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/status_codes.py', + 'PYMODULE'), + ('requests.structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/structures.py', + 'PYMODULE'), + ('requests.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/compat.py', + 'PYMODULE'), + ('http.cookies', '/usr/lib/python3.12/http/cookies.py', 'PYMODULE'), + ('requests.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/models.py', + 'PYMODULE'), + ('idna', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/__init__.py', + 'PYMODULE'), + ('idna.package_data', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/package_data.py', + 'PYMODULE'), + ('idna.intranges', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/intranges.py', + 'PYMODULE'), + ('idna.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/core.py', + 'PYMODULE'), + ('idna.uts46data', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/uts46data.py', + 'PYMODULE'), + ('idna.idnadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/idnadata.py', + 'PYMODULE'), + ('requests.hooks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/hooks.py', + 'PYMODULE'), + ('requests.cookies', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/cookies.py', + 'PYMODULE'), + ('requests.auth', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/auth.py', + 'PYMODULE'), + ('requests._internal_utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/_internal_utils.py', + 'PYMODULE'), + ('urllib3.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/__init__.py', + 'PYMODULE'), + ('urllib3.util.wait', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/wait.py', + 'PYMODULE'), + ('urllib3.util.url', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/url.py', + 'PYMODULE'), + ('urllib3.util.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/util.py', + 'PYMODULE'), + ('urllib3.util.timeout', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/timeout.py', + 'PYMODULE'), + ('urllib3.util.ssl_', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssl_.py', + 'PYMODULE'), + ('urllib3.util.ssltransport', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py', + 'PYMODULE'), + ('urllib3.util.retry', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/retry.py', + 'PYMODULE'), + ('urllib3.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/response.py', + 'PYMODULE'), + ('urllib3.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/connection.py', + 'PYMODULE'), + ('urllib3.util.ssl_match_hostname', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py', + 'PYMODULE'), + ('urllib3._version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_version.py', + 'PYMODULE'), + ('urllib3.http2.probe', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/probe.py', + 'PYMODULE'), + ('urllib3.http2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/__init__.py', + 'PYMODULE'), + ('urllib3.http2.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/connection.py', + 'PYMODULE'), + ('urllib3._collections', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_collections.py', + 'PYMODULE'), + ('urllib3._base_connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_base_connection.py', + 'PYMODULE'), + ('urllib3.connectionpool', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py', + 'PYMODULE'), + ('urllib3.util.proxy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/proxy.py', + 'PYMODULE'), + ('urllib3._request_methods', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_request_methods.py', + 'PYMODULE'), + ('urllib3.util.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/response.py', + 'PYMODULE'), + ('urllib3.util.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/request.py', + 'PYMODULE'), + ('urllib3.util.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/connection.py', + 'PYMODULE'), + ('urllib3.filepost', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/filepost.py', + 'PYMODULE'), + ('urllib3.fields', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/fields.py', + 'PYMODULE'), + ('requests.api', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/api.py', + 'PYMODULE'), + ('requests.sessions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/sessions.py', + 'PYMODULE'), + ('requests.adapters', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/adapters.py', + 'PYMODULE'), + ('urllib3.contrib.socks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/socks.py', + 'PYMODULE'), + ('urllib3.poolmanager', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/poolmanager.py', + 'PYMODULE'), + ('requests.__version__', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/__version__.py', + 'PYMODULE'), + ('requests.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/utils.py', + 'PYMODULE'), + ('requests.certs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/certs.py', + 'PYMODULE'), + ('certifi', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/__init__.py', + 'PYMODULE'), + ('certifi.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/core.py', + 'PYMODULE'), + ('requests.packages', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/packages.py', + 'PYMODULE'), + ('urllib3.exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/exceptions.py', + 'PYMODULE'), + ('urllib3.contrib.pyopenssl', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py', + 'PYMODULE'), + ('urllib3.contrib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py', + 'PYMODULE'), + ('charset_normalizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py', + 'PYMODULE'), + ('charset_normalizer.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/version.py', + 'PYMODULE'), + ('charset_normalizer.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py', + 'PYMODULE'), + ('charset_normalizer.constant', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py', + 'PYMODULE'), + ('charset_normalizer.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/models.py', + 'PYMODULE'), + ('charset_normalizer.cd', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/cd.py', + 'PYMODULE'), + ('charset_normalizer.legacy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py', + 'PYMODULE'), + ('charset_normalizer.api', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/api.py', + 'PYMODULE'), + ('requests.exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/exceptions.py', + 'PYMODULE'), + ('urllib3', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/__init__.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.fetch', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py', + 'PYMODULE'), + ('storage', '/home/dom/ai/agent_v0/storage.py', 'PYMODULE'), + ('window_info', '/home/dom/ai/agent_v0/window_info.py', 'PYMODULE'), + ('key_captor', '/home/dom/ai/agent_v0/key_captor.py', 'PYMODULE'), + ('pynput.keyboard', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/__init__.py', + 'PYMODULE'), + ('pynput._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/__init__.py', + 'PYMODULE'), + ('pynput._util.win32_vks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/win32_vks.py', + 'PYMODULE'), + ('six', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/six.py', + 'PYMODULE'), + ('pynput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/__init__.py', + 'PYMODULE'), + ('pynput.mouse._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_xorg.py', + 'PYMODULE'), + ('Xlib.protocol', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/__init__.py', + 'PYMODULE'), + ('Xlib.protocol.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/request.py', + 'PYMODULE'), + ('Xlib.protocol.structs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/structs.py', + 'PYMODULE'), + ('Xlib.protocol.display', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/display.py', + 'PYMODULE'), + ('Xlib.support.connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/connect.py', + 'PYMODULE'), + ('Xlib.support.lock', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/lock.py', + 'PYMODULE'), + ('Xlib.support', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/__init__.py', + 'PYMODULE'), + ('Xlib.ext.ge', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/ge.py', + 'PYMODULE'), + ('Xlib.error', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/error.py', + 'PYMODULE'), + ('Xlib.protocol.event', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/event.py', + 'PYMODULE'), + ('Xlib.protocol.rq', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/rq.py', + 'PYMODULE'), + ('Xlib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/__init__.py', + 'PYMODULE'), + ('Xlib.xobject.resource', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/resource.py', + 'PYMODULE'), + ('Xlib.xobject.icccm', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/icccm.py', + 'PYMODULE'), + ('Xlib.xobject.fontable', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/fontable.py', + 'PYMODULE'), + ('Xlib.xobject.drawable', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/drawable.py', + 'PYMODULE'), + ('Xlib.xobject.cursor', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/cursor.py', + 'PYMODULE'), + ('Xlib.xobject.colormap', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/colormap.py', + 'PYMODULE'), + ('Xlib.xobject', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/__init__.py', + 'PYMODULE'), + ('Xlib.threaded', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/threaded.py', + 'PYMODULE'), + ('Xlib.support.vms_connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/vms_connect.py', + 'PYMODULE'), + ('Xlib.support.unix_connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/unix_connect.py', + 'PYMODULE'), + ('Xlib.xauth', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xauth.py', + 'PYMODULE'), + ('Xlib.rdb', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/rdb.py', + 'PYMODULE'), + ('Xlib.keysymdef.xkb', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xkb.py', + 'PYMODULE'), + ('Xlib.keysymdef.xk3270', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xk3270.py', + 'PYMODULE'), + ('Xlib.keysymdef.xf86', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xf86.py', + 'PYMODULE'), + ('Xlib.keysymdef.thai', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/thai.py', + 'PYMODULE'), + ('Xlib.keysymdef.technical', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/technical.py', + 'PYMODULE'), + ('Xlib.keysymdef.special', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/special.py', + 'PYMODULE'), + ('Xlib.keysymdef.publishing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/publishing.py', + 'PYMODULE'), + ('Xlib.keysymdef.miscellany', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/miscellany.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin4.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin3', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin3.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin2.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin1', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin1.py', + 'PYMODULE'), + ('Xlib.keysymdef.korean', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/korean.py', + 'PYMODULE'), + ('Xlib.keysymdef.katakana', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/katakana.py', + 'PYMODULE'), + ('Xlib.keysymdef.hebrew', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/hebrew.py', + 'PYMODULE'), + ('Xlib.keysymdef.greek', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/greek.py', + 'PYMODULE'), + ('Xlib.keysymdef.cyrillic', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/cyrillic.py', + 'PYMODULE'), + ('Xlib.keysymdef.arabic', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/arabic.py', + 'PYMODULE'), + ('Xlib.keysymdef.apl', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/apl.py', + 'PYMODULE'), + ('Xlib.keysymdef', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/__init__.py', + 'PYMODULE'), + ('Xlib.ext.xinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xinput.py', + 'PYMODULE'), + ('Xlib.ext.xinerama', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xinerama.py', + 'PYMODULE'), + ('Xlib.ext.xfixes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xfixes.py', + 'PYMODULE'), + ('Xlib.ext.shape', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/shape.py', + 'PYMODULE'), + ('Xlib.ext.security', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/security.py', + 'PYMODULE'), + ('Xlib.ext.screensaver', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/screensaver.py', + 'PYMODULE'), + ('Xlib.ext.res', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/res.py', + 'PYMODULE'), + ('Xlib.ext.record', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/record.py', + 'PYMODULE'), + ('Xlib.ext.randr', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/randr.py', + 'PYMODULE'), + ('Xlib.ext.nvcontrol', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/nvcontrol.py', + 'PYMODULE'), + ('Xlib.ext.dpms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/dpms.py', + 'PYMODULE'), + ('Xlib.ext.damage', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/damage.py', + 'PYMODULE'), + ('Xlib.ext.composite', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/composite.py', + 'PYMODULE'), + ('Xlib.Xcursorfont', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xcursorfont.py', + 'PYMODULE'), + ('Xlib.XK', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/XK.py', + 'PYMODULE'), + ('Xlib.Xutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xutil.py', + 'PYMODULE'), + ('Xlib.Xatom', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xatom.py', + 'PYMODULE'), + ('Xlib.X', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/X.py', + 'PYMODULE'), + ('Xlib.ext.xtest', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xtest.py', + 'PYMODULE'), + ('Xlib.ext', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/__init__.py', + 'PYMODULE'), + ('Xlib.display', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/display.py', + 'PYMODULE'), + ('pynput.mouse._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_win32.py', + 'PYMODULE'), + ('pynput.mouse._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_dummy.py', + 'PYMODULE'), + ('pynput.mouse._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_darwin.py', + 'PYMODULE'), + ('pynput.mouse._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_base.py', + 'PYMODULE'), + ('pynput.keyboard._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_xorg.py', + 'PYMODULE'), + ('pynput.keyboard._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_win32.py', + 'PYMODULE'), + ('pynput.keyboard._uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_uinput.py', + 'PYMODULE'), + ('evdev.events', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/events.py', + 'PYMODULE'), + ('evdev.ecodes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/ecodes.py', + 'PYMODULE'), + ('evdev', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/__init__.py', + 'PYMODULE'), + ('evdev.uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/uinput.py', + 'PYMODULE'), + ('evdev.eventio_async', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/eventio_async.py', + 'PYMODULE'), + ('evdev.device', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/device.py', + 'PYMODULE'), + ('evdev.eventio', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/eventio.py', + 'PYMODULE'), + ('evdev.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/util.py', + 'PYMODULE'), + ('evdev.ff', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/ff.py', + 'PYMODULE'), + ('pynput.keyboard._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_dummy.py', + 'PYMODULE'), + ('pynput.keyboard._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_darwin.py', + 'PYMODULE'), + ('pynput.keyboard._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_base.py', + 'PYMODULE'), + ('pynput._util.xorg_keysyms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/xorg_keysyms.py', + 'PYMODULE'), + ('pynput._util.xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/xorg.py', + 'PYMODULE'), + ('pynput._util.win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/win32.py', + 'PYMODULE'), + ('pynput._util.uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/uinput.py', + 'PYMODULE'), + ('pynput._util.darwin_vks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/darwin_vks.py', + 'PYMODULE'), + ('pynput._util.darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/darwin.py', + 'PYMODULE'), + ('ctypes.util', '/usr/lib/python3.12/ctypes/util.py', 'PYMODULE'), + ('ctypes._aix', '/usr/lib/python3.12/ctypes/_aix.py', 'PYMODULE'), + ('pynput._info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_info.py', + 'PYMODULE'), + ('pynput.mouse', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/__init__.py', + 'PYMODULE'), + ('event_captor', '/home/dom/ai/agent_v0/event_captor.py', 'PYMODULE'), + ('screen_capturer', '/home/dom/ai/agent_v0/screen_capturer.py', 'PYMODULE'), + ('mss.tools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/tools.py', + 'PYMODULE'), + ('mss', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/__init__.py', + 'PYMODULE'), + ('mss.factory', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/factory.py', + 'PYMODULE'), + ('mss.base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/base.py', + 'PYMODULE'), + ('mss.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/models.py', + 'PYMODULE'), + ('mss.screenshot', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/screenshot.py', + 'PYMODULE'), + ('mss.windows', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/windows.py', + 'PYMODULE'), + ('mss.linux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/linux.py', + 'PYMODULE'), + ('mss.darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/darwin.py', + 'PYMODULE'), + ('mss.exception', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/exception.py', + 'PYMODULE'), + ('raw_session', '/home/dom/ai/agent_v0/raw_session.py', 'PYMODULE'), + ('uuid', '/usr/lib/python3.12/uuid.py', 'PYMODULE'), + ('config', '/home/dom/ai/agent_v0/config.py', 'PYMODULE'), + ('PIL.ImageDraw', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageDraw.py', + 'PYMODULE'), + ('PIL._typing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_typing.py', + 'PYMODULE'), + ('PIL.ImageFont', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFont.py', + 'PYMODULE'), + ('PIL.ImageFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFile.py', + 'PYMODULE'), + ('PIL.TiffImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TiffImagePlugin.py', + 'PYMODULE'), + ('PIL._binary', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_binary.py', + 'PYMODULE'), + ('PIL.TiffTags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TiffTags.py', + 'PYMODULE'), + ('PIL.ImagePalette', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImagePalette.py', + 'PYMODULE'), + ('PIL.PaletteFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PaletteFile.py', + 'PYMODULE'), + ('PIL.GimpPaletteFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GimpPaletteFile.py', + 'PYMODULE'), + ('PIL.GimpGradientFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GimpGradientFile.py', + 'PYMODULE'), + ('PIL.ImageOps', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageOps.py', + 'PYMODULE'), + ('PIL.ExifTags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ExifTags.py', + 'PYMODULE'), + ('PIL._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_util.py', + 'PYMODULE'), + ('PIL.ImageDraw2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageDraw2.py', + 'PYMODULE'), + ('PIL.ImagePath', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImagePath.py', + 'PYMODULE'), + ('PIL.ImageText', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageText.py', + 'PYMODULE'), + ('PIL.ImageColor', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageColor.py', + 'PYMODULE'), + ('colorsys', '/usr/lib/python3.12/colorsys.py', 'PYMODULE'), + ('PIL.Image', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Image.py', + 'PYMODULE'), + ('PIL.XpmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XpmImagePlugin.py', + 'PYMODULE'), + ('PIL.XbmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XbmImagePlugin.py', + 'PYMODULE'), + ('PIL.XVThumbImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XVThumbImagePlugin.py', + 'PYMODULE'), + ('PIL.WmfImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/WmfImagePlugin.py', + 'PYMODULE'), + ('PIL.WebPImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/WebPImagePlugin.py', + 'PYMODULE'), + ('PIL.TgaImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TgaImagePlugin.py', + 'PYMODULE'), + ('PIL.SunImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SunImagePlugin.py', + 'PYMODULE'), + ('PIL.SpiderImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SpiderImagePlugin.py', + 'PYMODULE'), + ('PIL.ImageTk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageTk.py', + 'PYMODULE'), + ('PIL.SgiImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SgiImagePlugin.py', + 'PYMODULE'), + ('PIL.QoiImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/QoiImagePlugin.py', + 'PYMODULE'), + ('PIL.PsdImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PsdImagePlugin.py', + 'PYMODULE'), + ('PIL.PixarImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PixarImagePlugin.py', + 'PYMODULE'), + ('PIL.PdfImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PdfImagePlugin.py', + 'PYMODULE'), + ('PIL.features', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/features.py', + 'PYMODULE'), + ('PIL.PdfParser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PdfParser.py', + 'PYMODULE'), + ('PIL.ImageSequence', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageSequence.py', + 'PYMODULE'), + ('PIL.PcxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PcxImagePlugin.py', + 'PYMODULE'), + ('PIL.PcdImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PcdImagePlugin.py', + 'PYMODULE'), + ('PIL.PalmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PalmImagePlugin.py', + 'PYMODULE'), + ('PIL.MspImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MspImagePlugin.py', + 'PYMODULE'), + ('PIL.MpoImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MpoImagePlugin.py', + 'PYMODULE'), + ('PIL.MpegImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MpegImagePlugin.py', + 'PYMODULE'), + ('PIL.MicImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MicImagePlugin.py', + 'PYMODULE'), + ('PIL.McIdasImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/McIdasImagePlugin.py', + 'PYMODULE'), + ('PIL.Jpeg2KImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Jpeg2KImagePlugin.py', + 'PYMODULE'), + ('PIL.IptcImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IptcImagePlugin.py', + 'PYMODULE'), + ('PIL.ImtImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImtImagePlugin.py', + 'PYMODULE'), + ('PIL.ImImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImImagePlugin.py', + 'PYMODULE'), + ('PIL.IcoImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IcoImagePlugin.py', + 'PYMODULE'), + ('PIL.IcnsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IcnsImagePlugin.py', + 'PYMODULE'), + ('PIL.Hdf5StubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Hdf5StubImagePlugin.py', + 'PYMODULE'), + ('PIL.GribStubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GribStubImagePlugin.py', + 'PYMODULE'), + ('PIL.GbrImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GbrImagePlugin.py', + 'PYMODULE'), + ('PIL.FtexImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FtexImagePlugin.py', + 'PYMODULE'), + ('PIL.FpxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FpxImagePlugin.py', + 'PYMODULE'), + ('PIL.FliImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FliImagePlugin.py', + 'PYMODULE'), + ('PIL.FitsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FitsImagePlugin.py', + 'PYMODULE'), + ('PIL.EpsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/EpsImagePlugin.py', + 'PYMODULE'), + ('PIL.DdsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/DdsImagePlugin.py', + 'PYMODULE'), + ('PIL.DcxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/DcxImagePlugin.py', + 'PYMODULE'), + ('PIL.CurImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/CurImagePlugin.py', + 'PYMODULE'), + ('PIL.BufrStubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BufrStubImagePlugin.py', + 'PYMODULE'), + ('PIL.BlpImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BlpImagePlugin.py', + 'PYMODULE'), + ('PIL.AvifImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/AvifImagePlugin.py', + 'PYMODULE'), + ('PIL.ImageShow', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageShow.py', + 'PYMODULE'), + ('PIL.ImageCms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageCms.py', + 'PYMODULE'), + ('PIL.ImageWin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageWin.py', + 'PYMODULE'), + ('PIL.PngImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PngImagePlugin.py', + 'PYMODULE'), + ('PIL.ImageChops', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageChops.py', + 'PYMODULE'), + ('PIL.PpmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PpmImagePlugin.py', + 'PYMODULE'), + ('PIL.JpegImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/JpegImagePlugin.py', + 'PYMODULE'), + ('PIL.JpegPresets', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/JpegPresets.py', + 'PYMODULE'), + ('PIL.GifImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GifImagePlugin.py', + 'PYMODULE'), + ('PIL.ImageMath', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageMath.py', + 'PYMODULE'), + ('PIL.BmpImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BmpImagePlugin.py', + 'PYMODULE'), + ('PIL.ImageQt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageQt.py', + 'PYMODULE'), + ('PIL.ImageFilter', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFilter.py', + 'PYMODULE'), + ('xml.etree.ElementTree', + '/usr/lib/python3.12/xml/etree/ElementTree.py', + 'PYMODULE'), + ('xml.etree.cElementTree', + '/usr/lib/python3.12/xml/etree/cElementTree.py', + 'PYMODULE'), + ('xml.etree.ElementInclude', + '/usr/lib/python3.12/xml/etree/ElementInclude.py', + 'PYMODULE'), + ('xml.etree.ElementPath', + '/usr/lib/python3.12/xml/etree/ElementPath.py', + 'PYMODULE'), + ('xml.etree', '/usr/lib/python3.12/xml/etree/__init__.py', 'PYMODULE'), + ('PIL._deprecate', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_deprecate.py', + 'PYMODULE'), + ('PIL.ImageMode', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageMode.py', + 'PYMODULE'), + ('PIL', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/__init__.py', + 'PYMODULE'), + ('PIL._version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_version.py', + 'PYMODULE'), + ('pystray', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/__init__.py', + 'PYMODULE'), + ('pystray._util.win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/win32.py', + 'PYMODULE'), + ('pystray._util.notify_dbus', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/notify_dbus.py', + 'PYMODULE'), + ('pystray._util.gtk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/gtk.py', + 'PYMODULE'), + ('pystray._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/__init__.py', + 'PYMODULE'), + ('pystray._info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_info.py', + 'PYMODULE'), + ('pystray._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_base.py', + 'PYMODULE'), + ('pystray._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_xorg.py', + 'PYMODULE'), + ('pystray._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_win32.py', + 'PYMODULE'), + ('pystray._gtk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_gtk.py', + 'PYMODULE'), + ('pystray._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_darwin.py', + 'PYMODULE'), + ('pystray._appindicator', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_appindicator.py', + 'PYMODULE'), + ('pystray._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_dummy.py', + 'PYMODULE'), + ('logger_conf', '/home/dom/ai/agent_v0/logger_conf.py', 'PYMODULE'), + ('logging.handlers', '/usr/lib/python3.12/logging/handlers.py', 'PYMODULE'), + ('smtplib', '/usr/lib/python3.12/smtplib.py', 'PYMODULE'), + ('__future__', '/usr/lib/python3.12/__future__.py', 'PYMODULE')], + [('libpython3.12.so.1.0', + '/lib/x86_64-linux-gnu/libpython3.12.so.1.0', + 'BINARY'), + ('libXfixes.so.3', '/lib/x86_64-linux-gnu/libXfixes.so.3', 'BINARY'), + ('libXrandr.so.2', '/lib/x86_64-linux-gnu/libXrandr.so.2', 'BINARY'), + ('libX11.so.6', '/lib/x86_64-linux-gnu/libX11.so.6', 'BINARY'), + ('python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_input.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_input.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_webp.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_webp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_avif.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_avif.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'), + ('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'), + ('libmd.so.0', '/lib/x86_64-linux-gnu/libmd.so.0', 'BINARY'), + ('libXdmcp.so.6', '/lib/x86_64-linux-gnu/libXdmcp.so.6', 'BINARY'), + ('libXau.so.6', '/lib/x86_64-linux-gnu/libXau.so.6', 'BINARY'), + ('libbsd.so.0', '/lib/x86_64-linux-gnu/libbsd.so.0', 'BINARY'), + ('libXrender.so.1', '/lib/x86_64-linux-gnu/libXrender.so.1', 'BINARY'), + ('libXext.so.6', '/lib/x86_64-linux-gnu/libXext.so.6', 'BINARY'), + ('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'), + ('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'), + ('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'), + ('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'), + ('libffi.so.8', '/lib/x86_64-linux-gnu/libffi.so.8', 'BINARY'), + ('libreadline.so.8', '/lib/x86_64-linux-gnu/libreadline.so.8', 'BINARY'), + ('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY'), + ('pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'BINARY'), + ('pillow.libs/libpng16-00127801.so.16.50.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libpng16-00127801.so.16.50.0', + 'BINARY'), + ('pillow.libs/libfreetype-5bb46249.so.6.20.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'BINARY'), + ('pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libopenjp2-94e588ba.so.2.5.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'BINARY'), + ('pillow.libs/libXau-154567c4.so.6.0.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libXau-154567c4.so.6.0.0', + 'BINARY'), + ('pillow.libs/libxcb-64009ff3.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0', + 'BINARY'), + ('pillow.libs/libjpeg-a41b0190.so.62.4.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'BINARY'), + ('pillow.libs/liblzma-64b7ab39.so.5.8.1', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'BINARY'), + ('pillow.libs/libzstd-761a17b6.so.1.5.7', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7', + 'BINARY'), + ('pillow.libs/libtiff-295fd75c.so.6.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0', + 'BINARY'), + ('pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'BINARY'), + ('pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'BINARY'), + ('pillow.libs/libwebp-d8b9687f.so.7.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'BINARY'), + ('pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'BINARY'), + ('libgcc_s.so.1', '/lib/x86_64-linux-gnu/libgcc_s.so.1', 'BINARY'), + ('libstdc++.so.6', '/lib/x86_64-linux-gnu/libstdc++.so.6', 'BINARY'), + ('pillow.libs/libavif-01e67780.so.16.3.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libavif-01e67780.so.16.3.0', + 'BINARY'), + ('pillow.libs/liblcms2-cc10e42f.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'BINARY')], + [], + [], + [('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + 'DATA'), + ('setuptools/_vendor/jaraco/text/Lorem ipsum.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text/Lorem ' + 'ipsum.txt', + 'DATA'), + ('certifi/py.typed', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/py.typed', + 'DATA'), + ('certifi/cacert.pem', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/cacert.pem', + 'DATA'), + ('base_library.zip', + '/home/dom/ai/agent_v0/build/agent_v0_tray/base_library.zip', + 'DATA'), + ('libharfbuzz-525aa570.so.0.61210.0', + 'pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'SYMLINK'), + ('libpng16-00127801.so.16.50.0', + 'pillow.libs/libpng16-00127801.so.16.50.0', + 'SYMLINK'), + ('libfreetype-5bb46249.so.6.20.4', + 'pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'SYMLINK'), + ('libbrotlicommon-c55a5f7a.so.1.1.0', + 'pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'SYMLINK'), + ('libbrotlidec-2ced2f3a.so.1.1.0', + 'pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'SYMLINK'), + ('libopenjp2-94e588ba.so.2.5.4', + 'pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'SYMLINK'), + ('libXau-154567c4.so.6.0.0', + 'pillow.libs/libXau-154567c4.so.6.0.0', + 'SYMLINK'), + ('libxcb-64009ff3.so.1.1.0', + 'pillow.libs/libxcb-64009ff3.so.1.1.0', + 'SYMLINK'), + ('libjpeg-a41b0190.so.62.4.0', + 'pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'SYMLINK'), + ('liblzma-64b7ab39.so.5.8.1', + 'pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'SYMLINK'), + ('libzstd-761a17b6.so.1.5.7', + 'pillow.libs/libzstd-761a17b6.so.1.5.7', + 'SYMLINK'), + ('libtiff-295fd75c.so.6.2.0', + 'pillow.libs/libtiff-295fd75c.so.6.2.0', + 'SYMLINK'), + ('libwebpmux-7f11e5ce.so.3.1.2', + 'pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'SYMLINK'), + ('libsharpyuv-95d8a097.so.0.1.2', + 'pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'SYMLINK'), + ('libwebp-d8b9687f.so.7.2.0', + 'pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'SYMLINK'), + ('libwebpdemux-747f2b49.so.2.0.17', + 'pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'SYMLINK'), + ('libavif-01e67780.so.16.3.0', + 'pillow.libs/libavif-01e67780.so.16.3.0', + 'SYMLINK'), + ('liblcms2-cc10e42f.so.2.0.17', + 'pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'SYMLINK')], + [('heapq', '/usr/lib/python3.12/heapq.py', 'PYMODULE'), + ('locale', '/usr/lib/python3.12/locale.py', 'PYMODULE'), + ('copyreg', '/usr/lib/python3.12/copyreg.py', 'PYMODULE'), + ('traceback', '/usr/lib/python3.12/traceback.py', 'PYMODULE'), + ('operator', '/usr/lib/python3.12/operator.py', 'PYMODULE'), + ('genericpath', '/usr/lib/python3.12/genericpath.py', 'PYMODULE'), + ('_weakrefset', '/usr/lib/python3.12/_weakrefset.py', 'PYMODULE'), + ('linecache', '/usr/lib/python3.12/linecache.py', 'PYMODULE'), + ('codecs', '/usr/lib/python3.12/codecs.py', 'PYMODULE'), + ('functools', '/usr/lib/python3.12/functools.py', 'PYMODULE'), + ('weakref', '/usr/lib/python3.12/weakref.py', 'PYMODULE'), + ('re._parser', '/usr/lib/python3.12/re/_parser.py', 'PYMODULE'), + ('re._constants', '/usr/lib/python3.12/re/_constants.py', 'PYMODULE'), + ('re._compiler', '/usr/lib/python3.12/re/_compiler.py', 'PYMODULE'), + ('re._casefix', '/usr/lib/python3.12/re/_casefix.py', 'PYMODULE'), + ('re', '/usr/lib/python3.12/re/__init__.py', 'PYMODULE'), + ('_collections_abc', '/usr/lib/python3.12/_collections_abc.py', 'PYMODULE'), + ('sre_constants', '/usr/lib/python3.12/sre_constants.py', 'PYMODULE'), + ('collections.abc', '/usr/lib/python3.12/collections/abc.py', 'PYMODULE'), + ('collections', '/usr/lib/python3.12/collections/__init__.py', 'PYMODULE'), + ('sre_compile', '/usr/lib/python3.12/sre_compile.py', 'PYMODULE'), + ('enum', '/usr/lib/python3.12/enum.py', 'PYMODULE'), + ('io', '/usr/lib/python3.12/io.py', 'PYMODULE'), + ('stat', '/usr/lib/python3.12/stat.py', 'PYMODULE'), + ('abc', '/usr/lib/python3.12/abc.py', 'PYMODULE'), + ('sre_parse', '/usr/lib/python3.12/sre_parse.py', 'PYMODULE'), + ('keyword', '/usr/lib/python3.12/keyword.py', 'PYMODULE'), + ('types', '/usr/lib/python3.12/types.py', 'PYMODULE'), + ('os', '/usr/lib/python3.12/os.py', 'PYMODULE'), + ('reprlib', '/usr/lib/python3.12/reprlib.py', 'PYMODULE'), + ('encodings.zlib_codec', + '/usr/lib/python3.12/encodings/zlib_codec.py', + 'PYMODULE'), + ('encodings.uu_codec', + '/usr/lib/python3.12/encodings/uu_codec.py', + 'PYMODULE'), + ('encodings.utf_8_sig', + '/usr/lib/python3.12/encodings/utf_8_sig.py', + 'PYMODULE'), + ('encodings.utf_8', '/usr/lib/python3.12/encodings/utf_8.py', 'PYMODULE'), + ('encodings.utf_7', '/usr/lib/python3.12/encodings/utf_7.py', 'PYMODULE'), + ('encodings.utf_32_le', + '/usr/lib/python3.12/encodings/utf_32_le.py', + 'PYMODULE'), + ('encodings.utf_32_be', + '/usr/lib/python3.12/encodings/utf_32_be.py', + 'PYMODULE'), + ('encodings.utf_32', '/usr/lib/python3.12/encodings/utf_32.py', 'PYMODULE'), + ('encodings.utf_16_le', + '/usr/lib/python3.12/encodings/utf_16_le.py', + 'PYMODULE'), + ('encodings.utf_16_be', + '/usr/lib/python3.12/encodings/utf_16_be.py', + 'PYMODULE'), + ('encodings.utf_16', '/usr/lib/python3.12/encodings/utf_16.py', 'PYMODULE'), + ('encodings.unicode_escape', + '/usr/lib/python3.12/encodings/unicode_escape.py', + 'PYMODULE'), + ('encodings.undefined', + '/usr/lib/python3.12/encodings/undefined.py', + 'PYMODULE'), + ('encodings.tis_620', '/usr/lib/python3.12/encodings/tis_620.py', 'PYMODULE'), + ('encodings.shift_jisx0213', + '/usr/lib/python3.12/encodings/shift_jisx0213.py', + 'PYMODULE'), + ('encodings.shift_jis_2004', + '/usr/lib/python3.12/encodings/shift_jis_2004.py', + 'PYMODULE'), + ('encodings.shift_jis', + '/usr/lib/python3.12/encodings/shift_jis.py', + 'PYMODULE'), + ('encodings.rot_13', '/usr/lib/python3.12/encodings/rot_13.py', 'PYMODULE'), + ('encodings.raw_unicode_escape', + '/usr/lib/python3.12/encodings/raw_unicode_escape.py', + 'PYMODULE'), + ('encodings.quopri_codec', + '/usr/lib/python3.12/encodings/quopri_codec.py', + 'PYMODULE'), + ('encodings.punycode', + '/usr/lib/python3.12/encodings/punycode.py', + 'PYMODULE'), + ('encodings.ptcp154', '/usr/lib/python3.12/encodings/ptcp154.py', 'PYMODULE'), + ('encodings.palmos', '/usr/lib/python3.12/encodings/palmos.py', 'PYMODULE'), + ('encodings.oem', '/usr/lib/python3.12/encodings/oem.py', 'PYMODULE'), + ('encodings.mbcs', '/usr/lib/python3.12/encodings/mbcs.py', 'PYMODULE'), + ('encodings.mac_turkish', + '/usr/lib/python3.12/encodings/mac_turkish.py', + 'PYMODULE'), + ('encodings.mac_romanian', + '/usr/lib/python3.12/encodings/mac_romanian.py', + 'PYMODULE'), + ('encodings.mac_roman', + '/usr/lib/python3.12/encodings/mac_roman.py', + 'PYMODULE'), + ('encodings.mac_latin2', + '/usr/lib/python3.12/encodings/mac_latin2.py', + 'PYMODULE'), + ('encodings.mac_iceland', + '/usr/lib/python3.12/encodings/mac_iceland.py', + 'PYMODULE'), + ('encodings.mac_greek', + '/usr/lib/python3.12/encodings/mac_greek.py', + 'PYMODULE'), + ('encodings.mac_farsi', + '/usr/lib/python3.12/encodings/mac_farsi.py', + 'PYMODULE'), + ('encodings.mac_cyrillic', + '/usr/lib/python3.12/encodings/mac_cyrillic.py', + 'PYMODULE'), + ('encodings.mac_croatian', + '/usr/lib/python3.12/encodings/mac_croatian.py', + 'PYMODULE'), + ('encodings.mac_arabic', + '/usr/lib/python3.12/encodings/mac_arabic.py', + 'PYMODULE'), + ('encodings.latin_1', '/usr/lib/python3.12/encodings/latin_1.py', 'PYMODULE'), + ('encodings.kz1048', '/usr/lib/python3.12/encodings/kz1048.py', 'PYMODULE'), + ('encodings.koi8_u', '/usr/lib/python3.12/encodings/koi8_u.py', 'PYMODULE'), + ('encodings.koi8_t', '/usr/lib/python3.12/encodings/koi8_t.py', 'PYMODULE'), + ('encodings.koi8_r', '/usr/lib/python3.12/encodings/koi8_r.py', 'PYMODULE'), + ('encodings.johab', '/usr/lib/python3.12/encodings/johab.py', 'PYMODULE'), + ('encodings.iso8859_9', + '/usr/lib/python3.12/encodings/iso8859_9.py', + 'PYMODULE'), + ('encodings.iso8859_8', + '/usr/lib/python3.12/encodings/iso8859_8.py', + 'PYMODULE'), + ('encodings.iso8859_7', + '/usr/lib/python3.12/encodings/iso8859_7.py', + 'PYMODULE'), + ('encodings.iso8859_6', + '/usr/lib/python3.12/encodings/iso8859_6.py', + 'PYMODULE'), + ('encodings.iso8859_5', + '/usr/lib/python3.12/encodings/iso8859_5.py', + 'PYMODULE'), + ('encodings.iso8859_4', + '/usr/lib/python3.12/encodings/iso8859_4.py', + 'PYMODULE'), + ('encodings.iso8859_3', + '/usr/lib/python3.12/encodings/iso8859_3.py', + 'PYMODULE'), + ('encodings.iso8859_2', + '/usr/lib/python3.12/encodings/iso8859_2.py', + 'PYMODULE'), + ('encodings.iso8859_16', + '/usr/lib/python3.12/encodings/iso8859_16.py', + 'PYMODULE'), + ('encodings.iso8859_15', + '/usr/lib/python3.12/encodings/iso8859_15.py', + 'PYMODULE'), + ('encodings.iso8859_14', + '/usr/lib/python3.12/encodings/iso8859_14.py', + 'PYMODULE'), + ('encodings.iso8859_13', + '/usr/lib/python3.12/encodings/iso8859_13.py', + 'PYMODULE'), + ('encodings.iso8859_11', + '/usr/lib/python3.12/encodings/iso8859_11.py', + 'PYMODULE'), + ('encodings.iso8859_10', + '/usr/lib/python3.12/encodings/iso8859_10.py', + 'PYMODULE'), + ('encodings.iso8859_1', + '/usr/lib/python3.12/encodings/iso8859_1.py', + 'PYMODULE'), + ('encodings.iso2022_kr', + '/usr/lib/python3.12/encodings/iso2022_kr.py', + 'PYMODULE'), + ('encodings.iso2022_jp_ext', + '/usr/lib/python3.12/encodings/iso2022_jp_ext.py', + 'PYMODULE'), + ('encodings.iso2022_jp_3', + '/usr/lib/python3.12/encodings/iso2022_jp_3.py', + 'PYMODULE'), + ('encodings.iso2022_jp_2004', + '/usr/lib/python3.12/encodings/iso2022_jp_2004.py', + 'PYMODULE'), + ('encodings.iso2022_jp_2', + '/usr/lib/python3.12/encodings/iso2022_jp_2.py', + 'PYMODULE'), + ('encodings.iso2022_jp_1', + '/usr/lib/python3.12/encodings/iso2022_jp_1.py', + 'PYMODULE'), + ('encodings.iso2022_jp', + '/usr/lib/python3.12/encodings/iso2022_jp.py', + 'PYMODULE'), + ('encodings.idna', '/usr/lib/python3.12/encodings/idna.py', 'PYMODULE'), + ('encodings.hz', '/usr/lib/python3.12/encodings/hz.py', 'PYMODULE'), + ('encodings.hp_roman8', + '/usr/lib/python3.12/encodings/hp_roman8.py', + 'PYMODULE'), + ('encodings.hex_codec', + '/usr/lib/python3.12/encodings/hex_codec.py', + 'PYMODULE'), + ('encodings.gbk', '/usr/lib/python3.12/encodings/gbk.py', 'PYMODULE'), + ('encodings.gb2312', '/usr/lib/python3.12/encodings/gb2312.py', 'PYMODULE'), + ('encodings.gb18030', '/usr/lib/python3.12/encodings/gb18030.py', 'PYMODULE'), + ('encodings.euc_kr', '/usr/lib/python3.12/encodings/euc_kr.py', 'PYMODULE'), + ('encodings.euc_jp', '/usr/lib/python3.12/encodings/euc_jp.py', 'PYMODULE'), + ('encodings.euc_jisx0213', + '/usr/lib/python3.12/encodings/euc_jisx0213.py', + 'PYMODULE'), + ('encodings.euc_jis_2004', + '/usr/lib/python3.12/encodings/euc_jis_2004.py', + 'PYMODULE'), + ('encodings.cp950', '/usr/lib/python3.12/encodings/cp950.py', 'PYMODULE'), + ('encodings.cp949', '/usr/lib/python3.12/encodings/cp949.py', 'PYMODULE'), + ('encodings.cp932', '/usr/lib/python3.12/encodings/cp932.py', 'PYMODULE'), + ('encodings.cp875', '/usr/lib/python3.12/encodings/cp875.py', 'PYMODULE'), + ('encodings.cp874', '/usr/lib/python3.12/encodings/cp874.py', 'PYMODULE'), + ('encodings.cp869', '/usr/lib/python3.12/encodings/cp869.py', 'PYMODULE'), + ('encodings.cp866', '/usr/lib/python3.12/encodings/cp866.py', 'PYMODULE'), + ('encodings.cp865', '/usr/lib/python3.12/encodings/cp865.py', 'PYMODULE'), + ('encodings.cp864', '/usr/lib/python3.12/encodings/cp864.py', 'PYMODULE'), + ('encodings.cp863', '/usr/lib/python3.12/encodings/cp863.py', 'PYMODULE'), + ('encodings.cp862', '/usr/lib/python3.12/encodings/cp862.py', 'PYMODULE'), + ('encodings.cp861', '/usr/lib/python3.12/encodings/cp861.py', 'PYMODULE'), + ('encodings.cp860', '/usr/lib/python3.12/encodings/cp860.py', 'PYMODULE'), + ('encodings.cp858', '/usr/lib/python3.12/encodings/cp858.py', 'PYMODULE'), + ('encodings.cp857', '/usr/lib/python3.12/encodings/cp857.py', 'PYMODULE'), + ('encodings.cp856', '/usr/lib/python3.12/encodings/cp856.py', 'PYMODULE'), + ('encodings.cp855', '/usr/lib/python3.12/encodings/cp855.py', 'PYMODULE'), + ('encodings.cp852', '/usr/lib/python3.12/encodings/cp852.py', 'PYMODULE'), + ('encodings.cp850', '/usr/lib/python3.12/encodings/cp850.py', 'PYMODULE'), + ('encodings.cp775', '/usr/lib/python3.12/encodings/cp775.py', 'PYMODULE'), + ('encodings.cp737', '/usr/lib/python3.12/encodings/cp737.py', 'PYMODULE'), + ('encodings.cp720', '/usr/lib/python3.12/encodings/cp720.py', 'PYMODULE'), + ('encodings.cp500', '/usr/lib/python3.12/encodings/cp500.py', 'PYMODULE'), + ('encodings.cp437', '/usr/lib/python3.12/encodings/cp437.py', 'PYMODULE'), + ('encodings.cp424', '/usr/lib/python3.12/encodings/cp424.py', 'PYMODULE'), + ('encodings.cp273', '/usr/lib/python3.12/encodings/cp273.py', 'PYMODULE'), + ('encodings.cp1258', '/usr/lib/python3.12/encodings/cp1258.py', 'PYMODULE'), + ('encodings.cp1257', '/usr/lib/python3.12/encodings/cp1257.py', 'PYMODULE'), + ('encodings.cp1256', '/usr/lib/python3.12/encodings/cp1256.py', 'PYMODULE'), + ('encodings.cp1255', '/usr/lib/python3.12/encodings/cp1255.py', 'PYMODULE'), + ('encodings.cp1254', '/usr/lib/python3.12/encodings/cp1254.py', 'PYMODULE'), + ('encodings.cp1253', '/usr/lib/python3.12/encodings/cp1253.py', 'PYMODULE'), + ('encodings.cp1252', '/usr/lib/python3.12/encodings/cp1252.py', 'PYMODULE'), + ('encodings.cp1251', '/usr/lib/python3.12/encodings/cp1251.py', 'PYMODULE'), + ('encodings.cp1250', '/usr/lib/python3.12/encodings/cp1250.py', 'PYMODULE'), + ('encodings.cp1140', '/usr/lib/python3.12/encodings/cp1140.py', 'PYMODULE'), + ('encodings.cp1125', '/usr/lib/python3.12/encodings/cp1125.py', 'PYMODULE'), + ('encodings.cp1026', '/usr/lib/python3.12/encodings/cp1026.py', 'PYMODULE'), + ('encodings.cp1006', '/usr/lib/python3.12/encodings/cp1006.py', 'PYMODULE'), + ('encodings.cp037', '/usr/lib/python3.12/encodings/cp037.py', 'PYMODULE'), + ('encodings.charmap', '/usr/lib/python3.12/encodings/charmap.py', 'PYMODULE'), + ('encodings.bz2_codec', + '/usr/lib/python3.12/encodings/bz2_codec.py', + 'PYMODULE'), + ('encodings.big5hkscs', + '/usr/lib/python3.12/encodings/big5hkscs.py', + 'PYMODULE'), + ('encodings.big5', '/usr/lib/python3.12/encodings/big5.py', 'PYMODULE'), + ('encodings.base64_codec', + '/usr/lib/python3.12/encodings/base64_codec.py', + 'PYMODULE'), + ('encodings.ascii', '/usr/lib/python3.12/encodings/ascii.py', 'PYMODULE'), + ('encodings.aliases', '/usr/lib/python3.12/encodings/aliases.py', 'PYMODULE'), + ('encodings', '/usr/lib/python3.12/encodings/__init__.py', 'PYMODULE'), + ('warnings', '/usr/lib/python3.12/warnings.py', 'PYMODULE'), + ('posixpath', '/usr/lib/python3.12/posixpath.py', 'PYMODULE'), + ('ntpath', '/usr/lib/python3.12/ntpath.py', 'PYMODULE')]) diff --git a/build/agent_v0_tray/EXE-00.toc b/build/agent_v0_tray/EXE-00.toc new file mode 100644 index 0000000..675b717 --- /dev/null +++ b/build/agent_v0_tray/EXE-00.toc @@ -0,0 +1,320 @@ +('/home/dom/ai/agent_v0/dist/agent_v0_tray', + True, + False, + False, + None, + None, + False, + False, + None, + True, + False, + None, + None, + None, + '/home/dom/ai/agent_v0/build/agent_v0_tray/agent_v0_tray.pkg', + [('pyi-contents-directory _internal', '', 'OPTION'), + ('PYZ-00.pyz', '/home/dom/ai/agent_v0/build/agent_v0_tray/PYZ-00.pyz', 'PYZ'), + ('struct', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/struct.pyc', + 'PYMODULE'), + ('pyimod01_archive', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod01_archive.pyc', + 'PYMODULE'), + ('pyimod02_importers', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod02_importers.pyc', + 'PYMODULE'), + ('pyimod03_ctypes', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod03_ctypes.pyc', + 'PYMODULE'), + ('pyiboot01_bootstrap', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py', + 'PYSOURCE'), + ('pyi_rth_inspect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py', + 'PYSOURCE'), + ('pyi_rth_setuptools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_setuptools.py', + 'PYSOURCE'), + ('pyi_rth_pkgutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py', + 'PYSOURCE'), + ('pyi_rth_multiprocessing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py', + 'PYSOURCE'), + ('main', '/home/dom/ai/agent_v0/main.py', 'PYSOURCE'), + ('libpython3.12.so.1.0', + '/lib/x86_64-linux-gnu/libpython3.12.so.1.0', + 'BINARY'), + ('libXfixes.so.3', '/lib/x86_64-linux-gnu/libXfixes.so.3', 'BINARY'), + ('libXrandr.so.2', '/lib/x86_64-linux-gnu/libXrandr.so.2', 'BINARY'), + ('libX11.so.6', '/lib/x86_64-linux-gnu/libX11.so.6', 'BINARY'), + ('python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_input.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_input.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_webp.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_webp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_avif.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_avif.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'), + ('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'), + ('libmd.so.0', '/lib/x86_64-linux-gnu/libmd.so.0', 'BINARY'), + ('libXdmcp.so.6', '/lib/x86_64-linux-gnu/libXdmcp.so.6', 'BINARY'), + ('libXau.so.6', '/lib/x86_64-linux-gnu/libXau.so.6', 'BINARY'), + ('libbsd.so.0', '/lib/x86_64-linux-gnu/libbsd.so.0', 'BINARY'), + ('libXrender.so.1', '/lib/x86_64-linux-gnu/libXrender.so.1', 'BINARY'), + ('libXext.so.6', '/lib/x86_64-linux-gnu/libXext.so.6', 'BINARY'), + ('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'), + ('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'), + ('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'), + ('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'), + ('libffi.so.8', '/lib/x86_64-linux-gnu/libffi.so.8', 'BINARY'), + ('libreadline.so.8', '/lib/x86_64-linux-gnu/libreadline.so.8', 'BINARY'), + ('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY'), + ('pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'BINARY'), + ('pillow.libs/libpng16-00127801.so.16.50.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libpng16-00127801.so.16.50.0', + 'BINARY'), + ('pillow.libs/libfreetype-5bb46249.so.6.20.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'BINARY'), + ('pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libopenjp2-94e588ba.so.2.5.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'BINARY'), + ('pillow.libs/libXau-154567c4.so.6.0.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libXau-154567c4.so.6.0.0', + 'BINARY'), + ('pillow.libs/libxcb-64009ff3.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0', + 'BINARY'), + ('pillow.libs/libjpeg-a41b0190.so.62.4.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'BINARY'), + ('pillow.libs/liblzma-64b7ab39.so.5.8.1', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'BINARY'), + ('pillow.libs/libzstd-761a17b6.so.1.5.7', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7', + 'BINARY'), + ('pillow.libs/libtiff-295fd75c.so.6.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0', + 'BINARY'), + ('pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'BINARY'), + ('pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'BINARY'), + ('pillow.libs/libwebp-d8b9687f.so.7.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'BINARY'), + ('pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'BINARY'), + ('libgcc_s.so.1', '/lib/x86_64-linux-gnu/libgcc_s.so.1', 'BINARY'), + ('libstdc++.so.6', '/lib/x86_64-linux-gnu/libstdc++.so.6', 'BINARY'), + ('pillow.libs/libavif-01e67780.so.16.3.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libavif-01e67780.so.16.3.0', + 'BINARY'), + ('pillow.libs/liblcms2-cc10e42f.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'BINARY'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + 'DATA'), + ('setuptools/_vendor/jaraco/text/Lorem ipsum.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text/Lorem ' + 'ipsum.txt', + 'DATA'), + ('certifi/py.typed', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/py.typed', + 'DATA'), + ('certifi/cacert.pem', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/cacert.pem', + 'DATA'), + ('base_library.zip', + '/home/dom/ai/agent_v0/build/agent_v0_tray/base_library.zip', + 'DATA'), + ('libharfbuzz-525aa570.so.0.61210.0', + 'pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'SYMLINK'), + ('libpng16-00127801.so.16.50.0', + 'pillow.libs/libpng16-00127801.so.16.50.0', + 'SYMLINK'), + ('libfreetype-5bb46249.so.6.20.4', + 'pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'SYMLINK'), + ('libbrotlicommon-c55a5f7a.so.1.1.0', + 'pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'SYMLINK'), + ('libbrotlidec-2ced2f3a.so.1.1.0', + 'pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'SYMLINK'), + ('libopenjp2-94e588ba.so.2.5.4', + 'pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'SYMLINK'), + ('libXau-154567c4.so.6.0.0', + 'pillow.libs/libXau-154567c4.so.6.0.0', + 'SYMLINK'), + ('libxcb-64009ff3.so.1.1.0', + 'pillow.libs/libxcb-64009ff3.so.1.1.0', + 'SYMLINK'), + ('libjpeg-a41b0190.so.62.4.0', + 'pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'SYMLINK'), + ('liblzma-64b7ab39.so.5.8.1', + 'pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'SYMLINK'), + ('libzstd-761a17b6.so.1.5.7', + 'pillow.libs/libzstd-761a17b6.so.1.5.7', + 'SYMLINK'), + ('libtiff-295fd75c.so.6.2.0', + 'pillow.libs/libtiff-295fd75c.so.6.2.0', + 'SYMLINK'), + ('libwebpmux-7f11e5ce.so.3.1.2', + 'pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'SYMLINK'), + ('libsharpyuv-95d8a097.so.0.1.2', + 'pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'SYMLINK'), + ('libwebp-d8b9687f.so.7.2.0', + 'pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'SYMLINK'), + ('libwebpdemux-747f2b49.so.2.0.17', + 'pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'SYMLINK'), + ('libavif-01e67780.so.16.3.0', + 'pillow.libs/libavif-01e67780.so.16.3.0', + 'SYMLINK'), + ('liblcms2-cc10e42f.so.2.0.17', + 'pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'SYMLINK')], + [], + False, + False, + 1763765324, + [('run', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run', + 'EXECUTABLE')], + '/lib/x86_64-linux-gnu/libpython3.12.so.1.0') diff --git a/build/agent_v0_tray/PKG-00.toc b/build/agent_v0_tray/PKG-00.toc new file mode 100644 index 0000000..284e95e --- /dev/null +++ b/build/agent_v0_tray/PKG-00.toc @@ -0,0 +1,315 @@ +('/home/dom/ai/agent_v0/build/agent_v0_tray/agent_v0_tray.pkg', + {'BINARY': True, + 'DATA': True, + 'EXECUTABLE': True, + 'EXTENSION': True, + 'PYMODULE': True, + 'PYSOURCE': True, + 'PYZ': False, + 'SPLASH': True, + 'SYMLINK': False}, + [('pyi-contents-directory _internal', '', 'OPTION'), + ('PYZ-00.pyz', '/home/dom/ai/agent_v0/build/agent_v0_tray/PYZ-00.pyz', 'PYZ'), + ('struct', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/struct.pyc', + 'PYMODULE'), + ('pyimod01_archive', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod01_archive.pyc', + 'PYMODULE'), + ('pyimod02_importers', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod02_importers.pyc', + 'PYMODULE'), + ('pyimod03_ctypes', + '/home/dom/ai/agent_v0/build/agent_v0_tray/localpycs/pyimod03_ctypes.pyc', + 'PYMODULE'), + ('pyiboot01_bootstrap', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py', + 'PYSOURCE'), + ('pyi_rth_inspect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py', + 'PYSOURCE'), + ('pyi_rth_setuptools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_setuptools.py', + 'PYSOURCE'), + ('pyi_rth_pkgutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py', + 'PYSOURCE'), + ('pyi_rth_multiprocessing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py', + 'PYSOURCE'), + ('main', '/home/dom/ai/agent_v0/main.py', 'PYSOURCE'), + ('libpython3.12.so.1.0', + '/lib/x86_64-linux-gnu/libpython3.12.so.1.0', + 'BINARY'), + ('libXfixes.so.3', '/lib/x86_64-linux-gnu/libXfixes.so.3', 'BINARY'), + ('libXrandr.so.2', '/lib/x86_64-linux-gnu/libXrandr.so.2', 'BINARY'), + ('libX11.so.6', '/lib/x86_64-linux-gnu/libX11.so.6', 'BINARY'), + ('python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + '/usr/lib/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_uinput.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('evdev/_input.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_input.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imaging.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_webp.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_webp.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_avif.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_avif.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so', + 'EXTENSION'), + ('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'), + ('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'), + ('libmd.so.0', '/lib/x86_64-linux-gnu/libmd.so.0', 'BINARY'), + ('libXdmcp.so.6', '/lib/x86_64-linux-gnu/libXdmcp.so.6', 'BINARY'), + ('libXau.so.6', '/lib/x86_64-linux-gnu/libXau.so.6', 'BINARY'), + ('libbsd.so.0', '/lib/x86_64-linux-gnu/libbsd.so.0', 'BINARY'), + ('libXrender.so.1', '/lib/x86_64-linux-gnu/libXrender.so.1', 'BINARY'), + ('libXext.so.6', '/lib/x86_64-linux-gnu/libXext.so.6', 'BINARY'), + ('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'), + ('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'), + ('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'), + ('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'), + ('libffi.so.8', '/lib/x86_64-linux-gnu/libffi.so.8', 'BINARY'), + ('libreadline.so.8', '/lib/x86_64-linux-gnu/libreadline.so.8', 'BINARY'), + ('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY'), + ('pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'BINARY'), + ('pillow.libs/libpng16-00127801.so.16.50.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libpng16-00127801.so.16.50.0', + 'BINARY'), + ('pillow.libs/libfreetype-5bb46249.so.6.20.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'BINARY'), + ('pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'BINARY'), + ('pillow.libs/libopenjp2-94e588ba.so.2.5.4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'BINARY'), + ('pillow.libs/libXau-154567c4.so.6.0.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libXau-154567c4.so.6.0.0', + 'BINARY'), + ('pillow.libs/libxcb-64009ff3.so.1.1.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0', + 'BINARY'), + ('pillow.libs/libjpeg-a41b0190.so.62.4.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'BINARY'), + ('pillow.libs/liblzma-64b7ab39.so.5.8.1', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'BINARY'), + ('pillow.libs/libzstd-761a17b6.so.1.5.7', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7', + 'BINARY'), + ('pillow.libs/libtiff-295fd75c.so.6.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0', + 'BINARY'), + ('pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'BINARY'), + ('pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'BINARY'), + ('pillow.libs/libwebp-d8b9687f.so.7.2.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'BINARY'), + ('pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'BINARY'), + ('libgcc_s.so.1', '/lib/x86_64-linux-gnu/libgcc_s.so.1', 'BINARY'), + ('libstdc++.so.6', '/lib/x86_64-linux-gnu/libstdc++.so.6', 'BINARY'), + ('pillow.libs/libavif-01e67780.so.16.3.0', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/libavif-01e67780.so.16.3.0', + 'BINARY'), + ('pillow.libs/liblcms2-cc10e42f.so.2.0.17', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'BINARY'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL', + 'DATA'), + ('setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED', + 'DATA'), + ('setuptools/_vendor/jaraco/text/Lorem ipsum.txt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text/Lorem ' + 'ipsum.txt', + 'DATA'), + ('certifi/py.typed', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/py.typed', + 'DATA'), + ('certifi/cacert.pem', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/cacert.pem', + 'DATA'), + ('base_library.zip', + '/home/dom/ai/agent_v0/build/agent_v0_tray/base_library.zip', + 'DATA'), + ('libharfbuzz-525aa570.so.0.61210.0', + 'pillow.libs/libharfbuzz-525aa570.so.0.61210.0', + 'SYMLINK'), + ('libpng16-00127801.so.16.50.0', + 'pillow.libs/libpng16-00127801.so.16.50.0', + 'SYMLINK'), + ('libfreetype-5bb46249.so.6.20.4', + 'pillow.libs/libfreetype-5bb46249.so.6.20.4', + 'SYMLINK'), + ('libbrotlicommon-c55a5f7a.so.1.1.0', + 'pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0', + 'SYMLINK'), + ('libbrotlidec-2ced2f3a.so.1.1.0', + 'pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0', + 'SYMLINK'), + ('libopenjp2-94e588ba.so.2.5.4', + 'pillow.libs/libopenjp2-94e588ba.so.2.5.4', + 'SYMLINK'), + ('libXau-154567c4.so.6.0.0', + 'pillow.libs/libXau-154567c4.so.6.0.0', + 'SYMLINK'), + ('libxcb-64009ff3.so.1.1.0', + 'pillow.libs/libxcb-64009ff3.so.1.1.0', + 'SYMLINK'), + ('libjpeg-a41b0190.so.62.4.0', + 'pillow.libs/libjpeg-a41b0190.so.62.4.0', + 'SYMLINK'), + ('liblzma-64b7ab39.so.5.8.1', + 'pillow.libs/liblzma-64b7ab39.so.5.8.1', + 'SYMLINK'), + ('libzstd-761a17b6.so.1.5.7', + 'pillow.libs/libzstd-761a17b6.so.1.5.7', + 'SYMLINK'), + ('libtiff-295fd75c.so.6.2.0', + 'pillow.libs/libtiff-295fd75c.so.6.2.0', + 'SYMLINK'), + ('libwebpmux-7f11e5ce.so.3.1.2', + 'pillow.libs/libwebpmux-7f11e5ce.so.3.1.2', + 'SYMLINK'), + ('libsharpyuv-95d8a097.so.0.1.2', + 'pillow.libs/libsharpyuv-95d8a097.so.0.1.2', + 'SYMLINK'), + ('libwebp-d8b9687f.so.7.2.0', + 'pillow.libs/libwebp-d8b9687f.so.7.2.0', + 'SYMLINK'), + ('libwebpdemux-747f2b49.so.2.0.17', + 'pillow.libs/libwebpdemux-747f2b49.so.2.0.17', + 'SYMLINK'), + ('libavif-01e67780.so.16.3.0', + 'pillow.libs/libavif-01e67780.so.16.3.0', + 'SYMLINK'), + ('liblcms2-cc10e42f.so.2.0.17', + 'pillow.libs/liblcms2-cc10e42f.so.2.0.17', + 'SYMLINK')], + 'libpython3.12.so.1.0', + False, + False, + False, + [], + None, + None, + None) diff --git a/build/agent_v0_tray/PYZ-00.pyz b/build/agent_v0_tray/PYZ-00.pyz new file mode 100644 index 0000000..1488e7f Binary files /dev/null and b/build/agent_v0_tray/PYZ-00.pyz differ diff --git a/build/agent_v0_tray/PYZ-00.toc b/build/agent_v0_tray/PYZ-00.toc new file mode 100644 index 0000000..808c79c --- /dev/null +++ b/build/agent_v0_tray/PYZ-00.toc @@ -0,0 +1,1717 @@ +('/home/dom/ai/agent_v0/build/agent_v0_tray/PYZ-00.pyz', + [('PIL', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/__init__.py', + 'PYMODULE'), + ('PIL.AvifImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/AvifImagePlugin.py', + 'PYMODULE'), + ('PIL.BlpImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BlpImagePlugin.py', + 'PYMODULE'), + ('PIL.BmpImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BmpImagePlugin.py', + 'PYMODULE'), + ('PIL.BufrStubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/BufrStubImagePlugin.py', + 'PYMODULE'), + ('PIL.CurImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/CurImagePlugin.py', + 'PYMODULE'), + ('PIL.DcxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/DcxImagePlugin.py', + 'PYMODULE'), + ('PIL.DdsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/DdsImagePlugin.py', + 'PYMODULE'), + ('PIL.EpsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/EpsImagePlugin.py', + 'PYMODULE'), + ('PIL.ExifTags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ExifTags.py', + 'PYMODULE'), + ('PIL.FitsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FitsImagePlugin.py', + 'PYMODULE'), + ('PIL.FliImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FliImagePlugin.py', + 'PYMODULE'), + ('PIL.FpxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FpxImagePlugin.py', + 'PYMODULE'), + ('PIL.FtexImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/FtexImagePlugin.py', + 'PYMODULE'), + ('PIL.GbrImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GbrImagePlugin.py', + 'PYMODULE'), + ('PIL.GifImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GifImagePlugin.py', + 'PYMODULE'), + ('PIL.GimpGradientFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GimpGradientFile.py', + 'PYMODULE'), + ('PIL.GimpPaletteFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GimpPaletteFile.py', + 'PYMODULE'), + ('PIL.GribStubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/GribStubImagePlugin.py', + 'PYMODULE'), + ('PIL.Hdf5StubImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Hdf5StubImagePlugin.py', + 'PYMODULE'), + ('PIL.IcnsImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IcnsImagePlugin.py', + 'PYMODULE'), + ('PIL.IcoImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IcoImagePlugin.py', + 'PYMODULE'), + ('PIL.ImImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImImagePlugin.py', + 'PYMODULE'), + ('PIL.Image', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Image.py', + 'PYMODULE'), + ('PIL.ImageChops', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageChops.py', + 'PYMODULE'), + ('PIL.ImageCms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageCms.py', + 'PYMODULE'), + ('PIL.ImageColor', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageColor.py', + 'PYMODULE'), + ('PIL.ImageDraw', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageDraw.py', + 'PYMODULE'), + ('PIL.ImageDraw2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageDraw2.py', + 'PYMODULE'), + ('PIL.ImageFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFile.py', + 'PYMODULE'), + ('PIL.ImageFilter', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFilter.py', + 'PYMODULE'), + ('PIL.ImageFont', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageFont.py', + 'PYMODULE'), + ('PIL.ImageMath', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageMath.py', + 'PYMODULE'), + ('PIL.ImageMode', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageMode.py', + 'PYMODULE'), + ('PIL.ImageOps', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageOps.py', + 'PYMODULE'), + ('PIL.ImagePalette', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImagePalette.py', + 'PYMODULE'), + ('PIL.ImagePath', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImagePath.py', + 'PYMODULE'), + ('PIL.ImageQt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageQt.py', + 'PYMODULE'), + ('PIL.ImageSequence', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageSequence.py', + 'PYMODULE'), + ('PIL.ImageShow', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageShow.py', + 'PYMODULE'), + ('PIL.ImageText', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageText.py', + 'PYMODULE'), + ('PIL.ImageTk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageTk.py', + 'PYMODULE'), + ('PIL.ImageWin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImageWin.py', + 'PYMODULE'), + ('PIL.ImtImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/ImtImagePlugin.py', + 'PYMODULE'), + ('PIL.IptcImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/IptcImagePlugin.py', + 'PYMODULE'), + ('PIL.Jpeg2KImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/Jpeg2KImagePlugin.py', + 'PYMODULE'), + ('PIL.JpegImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/JpegImagePlugin.py', + 'PYMODULE'), + ('PIL.JpegPresets', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/JpegPresets.py', + 'PYMODULE'), + ('PIL.McIdasImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/McIdasImagePlugin.py', + 'PYMODULE'), + ('PIL.MicImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MicImagePlugin.py', + 'PYMODULE'), + ('PIL.MpegImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MpegImagePlugin.py', + 'PYMODULE'), + ('PIL.MpoImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MpoImagePlugin.py', + 'PYMODULE'), + ('PIL.MspImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/MspImagePlugin.py', + 'PYMODULE'), + ('PIL.PaletteFile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PaletteFile.py', + 'PYMODULE'), + ('PIL.PalmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PalmImagePlugin.py', + 'PYMODULE'), + ('PIL.PcdImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PcdImagePlugin.py', + 'PYMODULE'), + ('PIL.PcxImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PcxImagePlugin.py', + 'PYMODULE'), + ('PIL.PdfImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PdfImagePlugin.py', + 'PYMODULE'), + ('PIL.PdfParser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PdfParser.py', + 'PYMODULE'), + ('PIL.PixarImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PixarImagePlugin.py', + 'PYMODULE'), + ('PIL.PngImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PngImagePlugin.py', + 'PYMODULE'), + ('PIL.PpmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PpmImagePlugin.py', + 'PYMODULE'), + ('PIL.PsdImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/PsdImagePlugin.py', + 'PYMODULE'), + ('PIL.QoiImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/QoiImagePlugin.py', + 'PYMODULE'), + ('PIL.SgiImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SgiImagePlugin.py', + 'PYMODULE'), + ('PIL.SpiderImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SpiderImagePlugin.py', + 'PYMODULE'), + ('PIL.SunImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/SunImagePlugin.py', + 'PYMODULE'), + ('PIL.TgaImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TgaImagePlugin.py', + 'PYMODULE'), + ('PIL.TiffImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TiffImagePlugin.py', + 'PYMODULE'), + ('PIL.TiffTags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/TiffTags.py', + 'PYMODULE'), + ('PIL.WebPImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/WebPImagePlugin.py', + 'PYMODULE'), + ('PIL.WmfImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/WmfImagePlugin.py', + 'PYMODULE'), + ('PIL.XVThumbImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XVThumbImagePlugin.py', + 'PYMODULE'), + ('PIL.XbmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XbmImagePlugin.py', + 'PYMODULE'), + ('PIL.XpmImagePlugin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/XpmImagePlugin.py', + 'PYMODULE'), + ('PIL._binary', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_binary.py', + 'PYMODULE'), + ('PIL._deprecate', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_deprecate.py', + 'PYMODULE'), + ('PIL._typing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_typing.py', + 'PYMODULE'), + ('PIL._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_util.py', + 'PYMODULE'), + ('PIL._version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_version.py', + 'PYMODULE'), + ('PIL.features', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/features.py', + 'PYMODULE'), + ('Xlib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/__init__.py', + 'PYMODULE'), + ('Xlib.X', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/X.py', + 'PYMODULE'), + ('Xlib.XK', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/XK.py', + 'PYMODULE'), + ('Xlib.Xatom', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xatom.py', + 'PYMODULE'), + ('Xlib.Xcursorfont', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xcursorfont.py', + 'PYMODULE'), + ('Xlib.Xutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/Xutil.py', + 'PYMODULE'), + ('Xlib.display', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/display.py', + 'PYMODULE'), + ('Xlib.error', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/error.py', + 'PYMODULE'), + ('Xlib.ext', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/__init__.py', + 'PYMODULE'), + ('Xlib.ext.composite', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/composite.py', + 'PYMODULE'), + ('Xlib.ext.damage', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/damage.py', + 'PYMODULE'), + ('Xlib.ext.dpms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/dpms.py', + 'PYMODULE'), + ('Xlib.ext.ge', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/ge.py', + 'PYMODULE'), + ('Xlib.ext.nvcontrol', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/nvcontrol.py', + 'PYMODULE'), + ('Xlib.ext.randr', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/randr.py', + 'PYMODULE'), + ('Xlib.ext.record', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/record.py', + 'PYMODULE'), + ('Xlib.ext.res', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/res.py', + 'PYMODULE'), + ('Xlib.ext.screensaver', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/screensaver.py', + 'PYMODULE'), + ('Xlib.ext.security', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/security.py', + 'PYMODULE'), + ('Xlib.ext.shape', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/shape.py', + 'PYMODULE'), + ('Xlib.ext.xfixes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xfixes.py', + 'PYMODULE'), + ('Xlib.ext.xinerama', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xinerama.py', + 'PYMODULE'), + ('Xlib.ext.xinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xinput.py', + 'PYMODULE'), + ('Xlib.ext.xtest', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/ext/xtest.py', + 'PYMODULE'), + ('Xlib.keysymdef', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/__init__.py', + 'PYMODULE'), + ('Xlib.keysymdef.apl', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/apl.py', + 'PYMODULE'), + ('Xlib.keysymdef.arabic', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/arabic.py', + 'PYMODULE'), + ('Xlib.keysymdef.cyrillic', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/cyrillic.py', + 'PYMODULE'), + ('Xlib.keysymdef.greek', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/greek.py', + 'PYMODULE'), + ('Xlib.keysymdef.hebrew', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/hebrew.py', + 'PYMODULE'), + ('Xlib.keysymdef.katakana', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/katakana.py', + 'PYMODULE'), + ('Xlib.keysymdef.korean', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/korean.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin1', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin1.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin2.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin3', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin3.py', + 'PYMODULE'), + ('Xlib.keysymdef.latin4', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/latin4.py', + 'PYMODULE'), + ('Xlib.keysymdef.miscellany', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/miscellany.py', + 'PYMODULE'), + ('Xlib.keysymdef.publishing', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/publishing.py', + 'PYMODULE'), + ('Xlib.keysymdef.special', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/special.py', + 'PYMODULE'), + ('Xlib.keysymdef.technical', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/technical.py', + 'PYMODULE'), + ('Xlib.keysymdef.thai', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/thai.py', + 'PYMODULE'), + ('Xlib.keysymdef.xf86', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xf86.py', + 'PYMODULE'), + ('Xlib.keysymdef.xk3270', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xk3270.py', + 'PYMODULE'), + ('Xlib.keysymdef.xkb', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/keysymdef/xkb.py', + 'PYMODULE'), + ('Xlib.protocol', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/__init__.py', + 'PYMODULE'), + ('Xlib.protocol.display', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/display.py', + 'PYMODULE'), + ('Xlib.protocol.event', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/event.py', + 'PYMODULE'), + ('Xlib.protocol.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/request.py', + 'PYMODULE'), + ('Xlib.protocol.rq', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/rq.py', + 'PYMODULE'), + ('Xlib.protocol.structs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/structs.py', + 'PYMODULE'), + ('Xlib.rdb', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/rdb.py', + 'PYMODULE'), + ('Xlib.support', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/__init__.py', + 'PYMODULE'), + ('Xlib.support.connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/connect.py', + 'PYMODULE'), + ('Xlib.support.lock', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/lock.py', + 'PYMODULE'), + ('Xlib.support.unix_connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/unix_connect.py', + 'PYMODULE'), + ('Xlib.support.vms_connect', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/support/vms_connect.py', + 'PYMODULE'), + ('Xlib.threaded', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/threaded.py', + 'PYMODULE'), + ('Xlib.xauth', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xauth.py', + 'PYMODULE'), + ('Xlib.xobject', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/__init__.py', + 'PYMODULE'), + ('Xlib.xobject.colormap', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/colormap.py', + 'PYMODULE'), + ('Xlib.xobject.cursor', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/cursor.py', + 'PYMODULE'), + ('Xlib.xobject.drawable', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/drawable.py', + 'PYMODULE'), + ('Xlib.xobject.fontable', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/fontable.py', + 'PYMODULE'), + ('Xlib.xobject.icccm', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/icccm.py', + 'PYMODULE'), + ('Xlib.xobject.resource', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/xobject/resource.py', + 'PYMODULE'), + ('__future__', '/usr/lib/python3.12/__future__.py', 'PYMODULE'), + ('_aix_support', '/usr/lib/python3.12/_aix_support.py', 'PYMODULE'), + ('_compat_pickle', '/usr/lib/python3.12/_compat_pickle.py', 'PYMODULE'), + ('_compression', '/usr/lib/python3.12/_compression.py', 'PYMODULE'), + ('_distutils_hack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_distutils_hack/__init__.py', + 'PYMODULE'), + ('_distutils_hack.override', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/_distutils_hack/override.py', + 'PYMODULE'), + ('_py_abc', '/usr/lib/python3.12/_py_abc.py', 'PYMODULE'), + ('_pydatetime', '/usr/lib/python3.12/_pydatetime.py', 'PYMODULE'), + ('_pydecimal', '/usr/lib/python3.12/_pydecimal.py', 'PYMODULE'), + ('_sitebuiltins', '/usr/lib/python3.12/_sitebuiltins.py', 'PYMODULE'), + ('_strptime', '/usr/lib/python3.12/_strptime.py', 'PYMODULE'), + ('_sysconfigdata__x86_64-linux-gnu', + '/usr/lib/python3.12/_sysconfigdata__x86_64-linux-gnu.py', + 'PYMODULE'), + ('_threading_local', '/usr/lib/python3.12/_threading_local.py', 'PYMODULE'), + ('argparse', '/usr/lib/python3.12/argparse.py', 'PYMODULE'), + ('ast', '/usr/lib/python3.12/ast.py', 'PYMODULE'), + ('asyncio', '/usr/lib/python3.12/asyncio/__init__.py', 'PYMODULE'), + ('asyncio.base_events', + '/usr/lib/python3.12/asyncio/base_events.py', + 'PYMODULE'), + ('asyncio.base_futures', + '/usr/lib/python3.12/asyncio/base_futures.py', + 'PYMODULE'), + ('asyncio.base_subprocess', + '/usr/lib/python3.12/asyncio/base_subprocess.py', + 'PYMODULE'), + ('asyncio.base_tasks', + '/usr/lib/python3.12/asyncio/base_tasks.py', + 'PYMODULE'), + ('asyncio.constants', '/usr/lib/python3.12/asyncio/constants.py', 'PYMODULE'), + ('asyncio.coroutines', + '/usr/lib/python3.12/asyncio/coroutines.py', + 'PYMODULE'), + ('asyncio.events', '/usr/lib/python3.12/asyncio/events.py', 'PYMODULE'), + ('asyncio.exceptions', + '/usr/lib/python3.12/asyncio/exceptions.py', + 'PYMODULE'), + ('asyncio.format_helpers', + '/usr/lib/python3.12/asyncio/format_helpers.py', + 'PYMODULE'), + ('asyncio.futures', '/usr/lib/python3.12/asyncio/futures.py', 'PYMODULE'), + ('asyncio.locks', '/usr/lib/python3.12/asyncio/locks.py', 'PYMODULE'), + ('asyncio.log', '/usr/lib/python3.12/asyncio/log.py', 'PYMODULE'), + ('asyncio.mixins', '/usr/lib/python3.12/asyncio/mixins.py', 'PYMODULE'), + ('asyncio.proactor_events', + '/usr/lib/python3.12/asyncio/proactor_events.py', + 'PYMODULE'), + ('asyncio.protocols', '/usr/lib/python3.12/asyncio/protocols.py', 'PYMODULE'), + ('asyncio.queues', '/usr/lib/python3.12/asyncio/queues.py', 'PYMODULE'), + ('asyncio.runners', '/usr/lib/python3.12/asyncio/runners.py', 'PYMODULE'), + ('asyncio.selector_events', + '/usr/lib/python3.12/asyncio/selector_events.py', + 'PYMODULE'), + ('asyncio.sslproto', '/usr/lib/python3.12/asyncio/sslproto.py', 'PYMODULE'), + ('asyncio.staggered', '/usr/lib/python3.12/asyncio/staggered.py', 'PYMODULE'), + ('asyncio.streams', '/usr/lib/python3.12/asyncio/streams.py', 'PYMODULE'), + ('asyncio.subprocess', + '/usr/lib/python3.12/asyncio/subprocess.py', + 'PYMODULE'), + ('asyncio.taskgroups', + '/usr/lib/python3.12/asyncio/taskgroups.py', + 'PYMODULE'), + ('asyncio.tasks', '/usr/lib/python3.12/asyncio/tasks.py', 'PYMODULE'), + ('asyncio.threads', '/usr/lib/python3.12/asyncio/threads.py', 'PYMODULE'), + ('asyncio.timeouts', '/usr/lib/python3.12/asyncio/timeouts.py', 'PYMODULE'), + ('asyncio.transports', + '/usr/lib/python3.12/asyncio/transports.py', + 'PYMODULE'), + ('asyncio.trsock', '/usr/lib/python3.12/asyncio/trsock.py', 'PYMODULE'), + ('asyncio.unix_events', + '/usr/lib/python3.12/asyncio/unix_events.py', + 'PYMODULE'), + ('asyncio.windows_events', + '/usr/lib/python3.12/asyncio/windows_events.py', + 'PYMODULE'), + ('asyncio.windows_utils', + '/usr/lib/python3.12/asyncio/windows_utils.py', + 'PYMODULE'), + ('base64', '/usr/lib/python3.12/base64.py', 'PYMODULE'), + ('bisect', '/usr/lib/python3.12/bisect.py', 'PYMODULE'), + ('bz2', '/usr/lib/python3.12/bz2.py', 'PYMODULE'), + ('calendar', '/usr/lib/python3.12/calendar.py', 'PYMODULE'), + ('certifi', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/__init__.py', + 'PYMODULE'), + ('certifi.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/certifi/core.py', + 'PYMODULE'), + ('charset_normalizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py', + 'PYMODULE'), + ('charset_normalizer.api', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/api.py', + 'PYMODULE'), + ('charset_normalizer.cd', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/cd.py', + 'PYMODULE'), + ('charset_normalizer.constant', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py', + 'PYMODULE'), + ('charset_normalizer.legacy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py', + 'PYMODULE'), + ('charset_normalizer.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/models.py', + 'PYMODULE'), + ('charset_normalizer.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py', + 'PYMODULE'), + ('charset_normalizer.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/version.py', + 'PYMODULE'), + ('colorsys', '/usr/lib/python3.12/colorsys.py', 'PYMODULE'), + ('concurrent', '/usr/lib/python3.12/concurrent/__init__.py', 'PYMODULE'), + ('concurrent.futures', + '/usr/lib/python3.12/concurrent/futures/__init__.py', + 'PYMODULE'), + ('concurrent.futures._base', + '/usr/lib/python3.12/concurrent/futures/_base.py', + 'PYMODULE'), + ('concurrent.futures.process', + '/usr/lib/python3.12/concurrent/futures/process.py', + 'PYMODULE'), + ('concurrent.futures.thread', + '/usr/lib/python3.12/concurrent/futures/thread.py', + 'PYMODULE'), + ('config', '/home/dom/ai/agent_v0/config.py', 'PYMODULE'), + ('configparser', '/usr/lib/python3.12/configparser.py', 'PYMODULE'), + ('contextlib', '/usr/lib/python3.12/contextlib.py', 'PYMODULE'), + ('contextvars', '/usr/lib/python3.12/contextvars.py', 'PYMODULE'), + ('copy', '/usr/lib/python3.12/copy.py', 'PYMODULE'), + ('csv', '/usr/lib/python3.12/csv.py', 'PYMODULE'), + ('ctypes', '/usr/lib/python3.12/ctypes/__init__.py', 'PYMODULE'), + ('ctypes._aix', '/usr/lib/python3.12/ctypes/_aix.py', 'PYMODULE'), + ('ctypes._endian', '/usr/lib/python3.12/ctypes/_endian.py', 'PYMODULE'), + ('ctypes.util', '/usr/lib/python3.12/ctypes/util.py', 'PYMODULE'), + ('ctypes.wintypes', '/usr/lib/python3.12/ctypes/wintypes.py', 'PYMODULE'), + ('dataclasses', '/usr/lib/python3.12/dataclasses.py', 'PYMODULE'), + ('datetime', '/usr/lib/python3.12/datetime.py', 'PYMODULE'), + ('decimal', '/usr/lib/python3.12/decimal.py', 'PYMODULE'), + ('difflib', '/usr/lib/python3.12/difflib.py', 'PYMODULE'), + ('dis', '/usr/lib/python3.12/dis.py', 'PYMODULE'), + ('email', '/usr/lib/python3.12/email/__init__.py', 'PYMODULE'), + ('email._encoded_words', + '/usr/lib/python3.12/email/_encoded_words.py', + 'PYMODULE'), + ('email._header_value_parser', + '/usr/lib/python3.12/email/_header_value_parser.py', + 'PYMODULE'), + ('email._parseaddr', '/usr/lib/python3.12/email/_parseaddr.py', 'PYMODULE'), + ('email._policybase', '/usr/lib/python3.12/email/_policybase.py', 'PYMODULE'), + ('email.base64mime', '/usr/lib/python3.12/email/base64mime.py', 'PYMODULE'), + ('email.charset', '/usr/lib/python3.12/email/charset.py', 'PYMODULE'), + ('email.contentmanager', + '/usr/lib/python3.12/email/contentmanager.py', + 'PYMODULE'), + ('email.encoders', '/usr/lib/python3.12/email/encoders.py', 'PYMODULE'), + ('email.errors', '/usr/lib/python3.12/email/errors.py', 'PYMODULE'), + ('email.feedparser', '/usr/lib/python3.12/email/feedparser.py', 'PYMODULE'), + ('email.generator', '/usr/lib/python3.12/email/generator.py', 'PYMODULE'), + ('email.header', '/usr/lib/python3.12/email/header.py', 'PYMODULE'), + ('email.headerregistry', + '/usr/lib/python3.12/email/headerregistry.py', + 'PYMODULE'), + ('email.iterators', '/usr/lib/python3.12/email/iterators.py', 'PYMODULE'), + ('email.message', '/usr/lib/python3.12/email/message.py', 'PYMODULE'), + ('email.parser', '/usr/lib/python3.12/email/parser.py', 'PYMODULE'), + ('email.policy', '/usr/lib/python3.12/email/policy.py', 'PYMODULE'), + ('email.quoprimime', '/usr/lib/python3.12/email/quoprimime.py', 'PYMODULE'), + ('email.utils', '/usr/lib/python3.12/email/utils.py', 'PYMODULE'), + ('evdev', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/__init__.py', + 'PYMODULE'), + ('evdev.device', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/device.py', + 'PYMODULE'), + ('evdev.ecodes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/ecodes.py', + 'PYMODULE'), + ('evdev.eventio', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/eventio.py', + 'PYMODULE'), + ('evdev.eventio_async', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/eventio_async.py', + 'PYMODULE'), + ('evdev.events', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/events.py', + 'PYMODULE'), + ('evdev.ff', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/ff.py', + 'PYMODULE'), + ('evdev.uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/uinput.py', + 'PYMODULE'), + ('evdev.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/util.py', + 'PYMODULE'), + ('event_captor', '/home/dom/ai/agent_v0/event_captor.py', 'PYMODULE'), + ('fnmatch', '/usr/lib/python3.12/fnmatch.py', 'PYMODULE'), + ('fractions', '/usr/lib/python3.12/fractions.py', 'PYMODULE'), + ('ftplib', '/usr/lib/python3.12/ftplib.py', 'PYMODULE'), + ('getopt', '/usr/lib/python3.12/getopt.py', 'PYMODULE'), + ('getpass', '/usr/lib/python3.12/getpass.py', 'PYMODULE'), + ('gettext', '/usr/lib/python3.12/gettext.py', 'PYMODULE'), + ('glob', '/usr/lib/python3.12/glob.py', 'PYMODULE'), + ('gzip', '/usr/lib/python3.12/gzip.py', 'PYMODULE'), + ('hashlib', '/usr/lib/python3.12/hashlib.py', 'PYMODULE'), + ('hmac', '/usr/lib/python3.12/hmac.py', 'PYMODULE'), + ('html', '/usr/lib/python3.12/html/__init__.py', 'PYMODULE'), + ('html.entities', '/usr/lib/python3.12/html/entities.py', 'PYMODULE'), + ('http', '/usr/lib/python3.12/http/__init__.py', 'PYMODULE'), + ('http.client', '/usr/lib/python3.12/http/client.py', 'PYMODULE'), + ('http.cookiejar', '/usr/lib/python3.12/http/cookiejar.py', 'PYMODULE'), + ('http.cookies', '/usr/lib/python3.12/http/cookies.py', 'PYMODULE'), + ('http.server', '/usr/lib/python3.12/http/server.py', 'PYMODULE'), + ('idna', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/__init__.py', + 'PYMODULE'), + ('idna.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/core.py', + 'PYMODULE'), + ('idna.idnadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/idnadata.py', + 'PYMODULE'), + ('idna.intranges', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/intranges.py', + 'PYMODULE'), + ('idna.package_data', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/package_data.py', + 'PYMODULE'), + ('idna.uts46data', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/idna/uts46data.py', + 'PYMODULE'), + ('importlib', '/usr/lib/python3.12/importlib/__init__.py', 'PYMODULE'), + ('importlib._abc', '/usr/lib/python3.12/importlib/_abc.py', 'PYMODULE'), + ('importlib._bootstrap', + '/usr/lib/python3.12/importlib/_bootstrap.py', + 'PYMODULE'), + ('importlib._bootstrap_external', + '/usr/lib/python3.12/importlib/_bootstrap_external.py', + 'PYMODULE'), + ('importlib.abc', '/usr/lib/python3.12/importlib/abc.py', 'PYMODULE'), + ('importlib.machinery', + '/usr/lib/python3.12/importlib/machinery.py', + 'PYMODULE'), + ('importlib.metadata', + '/usr/lib/python3.12/importlib/metadata/__init__.py', + 'PYMODULE'), + ('importlib.metadata._adapters', + '/usr/lib/python3.12/importlib/metadata/_adapters.py', + 'PYMODULE'), + ('importlib.metadata._collections', + '/usr/lib/python3.12/importlib/metadata/_collections.py', + 'PYMODULE'), + ('importlib.metadata._functools', + '/usr/lib/python3.12/importlib/metadata/_functools.py', + 'PYMODULE'), + ('importlib.metadata._itertools', + '/usr/lib/python3.12/importlib/metadata/_itertools.py', + 'PYMODULE'), + ('importlib.metadata._meta', + '/usr/lib/python3.12/importlib/metadata/_meta.py', + 'PYMODULE'), + ('importlib.metadata._text', + '/usr/lib/python3.12/importlib/metadata/_text.py', + 'PYMODULE'), + ('importlib.readers', '/usr/lib/python3.12/importlib/readers.py', 'PYMODULE'), + ('importlib.resources', + '/usr/lib/python3.12/importlib/resources/__init__.py', + 'PYMODULE'), + ('importlib.resources._adapters', + '/usr/lib/python3.12/importlib/resources/_adapters.py', + 'PYMODULE'), + ('importlib.resources._common', + '/usr/lib/python3.12/importlib/resources/_common.py', + 'PYMODULE'), + ('importlib.resources._itertools', + '/usr/lib/python3.12/importlib/resources/_itertools.py', + 'PYMODULE'), + ('importlib.resources._legacy', + '/usr/lib/python3.12/importlib/resources/_legacy.py', + 'PYMODULE'), + ('importlib.resources.abc', + '/usr/lib/python3.12/importlib/resources/abc.py', + 'PYMODULE'), + ('importlib.resources.readers', + '/usr/lib/python3.12/importlib/resources/readers.py', + 'PYMODULE'), + ('importlib.util', '/usr/lib/python3.12/importlib/util.py', 'PYMODULE'), + ('inspect', '/usr/lib/python3.12/inspect.py', 'PYMODULE'), + ('ipaddress', '/usr/lib/python3.12/ipaddress.py', 'PYMODULE'), + ('json', '/usr/lib/python3.12/json/__init__.py', 'PYMODULE'), + ('json.decoder', '/usr/lib/python3.12/json/decoder.py', 'PYMODULE'), + ('json.encoder', '/usr/lib/python3.12/json/encoder.py', 'PYMODULE'), + ('json.scanner', '/usr/lib/python3.12/json/scanner.py', 'PYMODULE'), + ('key_captor', '/home/dom/ai/agent_v0/key_captor.py', 'PYMODULE'), + ('logger_conf', '/home/dom/ai/agent_v0/logger_conf.py', 'PYMODULE'), + ('logging', '/usr/lib/python3.12/logging/__init__.py', 'PYMODULE'), + ('logging.handlers', '/usr/lib/python3.12/logging/handlers.py', 'PYMODULE'), + ('lzma', '/usr/lib/python3.12/lzma.py', 'PYMODULE'), + ('mimetypes', '/usr/lib/python3.12/mimetypes.py', 'PYMODULE'), + ('mss', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/__init__.py', + 'PYMODULE'), + ('mss.base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/base.py', + 'PYMODULE'), + ('mss.darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/darwin.py', + 'PYMODULE'), + ('mss.exception', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/exception.py', + 'PYMODULE'), + ('mss.factory', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/factory.py', + 'PYMODULE'), + ('mss.linux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/linux.py', + 'PYMODULE'), + ('mss.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/models.py', + 'PYMODULE'), + ('mss.screenshot', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/screenshot.py', + 'PYMODULE'), + ('mss.tools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/tools.py', + 'PYMODULE'), + ('mss.windows', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/mss/windows.py', + 'PYMODULE'), + ('multiprocessing', + '/usr/lib/python3.12/multiprocessing/__init__.py', + 'PYMODULE'), + ('multiprocessing.connection', + '/usr/lib/python3.12/multiprocessing/connection.py', + 'PYMODULE'), + ('multiprocessing.context', + '/usr/lib/python3.12/multiprocessing/context.py', + 'PYMODULE'), + ('multiprocessing.dummy', + '/usr/lib/python3.12/multiprocessing/dummy/__init__.py', + 'PYMODULE'), + ('multiprocessing.dummy.connection', + '/usr/lib/python3.12/multiprocessing/dummy/connection.py', + 'PYMODULE'), + ('multiprocessing.forkserver', + '/usr/lib/python3.12/multiprocessing/forkserver.py', + 'PYMODULE'), + ('multiprocessing.heap', + '/usr/lib/python3.12/multiprocessing/heap.py', + 'PYMODULE'), + ('multiprocessing.managers', + '/usr/lib/python3.12/multiprocessing/managers.py', + 'PYMODULE'), + ('multiprocessing.pool', + '/usr/lib/python3.12/multiprocessing/pool.py', + 'PYMODULE'), + ('multiprocessing.popen_fork', + '/usr/lib/python3.12/multiprocessing/popen_fork.py', + 'PYMODULE'), + ('multiprocessing.popen_forkserver', + '/usr/lib/python3.12/multiprocessing/popen_forkserver.py', + 'PYMODULE'), + ('multiprocessing.popen_spawn_posix', + '/usr/lib/python3.12/multiprocessing/popen_spawn_posix.py', + 'PYMODULE'), + ('multiprocessing.popen_spawn_win32', + '/usr/lib/python3.12/multiprocessing/popen_spawn_win32.py', + 'PYMODULE'), + ('multiprocessing.process', + '/usr/lib/python3.12/multiprocessing/process.py', + 'PYMODULE'), + ('multiprocessing.queues', + '/usr/lib/python3.12/multiprocessing/queues.py', + 'PYMODULE'), + ('multiprocessing.reduction', + '/usr/lib/python3.12/multiprocessing/reduction.py', + 'PYMODULE'), + ('multiprocessing.resource_sharer', + '/usr/lib/python3.12/multiprocessing/resource_sharer.py', + 'PYMODULE'), + ('multiprocessing.resource_tracker', + '/usr/lib/python3.12/multiprocessing/resource_tracker.py', + 'PYMODULE'), + ('multiprocessing.shared_memory', + '/usr/lib/python3.12/multiprocessing/shared_memory.py', + 'PYMODULE'), + ('multiprocessing.sharedctypes', + '/usr/lib/python3.12/multiprocessing/sharedctypes.py', + 'PYMODULE'), + ('multiprocessing.spawn', + '/usr/lib/python3.12/multiprocessing/spawn.py', + 'PYMODULE'), + ('multiprocessing.synchronize', + '/usr/lib/python3.12/multiprocessing/synchronize.py', + 'PYMODULE'), + ('multiprocessing.util', + '/usr/lib/python3.12/multiprocessing/util.py', + 'PYMODULE'), + ('netrc', '/usr/lib/python3.12/netrc.py', 'PYMODULE'), + ('nturl2path', '/usr/lib/python3.12/nturl2path.py', 'PYMODULE'), + ('numbers', '/usr/lib/python3.12/numbers.py', 'PYMODULE'), + ('opcode', '/usr/lib/python3.12/opcode.py', 'PYMODULE'), + ('packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/__init__.py', + 'PYMODULE'), + ('packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_elffile.py', + 'PYMODULE'), + ('packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_manylinux.py', + 'PYMODULE'), + ('packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_musllinux.py', + 'PYMODULE'), + ('packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_parser.py', + 'PYMODULE'), + ('packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_structures.py', + 'PYMODULE'), + ('packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py', + 'PYMODULE'), + ('packaging.licenses', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/licenses/__init__.py', + 'PYMODULE'), + ('packaging.licenses._spdx', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py', + 'PYMODULE'), + ('packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/markers.py', + 'PYMODULE'), + ('packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/requirements.py', + 'PYMODULE'), + ('packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/specifiers.py', + 'PYMODULE'), + ('packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/tags.py', + 'PYMODULE'), + ('packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/utils.py', + 'PYMODULE'), + ('packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/packaging/version.py', + 'PYMODULE'), + ('pathlib', '/usr/lib/python3.12/pathlib.py', 'PYMODULE'), + ('pickle', '/usr/lib/python3.12/pickle.py', 'PYMODULE'), + ('pkgutil', '/usr/lib/python3.12/pkgutil.py', 'PYMODULE'), + ('platform', '/usr/lib/python3.12/platform.py', 'PYMODULE'), + ('pprint', '/usr/lib/python3.12/pprint.py', 'PYMODULE'), + ('py_compile', '/usr/lib/python3.12/py_compile.py', 'PYMODULE'), + ('pydoc', '/usr/lib/python3.12/pydoc.py', 'PYMODULE'), + ('pydoc_data', '/usr/lib/python3.12/pydoc_data/__init__.py', 'PYMODULE'), + ('pydoc_data.topics', '/usr/lib/python3.12/pydoc_data/topics.py', 'PYMODULE'), + ('pynput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/__init__.py', + 'PYMODULE'), + ('pynput._info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_info.py', + 'PYMODULE'), + ('pynput._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/__init__.py', + 'PYMODULE'), + ('pynput._util.darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/darwin.py', + 'PYMODULE'), + ('pynput._util.darwin_vks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/darwin_vks.py', + 'PYMODULE'), + ('pynput._util.uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/uinput.py', + 'PYMODULE'), + ('pynput._util.win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/win32.py', + 'PYMODULE'), + ('pynput._util.win32_vks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/win32_vks.py', + 'PYMODULE'), + ('pynput._util.xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/xorg.py', + 'PYMODULE'), + ('pynput._util.xorg_keysyms', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/_util/xorg_keysyms.py', + 'PYMODULE'), + ('pynput.keyboard', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/__init__.py', + 'PYMODULE'), + ('pynput.keyboard._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_base.py', + 'PYMODULE'), + ('pynput.keyboard._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_darwin.py', + 'PYMODULE'), + ('pynput.keyboard._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_dummy.py', + 'PYMODULE'), + ('pynput.keyboard._uinput', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_uinput.py', + 'PYMODULE'), + ('pynput.keyboard._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_win32.py', + 'PYMODULE'), + ('pynput.keyboard._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/keyboard/_xorg.py', + 'PYMODULE'), + ('pynput.mouse', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/__init__.py', + 'PYMODULE'), + ('pynput.mouse._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_base.py', + 'PYMODULE'), + ('pynput.mouse._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_darwin.py', + 'PYMODULE'), + ('pynput.mouse._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_dummy.py', + 'PYMODULE'), + ('pynput.mouse._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_win32.py', + 'PYMODULE'), + ('pynput.mouse._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pynput/mouse/_xorg.py', + 'PYMODULE'), + ('pystray', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/__init__.py', + 'PYMODULE'), + ('pystray._appindicator', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_appindicator.py', + 'PYMODULE'), + ('pystray._base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_base.py', + 'PYMODULE'), + ('pystray._darwin', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_darwin.py', + 'PYMODULE'), + ('pystray._dummy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_dummy.py', + 'PYMODULE'), + ('pystray._gtk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_gtk.py', + 'PYMODULE'), + ('pystray._info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_info.py', + 'PYMODULE'), + ('pystray._util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/__init__.py', + 'PYMODULE'), + ('pystray._util.gtk', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/gtk.py', + 'PYMODULE'), + ('pystray._util.notify_dbus', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/notify_dbus.py', + 'PYMODULE'), + ('pystray._util.win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_util/win32.py', + 'PYMODULE'), + ('pystray._win32', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_win32.py', + 'PYMODULE'), + ('pystray._xorg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_xorg.py', + 'PYMODULE'), + ('queue', '/usr/lib/python3.12/queue.py', 'PYMODULE'), + ('quopri', '/usr/lib/python3.12/quopri.py', 'PYMODULE'), + ('random', '/usr/lib/python3.12/random.py', 'PYMODULE'), + ('raw_session', '/home/dom/ai/agent_v0/raw_session.py', 'PYMODULE'), + ('requests', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/__init__.py', + 'PYMODULE'), + ('requests.__version__', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/__version__.py', + 'PYMODULE'), + ('requests._internal_utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/_internal_utils.py', + 'PYMODULE'), + ('requests.adapters', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/adapters.py', + 'PYMODULE'), + ('requests.api', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/api.py', + 'PYMODULE'), + ('requests.auth', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/auth.py', + 'PYMODULE'), + ('requests.certs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/certs.py', + 'PYMODULE'), + ('requests.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/compat.py', + 'PYMODULE'), + ('requests.cookies', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/cookies.py', + 'PYMODULE'), + ('requests.exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/exceptions.py', + 'PYMODULE'), + ('requests.hooks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/hooks.py', + 'PYMODULE'), + ('requests.models', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/models.py', + 'PYMODULE'), + ('requests.packages', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/packages.py', + 'PYMODULE'), + ('requests.sessions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/sessions.py', + 'PYMODULE'), + ('requests.status_codes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/status_codes.py', + 'PYMODULE'), + ('requests.structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/structures.py', + 'PYMODULE'), + ('requests.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/requests/utils.py', + 'PYMODULE'), + ('rlcompleter', '/usr/lib/python3.12/rlcompleter.py', 'PYMODULE'), + ('runpy', '/usr/lib/python3.12/runpy.py', 'PYMODULE'), + ('screen_capturer', '/home/dom/ai/agent_v0/screen_capturer.py', 'PYMODULE'), + ('secrets', '/usr/lib/python3.12/secrets.py', 'PYMODULE'), + ('selectors', '/usr/lib/python3.12/selectors.py', 'PYMODULE'), + ('setuptools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/__init__.py', + 'PYMODULE'), + ('setuptools._core_metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_core_metadata.py', + 'PYMODULE'), + ('setuptools._discovery', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_discovery.py', + 'PYMODULE'), + ('setuptools._distutils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/__init__.py', + 'PYMODULE'), + ('setuptools._distutils._log', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_log.py', + 'PYMODULE'), + ('setuptools._distutils._modified', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_modified.py', + 'PYMODULE'), + ('setuptools._distutils._msvccompiler', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/_msvccompiler.py', + 'PYMODULE'), + ('setuptools._distutils.archive_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/archive_util.py', + 'PYMODULE'), + ('setuptools._distutils.ccompiler', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py', + 'PYMODULE'), + ('setuptools._distutils.cmd', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/cmd.py', + 'PYMODULE'), + ('setuptools._distutils.command', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/__init__.py', + 'PYMODULE'), + ('setuptools._distutils.command.bdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/bdist.py', + 'PYMODULE'), + ('setuptools._distutils.command.build', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/build.py', + 'PYMODULE'), + ('setuptools._distutils.command.build_ext', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py', + 'PYMODULE'), + ('setuptools._distutils.command.sdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py', + 'PYMODULE'), + ('setuptools._distutils.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/__init__.py', + 'PYMODULE'), + ('setuptools._distutils.compat.numpy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/numpy.py', + 'PYMODULE'), + ('setuptools._distutils.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat/py39.py', + 'PYMODULE'), + ('setuptools._distutils.compilers', '-', 'PYMODULE'), + ('setuptools._distutils.compilers.C', '-', 'PYMODULE'), + ('setuptools._distutils.compilers.C.base', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/base.py', + 'PYMODULE'), + ('setuptools._distutils.compilers.C.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/errors.py', + 'PYMODULE'), + ('setuptools._distutils.compilers.C.msvc', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/msvc.py', + 'PYMODULE'), + ('setuptools._distutils.core', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/core.py', + 'PYMODULE'), + ('setuptools._distutils.debug', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/debug.py', + 'PYMODULE'), + ('setuptools._distutils.dir_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/dir_util.py', + 'PYMODULE'), + ('setuptools._distutils.dist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/dist.py', + 'PYMODULE'), + ('setuptools._distutils.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/errors.py', + 'PYMODULE'), + ('setuptools._distutils.extension', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/extension.py', + 'PYMODULE'), + ('setuptools._distutils.fancy_getopt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/fancy_getopt.py', + 'PYMODULE'), + ('setuptools._distutils.file_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/file_util.py', + 'PYMODULE'), + ('setuptools._distutils.filelist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/filelist.py', + 'PYMODULE'), + ('setuptools._distutils.log', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/log.py', + 'PYMODULE'), + ('setuptools._distutils.spawn', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/spawn.py', + 'PYMODULE'), + ('setuptools._distutils.sysconfig', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/sysconfig.py', + 'PYMODULE'), + ('setuptools._distutils.text_file', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/text_file.py', + 'PYMODULE'), + ('setuptools._distutils.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/util.py', + 'PYMODULE'), + ('setuptools._distutils.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/version.py', + 'PYMODULE'), + ('setuptools._distutils.versionpredicate', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_distutils/versionpredicate.py', + 'PYMODULE'), + ('setuptools._entry_points', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_entry_points.py', + 'PYMODULE'), + ('setuptools._imp', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_imp.py', + 'PYMODULE'), + ('setuptools._importlib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_importlib.py', + 'PYMODULE'), + ('setuptools._itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_itertools.py', + 'PYMODULE'), + ('setuptools._normalization', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_normalization.py', + 'PYMODULE'), + ('setuptools._path', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_path.py', + 'PYMODULE'), + ('setuptools._reqs', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_reqs.py', + 'PYMODULE'), + ('setuptools._shutil', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_shutil.py', + 'PYMODULE'), + ('setuptools._static', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_static.py', + 'PYMODULE'), + ('setuptools._vendor', '-', 'PYMODULE'), + ('setuptools._vendor.importlib_metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._adapters', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._collections', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_collections.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_compat.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._functools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_functools.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._meta', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_meta.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata._text', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/_text.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat.py311', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py', + 'PYMODULE'), + ('setuptools._vendor.importlib_metadata.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco', '-', 'PYMODULE'), + ('setuptools._vendor.jaraco.context', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/context.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco.functools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/functools/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.jaraco.text', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools.more', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/more.py', + 'PYMODULE'), + ('setuptools._vendor.more_itertools.recipes', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools/recipes.py', + 'PYMODULE'), + ('setuptools._vendor.packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_elffile.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_manylinux.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_musllinux.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_structures.py', + 'PYMODULE'), + ('setuptools._vendor.packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/_tokenizer.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/markers.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/requirements.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/specifiers.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/tags.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/utils.py', + 'PYMODULE'), + ('setuptools._vendor.packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/version.py', + 'PYMODULE'), + ('setuptools._vendor.tomli', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._re', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_re.py', + 'PYMODULE'), + ('setuptools._vendor.tomli._types', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli/_types.py', + 'PYMODULE'), + ('setuptools._vendor.typing_extensions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/typing_extensions.py', + 'PYMODULE'), + ('setuptools._vendor.wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.convert', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/convert.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.pack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/pack.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/tags.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.cli.unpack', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/cli/unpack.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.macosx_libfile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/macosx_libfile.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.metadata', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/metadata.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/util.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._elffile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._manylinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._musllinux', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._parser', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._structures', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging._tokenizer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.markers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.requirements', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.specifiers', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.tags', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.vendored.packaging.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py', + 'PYMODULE'), + ('setuptools._vendor.wheel.wheelfile', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/wheelfile.py', + 'PYMODULE'), + ('setuptools._vendor.zipp', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/compat/__init__.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.compat.py310', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/compat/py310.py', + 'PYMODULE'), + ('setuptools._vendor.zipp.glob', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/glob.py', + 'PYMODULE'), + ('setuptools.archive_util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/archive_util.py', + 'PYMODULE'), + ('setuptools.command', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/__init__.py', + 'PYMODULE'), + ('setuptools.command._requirestxt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/_requirestxt.py', + 'PYMODULE'), + ('setuptools.command.bdist_egg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/bdist_egg.py', + 'PYMODULE'), + ('setuptools.command.bdist_wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py', + 'PYMODULE'), + ('setuptools.command.build', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/build.py', + 'PYMODULE'), + ('setuptools.command.egg_info', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/egg_info.py', + 'PYMODULE'), + ('setuptools.command.sdist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/sdist.py', + 'PYMODULE'), + ('setuptools.command.setopt', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/command/setopt.py', + 'PYMODULE'), + ('setuptools.compat', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/__init__.py', + 'PYMODULE'), + ('setuptools.compat.py310', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py310.py', + 'PYMODULE'), + ('setuptools.compat.py311', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py311.py', + 'PYMODULE'), + ('setuptools.compat.py39', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/compat/py39.py', + 'PYMODULE'), + ('setuptools.config', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/__init__.py', + 'PYMODULE'), + ('setuptools.config._apply_pyprojecttoml', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/__init__.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.error_reporting', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/error_reporting.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.extra_validations', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/extra_validations.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.fastjsonschema_exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.fastjsonschema_validations', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py', + 'PYMODULE'), + ('setuptools.config._validate_pyproject.formats', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/formats.py', + 'PYMODULE'), + ('setuptools.config.expand', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/expand.py', + 'PYMODULE'), + ('setuptools.config.pyprojecttoml', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py', + 'PYMODULE'), + ('setuptools.config.setupcfg', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/config/setupcfg.py', + 'PYMODULE'), + ('setuptools.depends', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/depends.py', + 'PYMODULE'), + ('setuptools.discovery', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/discovery.py', + 'PYMODULE'), + ('setuptools.dist', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/dist.py', + 'PYMODULE'), + ('setuptools.errors', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/errors.py', + 'PYMODULE'), + ('setuptools.extension', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/extension.py', + 'PYMODULE'), + ('setuptools.glob', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/glob.py', + 'PYMODULE'), + ('setuptools.installer', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/installer.py', + 'PYMODULE'), + ('setuptools.logging', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/logging.py', + 'PYMODULE'), + ('setuptools.monkey', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/monkey.py', + 'PYMODULE'), + ('setuptools.msvc', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/msvc.py', + 'PYMODULE'), + ('setuptools.unicode_utils', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/unicode_utils.py', + 'PYMODULE'), + ('setuptools.version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/version.py', + 'PYMODULE'), + ('setuptools.warnings', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/warnings.py', + 'PYMODULE'), + ('setuptools.wheel', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/wheel.py', + 'PYMODULE'), + ('setuptools.windows_support', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/setuptools/windows_support.py', + 'PYMODULE'), + ('shlex', '/usr/lib/python3.12/shlex.py', 'PYMODULE'), + ('shutil', '/usr/lib/python3.12/shutil.py', 'PYMODULE'), + ('signal', '/usr/lib/python3.12/signal.py', 'PYMODULE'), + ('site', '/usr/lib/python3.12/site.py', 'PYMODULE'), + ('sitecustomize', '/usr/lib/python3.12/sitecustomize.py', 'PYMODULE'), + ('six', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/six.py', + 'PYMODULE'), + ('smtplib', '/usr/lib/python3.12/smtplib.py', 'PYMODULE'), + ('socket', '/usr/lib/python3.12/socket.py', 'PYMODULE'), + ('socketserver', '/usr/lib/python3.12/socketserver.py', 'PYMODULE'), + ('ssl', '/usr/lib/python3.12/ssl.py', 'PYMODULE'), + ('statistics', '/usr/lib/python3.12/statistics.py', 'PYMODULE'), + ('storage', '/home/dom/ai/agent_v0/storage.py', 'PYMODULE'), + ('string', '/usr/lib/python3.12/string.py', 'PYMODULE'), + ('stringprep', '/usr/lib/python3.12/stringprep.py', 'PYMODULE'), + ('subprocess', '/usr/lib/python3.12/subprocess.py', 'PYMODULE'), + ('sysconfig', '/usr/lib/python3.12/sysconfig.py', 'PYMODULE'), + ('tarfile', '/usr/lib/python3.12/tarfile.py', 'PYMODULE'), + ('tempfile', '/usr/lib/python3.12/tempfile.py', 'PYMODULE'), + ('textwrap', '/usr/lib/python3.12/textwrap.py', 'PYMODULE'), + ('threading', '/usr/lib/python3.12/threading.py', 'PYMODULE'), + ('token', '/usr/lib/python3.12/token.py', 'PYMODULE'), + ('tokenize', '/usr/lib/python3.12/tokenize.py', 'PYMODULE'), + ('tomllib', '/usr/lib/python3.12/tomllib/__init__.py', 'PYMODULE'), + ('tomllib._parser', '/usr/lib/python3.12/tomllib/_parser.py', 'PYMODULE'), + ('tomllib._re', '/usr/lib/python3.12/tomllib/_re.py', 'PYMODULE'), + ('tomllib._types', '/usr/lib/python3.12/tomllib/_types.py', 'PYMODULE'), + ('tracemalloc', '/usr/lib/python3.12/tracemalloc.py', 'PYMODULE'), + ('tray_ui', '/home/dom/ai/agent_v0/tray_ui.py', 'PYMODULE'), + ('tty', '/usr/lib/python3.12/tty.py', 'PYMODULE'), + ('typing', '/usr/lib/python3.12/typing.py', 'PYMODULE'), + ('unittest', '/usr/lib/python3.12/unittest/__init__.py', 'PYMODULE'), + ('unittest._log', '/usr/lib/python3.12/unittest/_log.py', 'PYMODULE'), + ('unittest.async_case', + '/usr/lib/python3.12/unittest/async_case.py', + 'PYMODULE'), + ('unittest.case', '/usr/lib/python3.12/unittest/case.py', 'PYMODULE'), + ('unittest.loader', '/usr/lib/python3.12/unittest/loader.py', 'PYMODULE'), + ('unittest.main', '/usr/lib/python3.12/unittest/main.py', 'PYMODULE'), + ('unittest.mock', '/usr/lib/python3.12/unittest/mock.py', 'PYMODULE'), + ('unittest.result', '/usr/lib/python3.12/unittest/result.py', 'PYMODULE'), + ('unittest.runner', '/usr/lib/python3.12/unittest/runner.py', 'PYMODULE'), + ('unittest.signals', '/usr/lib/python3.12/unittest/signals.py', 'PYMODULE'), + ('unittest.suite', '/usr/lib/python3.12/unittest/suite.py', 'PYMODULE'), + ('unittest.util', '/usr/lib/python3.12/unittest/util.py', 'PYMODULE'), + ('uploader', '/home/dom/ai/agent_v0/uploader.py', 'PYMODULE'), + ('urllib', '/usr/lib/python3.12/urllib/__init__.py', 'PYMODULE'), + ('urllib.error', '/usr/lib/python3.12/urllib/error.py', 'PYMODULE'), + ('urllib.parse', '/usr/lib/python3.12/urllib/parse.py', 'PYMODULE'), + ('urllib.request', '/usr/lib/python3.12/urllib/request.py', 'PYMODULE'), + ('urllib.response', '/usr/lib/python3.12/urllib/response.py', 'PYMODULE'), + ('urllib3', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/__init__.py', + 'PYMODULE'), + ('urllib3._base_connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_base_connection.py', + 'PYMODULE'), + ('urllib3._collections', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_collections.py', + 'PYMODULE'), + ('urllib3._request_methods', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_request_methods.py', + 'PYMODULE'), + ('urllib3._version', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/_version.py', + 'PYMODULE'), + ('urllib3.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/connection.py', + 'PYMODULE'), + ('urllib3.connectionpool', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py', + 'PYMODULE'), + ('urllib3.contrib', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.fetch', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py', + 'PYMODULE'), + ('urllib3.contrib.emscripten.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py', + 'PYMODULE'), + ('urllib3.contrib.pyopenssl', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py', + 'PYMODULE'), + ('urllib3.contrib.socks', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/contrib/socks.py', + 'PYMODULE'), + ('urllib3.exceptions', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/exceptions.py', + 'PYMODULE'), + ('urllib3.fields', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/fields.py', + 'PYMODULE'), + ('urllib3.filepost', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/filepost.py', + 'PYMODULE'), + ('urllib3.http2', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/__init__.py', + 'PYMODULE'), + ('urllib3.http2.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/connection.py', + 'PYMODULE'), + ('urllib3.http2.probe', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/http2/probe.py', + 'PYMODULE'), + ('urllib3.poolmanager', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/poolmanager.py', + 'PYMODULE'), + ('urllib3.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/response.py', + 'PYMODULE'), + ('urllib3.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/__init__.py', + 'PYMODULE'), + ('urllib3.util.connection', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/connection.py', + 'PYMODULE'), + ('urllib3.util.proxy', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/proxy.py', + 'PYMODULE'), + ('urllib3.util.request', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/request.py', + 'PYMODULE'), + ('urllib3.util.response', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/response.py', + 'PYMODULE'), + ('urllib3.util.retry', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/retry.py', + 'PYMODULE'), + ('urllib3.util.ssl_', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssl_.py', + 'PYMODULE'), + ('urllib3.util.ssl_match_hostname', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py', + 'PYMODULE'), + ('urllib3.util.ssltransport', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py', + 'PYMODULE'), + ('urllib3.util.timeout', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/timeout.py', + 'PYMODULE'), + ('urllib3.util.url', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/url.py', + 'PYMODULE'), + ('urllib3.util.util', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/util.py', + 'PYMODULE'), + ('urllib3.util.wait', + '/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/urllib3/util/wait.py', + 'PYMODULE'), + ('uuid', '/usr/lib/python3.12/uuid.py', 'PYMODULE'), + ('webbrowser', '/usr/lib/python3.12/webbrowser.py', 'PYMODULE'), + ('window_info', '/home/dom/ai/agent_v0/window_info.py', 'PYMODULE'), + ('xml', '/usr/lib/python3.12/xml/__init__.py', 'PYMODULE'), + ('xml.etree', '/usr/lib/python3.12/xml/etree/__init__.py', 'PYMODULE'), + ('xml.etree.ElementInclude', + '/usr/lib/python3.12/xml/etree/ElementInclude.py', + 'PYMODULE'), + ('xml.etree.ElementPath', + '/usr/lib/python3.12/xml/etree/ElementPath.py', + 'PYMODULE'), + ('xml.etree.ElementTree', + '/usr/lib/python3.12/xml/etree/ElementTree.py', + 'PYMODULE'), + ('xml.etree.cElementTree', + '/usr/lib/python3.12/xml/etree/cElementTree.py', + 'PYMODULE'), + ('xml.parsers', '/usr/lib/python3.12/xml/parsers/__init__.py', 'PYMODULE'), + ('xml.parsers.expat', '/usr/lib/python3.12/xml/parsers/expat.py', 'PYMODULE'), + ('xml.sax', '/usr/lib/python3.12/xml/sax/__init__.py', 'PYMODULE'), + ('xml.sax._exceptions', + '/usr/lib/python3.12/xml/sax/_exceptions.py', + 'PYMODULE'), + ('xml.sax.expatreader', + '/usr/lib/python3.12/xml/sax/expatreader.py', + 'PYMODULE'), + ('xml.sax.handler', '/usr/lib/python3.12/xml/sax/handler.py', 'PYMODULE'), + ('xml.sax.saxutils', '/usr/lib/python3.12/xml/sax/saxutils.py', 'PYMODULE'), + ('xml.sax.xmlreader', '/usr/lib/python3.12/xml/sax/xmlreader.py', 'PYMODULE'), + ('xmlrpc', '/usr/lib/python3.12/xmlrpc/__init__.py', 'PYMODULE'), + ('xmlrpc.client', '/usr/lib/python3.12/xmlrpc/client.py', 'PYMODULE'), + ('zipfile', '/usr/lib/python3.12/zipfile/__init__.py', 'PYMODULE'), + ('zipfile._path', + '/usr/lib/python3.12/zipfile/_path/__init__.py', + 'PYMODULE'), + ('zipfile._path.glob', + '/usr/lib/python3.12/zipfile/_path/glob.py', + 'PYMODULE'), + ('zipimport', '/usr/lib/python3.12/zipimport.py', 'PYMODULE')]) diff --git a/build/agent_v0_tray/agent_v0_tray.pkg b/build/agent_v0_tray/agent_v0_tray.pkg new file mode 100644 index 0000000..122fc39 Binary files /dev/null and b/build/agent_v0_tray/agent_v0_tray.pkg differ diff --git a/build/agent_v0_tray/base_library.zip b/build/agent_v0_tray/base_library.zip new file mode 100644 index 0000000..f53e7ee Binary files /dev/null and b/build/agent_v0_tray/base_library.zip differ diff --git a/build/agent_v0_tray/localpycs/pyimod01_archive.pyc b/build/agent_v0_tray/localpycs/pyimod01_archive.pyc new file mode 100644 index 0000000..217c111 Binary files /dev/null and b/build/agent_v0_tray/localpycs/pyimod01_archive.pyc differ diff --git a/build/agent_v0_tray/localpycs/pyimod02_importers.pyc b/build/agent_v0_tray/localpycs/pyimod02_importers.pyc new file mode 100644 index 0000000..5c87b88 Binary files /dev/null and b/build/agent_v0_tray/localpycs/pyimod02_importers.pyc differ diff --git a/build/agent_v0_tray/localpycs/pyimod03_ctypes.pyc b/build/agent_v0_tray/localpycs/pyimod03_ctypes.pyc new file mode 100644 index 0000000..f58c229 Binary files /dev/null and b/build/agent_v0_tray/localpycs/pyimod03_ctypes.pyc differ diff --git a/build/agent_v0_tray/localpycs/struct.pyc b/build/agent_v0_tray/localpycs/struct.pyc new file mode 100644 index 0000000..ddc45c8 Binary files /dev/null and b/build/agent_v0_tray/localpycs/struct.pyc differ diff --git a/build/agent_v0_tray/warn-agent_v0_tray.txt b/build/agent_v0_tray/warn-agent_v0_tray.txt new file mode 100644 index 0000000..6b5cffb --- /dev/null +++ b/build/agent_v0_tray/warn-agent_v0_tray.txt @@ -0,0 +1,88 @@ + +This file lists modules PyInstaller was not able to find. This does not +necessarily mean this module is required for running your program. Python and +Python 3rd-party packages include a lot of conditional or optional modules. For +example the module 'ntpath' only exists on Windows, whereas the module +'posixpath' only exists on Posix systems. + +Types if import: +* top-level: imported at the top-level - look at these first +* conditional: imported within an if-statement +* delayed: imported within a function +* optional: imported within a try-except-statement + +IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for + tracking down the missing module yourself. Thanks! + +missing module named _winapi - imported by encodings (delayed, conditional, optional), shutil (conditional), subprocess (conditional), ntpath (optional), mimetypes (optional), multiprocessing.connection (optional), multiprocessing.spawn (delayed, conditional), multiprocessing.reduction (conditional), multiprocessing.shared_memory (conditional), multiprocessing.heap (conditional), multiprocessing.popen_spawn_win32 (top-level), asyncio.windows_events (top-level), asyncio.windows_utils (top-level) +missing module named msvcrt - imported by subprocess (optional), getpass (optional), multiprocessing.spawn (delayed, conditional), multiprocessing.popen_spawn_win32 (top-level), asyncio.windows_events (top-level), asyncio.windows_utils (top-level) +missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level) +excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level) +missing module named winreg - imported by importlib._bootstrap_external (conditional), platform (delayed, optional), mimetypes (optional), urllib.request (delayed, conditional, optional), requests.utils (delayed, conditional, optional), setuptools._distutils.compilers.C.msvc (top-level), setuptools.msvc (conditional) +missing module named nt - imported by shutil (conditional), importlib._bootstrap_external (conditional), os (delayed, conditional, optional), ntpath (optional), ctypes (delayed, conditional) +missing module named _scproxy - imported by urllib.request (conditional) +missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level) +missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level) +missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level) +missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level) +missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level) +missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level) +missing module named pyimod02_importers - imported by /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py (delayed) +missing module named typing_extensions.Buffer - imported by setuptools._vendor.typing_extensions (top-level), setuptools._vendor.wheel.wheelfile (conditional) +missing module named typing_extensions.Literal - imported by setuptools._vendor.typing_extensions (top-level), setuptools.config._validate_pyproject.formats (conditional) +missing module named typing_extensions.Self - imported by setuptools._vendor.typing_extensions (top-level), setuptools.config.expand (conditional), setuptools.config.pyprojecttoml (conditional), setuptools.config._validate_pyproject.error_reporting (conditional) +missing module named typing_extensions.deprecated - imported by setuptools._vendor.typing_extensions (top-level), setuptools._distutils.sysconfig (conditional), setuptools._distutils.command.bdist (conditional) +missing module named typing_extensions.TypeAlias - imported by setuptools._vendor.typing_extensions (top-level), setuptools._distutils.compilers.C.base (conditional), setuptools._reqs (conditional), setuptools.warnings (conditional), setuptools._path (conditional), setuptools._distutils.dist (conditional), setuptools.config.setupcfg (conditional), setuptools.config._apply_pyprojecttoml (conditional), setuptools.dist (conditional), setuptools.command.bdist_egg (conditional), setuptools.compat.py311 (conditional) +missing module named typing_extensions.Unpack - imported by setuptools._vendor.typing_extensions (top-level), setuptools._distutils.util (conditional), setuptools._distutils.compilers.C.base (conditional), setuptools._distutils.cmd (conditional) +missing module named typing_extensions.TypeVarTuple - imported by setuptools._vendor.typing_extensions (top-level), setuptools._distutils.util (conditional), setuptools._distutils.compilers.C.base (conditional), setuptools._distutils.cmd (conditional) +missing module named jaraco - imported by setuptools._distutils.util (top-level), setuptools._vendor.jaraco.functools (top-level), setuptools._vendor.jaraco.context (top-level), setuptools._vendor.jaraco.text (top-level) +missing module named _overlapped - imported by asyncio.windows_events (top-level) +missing module named asyncio.DefaultEventLoopPolicy - imported by asyncio (delayed, conditional), asyncio.events (delayed, conditional) +missing module named vms_lib - imported by platform (delayed, optional) +missing module named 'java.lang' - imported by platform (delayed, optional) +missing module named java - imported by platform (delayed) +missing module named _winreg - imported by platform (delayed, optional) +missing module named _wmi - imported by platform (optional) +missing module named usercustomize - imported by site (delayed, optional) +missing module named apport_python_hook - imported by sitecustomize (optional) +missing module named _typeshed - imported by setuptools._distutils.dist (conditional), setuptools.glob (conditional), setuptools.compat.py311 (conditional) +missing module named _manylinux - imported by packaging._manylinux (delayed, optional), setuptools._vendor.packaging._manylinux (delayed, optional), setuptools._vendor.wheel.vendored.packaging._manylinux (delayed, optional) +missing module named backports - imported by setuptools._vendor.jaraco.context (conditional) +missing module named importlib_resources - imported by setuptools._vendor.jaraco.text (optional) +missing module named trove_classifiers - imported by setuptools.config._validate_pyproject.formats (optional) +missing module named simplejson - imported by requests.compat (conditional, optional) +missing module named dummy_threading - imported by requests.cookies (optional) +missing module named zstandard - imported by urllib3.util.request (optional), urllib3.response (optional) +missing module named compression - imported by urllib3.util.request (optional), urllib3.response (optional) +missing module named 'h2.events' - imported by urllib3.http2.connection (top-level) +missing module named 'h2.connection' - imported by urllib3.http2.connection (top-level) +missing module named h2 - imported by urllib3.http2.connection (top-level) +missing module named brotli - imported by urllib3.util.request (optional), urllib3.response (optional) +missing module named brotlicffi - imported by urllib3.util.request (optional), urllib3.response (optional) +missing module named socks - imported by urllib3.contrib.socks (optional) +missing module named cryptography - imported by urllib3.contrib.pyopenssl (top-level), requests (conditional, optional) +missing module named 'OpenSSL.crypto' - imported by urllib3.contrib.pyopenssl (delayed, conditional) +missing module named 'cryptography.x509' - imported by urllib3.contrib.pyopenssl (delayed, optional) +missing module named OpenSSL - imported by urllib3.contrib.pyopenssl (top-level) +missing module named chardet - imported by requests (optional) +missing module named 'pyodide.ffi' - imported by urllib3.contrib.emscripten.fetch (delayed, optional) +missing module named pyodide - imported by urllib3.contrib.emscripten.fetch (top-level) +missing module named js - imported by urllib3.contrib.emscripten.fetch (top-level) +runtime module named six.moves - imported by pystray._base (top-level), pystray._win32 (top-level), Xlib.threaded (top-level), pystray._xorg (top-level), pynput._util (top-level) +missing module named StringIO - imported by six (conditional) +missing module named AppKit - imported by pystray._darwin (top-level), pynput.mouse._darwin (top-level) +missing module named Quartz - imported by pynput._util.darwin (top-level), pynput.keyboard._darwin (top-level), pynput.mouse._darwin (top-level) +missing module named CoreFoundation - imported by pynput._util.darwin (top-level) +missing module named HIServices - imported by pynput._util.darwin (top-level) +missing module named objc - imported by pystray._darwin (top-level), pynput._util.darwin (top-level) +missing module named 'ctypes.macholib' - imported by ctypes.util (conditional) +missing module named _uuid - imported by uuid (optional) +missing module named numpy - imported by PIL._typing (conditional, optional) +missing module named olefile - imported by PIL.FpxImagePlugin (top-level), PIL.MicImagePlugin (top-level) +missing module named defusedxml - imported by PIL.Image (optional) +missing module named 'gi.repository' - imported by pystray._appindicator (top-level), pystray._util.gtk (top-level), pystray._util.notify_dbus (top-level), pystray._gtk (top-level) +missing module named gi - imported by pystray._appindicator (top-level), pystray._util.gtk (top-level), pystray._util.notify_dbus (top-level), pystray._gtk (top-level) +missing module named PyObjCTools - imported by pystray._darwin (top-level) +missing module named Foundation - imported by pystray._darwin (top-level) +missing module named win32evtlog - imported by logging.handlers (delayed, optional) +missing module named win32evtlogutil - imported by logging.handlers (delayed, optional) diff --git a/build/agent_v0_tray/xref-agent_v0_tray.html b/build/agent_v0_tray/xref-agent_v0_tray.html new file mode 100644 index 0000000..74b9665 --- /dev/null +++ b/build/agent_v0_tray/xref-agent_v0_tray.html @@ -0,0 +1,26617 @@ + + + + + modulegraph cross reference for main.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgutil.py, pyi_rth_setuptools.py + + + +

modulegraph cross reference for main.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgutil.py, pyi_rth_setuptools.py

+ +
+ + main.py +Script
+imports: + __future__ + • _collections_abc + • _weakrefset + • abc + • codecs + • collections + • collections.abc + • copyreg + • encodings + • encodings.aliases + • encodings.ascii + • encodings.base64_codec + • encodings.big5 + • encodings.big5hkscs + • encodings.bz2_codec + • encodings.charmap + • encodings.cp037 + • encodings.cp1006 + • encodings.cp1026 + • encodings.cp1125 + • encodings.cp1140 + • encodings.cp1250 + • encodings.cp1251 + • encodings.cp1252 + • encodings.cp1253 + • encodings.cp1254 + • encodings.cp1255 + • encodings.cp1256 + • encodings.cp1257 + • encodings.cp1258 + • encodings.cp273 + • encodings.cp424 + • encodings.cp437 + • encodings.cp500 + • encodings.cp720 + • encodings.cp737 + • encodings.cp775 + • encodings.cp850 + • encodings.cp852 + • encodings.cp855 + • encodings.cp856 + • encodings.cp857 + • encodings.cp858 + • encodings.cp860 + • encodings.cp861 + • encodings.cp862 + • encodings.cp863 + • encodings.cp864 + • encodings.cp865 + • encodings.cp866 + • encodings.cp869 + • encodings.cp874 + • encodings.cp875 + • encodings.cp932 + • encodings.cp949 + • encodings.cp950 + • encodings.euc_jis_2004 + • encodings.euc_jisx0213 + • encodings.euc_jp + • encodings.euc_kr + • encodings.gb18030 + • encodings.gb2312 + • encodings.gbk + • encodings.hex_codec + • encodings.hp_roman8 + • encodings.hz + • encodings.idna + • encodings.iso2022_jp + • encodings.iso2022_jp_1 + • encodings.iso2022_jp_2 + • encodings.iso2022_jp_2004 + • encodings.iso2022_jp_3 + • encodings.iso2022_jp_ext + • encodings.iso2022_kr + • encodings.iso8859_1 + • encodings.iso8859_10 + • encodings.iso8859_11 + • encodings.iso8859_13 + • encodings.iso8859_14 + • encodings.iso8859_15 + • encodings.iso8859_16 + • encodings.iso8859_2 + • encodings.iso8859_3 + • encodings.iso8859_4 + • encodings.iso8859_5 + • encodings.iso8859_6 + • encodings.iso8859_7 + • encodings.iso8859_8 + • encodings.iso8859_9 + • encodings.johab + • encodings.koi8_r + • encodings.koi8_t + • encodings.koi8_u + • encodings.kz1048 + • encodings.latin_1 + • encodings.mac_arabic + • encodings.mac_croatian + • encodings.mac_cyrillic + • encodings.mac_farsi + • encodings.mac_greek + • encodings.mac_iceland + • encodings.mac_latin2 + • encodings.mac_roman + • encodings.mac_romanian + • encodings.mac_turkish + • encodings.mbcs + • encodings.oem + • encodings.palmos + • encodings.ptcp154 + • encodings.punycode + • encodings.quopri_codec + • encodings.raw_unicode_escape + • encodings.rot_13 + • encodings.shift_jis + • encodings.shift_jis_2004 + • encodings.shift_jisx0213 + • encodings.tis_620 + • encodings.undefined + • encodings.unicode_escape + • encodings.utf_16 + • encodings.utf_16_be + • encodings.utf_16_le + • encodings.utf_32 + • encodings.utf_32_be + • encodings.utf_32_le + • encodings.utf_7 + • encodings.utf_8 + • encodings.utf_8_sig + • encodings.uu_codec + • encodings.zlib_codec + • enum + • functools + • genericpath + • heapq + • io + • keyword + • linecache + • locale + • logger_conf + • ntpath + • operator + • os + • posixpath + • pyi_rth_inspect.py + • pyi_rth_multiprocessing.py + • pyi_rth_pkgutil.py + • pyi_rth_setuptools.py + • re + • re._casefix + • re._compiler + • re._constants + • re._parser + • reprlib + • sre_compile + • sre_constants + • sre_parse + • stat + • traceback + • tray_ui + • types + • warnings + • weakref + +
+ +
+ +
+ + pyi_rth_inspect.py +Script
+imports: + inspect + • os + • sys + • zipfile + +
+
+imported by: + main.py + +
+ +
+ +
+ + pyi_rth_multiprocessing.py +Script
+imports: + multiprocessing + • multiprocessing.spawn + • subprocess + • sys + +
+
+imported by: + main.py + +
+ +
+ +
+ + pyi_rth_pkgutil.py +Script
+imports: + pkgutil + • pyimod02_importers + +
+
+imported by: + main.py + +
+ +
+ +
+ + pyi_rth_setuptools.py +Script
+imports: + _distutils_hack + • os + • setuptools + +
+
+imported by: + main.py + +
+ +
+ +
+ + 'OpenSSL.crypto' +MissingModule
+imported by: + urllib3.contrib.pyopenssl + +
+ +
+ +
+ + 'cryptography.x509' +MissingModule
+imported by: + urllib3.contrib.pyopenssl + +
+ +
+ +
+ + 'ctypes.macholib' +MissingModule
+imported by: + ctypes.util + +
+ +
+ +
+ + 'gi.repository' +MissingModule + +
+ +
+ + 'h2.connection' +MissingModule
+imported by: + urllib3.http2.connection + +
+ +
+ +
+ + 'h2.events' +MissingModule
+imported by: + urllib3.http2.connection + +
+ +
+ +
+ + 'java.lang' +MissingModule
+imported by: + platform + +
+ +
+ +
+ + 'pyodide.ffi' +MissingModule
+imported by: + urllib3.contrib.emscripten.fetch + +
+ +
+ +
+ + AppKit +MissingModule
+imported by: + pynput.mouse._darwin + • pystray._darwin + +
+ +
+ +
+ + CoreFoundation +MissingModule
+imported by: + pynput._util.darwin + +
+ +
+ +
+ + Foundation +MissingModule
+imported by: + pystray._darwin + +
+ +
+ +
+ + HIServices +MissingModule
+imported by: + pynput._util.darwin + +
+ +
+ +
+ + OpenSSL +MissingModule
+imported by: + urllib3.contrib.pyopenssl + +
+ +
+ +
+ + PIL +Package +
+imported by: + PIL + • PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.CurImagePlugin + • PIL.DcxImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.ExifTags + • PIL.FitsImagePlugin + • PIL.FliImagePlugin + • PIL.FpxImagePlugin + • PIL.FtexImagePlugin + • PIL.GbrImagePlugin + • PIL.GifImagePlugin + • PIL.GimpGradientFile + • PIL.GimpPaletteFile + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.ImImagePlugin + • PIL.Image + • PIL.ImageChops + • PIL.ImageCms + • PIL.ImageColor + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageFile + • PIL.ImageFilter + • PIL.ImageFont + • PIL.ImageMath + • PIL.ImageMode + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImagePath + • PIL.ImageQt + • PIL.ImageSequence + • PIL.ImageShow + • PIL.ImageText + • PIL.ImageTk + • PIL.ImageWin + • PIL.ImtImagePlugin + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.JpegPresets + • PIL.McIdasImagePlugin + • PIL.MicImagePlugin + • PIL.MpegImagePlugin + • PIL.MpoImagePlugin + • PIL.MspImagePlugin + • PIL.PaletteFile + • PIL.PalmImagePlugin + • PIL.PcdImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PdfParser + • PIL.PixarImagePlugin + • PIL.PngImagePlugin + • PIL.PpmImagePlugin + • PIL.PsdImagePlugin + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.SunImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL.TiffTags + • PIL.WebPImagePlugin + • PIL.WmfImagePlugin + • PIL.XVThumbImagePlugin + • PIL.XbmImagePlugin + • PIL.XpmImagePlugin + • PIL._avif + • PIL._binary + • PIL._deprecate + • PIL._imaging + • PIL._imagingcms + • PIL._imagingft + • PIL._imagingmath + • PIL._imagingtk + • PIL._typing + • PIL._util + • PIL._version + • PIL._webp + • PIL.features + • pystray._darwin + • pystray._xorg + • tray_ui + +
+ +
+ +
+ + PIL.AvifImagePlugin +SourceModule
+imports: + PIL + • PIL.ExifTags + • PIL.Image + • PIL.ImageFile + • PIL._avif + • __future__ + • io + • os + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.BlpImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.JpegImagePlugin + • __future__ + • abc + • enum + • io + • os + • struct + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.BmpImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • os + • typing + +
+
+imported by: + PIL + • PIL.CurImagePlugin + • PIL.IcoImagePlugin + • PIL.Image + +
+ +
+ +
+ + PIL.BufrStubImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • os + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.CurImagePlugin +SourceModule
+imports: + PIL + • PIL.BmpImagePlugin + • PIL.Image + • PIL._binary + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.DcxImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.PcxImagePlugin + • PIL._binary + • PIL._util + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.DdsImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • enum + • io + • struct + • sys + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.EpsImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • io + • os + • re + • shutil + • subprocess + • sys + • tempfile + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.ExifTags +SourceModule
+imports: + PIL + • __future__ + • enum + +
+
+imported by: + PIL + • PIL.AvifImagePlugin + • PIL.Image + • PIL.ImageFile + • PIL.ImageOps + • PIL.TiffImagePlugin + +
+ +
+ +
+ + PIL.FitsImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • gzip + • math + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.FliImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • PIL._util + • __future__ + • os + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.FpxImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • olefile + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.FtexImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • enum + • io + • struct + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.GbrImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.GifImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageChops + • PIL.ImageFile + • PIL.ImageMath + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImageSequence + • PIL._binary + • PIL._imaging + • PIL._typing + • PIL._util + • __future__ + • copy + • enum + • functools + • io + • itertools + • math + • os + • subprocess + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.GimpGradientFile +SourceModule
+imports: + PIL + • PIL._binary + • __future__ + • collections.abc + • math + • typing + +
+
+imported by: + PIL + • PIL.ImagePalette + +
+ +
+ +
+ + PIL.GimpPaletteFile +SourceModule
+imports: + PIL + • __future__ + • io + • re + • typing + +
+
+imported by: + PIL + • PIL.ImagePalette + +
+ +
+ +
+ + PIL.GribStubImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • os + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.Hdf5StubImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • os + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.IcnsImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.Jpeg2KImagePlugin + • PIL.PngImagePlugin + • PIL.features + • __future__ + • io + • os + • struct + • sys + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.IcoImagePlugin +SourceModule
+imports: + PIL + • PIL.BmpImagePlugin + • PIL.Image + • PIL.ImageFile + • PIL.PngImagePlugin + • PIL._binary + • __future__ + • io + • math + • typing + • warnings + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.ImImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._util + • __future__ + • os + • re + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.Image +SourceModule
+imports: + PIL + • PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.CurImagePlugin + • PIL.DcxImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.ExifTags + • PIL.FitsImagePlugin + • PIL.FliImagePlugin + • PIL.FpxImagePlugin + • PIL.FtexImagePlugin + • PIL.GbrImagePlugin + • PIL.GifImagePlugin + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.ImImagePlugin + • PIL.ImageCms + • PIL.ImageColor + • PIL.ImageFile + • PIL.ImageFilter + • PIL.ImageMode + • PIL.ImagePalette + • PIL.ImageQt + • PIL.ImageShow + • PIL.ImtImagePlugin + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.McIdasImagePlugin + • PIL.MicImagePlugin + • PIL.MpegImagePlugin + • PIL.MpoImagePlugin + • PIL.MspImagePlugin + • PIL.PalmImagePlugin + • PIL.PcdImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PixarImagePlugin + • PIL.PngImagePlugin + • PIL.PpmImagePlugin + • PIL.PsdImagePlugin + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.SunImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL.TiffTags + • PIL.WebPImagePlugin + • PIL.WmfImagePlugin + • PIL.XVThumbImagePlugin + • PIL.XbmImagePlugin + • PIL.XpmImagePlugin + • PIL._binary + • PIL._deprecate + • PIL._imaging + • PIL._typing + • PIL._util + • __future__ + • abc + • atexit + • builtins + • collections.abc + • defusedxml + • enum + • io + • logging + • math + • mmap + • os + • re + • struct + • sys + • tempfile + • types + • typing + • warnings + • xml.etree.ElementTree + +
+
+imported by: + PIL + • PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.CurImagePlugin + • PIL.DcxImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.FitsImagePlugin + • PIL.FliImagePlugin + • PIL.FpxImagePlugin + • PIL.FtexImagePlugin + • PIL.GbrImagePlugin + • PIL.GifImagePlugin + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.ImImagePlugin + • PIL.ImageChops + • PIL.ImageCms + • PIL.ImageColor + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageFile + • PIL.ImageFilter + • PIL.ImageFont + • PIL.ImageMath + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImagePath + • PIL.ImageQt + • PIL.ImageSequence + • PIL.ImageShow + • PIL.ImageTk + • PIL.ImageWin + • PIL.ImtImagePlugin + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.McIdasImagePlugin + • PIL.MicImagePlugin + • PIL.MpegImagePlugin + • PIL.MpoImagePlugin + • PIL.MspImagePlugin + • PIL.PalmImagePlugin + • PIL.PcdImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PixarImagePlugin + • PIL.PngImagePlugin + • PIL.PpmImagePlugin + • PIL.PsdImagePlugin + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.SunImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL.WebPImagePlugin + • PIL.WmfImagePlugin + • PIL.XVThumbImagePlugin + • PIL.XbmImagePlugin + • PIL.XpmImagePlugin + • PIL.features + • tray_ui + +
+ +
+ +
+ + PIL.ImageChops +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + +
+
+imported by: + PIL + • PIL.GifImagePlugin + • PIL.PngImagePlugin + +
+ +
+ +
+ + PIL.ImageCms +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageWin + • PIL._deprecate + • PIL._imagingcms + • PIL._typing + • PIL._util + • __future__ + • enum + • functools + • operator + • sys + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.ImageColor +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + • colorsys + • functools + • re + +
+
+imported by: + PIL + • PIL.Image + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageOps + • PIL.ImagePalette + +
+ +
+ +
+ + PIL.ImageDraw +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageColor + • PIL.ImageDraw2 + • PIL.ImageFont + • PIL.ImageText + • PIL._typing + • __future__ + • collections.abc + • math + • struct + • types + • typing + +
+
+imported by: + PIL + • PIL.ImageDraw2 + • tray_ui + +
+ +
+ +
+ + PIL.ImageDraw2 +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageColor + • PIL.ImageDraw + • PIL.ImageFont + • PIL.ImagePath + • PIL._typing + • __future__ + • typing + +
+
+imported by: + PIL + • PIL.ImageDraw + +
+ +
+ +
+ + PIL.ImageFile +SourceModule
+imports: + PIL + • PIL.ExifTags + • PIL.Image + • PIL.TiffImagePlugin + • PIL._typing + • PIL._util + • __future__ + • abc + • io + • itertools + • logging + • mmap + • os + • struct + • typing + +
+ + +
+ +
+ + PIL.ImageFilter +SourceModule
+imports: + PIL + • PIL.Image + • PIL._imaging + • PIL._typing + • __future__ + • abc + • collections.abc + • functools + • types + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.ImageFont +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._imaging + • PIL._imagingft + • PIL._typing + • PIL._util + • __future__ + • base64 + • enum + • io + • os + • sys + • types + • typing + • warnings + +
+
+imported by: + PIL + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageText + • PIL._imagingft + +
+ +
+ +
+ + PIL.ImageMath +SourceModule
+imports: + PIL + • PIL.Image + • PIL._imagingmath + • __future__ + • builtins + • collections.abc + • types + • typing + +
+
+imported by: + PIL + • PIL.GifImagePlugin + +
+ +
+ +
+ + PIL.ImageMode +SourceModule
+imports: + PIL + • __future__ + • functools + • sys + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.ImageOps +SourceModule
+imports: + PIL + • PIL.ExifTags + • PIL.Image + • PIL.ImageColor + • PIL.ImagePalette + • __future__ + • collections.abc + • functools + • operator + • re + • typing + +
+
+imported by: + PIL + • PIL.GifImagePlugin + • PIL.TiffImagePlugin + +
+ +
+ +
+ + PIL.ImagePalette +SourceModule
+imports: + PIL + • PIL.GimpGradientFile + • PIL.GimpPaletteFile + • PIL.Image + • PIL.ImageColor + • PIL.PaletteFile + • __future__ + • array + • collections.abc + • random + • typing + +
+ + +
+ +
+ + PIL.ImagePath +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + +
+
+imported by: + PIL + • PIL.ImageDraw2 + +
+ +
+ +
+ + PIL.ImageQt +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._util + • __future__ + • collections.abc + • io + • sys + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.ImageSequence +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + • collections.abc + +
+
+imported by: + PIL + • PIL.GifImagePlugin + • PIL.MpoImagePlugin + • PIL.PdfImagePlugin + • PIL.PngImagePlugin + +
+ +
+ +
+ + PIL.ImageShow +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + • abc + • os + • shlex + • shutil + • subprocess + • sys + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.ImageText +SourceModule
+imports: + PIL + • PIL.ImageFont + • PIL._typing + • __future__ + +
+
+imported by: + PIL + • PIL.ImageDraw + +
+ +
+ +
+ + PIL.ImageTk +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._imagingtk + • PIL._typing + • __future__ + • io + • typing + +
+
+imported by: + PIL + • PIL.SpiderImagePlugin + +
+ +
+ +
+ + PIL.ImageWin +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + +
+
+imported by: + PIL + • PIL.ImageCms + +
+ +
+ +
+ + PIL.ImtImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • re + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.IptcImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.JpegImagePlugin + • PIL.TiffImagePlugin + • PIL._binary + • __future__ + • io + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.Jpeg2KImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • collections.abc + • io + • os + • struct + • typing + +
+
+imported by: + PIL + • PIL.IcnsImagePlugin + • PIL.Image + +
+ +
+ +
+ + PIL.JpegImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.JpegPresets + • PIL.MpoImagePlugin + • PIL.TiffImagePlugin + • PIL._binary + • __future__ + • array + • io + • math + • os + • struct + • subprocess + • sys + • tempfile + • typing + • warnings + +
+
+imported by: + PIL + • PIL.BlpImagePlugin + • PIL.Image + • PIL.IptcImagePlugin + • PIL.MpoImagePlugin + +
+ +
+ +
+ + PIL.JpegPresets +SourceModule
+imports: + PIL + • __future__ + +
+
+imported by: + PIL.JpegImagePlugin + +
+ +
+ +
+ + PIL.McIdasImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • struct + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.MicImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.TiffImagePlugin + • __future__ + • olefile + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.MpegImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • PIL._typing + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.MpoImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImageSequence + • PIL.JpegImagePlugin + • PIL.TiffImagePlugin + • PIL._binary + • PIL._util + • __future__ + • os + • struct + • typing + +
+
+imported by: + PIL.Image + • PIL.JpegImagePlugin + +
+ +
+ +
+ + PIL.MspImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • io + • struct + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.PaletteFile +SourceModule
+imports: + PIL + • PIL._binary + • __future__ + • typing + +
+
+imported by: + PIL + • PIL.ImagePalette + +
+ +
+ +
+ + PIL.PalmImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.PcdImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.PcxImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • io + • logging + • typing + +
+
+imported by: + PIL.DcxImagePlugin + • PIL.Image + +
+ +
+ +
+ + PIL.PdfImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImageSequence + • PIL.PdfParser + • PIL.features + • __future__ + • io + • math + • os + • time + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.PdfParser +SourceModule
+imports: + PIL + • __future__ + • calendar + • codecs + • collections + • mmap + • os + • re + • time + • typing + • zlib + +
+
+imported by: + PIL + • PIL.PdfImagePlugin + +
+ +
+ +
+ + PIL.PixarImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.PngImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageChops + • PIL.ImageFile + • PIL.ImagePalette + • PIL.ImageSequence + • PIL._binary + • PIL._deprecate + • PIL._imaging + • PIL._util + • __future__ + • collections.abc + • enum + • io + • itertools + • logging + • re + • struct + • typing + • warnings + • zlib + +
+
+imported by: + PIL + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.Image + +
+ +
+ +
+ + PIL.PpmImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • math + • typing + +
+
+imported by: + PIL + • PIL.Image + +
+ +
+ +
+ + PIL.PsdImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • PIL._util + • __future__ + • functools + • io + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.QoiImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • os + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.SgiImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • os + • struct + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.SpiderImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImageTk + • PIL._util + • __future__ + • os + • struct + • sys + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.SunImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.TgaImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • typing + • warnings + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.TiffImagePlugin +SourceModule
+imports: + PIL + • PIL.ExifTags + • PIL.Image + • PIL.ImageFile + • PIL.ImageOps + • PIL.ImagePalette + • PIL.TiffTags + • PIL._binary + • PIL._typing + • PIL._util + • __future__ + • collections.abc + • fractions + • io + • itertools + • logging + • math + • numbers + • os + • struct + • typing + • warnings + +
+ + +
+ +
+ + PIL.TiffTags +SourceModule
+imports: + PIL + • __future__ + • typing + +
+
+imported by: + PIL + • PIL.Image + • PIL.TiffImagePlugin + +
+ +
+ +
+ + PIL.WebPImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._webp + • __future__ + • io + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.WmfImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL._binary + • __future__ + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.XVThumbImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.XbmImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • __future__ + • re + • typing + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL.XpmImagePlugin +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageFile + • PIL.ImagePalette + • PIL._binary + • __future__ + • re + +
+
+imported by: + PIL.Image + +
+ +
+ +
+ + PIL._avif /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_avif.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • typing + +
+
+imported by: + PIL + • PIL.AvifImagePlugin + +
+ +
+ +
+ + PIL._binary +SourceModule
+imports: + PIL + • __future__ + • struct + +
+ + +
+ +
+ + PIL._deprecate +SourceModule
+imports: + PIL + • __future__ + • warnings + +
+
+imported by: + PIL.Image + • PIL.ImageCms + • PIL.PngImagePlugin + +
+ +
+ +
+ + PIL._imaging /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imaging.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • typing + +
+
+imported by: + PIL + • PIL.GifImagePlugin + • PIL.Image + • PIL.ImageFilter + • PIL.ImageFont + • PIL.PngImagePlugin + • PIL._imagingft + +
+ +
+ +
+ + PIL._imagingcms /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • PIL._typing + • datetime + • sys + • typing + +
+
+imported by: + PIL + • PIL.ImageCms + +
+ +
+ +
+ + PIL._imagingft /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • PIL.ImageFont + • PIL._imaging + • collections.abc + • typing + +
+
+imported by: + PIL.ImageFont + +
+ +
+ +
+ + PIL._imagingmath /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • typing + +
+
+imported by: + PIL + • PIL.ImageMath + +
+ +
+ +
+ + PIL._imagingtk /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • typing + +
+
+imported by: + PIL + • PIL.ImageTk + +
+ +
+ +
+ + PIL._typing +SourceModule
+imports: + PIL + • __future__ + • collections.abc + • numbers + • numpy + • os + • sys + • types + • typing + +
+ + +
+ +
+ + PIL._util +SourceModule
+imports: + PIL + • PIL._typing + • __future__ + • os + • typing + +
+ + +
+ +
+ + PIL._version +SourceModule
+imports: + PIL + • __future__ + +
+
+imported by: + PIL + +
+ +
+ +
+ + PIL._webp /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/PIL/_webp.cpython-312-x86_64-linux-gnu.so
+imports: + PIL + • typing + +
+
+imported by: + PIL + • PIL.WebPImagePlugin + +
+ +
+ +
+ + PIL.features +SourceModule
+imports: + PIL + • PIL.Image + • __future__ + • collections + • os + • sys + • typing + • warnings + +
+
+imported by: + PIL + • PIL.IcnsImagePlugin + • PIL.PdfImagePlugin + +
+ +
+ +
+ + PyObjCTools +MissingModule
+imported by: + pystray._darwin + +
+ +
+ +
+ + Quartz +MissingModule + +
+ +
+ + StringIO +MissingModule
+imported by: + six + +
+ +
+ +
+ + Xlib +Package
+imports: + Xlib + • Xlib.X + • Xlib.XK + • Xlib.Xatom + • Xlib.Xcursorfont + • Xlib.Xutil + • Xlib.display + • Xlib.error + • Xlib.ext + • Xlib.ext.composite + • Xlib.ext.damage + • Xlib.ext.dpms + • Xlib.ext.ge + • Xlib.ext.nvcontrol + • Xlib.ext.randr + • Xlib.ext.record + • Xlib.ext.res + • Xlib.ext.screensaver + • Xlib.ext.security + • Xlib.ext.shape + • Xlib.ext.xfixes + • Xlib.ext.xinerama + • Xlib.ext.xinput + • Xlib.ext.xtest + • Xlib.keysymdef + • Xlib.keysymdef.apl + • Xlib.keysymdef.arabic + • Xlib.keysymdef.cyrillic + • Xlib.keysymdef.greek + • Xlib.keysymdef.hebrew + • Xlib.keysymdef.katakana + • Xlib.keysymdef.korean + • Xlib.keysymdef.latin1 + • Xlib.keysymdef.latin2 + • Xlib.keysymdef.latin3 + • Xlib.keysymdef.latin4 + • Xlib.keysymdef.miscellany + • Xlib.keysymdef.publishing + • Xlib.keysymdef.special + • Xlib.keysymdef.technical + • Xlib.keysymdef.thai + • Xlib.keysymdef.xf86 + • Xlib.keysymdef.xk3270 + • Xlib.keysymdef.xkb + • Xlib.protocol + • Xlib.protocol.display + • Xlib.protocol.event + • Xlib.protocol.request + • Xlib.protocol.rq + • Xlib.protocol.structs + • Xlib.rdb + • Xlib.support + • Xlib.support.connect + • Xlib.support.lock + • Xlib.support.unix_connect + • Xlib.support.vms_connect + • Xlib.threaded + • Xlib.xauth + • Xlib.xobject + • Xlib.xobject.colormap + • Xlib.xobject.cursor + • Xlib.xobject.drawable + • Xlib.xobject.fontable + • Xlib.xobject.icccm + • Xlib.xobject.resource + +
+ + +
+ +
+ + Xlib.X +SourceModule
+imports: + Xlib + +
+ + +
+ +
+ + Xlib.XK +SourceModule
+imports: + Xlib + • Xlib.X + +
+
+imported by: + Xlib + • Xlib.display + • pynput._util.xorg + • pynput.keyboard._xorg + • pystray._xorg + +
+ +
+ +
+ + Xlib.Xatom +SourceModule
+imports: + Xlib + +
+
+imported by: + Xlib + • Xlib.rdb + • Xlib.xobject.drawable + +
+ +
+ +
+ + Xlib.Xcursorfont +SourceModule
+imports: + Xlib + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.Xutil +SourceModule
+imports: + Xlib + +
+
+imported by: + Xlib + • Xlib.xobject.icccm + +
+ +
+ +
+ + Xlib.display +SourceModule +
+imported by: + Xlib + • Xlib.rdb + • pynput._util.xorg + • pynput.keyboard._xorg + • pynput.mouse._xorg + • pystray._xorg + +
+ +
+ +
+ + Xlib.error +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.protocol + • Xlib.protocol.rq + +
+ + +
+ +
+ + Xlib.ext +Package
+imports: + Xlib + • Xlib.ext.ge + +
+ + +
+ +
+ + Xlib.ext.composite +SourceModule +
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.damage +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.error + • Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.protocol.structs + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.dpms +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.ge +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + • Xlib.ext + • Xlib.protocol.display + +
+ +
+ +
+ + Xlib.ext.nvcontrol +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.randr +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.record +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.res +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.screensaver +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.protocol.structs + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.security +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.shape +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.protocol.structs + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.xfixes +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.xinerama +SourceModule
+imports: + Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.protocol.structs + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.xinput +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + • array + • six + • struct + • sys + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.ext.xtest +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.ext + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + • pynput.keyboard._xorg + • pynput.mouse._xorg + +
+ +
+ +
+ + Xlib.keysymdef +Package
+imports: + Xlib + +
+ + +
+ +
+ + Xlib.keysymdef.apl +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.arabic +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.cyrillic +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.greek +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.hebrew +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.katakana +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.korean +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.latin1 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.latin2 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.latin3 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.latin4 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.miscellany +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.publishing +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.special +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.technical +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.thai +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.xf86 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.xk3270 +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.keysymdef.xkb +SourceModule
+imports: + Xlib.keysymdef + +
+
+imported by: + Xlib + • pynput.keyboard._xorg + +
+ +
+ +
+ + Xlib.protocol +Package + + +
+ +
+ + Xlib.protocol.display +SourceModule
+imports: + Xlib + • Xlib.error + • Xlib.ext + • Xlib.ext.ge + • Xlib.protocol + • Xlib.protocol.event + • Xlib.protocol.rq + • Xlib.support + • Xlib.support.connect + • Xlib.support.lock + • errno + • math + • select + • six + • socket + • struct + • sys + +
+
+imported by: + Xlib + • Xlib.display + • Xlib.protocol + +
+ +
+ +
+ + Xlib.protocol.event +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.protocol + • Xlib.protocol.rq + +
+
+imported by: + Xlib + • Xlib.display + • Xlib.protocol + • Xlib.protocol.display + • Xlib.protocol.rq + +
+ +
+ +
+ + Xlib.protocol.request +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.protocol.structs + +
+ + +
+ +
+ + Xlib.protocol.rq +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.protocol + • Xlib.protocol.event + • Xlib.support + • Xlib.support.lock + • array + • six + • struct + • sys + • traceback + +
+ + +
+ +
+ + Xlib.protocol.structs +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.protocol + • Xlib.protocol.rq + +
+ + +
+ +
+ + Xlib.rdb +SourceModule
+imports: + Xlib + • Xlib.Xatom + • Xlib.display + • Xlib.support + • Xlib.support.lock + • os + • re + • sys + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.support +Package
+imports: + Xlib + • Xlib.support.connect + • Xlib.support.lock + +
+ + +
+ +
+ + Xlib.support.connect +SourceModule
+imports: + Xlib.support + • importlib + • sys + +
+
+imported by: + Xlib + • Xlib.protocol.display + • Xlib.support + +
+ +
+ +
+ + Xlib.support.lock +SourceModule
+imports: + Xlib.support + +
+
+imported by: + Xlib + • Xlib.protocol.display + • Xlib.protocol.rq + • Xlib.rdb + • Xlib.support + • Xlib.threaded + +
+ +
+ +
+ + Xlib.support.unix_connect +SourceModule
+imports: + Xlib + • Xlib.error + • Xlib.support + • Xlib.xauth + • fcntl + • os + • platform + • re + • socket + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.support.vms_connect +SourceModule
+imports: + Xlib + • Xlib.error + • Xlib.support + • re + • socket + +
+
+imported by: + Xlib + +
+ +
+ +
+ + Xlib.threaded +SourceModule
+imports: + Xlib + • Xlib.support + • Xlib.support.lock + • six.moves + • six.moves._thread + +
+
+imported by: + Xlib + • pynput._util.xorg + • pystray._xorg + +
+ +
+ +
+ + Xlib.xauth +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.error + • os + • struct + +
+
+imported by: + Xlib + • Xlib.support.unix_connect + +
+ +
+ +
+ + Xlib.xobject +Package + + +
+ +
+ + Xlib.xobject.colormap +SourceModule
+imports: + Xlib + • Xlib.error + • Xlib.protocol + • Xlib.protocol.request + • Xlib.xobject + • Xlib.xobject.resource + • re + +
+
+imported by: + Xlib + • Xlib.display + • Xlib.xobject + • Xlib.xobject.drawable + +
+ +
+ +
+ + Xlib.xobject.cursor +SourceModule +
+imported by: + Xlib + • Xlib.display + • Xlib.xobject + • Xlib.xobject.drawable + • Xlib.xobject.fontable + +
+ +
+ +
+ + Xlib.xobject.drawable +SourceModule +
+imported by: + Xlib + • Xlib.display + • Xlib.ext.composite + • Xlib.xobject + +
+ +
+ +
+ + Xlib.xobject.fontable +SourceModule +
+imported by: + Xlib + • Xlib.display + • Xlib.xobject + • Xlib.xobject.drawable + +
+ +
+ +
+ + Xlib.xobject.icccm +SourceModule
+imports: + Xlib + • Xlib.X + • Xlib.Xutil + • Xlib.protocol + • Xlib.protocol.rq + • Xlib.xobject + +
+
+imported by: + Xlib + • Xlib.xobject + • Xlib.xobject.drawable + +
+ +
+ +
+ + Xlib.xobject.resource +SourceModule
+imports: + Xlib.protocol + • Xlib.protocol.request + • Xlib.xobject + +
+ + +
+ +
+ + __future__ +SourceModule
+imported by: + PIL + • PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.CurImagePlugin + • PIL.DcxImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.ExifTags + • PIL.FitsImagePlugin + • PIL.FliImagePlugin + • PIL.FpxImagePlugin + • PIL.FtexImagePlugin + • PIL.GbrImagePlugin + • PIL.GifImagePlugin + • PIL.GimpGradientFile + • PIL.GimpPaletteFile + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.ImImagePlugin + • PIL.Image + • PIL.ImageChops + • PIL.ImageCms + • PIL.ImageColor + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageFile + • PIL.ImageFilter + • PIL.ImageFont + • PIL.ImageMath + • PIL.ImageMode + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImagePath + • PIL.ImageQt + • PIL.ImageSequence + • PIL.ImageShow + • PIL.ImageText + • PIL.ImageTk + • PIL.ImageWin + • PIL.ImtImagePlugin + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.JpegPresets + • PIL.McIdasImagePlugin + • PIL.MicImagePlugin + • PIL.MpegImagePlugin + • PIL.MpoImagePlugin + • PIL.MspImagePlugin + • PIL.PaletteFile + • PIL.PalmImagePlugin + • PIL.PcdImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PdfParser + • PIL.PixarImagePlugin + • PIL.PngImagePlugin + • PIL.PpmImagePlugin + • PIL.PsdImagePlugin + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.SunImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL.TiffTags + • PIL.WebPImagePlugin + • PIL.WmfImagePlugin + • PIL.XVThumbImagePlugin + • PIL.XbmImagePlugin + • PIL.XpmImagePlugin + • PIL._binary + • PIL._deprecate + • PIL._typing + • PIL._util + • PIL._version + • PIL.features + • charset_normalizer + • charset_normalizer.api + • charset_normalizer.cd + • charset_normalizer.constant + • charset_normalizer.legacy + • charset_normalizer.md + • charset_normalizer.models + • charset_normalizer.utils + • charset_normalizer.version + • config + • event_captor + • key_captor + • logger_conf + • main.py + • mss.base + • mss.darwin + • mss.exception + • mss.linux + • mss.screenshot + • mss.tools + • mss.windows + • packaging._elffile + • packaging._manylinux + • packaging._musllinux + • packaging._parser + • packaging._tokenizer + • packaging.licenses + • packaging.licenses._spdx + • packaging.markers + • packaging.requirements + • packaging.specifiers + • packaging.tags + • packaging.utils + • packaging.version + • pydoc + • raw_session + • screen_capturer + • setuptools + • setuptools._core_metadata + • setuptools._distutils._modified + • setuptools._distutils.archive_util + • setuptools._distutils.cmd + • setuptools._distutils.command.bdist + • setuptools._distutils.command.build + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.sdist + • setuptools._distutils.compat + • setuptools._distutils.compilers.C.base + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.core + • setuptools._distutils.dist + • setuptools._distutils.extension + • setuptools._distutils.fancy_getopt + • setuptools._distutils.filelist + • setuptools._distutils.spawn + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._path + • setuptools._reqs + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._meta + • setuptools._vendor.jaraco.context + • setuptools._vendor.packaging._elffile + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._musllinux + • setuptools._vendor.packaging._parser + • setuptools._vendor.packaging._tokenizer + • setuptools._vendor.packaging.markers + • setuptools._vendor.packaging.requirements + • setuptools._vendor.packaging.specifiers + • setuptools._vendor.packaging.tags + • setuptools._vendor.packaging.utils + • setuptools._vendor.packaging.version + • setuptools._vendor.tomli._parser + • setuptools._vendor.tomli._re + • setuptools._vendor.wheel + • setuptools._vendor.wheel.cli + • setuptools._vendor.wheel.cli.convert + • setuptools._vendor.wheel.cli.pack + • setuptools._vendor.wheel.cli.tags + • setuptools._vendor.wheel.cli.unpack + • setuptools._vendor.wheel.macosx_libfile + • setuptools._vendor.wheel.metadata + • setuptools._vendor.wheel.util + • setuptools._vendor.wheel.wheelfile + • setuptools.command._requirestxt + • setuptools.command.bdist_egg + • setuptools.command.bdist_wheel + • setuptools.command.build + • setuptools.command.sdist + • setuptools.compat.py311 + • setuptools.config._apply_pyprojecttoml + • setuptools.config.expand + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.depends + • setuptools.discovery + • setuptools.dist + • setuptools.errors + • setuptools.extension + • setuptools.glob + • setuptools.installer + • setuptools.monkey + • setuptools.msvc + • setuptools.warnings + • six + • storage + • tomllib._parser + • tomllib._re + • tray_ui + • uploader + • urllib3 + • urllib3._base_connection + • urllib3._collections + • urllib3._request_methods + • urllib3.connection + • urllib3.connectionpool + • urllib3.contrib.emscripten + • urllib3.contrib.emscripten.connection + • urllib3.contrib.emscripten.fetch + • urllib3.contrib.emscripten.request + • urllib3.contrib.emscripten.response + • urllib3.contrib.pyopenssl + • urllib3.contrib.socks + • urllib3.exceptions + • urllib3.fields + • urllib3.filepost + • urllib3.http2 + • urllib3.http2.connection + • urllib3.http2.probe + • urllib3.poolmanager + • urllib3.response + • urllib3.util + • urllib3.util.connection + • urllib3.util.proxy + • urllib3.util.request + • urllib3.util.response + • urllib3.util.retry + • urllib3.util.ssl_ + • urllib3.util.ssl_match_hostname + • urllib3.util.ssltransport + • urllib3.util.timeout + • urllib3.util.url + • urllib3.util.util + • urllib3.util.wait + • window_info + +
+ +
+ +
+ + _abc (builtin module)
+imported by: + abc + +
+ +
+ +
+ + _aix_support +SourceModule
+imports: + contextlib + • os + • subprocess + • sys + • sysconfig + +
+
+imported by: + sysconfig + +
+ +
+ +
+ + _ast (builtin module)
+imported by: + ast + +
+ +
+ +
+ + _asyncio /usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so
+imported by: + asyncio.events + • asyncio.futures + • asyncio.tasks + +
+ +
+ +
+ + _bisect (builtin module)
+imported by: + bisect + +
+ +
+ +
+ + _blake2 (builtin module)
+imported by: + hashlib + +
+ +
+ +
+ + _bz2 /usr/lib/python3.12/lib-dynload/_bz2.cpython-312-x86_64-linux-gnu.so
+imported by: + bz2 + +
+ +
+ +
+ + _codecs (builtin module)
+imported by: + codecs + +
+ +
+ +
+ + _codecs_cn /usr/lib/python3.12/lib-dynload/_codecs_cn.cpython-312-x86_64-linux-gnu.so
+imported by: + encodings.gb18030 + • encodings.gb2312 + • encodings.gbk + • encodings.hz + +
+ +
+ +
+ + _codecs_hk /usr/lib/python3.12/lib-dynload/_codecs_hk.cpython-312-x86_64-linux-gnu.so
+imported by: + encodings.big5hkscs + +
+ +
+ +
+ + _codecs_iso2022 /usr/lib/python3.12/lib-dynload/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + _codecs_jp /usr/lib/python3.12/lib-dynload/_codecs_jp.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + _codecs_kr /usr/lib/python3.12/lib-dynload/_codecs_kr.cpython-312-x86_64-linux-gnu.so
+imported by: + encodings.cp949 + • encodings.euc_kr + • encodings.johab + +
+ +
+ +
+ + _codecs_tw /usr/lib/python3.12/lib-dynload/_codecs_tw.cpython-312-x86_64-linux-gnu.so
+imported by: + encodings.big5 + • encodings.cp950 + +
+ +
+ +
+ + _collections (builtin module)
+imported by: + collections + • threading + +
+ +
+ +
+ + _collections_abc +SourceModule
+imports: + abc + • sys + • warnings + +
+
+imported by: + collections + • collections.abc + • contextlib + • locale + • main.py + • os + • pathlib + • random + • types + • weakref + +
+ +
+ +
+ + _compat_pickle +SourceModule
+imported by: + _pickle + • pickle + +
+ +
+ +
+ + _compression +SourceModule
+imports: + io + • sys + +
+
+imported by: + bz2 + • gzip + • lzma + +
+ +
+ +
+ + _contextvars /usr/lib/python3.12/lib-dynload/_contextvars.cpython-312-x86_64-linux-gnu.so
+imported by: + contextvars + +
+ +
+ +
+ + _csv (builtin module)
+imported by: + csv + +
+ +
+ +
+ + _ctypes /usr/lib/python3.12/lib-dynload/_ctypes.cpython-312-x86_64-linux-gnu.so
+imported by: + ctypes + +
+ +
+ +
+ + _datetime (builtin module)
+imports: + _strptime + • time + +
+
+imported by: + datetime + +
+ +
+ +
+ + _decimal /usr/lib/python3.12/lib-dynload/_decimal.cpython-312-x86_64-linux-gnu.so
+imported by: + decimal + +
+ +
+ +
+ + _distutils_hack +Package
+imports: + importlib + • importlib.abc + • importlib.util + • os + • sys + • traceback + • warnings + +
+ + +
+ +
+ + _distutils_hack.override +SourceModule
+imports: + _distutils_hack + +
+
+imported by: + setuptools + • setuptools.discovery + +
+ +
+ +
+ + _elementtree (builtin module) +
+imported by: + xml.etree.ElementTree + +
+ +
+ +
+ + _frozen_importlib +ExcludedModule
+imported by: + importlib + • importlib.abc + • zipimport + +
+ +
+ +
+ + _frozen_importlib_external +MissingModule
+imported by: + importlib + • importlib._bootstrap + • importlib.abc + • zipimport + +
+ +
+ +
+ + _functools (builtin module)
+imported by: + functools + +
+ +
+ +
+ + _hashlib /usr/lib/python3.12/lib-dynload/_hashlib.cpython-312-x86_64-linux-gnu.so
+imported by: + hashlib + • hmac + +
+ +
+ +
+ + _heapq (builtin module)
+imported by: + heapq + +
+ +
+ +
+ + _imp (builtin module) + +
+ +
+ + _io (builtin module)
+imported by: + importlib._bootstrap_external + • io + • unittest.mock + • zipimport + +
+ +
+ +
+ + _json /usr/lib/python3.12/lib-dynload/_json.cpython-312-x86_64-linux-gnu.so
+imports: + json.decoder + +
+
+imported by: + json.decoder + • json.encoder + • json.scanner + +
+ +
+ +
+ + _locale (builtin module)
+imported by: + locale + +
+ +
+ +
+ + _lzma /usr/lib/python3.12/lib-dynload/_lzma.cpython-312-x86_64-linux-gnu.so
+imported by: + lzma + +
+ +
+ +
+ + _manylinux +MissingModule + +
+ +
+ + _md5 (builtin module)
+imported by: + hashlib + +
+ +
+ +
+ + _multibytecodec /usr/lib/python3.12/lib-dynload/_multibytecodec.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + _multiprocessing /usr/lib/python3.12/lib-dynload/_multiprocessing.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + _opcode (builtin module)
+imported by: + opcode + +
+ +
+ +
+ + _operator (builtin module)
+imported by: + hmac + • operator + +
+ +
+ +
+ + _overlapped +MissingModule
+imported by: + asyncio.windows_events + +
+ +
+ +
+ + _pickle (builtin module)
+imports: + _compat_pickle + • codecs + • copyreg + +
+
+imported by: + pickle + +
+ +
+ +
+ + _posixshmem /usr/lib/python3.12/lib-dynload/_posixshmem.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + _posixsubprocess (builtin module)
+imports: + gc + +
+
+imported by: + multiprocessing.util + • subprocess + +
+ +
+ +
+ + _py_abc +SourceModule
+imports: + _weakrefset + +
+
+imported by: + abc + +
+ +
+ +
+ + _pydatetime +SourceModule
+imports: + _strptime + • math + • operator + • sys + • time + • warnings + +
+
+imported by: + datetime + +
+ +
+ +
+ + _pydecimal +SourceModule
+imports: + collections + • contextvars + • itertools + • locale + • math + • numbers + • re + • sys + +
+
+imported by: + decimal + +
+ +
+ +
+ + _queue /usr/lib/python3.12/lib-dynload/_queue.cpython-312-x86_64-linux-gnu.so
+imported by: + queue + +
+ +
+ +
+ + _random (builtin module)
+imported by: + random + +
+ +
+ +
+ + _scproxy +MissingModule
+imported by: + urllib.request + +
+ +
+ +
+ + _sha1 (builtin module)
+imported by: + hashlib + +
+ +
+ +
+ + _sha2 (builtin module)
+imported by: + hashlib + • random + +
+ +
+ +
+ + _sha3 (builtin module)
+imported by: + hashlib + +
+ +
+ +
+ + _signal (builtin module)
+imported by: + signal + +
+ +
+ +
+ + _sitebuiltins +SourceModule
+imports: + os + • pydoc + • sys + +
+
+imported by: + site + +
+ +
+ +
+ + _socket (builtin module)
+imported by: + setuptools._vendor.typing_extensions + • socket + +
+ +
+ +
+ + _sre (builtin module)
+imports: + copy + • re + +
+
+imported by: + re + • re._compiler + • re._constants + +
+ +
+ +
+ + _ssl /usr/lib/python3.12/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so
+imports: + socket + +
+
+imported by: + ssl + +
+ +
+ +
+ + _stat (builtin module)
+imported by: + stat + +
+ +
+ +
+ + _statistics (builtin module)
+imported by: + statistics + +
+ +
+ +
+ + _string (builtin module)
+imported by: + string + +
+ +
+ +
+ + _strptime +SourceModule
+imports: + _thread + • calendar + • datetime + • locale + • re + • time + +
+
+imported by: + _datetime + • _pydatetime + • time + +
+ +
+ +
+ + _struct (builtin module)
+imported by: + struct + +
+ +
+ +
+ + _sysconfigdata__x86_64-linux-gnu +SourceModule
+imported by: + sysconfig + +
+ +
+ +
+ + _thread (builtin module)
+imported by: + _strptime + • dataclasses + • functools + • reprlib + • six.moves._thread + • tempfile + • threading + +
+ +
+ +
+ + _threading_local +SourceModule
+imports: + contextlib + • threading + • weakref + +
+
+imported by: + threading + +
+ +
+ +
+ + _tokenize (builtin module)
+imported by: + tokenize + +
+ +
+ +
+ + _tracemalloc (builtin module)
+imported by: + tracemalloc + +
+ +
+ +
+ + _typeshed +MissingModule + +
+ +
+ + _typing (builtin module)
+imported by: + typing + +
+ +
+ +
+ + _uuid +MissingModule
+imported by: + uuid + +
+ +
+ +
+ + _warnings (builtin module)
+imported by: + importlib._bootstrap_external + • warnings + • zipimport + +
+ +
+ +
+ + _weakref (builtin module)
+imported by: + _weakrefset + • collections + • weakref + • xml.sax.expatreader + +
+ +
+ +
+ + _weakrefset +SourceModule
+imports: + _weakref + • types + +
+
+imported by: + _py_abc + • main.py + • multiprocessing.process + • threading + • weakref + +
+ +
+ +
+ + _winapi +MissingModule + +
+ +
+ + _winreg +MissingModule
+imported by: + platform + +
+ +
+ +
+ + _wmi +MissingModule
+imported by: + platform + +
+ +
+ +
+ + abc +SourceModule
+imports: + _abc + • _py_abc + +
+ + +
+ +
+ + apport_python_hook +MissingModule
+imported by: + sitecustomize + +
+ +
+ +
+ + argparse +SourceModule
+imports: + copy + • gettext + • os + • re + • shutil + • sys + • textwrap + • warnings + +
+
+imported by: + ast + • calendar + • dis + • gzip + • http.server + • inspect + • py_compile + • setuptools._vendor.wheel.cli + • tarfile + • tokenize + • unittest.main + • uuid + • zipfile + +
+ +
+ +
+ + array (builtin module) + +
+ +
+ + ast +SourceModule
+imports: + _ast + • argparse + • collections + • contextlib + • enum + • inspect + • re + • sys + • warnings + +
+ + +
+ +
+ + asyncio +Package + + +
+ +
+ + asyncio.DefaultEventLoopPolicy +MissingModule
+imported by: + asyncio + • asyncio.events + +
+ +
+ +
+ + asyncio.base_events +SourceModule
+imports: + asyncio + • asyncio.constants + • asyncio.coroutines + • asyncio.events + • asyncio.exceptions + • asyncio.futures + • asyncio.log + • asyncio.protocols + • asyncio.sslproto + • asyncio.staggered + • asyncio.tasks + • asyncio.timeouts + • asyncio.transports + • asyncio.trsock + • collections + • collections.abc + • concurrent.futures + • errno + • functools + • heapq + • itertools + • os + • socket + • ssl + • stat + • subprocess + • sys + • threading + • time + • traceback + • warnings + • weakref + +
+ + +
+ +
+ + asyncio.base_futures +SourceModule
+imports: + asyncio + • asyncio.format_helpers + • reprlib + +
+
+imported by: + asyncio + • asyncio.base_tasks + • asyncio.futures + +
+ +
+ +
+ + asyncio.base_subprocess +SourceModule
+imports: + asyncio + • asyncio.log + • asyncio.protocols + • asyncio.transports + • collections + • subprocess + • warnings + +
+
+imported by: + asyncio + • asyncio.unix_events + • asyncio.windows_events + +
+ +
+ +
+ + asyncio.base_tasks +SourceModule
+imports: + asyncio + • asyncio.base_futures + • asyncio.coroutines + • linecache + • reprlib + • traceback + +
+
+imported by: + asyncio + • asyncio.tasks + +
+ +
+ +
+ + asyncio.constants +SourceModule
+imports: + asyncio + • enum + +
+ + +
+ +
+ + asyncio.coroutines +SourceModule
+imports: + asyncio + • collections.abc + • inspect + • os + • sys + • types + +
+ + +
+ +
+ + asyncio.events +SourceModule
+imports: + _asyncio + • asyncio + • asyncio.DefaultEventLoopPolicy + • asyncio.format_helpers + • contextvars + • os + • signal + • socket + • subprocess + • sys + • threading + • warnings + +
+ + +
+ +
+ + asyncio.exceptions +SourceModule
+imports: + asyncio + +
+ + +
+ +
+ + asyncio.format_helpers +SourceModule
+imports: + asyncio + • asyncio.constants + • functools + • inspect + • reprlib + • sys + • traceback + +
+
+imported by: + asyncio + • asyncio.base_futures + • asyncio.events + • asyncio.futures + • asyncio.streams + +
+ +
+ +
+ + asyncio.futures +SourceModule + + +
+ +
+ + asyncio.locks +SourceModule
+imports: + asyncio + • asyncio.exceptions + • asyncio.mixins + • collections + • enum + +
+
+imported by: + asyncio + • asyncio.queues + • asyncio.staggered + +
+ +
+ +
+ + asyncio.log +SourceModule
+imports: + asyncio + • logging + +
+ + +
+ +
+ + asyncio.mixins +SourceModule
+imports: + asyncio + • asyncio.events + • threading + +
+
+imported by: + asyncio + • asyncio.locks + • asyncio.queues + +
+ +
+ +
+ + asyncio.proactor_events +SourceModule +
+imported by: + asyncio + • asyncio.windows_events + +
+ +
+ +
+ + asyncio.protocols +SourceModule
+imports: + asyncio + +
+ + +
+ +
+ + asyncio.queues +SourceModule
+imports: + asyncio + • asyncio.locks + • asyncio.mixins + • collections + • heapq + • types + +
+
+imported by: + asyncio + • asyncio.tasks + +
+ +
+ +
+ + asyncio.runners +SourceModule
+imports: + asyncio + • asyncio.constants + • asyncio.coroutines + • asyncio.events + • asyncio.exceptions + • asyncio.tasks + • contextvars + • enum + • functools + • signal + • threading + +
+
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.selector_events +SourceModule
+imports: + asyncio + • asyncio.base_events + • asyncio.constants + • asyncio.events + • asyncio.futures + • asyncio.log + • asyncio.protocols + • asyncio.sslproto + • asyncio.transports + • asyncio.trsock + • collections + • errno + • functools + • itertools + • os + • selectors + • socket + • ssl + • warnings + • weakref + +
+
+imported by: + asyncio + • asyncio.unix_events + • asyncio.windows_events + +
+ +
+ +
+ + asyncio.sslproto +SourceModule
+imports: + asyncio + • asyncio.constants + • asyncio.exceptions + • asyncio.log + • asyncio.protocols + • asyncio.transports + • collections + • enum + • ssl + • warnings + +
+ + +
+ +
+ + asyncio.staggered +SourceModule
+imports: + asyncio + • asyncio.events + • asyncio.exceptions + • asyncio.locks + • asyncio.tasks + • contextlib + • typing + +
+
+imported by: + asyncio + • asyncio.base_events + +
+ +
+ +
+ + asyncio.streams +SourceModule +
+imported by: + asyncio + • asyncio.subprocess + +
+ +
+ +
+ + asyncio.subprocess +SourceModule
+imports: + asyncio + • asyncio.events + • asyncio.log + • asyncio.protocols + • asyncio.streams + • asyncio.tasks + • subprocess + +
+
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.taskgroups +SourceModule
+imports: + asyncio + • asyncio.events + • asyncio.exceptions + • asyncio.tasks + +
+
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.tasks +SourceModule + + +
+ +
+ + asyncio.threads +SourceModule
+imports: + asyncio + • asyncio.events + • contextvars + • functools + +
+
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.timeouts +SourceModule
+imports: + asyncio + • asyncio.events + • asyncio.exceptions + • asyncio.tasks + • enum + • types + • typing + +
+
+imported by: + asyncio + • asyncio.base_events + • asyncio.tasks + +
+ +
+ +
+ + asyncio.transports +SourceModule
+imports: + asyncio + +
+ + +
+ +
+ + asyncio.trsock +SourceModule
+imports: + asyncio + • socket + +
+ + +
+ +
+ + asyncio.unix_events +SourceModule +
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.windows_events +SourceModule
+imports: + _overlapped + • _winapi + • asyncio + • asyncio.base_subprocess + • asyncio.events + • asyncio.exceptions + • asyncio.futures + • asyncio.log + • asyncio.proactor_events + • asyncio.selector_events + • asyncio.tasks + • asyncio.windows_utils + • errno + • functools + • math + • msvcrt + • socket + • struct + • sys + • time + • weakref + +
+
+imported by: + asyncio + +
+ +
+ +
+ + asyncio.windows_utils +SourceModule
+imports: + _winapi + • asyncio + • itertools + • msvcrt + • os + • subprocess + • sys + • tempfile + • warnings + +
+
+imported by: + asyncio + • asyncio.windows_events + +
+ +
+ +
+ + atexit (builtin module)
+imported by: + PIL.Image + • certifi.core + • logging + • multiprocessing.util + • pystray._util.gtk + • pystray._util.notify_dbus + • rlcompleter + • site + • weakref + +
+ +
+ +
+ + backports +MissingModule
+imported by: + setuptools._vendor.jaraco.context + +
+ +
+ +
+ + base64 +SourceModule
+imports: + binascii + • getopt + • re + • struct + • sys + +
+ + +
+ +
+ + binascii (builtin module) + +
+ +
+ + bisect +SourceModule
+imports: + _bisect + +
+
+imported by: + idna.core + • idna.intranges + • multiprocessing.heap + • random + • statistics + • urllib.request + +
+ +
+ +
+ + brotli +MissingModule
+imported by: + urllib3.response + • urllib3.util.request + +
+ +
+ +
+ + brotlicffi +MissingModule
+imported by: + urllib3.response + • urllib3.util.request + +
+ +
+ +
+ + builtins (builtin module)
+imported by: + PIL.Image + • PIL.ImageMath + • bz2 + • codecs + • enum + • gettext + • gzip + • inspect + • locale + • lzma + • operator + • pydoc + • reprlib + • rlcompleter + • setuptools.config._validate_pyproject.formats + • site + • subprocess + • tarfile + • tokenize + • unittest.mock + • warnings + +
+ +
+ +
+ + bz2 +SourceModule
+imports: + _bz2 + • _compression + • builtins + • io + • os + +
+
+imported by: + encodings.bz2_codec + • shutil + • tarfile + • zipfile + +
+ +
+ +
+ + calendar +SourceModule
+imports: + argparse + • datetime + • enum + • itertools + • locale + • sys + • warnings + +
+
+imported by: + PIL.PdfParser + • _strptime + • email._parseaddr + • http.cookiejar + • requests.cookies + • ssl + +
+ +
+ +
+ + certifi +Package
+imports: + certifi.core + +
+
+imported by: + certifi.core + • requests.certs + +
+ +
+ +
+ + certifi.core +SourceModule
+imports: + atexit + • certifi + • importlib.resources + • sys + +
+
+imported by: + certifi + +
+ +
+ +
+ + chardet +MissingModule
+imported by: + requests + +
+ +
+ +
+ + charset_normalizer +Package + + +
+ +
+ + charset_normalizer.api +SourceModule +
+imported by: + charset_normalizer + • charset_normalizer.legacy + +
+ +
+ +
+ + charset_normalizer.cd +SourceModule + + +
+ +
+ + charset_normalizer.constant +SourceModule
+imports: + __future__ + • charset_normalizer + • codecs + • encodings.aliases + • re + +
+ + +
+ +
+ + charset_normalizer.legacy +SourceModule +
+imported by: + charset_normalizer + +
+ +
+ +
+ + charset_normalizer.md /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +
+imported by: + charset_normalizer.api + • charset_normalizer.cd + +
+ +
+ +
+ + charset_normalizer.md__mypyc /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so
+imports: + charset_normalizer + +
+
+imported by: + charset_normalizer + +
+ +
+ +
+ + charset_normalizer.models +SourceModule + + +
+ +
+ + charset_normalizer.utils +SourceModule
+imports: + __future__ + • _multibytecodec + • charset_normalizer + • charset_normalizer.constant + • codecs + • encodings.aliases + • functools + • importlib + • logging + • re + • typing + • unicodedata + +
+ + +
+ +
+ + charset_normalizer.version +SourceModule
+imports: + __future__ + • charset_normalizer + +
+
+imported by: + charset_normalizer + +
+ +
+ +
+ + codecs +SourceModule
+imports: + _codecs + • builtins + • encodings + • sys + +
+
+imported by: + PIL.PdfParser + • _pickle + • charset_normalizer.cd + • charset_normalizer.constant + • charset_normalizer.utils + • encodings + • encodings.ascii + • encodings.base64_codec + • encodings.big5 + • encodings.big5hkscs + • encodings.bz2_codec + • encodings.charmap + • encodings.cp037 + • encodings.cp1006 + • encodings.cp1026 + • encodings.cp1125 + • encodings.cp1140 + • encodings.cp1250 + • encodings.cp1251 + • encodings.cp1252 + • encodings.cp1253 + • encodings.cp1254 + • encodings.cp1255 + • encodings.cp1256 + • encodings.cp1257 + • encodings.cp1258 + • encodings.cp273 + • encodings.cp424 + • encodings.cp437 + • encodings.cp500 + • encodings.cp720 + • encodings.cp737 + • encodings.cp775 + • encodings.cp850 + • encodings.cp852 + • encodings.cp855 + • encodings.cp856 + • encodings.cp857 + • encodings.cp858 + • encodings.cp860 + • encodings.cp861 + • encodings.cp862 + • encodings.cp863 + • encodings.cp864 + • encodings.cp865 + • encodings.cp866 + • encodings.cp869 + • encodings.cp874 + • encodings.cp875 + • encodings.cp932 + • encodings.cp949 + • encodings.cp950 + • encodings.euc_jis_2004 + • encodings.euc_jisx0213 + • encodings.euc_jp + • encodings.euc_kr + • encodings.gb18030 + • encodings.gb2312 + • encodings.gbk + • encodings.hex_codec + • encodings.hp_roman8 + • encodings.hz + • encodings.idna + • encodings.iso2022_jp + • encodings.iso2022_jp_1 + • encodings.iso2022_jp_2 + • encodings.iso2022_jp_2004 + • encodings.iso2022_jp_3 + • encodings.iso2022_jp_ext + • encodings.iso2022_kr + • encodings.iso8859_1 + • encodings.iso8859_10 + • encodings.iso8859_11 + • encodings.iso8859_13 + • encodings.iso8859_14 + • encodings.iso8859_15 + • encodings.iso8859_16 + • encodings.iso8859_2 + • encodings.iso8859_3 + • encodings.iso8859_4 + • encodings.iso8859_5 + • encodings.iso8859_6 + • encodings.iso8859_7 + • encodings.iso8859_8 + • encodings.iso8859_9 + • encodings.johab + • encodings.koi8_r + • encodings.koi8_t + • encodings.koi8_u + • encodings.kz1048 + • encodings.latin_1 + • encodings.mac_arabic + • encodings.mac_croatian + • encodings.mac_cyrillic + • encodings.mac_farsi + • encodings.mac_greek + • encodings.mac_iceland + • encodings.mac_latin2 + • encodings.mac_roman + • encodings.mac_romanian + • encodings.mac_turkish + • encodings.mbcs + • encodings.oem + • encodings.palmos + • encodings.ptcp154 + • encodings.punycode + • encodings.quopri_codec + • encodings.raw_unicode_escape + • encodings.rot_13 + • encodings.shift_jis + • encodings.shift_jis_2004 + • encodings.shift_jisx0213 + • encodings.tis_620 + • encodings.undefined + • encodings.unicode_escape + • encodings.utf_16 + • encodings.utf_16_be + • encodings.utf_16_le + • encodings.utf_32 + • encodings.utf_32_be + • encodings.utf_32_le + • encodings.utf_7 + • encodings.utf_8 + • encodings.utf_8_sig + • encodings.uu_codec + • encodings.zlib_codec + • json + • main.py + • pickle + • requests.utils + • tokenize + • urllib3.filepost + • xml.sax.saxutils + +
+ +
+ +
+ + collections +Package
+imports: + _collections + • _collections_abc + • _weakref + • copy + • heapq + • itertools + • keyword + • operator + • reprlib + • sys + +
+
+imported by: + PIL.PdfParser + • PIL.features + • _pydecimal + • ast + • asyncio.base_events + • asyncio.base_subprocess + • asyncio.locks + • asyncio.proactor_events + • asyncio.queues + • asyncio.selector_events + • asyncio.sslproto + • asyncio.streams + • charset_normalizer.cd + • collections.abc + • concurrent.futures._base + • configparser + • contextlib + • difflib + • dis + • email.feedparser + • evdev.uinput + • evdev.util + • functools + • importlib.metadata + • importlib.metadata._collections + • importlib.resources.readers + • inspect + • main.py + • multiprocessing.heap + • multiprocessing.pool + • multiprocessing.queues + • packaging._manylinux + • pkgutil + • platform + • pprint + • pydoc + • queue + • requests.compat + • requests.sessions + • requests.structures + • requests.utils + • selectors + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._collections + • setuptools._vendor.more_itertools.more + • setuptools._vendor.more_itertools.recipes + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.cli.convert + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools.command._requirestxt + • setuptools.config.setupcfg + • shlex + • shutil + • ssl + • statistics + • string + • threading + • tokenize + • typing + • unittest._log + • unittest.case + • unittest.util + • urllib.parse + • urllib3._collections + • urllib3.response + • xml.etree.ElementTree + +
+ +
+ +
+ + collections.abc +SourceModule
+imports: + _collections_abc + • collections + +
+
+imported by: + PIL.GimpGradientFile + • PIL.Image + • PIL.ImageDraw + • PIL.ImageFilter + • PIL.ImageMath + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImageQt + • PIL.ImageSequence + • PIL.Jpeg2KImagePlugin + • PIL.PngImagePlugin + • PIL.TiffImagePlugin + • PIL._imagingft + • PIL._typing + • asyncio.base_events + • asyncio.coroutines + • configparser + • http.client + • inspect + • logging + • main.py + • mss.base + • mss.screenshot + • requests.compat + • selectors + • setuptools + • setuptools._distutils._modified + • setuptools._distutils.cmd + • setuptools._distutils.command.bdist + • setuptools._distutils.command.build + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.sdist + • setuptools._distutils.compat + • setuptools._distutils.compilers.C.base + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.core + • setuptools._distutils.dist + • setuptools._distutils.extension + • setuptools._distutils.fancy_getopt + • setuptools._distutils.filelist + • setuptools._distutils.spawn + • setuptools._distutils.util + • setuptools._reqs + • setuptools._vendor.jaraco.functools + • setuptools._vendor.more_itertools.more + • setuptools._vendor.more_itertools.recipes + • setuptools._vendor.tomli._parser + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.cli.convert + • setuptools._vendor.wheel.cli.tags + • setuptools.command._requirestxt + • setuptools.command.bdist_wheel + • setuptools.command.egg_info + • setuptools.config._apply_pyprojecttoml + • setuptools.config.expand + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.discovery + • setuptools.dist + • setuptools.glob + • tomllib._parser + • traceback + • tracemalloc + • typing + • xml.etree.ElementTree + +
+ +
+ +
+ + colorsys +SourceModule
+imported by: + PIL.ImageColor + +
+ +
+ +
+ + compression +MissingModule
+imported by: + urllib3.response + • urllib3.util.request + +
+ +
+ +
+ + concurrent +Package
+imported by: + concurrent.futures + +
+ +
+ +
+ + concurrent.futures +Package + + +
+ +
+ + concurrent.futures._base +SourceModule
+imports: + collections + • concurrent.futures + • logging + • threading + • time + • types + +
+ + +
+ +
+ + concurrent.futures.process +SourceModule +
+imported by: + concurrent.futures + +
+ +
+ +
+ + concurrent.futures.thread +SourceModule
+imports: + concurrent.futures + • concurrent.futures._base + • itertools + • os + • queue + • threading + • types + • weakref + +
+
+imported by: + concurrent.futures + +
+ +
+ +
+ + config +SourceModule
+imports: + __future__ + • os + • pathlib + +
+
+imported by: + logger_conf + • raw_session + • screen_capturer + • storage + • tray_ui + • uploader + +
+ +
+ +
+ + configparser +SourceModule
+imports: + collections + • collections.abc + • functools + • io + • itertools + • os + • re + • sys + • warnings + +
+ + +
+ +
+ + contextlib +SourceModule
+imports: + _collections_abc + • abc + • collections + • functools + • os + • sys + • types + +
+
+imported by: + _aix_support + • _threading_local + • ast + • asyncio.staggered + • evdev.device + • getpass + • glob + • http.server + • importlib.metadata + • importlib.resources._adapters + • importlib.resources._common + • mss.linux + • packaging._manylinux + • packaging._tokenizer + • pynput._util + • pynput._util.darwin + • pynput._util.win32 + • pynput._util.xorg + • pynput.keyboard._base + • pynput.keyboard._win32 + • pystray._util + • pystray._xorg + • requests.utils + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.check + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.dist + • setuptools._distutils.version + • setuptools._path + • setuptools._vendor.importlib_metadata + • setuptools._vendor.jaraco.context + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._tokenizer + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging._tokenizer + • setuptools._vendor.zipp + • setuptools.archive_util + • setuptools.command.sdist + • setuptools.config._validate_pyproject.error_reporting + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.depends + • setuptools.msvc + • setuptools.wheel + • subprocess + • traceback + • typing + • unittest.case + • unittest.mock + • urllib.request + • urllib3.contrib.emscripten.response + • urllib3.response + • xml.etree.ElementTree + • zipfile._path + +
+ +
+ +
+ + contextvars +SourceModule
+imports: + _contextvars + +
+ + +
+ +
+ + copy +SourceModule
+imports: + copyreg + • types + • weakref + +
+
+imported by: + PIL.GifImagePlugin + • _sre + • argparse + • collections + • dataclasses + • email.generator + • gettext + • http.cookiejar + • http.server + • logging.handlers + • requests.cookies + • smtplib + • tarfile + • weakref + • webbrowser + • xml.etree.ElementInclude + +
+ +
+ +
+ + copyreg +SourceModule
+imports: + functools + • operator + +
+
+imported by: + _pickle + • copy + • main.py + • multiprocessing.reduction + • pickle + • re + • typing + +
+ +
+ +
+ + cryptography +MissingModule
+imported by: + requests + • urllib3.contrib.pyopenssl + +
+ +
+ +
+ + csv +SourceModule
+imports: + _csv + • io + • re + • types + +
+ + +
+ +
+ + ctypes +Package
+imports: + _ctypes + • ctypes._endian + • ctypes.wintypes + • nt + • os + • struct + • sys + • types + +
+ + +
+ +
+ + ctypes._aix +SourceModule
+imports: + ctypes + • os + • re + • subprocess + • sys + +
+
+imported by: + ctypes.util + +
+ +
+ +
+ + ctypes._endian +SourceModule
+imports: + ctypes + • sys + +
+
+imported by: + ctypes + +
+ +
+ +
+ + ctypes.util +SourceModule
+imports: + 'ctypes.macholib' + • ctypes + • ctypes._aix + • importlib.machinery + • os + • re + • shutil + • struct + • subprocess + • sys + • tempfile + +
+
+imported by: + mss.darwin + • mss.linux + • pynput._util.darwin + +
+ +
+ +
+ + ctypes.wintypes +SourceModule
+imports: + ctypes + +
+ + +
+ +
+ + dataclasses +SourceModule
+imports: + _thread + • abc + • copy + • functools + • inspect + • itertools + • keyword + • re + • sys + • types + +
+ + +
+ +
+ + datetime +SourceModule
+imports: + _datetime + • _pydatetime + • time + +
+ + +
+ +
+ + decimal +SourceModule
+imports: + _decimal + • _pydecimal + +
+ + +
+ +
+ + defusedxml +MissingModule
+imported by: + PIL.Image + +
+ +
+ +
+ + difflib +SourceModule
+imports: + collections + • difflib + • heapq + • re + • types + +
+
+imported by: + difflib + • unittest.case + +
+ +
+ +
+ + dis +SourceModule
+imports: + argparse + • collections + • io + • opcode + • sys + • types + +
+
+imported by: + inspect + • setuptools.depends + +
+ +
+ +
+ + distutils +AliasNode + + +
+ +
+ + dummy_threading +MissingModule
+imported by: + requests.cookies + +
+ +
+ +
+ + email +Package + + +
+ +
+ + email._encoded_words +SourceModule
+imports: + base64 + • binascii + • email + • email.errors + • functools + • re + • string + +
+
+imported by: + email._header_value_parser + • email.message + +
+ +
+ +
+ + email._header_value_parser +SourceModule
+imports: + email + • email._encoded_words + • email.errors + • email.utils + • operator + • re + • string + • sys + • urllib + +
+
+imported by: + email + • email.headerregistry + +
+ +
+ +
+ + email._parseaddr +SourceModule
+imports: + calendar + • email + • time + +
+
+imported by: + email.utils + +
+ +
+ +
+ + email._policybase +SourceModule
+imports: + abc + • email + • email.charset + • email.header + • email.utils + +
+
+imported by: + email.feedparser + • email.message + • email.parser + • email.policy + +
+ +
+ +
+ + email.base64mime +SourceModule
+imports: + base64 + • binascii + • email + +
+
+imported by: + email.charset + • email.header + • smtplib + +
+ +
+ +
+ + email.charset +SourceModule
+imports: + email + • email.base64mime + • email.encoders + • email.errors + • email.quoprimime + • functools + +
+
+imported by: + email + • email._policybase + • email.contentmanager + • email.header + • email.message + • email.utils + +
+ +
+ +
+ + email.contentmanager +SourceModule
+imports: + binascii + • email + • email.charset + • email.errors + • email.message + • email.quoprimime + +
+
+imported by: + email.policy + +
+ +
+ +
+ + email.encoders +SourceModule
+imports: + base64 + • email + • quopri + +
+
+imported by: + email.charset + +
+ +
+ +
+ + email.errors +SourceModule
+imports: + email + +
+ + +
+ +
+ + email.feedparser +SourceModule
+imports: + collections + • email + • email._policybase + • email.errors + • email.message + • io + • re + +
+
+imported by: + email.parser + +
+ +
+ +
+ + email.generator +SourceModule
+imports: + copy + • email + • email.errors + • email.utils + • io + • random + • re + • sys + • time + +
+ + +
+ +
+ + email.header +SourceModule
+imports: + binascii + • email + • email.base64mime + • email.charset + • email.errors + • email.quoprimime + • re + +
+
+imported by: + email + • email._policybase + +
+ +
+ +
+ + email.headerregistry +SourceModule
+imports: + email + • email._header_value_parser + • email.errors + • email.utils + • types + +
+ + +
+ +
+ + email.iterators +SourceModule
+imports: + email + • io + • sys + +
+
+imported by: + email.message + +
+ +
+ +
+ + email.message +SourceModule
+imports: + binascii + • email + • email._encoded_words + • email._policybase + • email.charset + • email.errors + • email.generator + • email.iterators + • email.policy + • email.utils + • io + • quopri + • re + +
+ + +
+ +
+ + email.parser +SourceModule
+imports: + email + • email._policybase + • email.feedparser + • io + +
+ + +
+ +
+ + email.policy +SourceModule
+imports: + email + • email._policybase + • email.contentmanager + • email.headerregistry + • email.message + • email.utils + • re + • sys + +
+ + +
+ +
+ + email.quoprimime +SourceModule
+imports: + email + • re + • string + +
+
+imported by: + email.charset + • email.contentmanager + • email.header + +
+ +
+ +
+ + email.utils +SourceModule
+imports: + datetime + • email + • email._parseaddr + • email.charset + • os + • random + • re + • socket + • time + • urllib.parse + • warnings + +
+ + +
+ +
+ + encodings +Package
+imports: + _winapi + • codecs + • encodings + • encodings.aliases + • encodings.ascii + • encodings.base64_codec + • encodings.big5 + • encodings.big5hkscs + • encodings.bz2_codec + • encodings.charmap + • encodings.cp037 + • encodings.cp1006 + • encodings.cp1026 + • encodings.cp1125 + • encodings.cp1140 + • encodings.cp1250 + • encodings.cp1251 + • encodings.cp1252 + • encodings.cp1253 + • encodings.cp1254 + • encodings.cp1255 + • encodings.cp1256 + • encodings.cp1257 + • encodings.cp1258 + • encodings.cp273 + • encodings.cp424 + • encodings.cp437 + • encodings.cp500 + • encodings.cp720 + • encodings.cp737 + • encodings.cp775 + • encodings.cp850 + • encodings.cp852 + • encodings.cp855 + • encodings.cp856 + • encodings.cp857 + • encodings.cp858 + • encodings.cp860 + • encodings.cp861 + • encodings.cp862 + • encodings.cp863 + • encodings.cp864 + • encodings.cp865 + • encodings.cp866 + • encodings.cp869 + • encodings.cp874 + • encodings.cp875 + • encodings.cp932 + • encodings.cp949 + • encodings.cp950 + • encodings.euc_jis_2004 + • encodings.euc_jisx0213 + • encodings.euc_jp + • encodings.euc_kr + • encodings.gb18030 + • encodings.gb2312 + • encodings.gbk + • encodings.hex_codec + • encodings.hp_roman8 + • encodings.hz + • encodings.idna + • encodings.iso2022_jp + • encodings.iso2022_jp_1 + • encodings.iso2022_jp_2 + • encodings.iso2022_jp_2004 + • encodings.iso2022_jp_3 + • encodings.iso2022_jp_ext + • encodings.iso2022_kr + • encodings.iso8859_1 + • encodings.iso8859_10 + • encodings.iso8859_11 + • encodings.iso8859_13 + • encodings.iso8859_14 + • encodings.iso8859_15 + • encodings.iso8859_16 + • encodings.iso8859_2 + • encodings.iso8859_3 + • encodings.iso8859_4 + • encodings.iso8859_5 + • encodings.iso8859_6 + • encodings.iso8859_7 + • encodings.iso8859_8 + • encodings.iso8859_9 + • encodings.johab + • encodings.koi8_r + • encodings.koi8_t + • encodings.koi8_u + • encodings.kz1048 + • encodings.latin_1 + • encodings.mac_arabic + • encodings.mac_croatian + • encodings.mac_cyrillic + • encodings.mac_farsi + • encodings.mac_greek + • encodings.mac_iceland + • encodings.mac_latin2 + • encodings.mac_roman + • encodings.mac_romanian + • encodings.mac_turkish + • encodings.mbcs + • encodings.oem + • encodings.palmos + • encodings.ptcp154 + • encodings.punycode + • encodings.quopri_codec + • encodings.raw_unicode_escape + • encodings.rot_13 + • encodings.shift_jis + • encodings.shift_jis_2004 + • encodings.shift_jisx0213 + • encodings.tis_620 + • encodings.undefined + • encodings.unicode_escape + • encodings.utf_16 + • encodings.utf_16_be + • encodings.utf_16_le + • encodings.utf_32 + • encodings.utf_32_be + • encodings.utf_32_le + • encodings.utf_7 + • encodings.utf_8 + • encodings.utf_8_sig + • encodings.uu_codec + • encodings.zlib_codec + • sys + +
+
+imported by: + codecs + • encodings + • encodings.aliases + • encodings.ascii + • encodings.base64_codec + • encodings.big5 + • encodings.big5hkscs + • encodings.bz2_codec + • encodings.charmap + • encodings.cp037 + • encodings.cp1006 + • encodings.cp1026 + • encodings.cp1125 + • encodings.cp1140 + • encodings.cp1250 + • encodings.cp1251 + • encodings.cp1252 + • encodings.cp1253 + • encodings.cp1254 + • encodings.cp1255 + • encodings.cp1256 + • encodings.cp1257 + • encodings.cp1258 + • encodings.cp273 + • encodings.cp424 + • encodings.cp437 + • encodings.cp500 + • encodings.cp720 + • encodings.cp737 + • encodings.cp775 + • encodings.cp850 + • encodings.cp852 + • encodings.cp855 + • encodings.cp856 + • encodings.cp857 + • encodings.cp858 + • encodings.cp860 + • encodings.cp861 + • encodings.cp862 + • encodings.cp863 + • encodings.cp864 + • encodings.cp865 + • encodings.cp866 + • encodings.cp869 + • encodings.cp874 + • encodings.cp875 + • encodings.cp932 + • encodings.cp949 + • encodings.cp950 + • encodings.euc_jis_2004 + • encodings.euc_jisx0213 + • encodings.euc_jp + • encodings.euc_kr + • encodings.gb18030 + • encodings.gb2312 + • encodings.gbk + • encodings.hex_codec + • encodings.hp_roman8 + • encodings.hz + • encodings.idna + • encodings.iso2022_jp + • encodings.iso2022_jp_1 + • encodings.iso2022_jp_2 + • encodings.iso2022_jp_2004 + • encodings.iso2022_jp_3 + • encodings.iso2022_jp_ext + • encodings.iso2022_kr + • encodings.iso8859_1 + • encodings.iso8859_10 + • encodings.iso8859_11 + • encodings.iso8859_13 + • encodings.iso8859_14 + • encodings.iso8859_15 + • encodings.iso8859_16 + • encodings.iso8859_2 + • encodings.iso8859_3 + • encodings.iso8859_4 + • encodings.iso8859_5 + • encodings.iso8859_6 + • encodings.iso8859_7 + • encodings.iso8859_8 + • encodings.iso8859_9 + • encodings.johab + • encodings.koi8_r + • encodings.koi8_t + • encodings.koi8_u + • encodings.kz1048 + • encodings.latin_1 + • encodings.mac_arabic + • encodings.mac_croatian + • encodings.mac_cyrillic + • encodings.mac_farsi + • encodings.mac_greek + • encodings.mac_iceland + • encodings.mac_latin2 + • encodings.mac_roman + • encodings.mac_romanian + • encodings.mac_turkish + • encodings.mbcs + • encodings.oem + • encodings.palmos + • encodings.ptcp154 + • encodings.punycode + • encodings.quopri_codec + • encodings.raw_unicode_escape + • encodings.rot_13 + • encodings.shift_jis + • encodings.shift_jis_2004 + • encodings.shift_jisx0213 + • encodings.tis_620 + • encodings.undefined + • encodings.unicode_escape + • encodings.utf_16 + • encodings.utf_16_be + • encodings.utf_16_le + • encodings.utf_32 + • encodings.utf_32_be + • encodings.utf_32_le + • encodings.utf_7 + • encodings.utf_8 + • encodings.utf_8_sig + • encodings.uu_codec + • encodings.zlib_codec + • locale + • main.py + +
+ +
+ +
+ + encodings.aliases +SourceModule
+imports: + encodings + +
+ + +
+ +
+ + encodings.ascii +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.base64_codec +SourceModule
+imports: + base64 + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.big5 +SourceModule
+imports: + _codecs_tw + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.big5hkscs +SourceModule
+imports: + _codecs_hk + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.bz2_codec +SourceModule
+imports: + bz2 + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.charmap +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp037 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1006 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1026 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1125 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1140 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1250 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1251 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1252 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1253 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1254 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1255 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1256 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1257 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp1258 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp273 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp424 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp437 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp500 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp720 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp737 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp775 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp850 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp852 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp855 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp856 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp857 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp858 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp860 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp861 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp862 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp863 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp864 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp865 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp866 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp869 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp874 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp875 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp932 +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp949 +SourceModule
+imports: + _codecs_kr + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.cp950 +SourceModule
+imports: + _codecs_tw + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.euc_jis_2004 +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.euc_jisx0213 +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.euc_jp +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.euc_kr +SourceModule
+imports: + _codecs_kr + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.gb18030 +SourceModule
+imports: + _codecs_cn + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.gb2312 +SourceModule
+imports: + _codecs_cn + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.gbk +SourceModule
+imports: + _codecs_cn + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.hex_codec +SourceModule
+imports: + binascii + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.hp_roman8 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.hz +SourceModule
+imports: + _codecs_cn + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.idna +SourceModule
+imports: + codecs + • encodings + • re + • stringprep + • unicodedata + +
+
+imported by: + encodings + • main.py + • requests.models + +
+ +
+ +
+ + encodings.iso2022_jp +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_jp_1 +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_jp_2 +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_jp_2004 +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_jp_3 +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_jp_ext +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso2022_kr +SourceModule
+imports: + _codecs_iso2022 + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_1 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_10 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_11 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_13 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_14 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_15 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_16 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_2 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_3 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_4 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_5 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_6 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_7 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_8 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.iso8859_9 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.johab +SourceModule
+imports: + _codecs_kr + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.koi8_r +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.koi8_t +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.koi8_u +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.kz1048 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.latin_1 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_arabic +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_croatian +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_cyrillic +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_farsi +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_greek +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_iceland +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_latin2 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_roman +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_romanian +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mac_turkish +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.mbcs +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.oem +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.palmos +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.ptcp154 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.punycode +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.quopri_codec +SourceModule
+imports: + codecs + • encodings + • io + • quopri + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.raw_unicode_escape +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.rot_13 +SourceModule
+imports: + codecs + • encodings + • sys + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.shift_jis +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.shift_jis_2004 +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.shift_jisx0213 +SourceModule
+imports: + _codecs_jp + • _multibytecodec + • codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.tis_620 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.undefined +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.unicode_escape +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_16 +SourceModule
+imports: + codecs + • encodings + • sys + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_16_be +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_16_le +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_32 +SourceModule
+imports: + codecs + • encodings + • sys + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_32_be +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_32_le +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_7 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_8 +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.utf_8_sig +SourceModule
+imports: + codecs + • encodings + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.uu_codec +SourceModule
+imports: + binascii + • codecs + • encodings + • io + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + encodings.zlib_codec +SourceModule
+imports: + codecs + • encodings + • zlib + +
+
+imported by: + encodings + • main.py + +
+ +
+ +
+ + enum +SourceModule
+imports: + builtins + • functools + • operator + • sys + • types + • warnings + +
+ + +
+ +
+ + errno (builtin module) + +
+ +
+ + evdev +Package
+imports: + evdev + • evdev._input + • evdev._uinput + • evdev.device + • evdev.ecodes + • evdev.eventio + • evdev.events + • evdev.ff + • evdev.uinput + • evdev.util + +
+ + +
+ +
+ + evdev._input /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_input.cpython-312-x86_64-linux-gnu.so
+imports: + evdev + +
+
+imported by: + evdev + • evdev.device + • evdev.eventio + +
+ +
+ +
+ + evdev._uinput /home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/evdev/_uinput.cpython-312-x86_64-linux-gnu.so
+imports: + evdev + +
+
+imported by: + evdev + • evdev.eventio + • evdev.uinput + +
+ +
+ +
+ + evdev.device +SourceModule
+imports: + contextlib + • evdev + • evdev._input + • evdev.ecodes + • evdev.eventio + • evdev.eventio_async + • evdev.util + • os + • typing + +
+
+imported by: + evdev + • evdev.uinput + +
+ +
+ +
+ + evdev.ecodes +SourceModule
+imports: + evdev + • typing + +
+
+imported by: + evdev + • evdev.device + • evdev.eventio + • evdev.events + • evdev.ff + • evdev.uinput + • evdev.util + +
+ +
+ +
+ + evdev.eventio +SourceModule
+imports: + evdev + • evdev._input + • evdev._uinput + • evdev.ecodes + • evdev.events + • fcntl + • functools + • os + • select + • typing + +
+
+imported by: + evdev + • evdev.device + • evdev.eventio_async + • evdev.uinput + +
+ +
+ +
+ + evdev.eventio_async +SourceModule
+imports: + asyncio + • evdev + • evdev.eventio + • evdev.events + • select + • sys + • typing + +
+
+imported by: + evdev.device + • evdev.uinput + +
+ +
+ +
+ + evdev.events +SourceModule
+imports: + evdev + • evdev.ecodes + • typing + +
+
+imported by: + evdev + • evdev.eventio + • evdev.eventio_async + • evdev.uinput + • evdev.util + • pynput.keyboard._uinput + +
+ +
+ +
+ + evdev.ff +SourceModule
+imports: + ctypes + • evdev + • evdev.ecodes + +
+
+imported by: + evdev + • evdev.uinput + +
+ +
+ +
+ + evdev.uinput +SourceModule
+imports: + collections + • ctypes + • evdev + • evdev._uinput + • evdev.device + • evdev.ecodes + • evdev.eventio + • evdev.eventio_async + • evdev.events + • evdev.ff + • evdev.util + • os + • platform + • re + • stat + • time + • typing + +
+
+imported by: + evdev + +
+ +
+ +
+ + evdev.util +SourceModule
+imports: + collections + • evdev + • evdev.ecodes + • evdev.events + • glob + • os + • re + • stat + • typing + +
+
+imported by: + evdev + • evdev.device + • evdev.uinput + +
+ +
+ +
+ + event_captor +SourceModule
+imports: + __future__ + • pynput + • pynput.mouse + • typing + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + fcntl (builtin module)
+imported by: + Xlib.support.unix_connect + • evdev.eventio + • subprocess + +
+ +
+ +
+ + fnmatch +SourceModule
+imports: + functools + • os + • posixpath + • re + +
+ + +
+ +
+ + fractions +SourceModule
+imports: + decimal + • functools + • math + • numbers + • operator + • re + • sys + +
+
+imported by: + PIL.TiffImagePlugin + • statistics + +
+ +
+ +
+ + ftplib +SourceModule
+imports: + netrc + • re + • socket + • ssl + • sys + +
+
+imported by: + urllib.request + +
+ +
+ +
+ + functools +SourceModule
+imports: + _functools + • _thread + • abc + • collections + • reprlib + • types + • typing + • weakref + +
+
+imported by: + PIL.GifImagePlugin + • PIL.ImageCms + • PIL.ImageColor + • PIL.ImageFilter + • PIL.ImageMode + • PIL.ImageOps + • PIL.PsdImagePlugin + • asyncio.base_events + • asyncio.format_helpers + • asyncio.runners + • asyncio.selector_events + • asyncio.tasks + • asyncio.threads + • asyncio.windows_events + • charset_normalizer.cd + • charset_normalizer.md + • charset_normalizer.utils + • concurrent.futures.process + • configparser + • contextlib + • copyreg + • dataclasses + • email._encoded_words + • email.charset + • enum + • evdev.eventio + • fnmatch + • fractions + • importlib.metadata + • importlib.metadata._adapters + • importlib.metadata._functools + • importlib.resources._common + • importlib.resources._legacy + • inspect + • ipaddress + • linecache + • locale + • main.py + • multiprocessing.reduction + • multiprocessing.shared_memory + • operator + • packaging._manylinux + • packaging._musllinux + • packaging.utils + • pathlib + • pickle + • pkgutil + • platform + • pynput._util + • pynput._util.xorg + • pynput.keyboard._uinput + • pystray._base + • pystray._util.gtk + • pystray._xorg + • re + • setuptools + • setuptools._discovery + • setuptools._distutils._modified + • setuptools._distutils.compat.py39 + • setuptools._distutils.dir_util + • setuptools._distutils.filelist + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._entry_points + • setuptools._reqs + • setuptools._static + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._functools + • setuptools._vendor.jaraco.context + • setuptools._vendor.jaraco.functools + • setuptools._vendor.jaraco.text + • setuptools._vendor.more_itertools.more + • setuptools._vendor.more_itertools.recipes + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._musllinux + • setuptools._vendor.packaging.utils + • setuptools._vendor.tomli._re + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.metadata + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging._musllinux + • setuptools.command.egg_info + • setuptools.config + • setuptools.config._apply_pyprojecttoml + • setuptools.config._validate_pyproject + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.dist + • setuptools.extension + • setuptools.wheel + • six + • statistics + • tempfile + • threading + • tokenize + • tomllib._re + • tracemalloc + • types + • typing + • unittest.case + • unittest.loader + • unittest.mock + • unittest.result + • unittest.signals + • urllib.parse + • urllib3.poolmanager + • urllib3.util.wait + +
+ +
+ +
+ + gc (builtin module)
+imports: + time + +
+
+imported by: + _posixsubprocess + • weakref + +
+ +
+ +
+ + genericpath +SourceModule
+imports: + os + • stat + +
+
+imported by: + main.py + • ntpath + • posixpath + +
+ +
+ +
+ + getopt +SourceModule
+imports: + gettext + • os + • sys + +
+
+imported by: + base64 + • mimetypes + • pydoc + • quopri + • setuptools._distutils.fancy_getopt + • webbrowser + +
+ +
+ +
+ + getpass +SourceModule
+imports: + contextlib + • io + • msvcrt + • os + • pwd + • sys + • termios + • warnings + +
+
+imported by: + urllib.request + +
+ +
+ +
+ + gettext +SourceModule
+imports: + builtins + • copy + • errno + • locale + • operator + • os + • re + • struct + • sys + • warnings + +
+
+imported by: + argparse + • getopt + +
+ +
+ +
+ + gi +MissingModule + +
+ +
+ + glob +SourceModule
+imports: + contextlib + • fnmatch + • itertools + • os + • re + • stat + • sys + +
+ + +
+ +
+ + grp (builtin module)
+imported by: + pathlib + • setuptools._distutils.archive_util + • shutil + • subprocess + • tarfile + +
+ +
+ +
+ + gzip +SourceModule
+imports: + _compression + • argparse + • builtins + • errno + • io + • os + • struct + • sys + • time + • warnings + • zlib + +
+
+imported by: + PIL.FitsImagePlugin + • tarfile + • xmlrpc.client + +
+ +
+ +
+ + h2 +MissingModule
+imported by: + urllib3.http2.connection + +
+ +
+ +
+ + hashlib +SourceModule
+imports: + _blake2 + • _hashlib + • _md5 + • _sha1 + • _sha2 + • _sha3 + • logging + +
+ + +
+ +
+ + heapq +SourceModule
+imports: + _heapq + +
+ + +
+ +
+ + hmac +SourceModule
+imports: + _hashlib + • _operator + • hashlib + • warnings + +
+
+imported by: + multiprocessing.connection + • secrets + • smtplib + • urllib3.util.ssl_ + +
+ +
+ +
+ + html +Package
+imports: + html.entities + • re + +
+
+imported by: + html.entities + • http.server + +
+ +
+ +
+ + html.entities +SourceModule
+imports: + html + +
+
+imported by: + html + +
+ +
+ +
+ + http +Package
+imports: + enum + +
+
+imported by: + http.client + • http.cookiejar + • http.cookies + • http.server + • requests.compat + +
+ +
+ +
+ + http.client +SourceModule
+imports: + collections.abc + • email.message + • email.parser + • errno + • http + • io + • re + • socket + • ssl + • sys + • urllib.parse + +
+ + +
+ +
+ + http.cookiejar +SourceModule
+imports: + calendar + • copy + • datetime + • http + • http.client + • io + • logging + • os + • re + • threading + • time + • traceback + • urllib.parse + • urllib.request + • warnings + +
+
+imported by: + requests.compat + • urllib.request + +
+ +
+ +
+ + http.cookies +SourceModule
+imports: + http + • re + • string + • time + • types + +
+
+imported by: + requests.compat + +
+ +
+ +
+ + http.server +SourceModule
+imports: + argparse + • base64 + • binascii + • contextlib + • copy + • datetime + • email.utils + • html + • http + • http.client + • io + • itertools + • mimetypes + • os + • posixpath + • pwd + • select + • shutil + • socket + • socketserver + • subprocess + • sys + • time + • urllib.parse + +
+
+imported by: + pydoc + +
+ +
+ +
+ + idna +Package
+imports: + idna + • idna.core + • idna.idnadata + • idna.intranges + • idna.package_data + +
+ + +
+ +
+ + idna.core +SourceModule
+imports: + bisect + • idna + • idna.idnadata + • idna.intranges + • idna.uts46data + • re + • typing + • unicodedata + +
+
+imported by: + idna + +
+ +
+ +
+ + idna.idnadata +SourceModule
+imports: + idna + +
+
+imported by: + idna + • idna.core + +
+ +
+ +
+ + idna.intranges +SourceModule
+imports: + bisect + • idna + • typing + +
+
+imported by: + idna + • idna.core + +
+ +
+ +
+ + idna.package_data +SourceModule
+imports: + idna + +
+
+imported by: + idna + +
+ +
+ +
+ + idna.uts46data +SourceModule
+imports: + idna + • typing + +
+
+imported by: + idna.core + +
+ +
+ +
+ + importlib +Package + + +
+ +
+ + importlib._abc +SourceModule
+imports: + abc + • importlib + • importlib._bootstrap + +
+
+imported by: + importlib.abc + • importlib.util + +
+ +
+ +
+ + importlib._bootstrap +SourceModule
+imports: + _frozen_importlib_external + • importlib + +
+
+imported by: + importlib + • importlib._abc + • importlib.machinery + • importlib.util + • pydoc + +
+ +
+ +
+ + importlib._bootstrap_external +SourceModule
+imports: + _imp + • _io + • _warnings + • importlib + • importlib.metadata + • importlib.readers + • marshal + • nt + • posix + • sys + • tokenize + • winreg + +
+
+imported by: + importlib + • importlib.abc + • importlib.machinery + • importlib.util + • py_compile + • pydoc + +
+ +
+ +
+ + importlib.abc +SourceModule + + +
+ +
+ + importlib.machinery +SourceModule + + +
+ +
+ + importlib.metadata +Package + + +
+ +
+ + importlib.metadata._adapters +SourceModule
+imports: + email.message + • functools + • importlib.metadata + • importlib.metadata._text + • re + • textwrap + • warnings + +
+
+imported by: + importlib.metadata + +
+ +
+ +
+ + importlib.metadata._collections +SourceModule
+imports: + collections + • importlib.metadata + +
+
+imported by: + importlib.metadata + +
+ +
+ +
+ + importlib.metadata._functools +SourceModule
+imports: + functools + • importlib.metadata + • types + +
+
+imported by: + importlib.metadata + • importlib.metadata._text + +
+ +
+ +
+ + importlib.metadata._itertools +SourceModule
+imports: + importlib.metadata + • itertools + +
+
+imported by: + importlib.metadata + +
+ +
+ +
+ + importlib.metadata._meta +SourceModule
+imports: + importlib.metadata + • typing + +
+
+imported by: + importlib.metadata + +
+ +
+ +
+ + importlib.metadata._text +SourceModule +
+imported by: + importlib.metadata._adapters + +
+ +
+ +
+ + importlib.readers +SourceModule
+imports: + importlib + • importlib.resources.readers + +
+
+imported by: + importlib._bootstrap_external + • zipimport + +
+ +
+ +
+ + importlib.resources +Package + + +
+ +
+ + importlib.resources._adapters +SourceModule
+imports: + contextlib + • importlib.resources + • importlib.resources.abc + • io + +
+
+imported by: + importlib.resources._common + +
+ +
+ +
+ + importlib.resources._common +SourceModule
+imports: + contextlib + • functools + • importlib + • importlib.resources + • importlib.resources._adapters + • importlib.resources.abc + • inspect + • itertools + • os + • pathlib + • tempfile + • types + • typing + • warnings + +
+ + +
+ +
+ + importlib.resources._itertools +SourceModule
+imports: + importlib.resources + +
+
+imported by: + importlib.resources.readers + +
+ +
+ +
+ + importlib.resources._legacy +SourceModule
+imports: + functools + • importlib.resources + • importlib.resources._common + • os + • pathlib + • types + • typing + • warnings + +
+
+imported by: + importlib.resources + +
+ +
+ +
+ + importlib.resources.abc +SourceModule
+imports: + abc + • importlib.resources + • io + • itertools + • os + • pathlib + • typing + +
+ + +
+ +
+ + importlib.resources.readers +SourceModule +
+imported by: + importlib.readers + +
+ +
+ +
+ + importlib.util +SourceModule
+imports: + _imp + • importlib + • importlib._abc + • importlib._bootstrap + • importlib._bootstrap_external + • sys + • threading + • types + +
+
+imported by: + _distutils_hack + • pkgutil + • py_compile + • pydoc + • runpy + • setuptools._distutils.util + • setuptools._imp + • six + • zipfile + +
+ +
+ +
+ + importlib_metadata +AliasNode +
+imported by: + setuptools._importlib + +
+ +
+ +
+ + importlib_resources +MissingModule
+imported by: + setuptools._vendor.jaraco.text + +
+ +
+ +
+ + inspect +SourceModule
+imports: + abc + • argparse + • ast + • builtins + • collections + • collections.abc + • dis + • enum + • functools + • importlib + • importlib.machinery + • itertools + • keyword + • linecache + • operator + • os + • re + • sys + • token + • tokenize + • types + +
+ + +
+ +
+ + io +SourceModule
+imports: + _io + • abc + +
+
+imported by: + PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.FtexImagePlugin + • PIL.GifImagePlugin + • PIL.GimpPaletteFile + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.Image + • PIL.ImageFile + • PIL.ImageFont + • PIL.ImageQt + • PIL.ImageTk + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.MspImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PngImagePlugin + • PIL.PsdImagePlugin + • PIL.TiffImagePlugin + • PIL.WebPImagePlugin + • _compression + • asyncio.proactor_events + • asyncio.unix_events + • bz2 + • configparser + • csv + • dis + • email.feedparser + • email.generator + • email.iterators + • email.message + • email.parser + • encodings.quopri_codec + • encodings.uu_codec + • getpass + • gzip + • http.client + • http.cookiejar + • http.server + • importlib.resources._adapters + • importlib.resources.abc + • logging + • logging.handlers + • lzma + • main.py + • multiprocessing.connection + • multiprocessing.popen_forkserver + • multiprocessing.popen_spawn_posix + • multiprocessing.reduction + • os + • pathlib + • pickle + • pprint + • pydoc + • pystray._darwin + • quopri + • requests.compat + • requests.models + • requests.utils + • runpy + • setuptools._vendor.wheel.macosx_libfile + • setuptools._vendor.wheel.wheelfile + • setuptools._vendor.zipp + • setuptools._vendor.zipp.compat.py310 + • setuptools.command._requirestxt + • setuptools.config._validate_pyproject.error_reporting + • setuptools.dist + • shlex + • site + • six + • smtplib + • socket + • socketserver + • subprocess + • tarfile + • tempfile + • tokenize + • unittest.mock + • unittest.result + • urllib.error + • urllib.request + • urllib3.contrib.emscripten.fetch + • urllib3.contrib.emscripten.response + • urllib3.contrib.pyopenssl + • urllib3.filepost + • urllib3.response + • urllib3.util.request + • urllib3.util.ssltransport + • uuid + • xml.etree.ElementTree + • xml.sax + • xml.sax.saxutils + • xmlrpc.client + • zipfile + • zipfile._path + +
+ +
+ +
+ + ipaddress +SourceModule
+imports: + functools + • re + +
+ + +
+ +
+ + itertools (builtin module)
+imported by: + PIL.GifImagePlugin + • PIL.ImageFile + • PIL.PngImagePlugin + • PIL.TiffImagePlugin + • _pydecimal + • asyncio.base_events + • asyncio.selector_events + • asyncio.tasks + • asyncio.unix_events + • asyncio.windows_utils + • calendar + • collections + • concurrent.futures.process + • concurrent.futures.thread + • configparser + • dataclasses + • glob + • http.server + • importlib.metadata + • importlib.metadata._itertools + • importlib.resources._common + • importlib.resources.abc + • importlib.resources.readers + • inspect + • multiprocessing.connection + • multiprocessing.pool + • multiprocessing.process + • multiprocessing.util + • packaging.specifiers + • packaging.version + • pickle + • platform + • pynput._util.win32 + • pynput._util.xorg + • pynput.keyboard + • pystray._base + • random + • reprlib + • setuptools._distutils.command.sdist + • setuptools._distutils.compat.py39 + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.dir_util + • setuptools._entry_points + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._itertools + • setuptools._vendor.jaraco.functools + • setuptools._vendor.jaraco.text + • setuptools._vendor.more_itertools.more + • setuptools._vendor.more_itertools.recipes + • setuptools._vendor.packaging.specifiers + • setuptools._vendor.packaging.version + • setuptools._vendor.wheel.cli.tags + • setuptools._vendor.wheel.metadata + • setuptools._vendor.wheel.vendored.packaging.specifiers + • setuptools._vendor.wheel.vendored.packaging.version + • setuptools._vendor.zipp + • setuptools.command._requirestxt + • setuptools.command.sdist + • setuptools.config._apply_pyprojecttoml + • setuptools.config._validate_pyproject.formats + • setuptools.config.expand + • setuptools.discovery + • setuptools.dist + • setuptools.installer + • setuptools.msvc + • setuptools.wheel + • six + • statistics + • threading + • tokenize + • traceback + • urllib3.util.retry + • weakref + • zipfile._path + +
+ +
+ +
+ + jaraco +MissingModule + +
+ +
+ + jaraco.context +AliasNode +
+imported by: + setuptools._vendor.jaraco.text + +
+ +
+ +
+ + jaraco.functools +AliasNode + + +
+ +
+ + jaraco.text +AliasNode
+imports: + jaraco + • setuptools._vendor.jaraco.text + +
+ + +
+ +
+ + java +MissingModule
+imported by: + platform + +
+ +
+ +
+ + js +MissingModule
+imported by: + urllib3.contrib.emscripten.fetch + +
+ +
+ +
+ + json +Package
+imports: + codecs + • json.decoder + • json.encoder + • json.scanner + +
+ + +
+ +
+ + json.decoder +SourceModule
+imports: + _json + • json + • json.scanner + • re + +
+
+imported by: + _json + • json + +
+ +
+ +
+ + json.encoder +SourceModule
+imports: + _json + • json + • re + +
+
+imported by: + json + +
+ +
+ +
+ + json.scanner +SourceModule
+imports: + _json + • json + • re + +
+
+imported by: + json + • json.decoder + +
+ +
+ +
+ + key_captor +SourceModule
+imports: + __future__ + • pynput + • pynput.keyboard + • typing + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + keyword +SourceModule
+imported by: + collections + • dataclasses + • inspect + • main.py + • rlcompleter + +
+ +
+ +
+ + linecache +SourceModule
+imports: + functools + • os + • sys + • tokenize + +
+
+imported by: + asyncio.base_tasks + • inspect + • main.py + • traceback + • tracemalloc + • warnings + +
+ +
+ +
+ + locale +SourceModule
+imports: + _collections_abc + • _locale + • builtins + • encodings + • encodings.aliases + • functools + • os + • re + • sys + • warnings + +
+
+imported by: + _pydecimal + • _strptime + • calendar + • gettext + • main.py + • subprocess + +
+ +
+ +
+ + logger_conf +SourceModule
+imports: + __future__ + • config + • logging + • logging.handlers + +
+
+imported by: + main.py + +
+ +
+ +
+ + logging +Package
+imports: + atexit + • collections.abc + • io + • os + • pickle + • re + • string + • sys + • threading + • time + • traceback + • types + • warnings + • weakref + +
+ + +
+ +
+ + logging.handlers +SourceModule
+imports: + base64 + • copy + • email.message + • email.utils + • http.client + • io + • logging + • os + • pickle + • queue + • re + • smtplib + • socket + • stat + • struct + • threading + • time + • urllib.parse + • win32evtlog + • win32evtlogutil + +
+
+imported by: + logger_conf + +
+ +
+ +
+ + lzma +SourceModule
+imports: + _compression + • _lzma + • builtins + • io + • os + +
+
+imported by: + shutil + • tarfile + • zipfile + +
+ +
+ +
+ + marshal (builtin module) + +
+ +
+ + math (builtin module) + +
+ +
+ + mimetypes +SourceModule
+imports: + _winapi + • getopt + • os + • posixpath + • sys + • urllib.parse + • winreg + +
+
+imported by: + http.server + • urllib.request + • urllib3.fields + +
+ +
+ +
+ + mmap /usr/lib/python3.12/lib-dynload/mmap.cpython-312-x86_64-linux-gnu.so + +
+ +
+ + more_itertools +AliasNode + + +
+ +
+ + mss +Package
+imports: + mss.darwin + • mss.exception + • mss.factory + • mss.linux + • mss.windows + +
+
+imported by: + mss.base + • mss.darwin + • mss.exception + • mss.factory + • mss.linux + • mss.models + • mss.screenshot + • mss.tools + • mss.windows + • screen_capturer + +
+ +
+ +
+ + mss.base +SourceModule
+imports: + __future__ + • abc + • collections.abc + • datetime + • mss + • mss.exception + • mss.models + • mss.screenshot + • mss.tools + • threading + • typing + +
+
+imported by: + mss.darwin + • mss.factory + • mss.linux + • mss.windows + +
+ +
+ +
+ + mss.darwin +SourceModule
+imports: + __future__ + • ctypes + • ctypes.util + • mss + • mss.base + • mss.exception + • mss.models + • mss.screenshot + • platform + • sys + • typing + +
+
+imported by: + mss + • mss.factory + +
+ +
+ +
+ + mss.exception +SourceModule
+imports: + __future__ + • mss + • typing + +
+
+imported by: + mss + • mss.base + • mss.darwin + • mss.factory + • mss.linux + • mss.screenshot + • mss.windows + +
+ +
+ +
+ + mss.factory +SourceModule
+imports: + mss + • mss.base + • mss.darwin + • mss.exception + • mss.linux + • mss.windows + • platform + • typing + +
+
+imported by: + mss + +
+ +
+ +
+ + mss.linux +SourceModule
+imports: + __future__ + • contextlib + • ctypes + • ctypes.util + • mss + • mss.base + • mss.exception + • mss.models + • mss.screenshot + • os + • threading + • typing + +
+
+imported by: + mss + • mss.factory + +
+ +
+ +
+ + mss.models +SourceModule
+imports: + mss + • typing + +
+
+imported by: + mss.base + • mss.darwin + • mss.linux + • mss.screenshot + • mss.windows + +
+ +
+ +
+ + mss.screenshot +SourceModule
+imports: + __future__ + • collections.abc + • mss + • mss.exception + • mss.models + • typing + +
+
+imported by: + mss.base + • mss.darwin + • mss.linux + • mss.windows + +
+ +
+ +
+ + mss.tools +SourceModule
+imports: + __future__ + • mss + • os + • pathlib + • struct + • typing + • zlib + +
+
+imported by: + mss.base + • screen_capturer + +
+ +
+ +
+ + mss.windows +SourceModule
+imports: + __future__ + • ctypes + • ctypes.wintypes + • mss + • mss.base + • mss.exception + • mss.models + • mss.screenshot + • sys + • threading + • typing + +
+
+imported by: + mss + • mss.factory + +
+ +
+ +
+ + msvcrt +MissingModule + +
+ +
+ + multiprocessing +Package + + +
+ +
+ + multiprocessing.AuthenticationError +MissingModule
+imported by: + multiprocessing + • multiprocessing.connection + +
+ +
+ +
+ + multiprocessing.BufferTooShort +MissingModule
+imported by: + multiprocessing + • multiprocessing.connection + +
+ +
+ +
+ + multiprocessing.TimeoutError +MissingModule
+imported by: + multiprocessing + • multiprocessing.pool + +
+ +
+ +
+ + multiprocessing.connection +SourceModule + + +
+ +
+ + multiprocessing.context +SourceModule + + +
+ +
+ + multiprocessing.dummy +Package
+imports: + array + • multiprocessing + • multiprocessing.dummy.connection + • multiprocessing.pool + • queue + • sys + • threading + • weakref + +
+ + +
+ +
+ + multiprocessing.dummy.connection +SourceModule
+imports: + multiprocessing.dummy + • queue + +
+
+imported by: + multiprocessing.dummy + +
+ +
+ +
+ + multiprocessing.forkserver +SourceModule + + +
+ +
+ + multiprocessing.get_context +MissingModule + +
+ +
+ + multiprocessing.get_start_method +MissingModule
+imported by: + multiprocessing + • multiprocessing.spawn + +
+ +
+ +
+ + multiprocessing.heap +SourceModule
+imports: + _winapi + • bisect + • collections + • mmap + • multiprocessing + • multiprocessing.context + • multiprocessing.util + • os + • sys + • tempfile + • threading + +
+ + +
+ +
+ + multiprocessing.managers +SourceModule +
+imported by: + multiprocessing.context + +
+ +
+ +
+ + multiprocessing.pool +SourceModule + + +
+ +
+ + multiprocessing.popen_fork +SourceModule
+imports: + multiprocessing + • multiprocessing.connection + • multiprocessing.util + • os + • signal + +
+ + +
+ +
+ + multiprocessing.popen_forkserver +SourceModule +
+imported by: + multiprocessing.context + +
+ +
+ +
+ + multiprocessing.popen_spawn_posix +SourceModule +
+imported by: + multiprocessing.context + +
+ +
+ +
+ + multiprocessing.popen_spawn_win32 +SourceModule
+imports: + _winapi + • msvcrt + • multiprocessing + • multiprocessing.context + • multiprocessing.spawn + • multiprocessing.util + • os + • signal + • sys + +
+
+imported by: + multiprocessing.context + +
+ +
+ +
+ + multiprocessing.process +SourceModule + + +
+ +
+ + multiprocessing.queues +SourceModule + + +
+ +
+ + multiprocessing.reduction +SourceModule
+imports: + _winapi + • abc + • array + • copyreg + • functools + • io + • multiprocessing + • multiprocessing.context + • multiprocessing.resource_sharer + • os + • pickle + • socket + • sys + +
+
+imported by: + multiprocessing + • multiprocessing.context + +
+ +
+ +
+ + multiprocessing.resource_sharer +SourceModule + + +
+ +
+ + multiprocessing.resource_tracker +SourceModule
+imports: + _multiprocessing + • _posixshmem + • multiprocessing + • multiprocessing.spawn + • multiprocessing.util + • os + • signal + • sys + • threading + • warnings + +
+ + +
+ +
+ + multiprocessing.set_start_method +MissingModule
+imported by: + multiprocessing + • multiprocessing.spawn + +
+ +
+ +
+ + multiprocessing.shared_memory +SourceModule
+imports: + _posixshmem + • _winapi + • errno + • functools + • mmap + • multiprocessing + • multiprocessing.resource_tracker + • os + • secrets + • struct + • types + +
+
+imported by: + multiprocessing + • multiprocessing.managers + +
+ +
+ +
+ + multiprocessing.sharedctypes +SourceModule +
+imported by: + multiprocessing.context + +
+ +
+ +
+ + multiprocessing.spawn +SourceModule + + +
+ +
+ + multiprocessing.synchronize +SourceModule + + +
+ +
+ + multiprocessing.util +SourceModule + + +
+ +
+ + netrc +SourceModule
+imports: + os + • pwd + • stat + +
+
+imported by: + ftplib + • requests.utils + +
+ +
+ +
+ + nt +MissingModule
+imported by: + ctypes + • importlib._bootstrap_external + • ntpath + • os + • shutil + +
+ +
+ +
+ + ntpath +SourceModule
+imports: + _winapi + • genericpath + • nt + • os + • stat + • string + • sys + +
+
+imported by: + main.py + • os + • pathlib + +
+ +
+ +
+ + nturl2path +SourceModule
+imports: + string + • urllib.parse + +
+
+imported by: + urllib.request + +
+ +
+ +
+ + numbers +SourceModule
+imports: + abc + +
+
+imported by: + PIL.TiffImagePlugin + • PIL._typing + • _pydecimal + • fractions + • setuptools.dist + • statistics + +
+ +
+ +
+ + numpy +MissingModule
+imported by: + PIL._typing + +
+ +
+ +
+ + objc +MissingModule
+imported by: + pynput._util.darwin + • pystray._darwin + +
+ +
+ +
+ + olefile +MissingModule
+imported by: + PIL.FpxImagePlugin + • PIL.MicImagePlugin + +
+ +
+ +
+ + opcode +SourceModule
+imports: + _opcode + +
+
+imported by: + dis + +
+ +
+ +
+ + operator +SourceModule
+imports: + _operator + • builtins + • functools + +
+ + +
+ +
+ + os +SourceModule
+imports: + _collections_abc + • abc + • io + • nt + • ntpath + • os.path + • posix + • posixpath + • stat + • subprocess + • sys + • warnings + +
+
+imported by: + PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.EpsImagePlugin + • PIL.FliImagePlugin + • PIL.GifImagePlugin + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.ImImagePlugin + • PIL.Image + • PIL.ImageFile + • PIL.ImageFont + • PIL.ImageShow + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.MpoImagePlugin + • PIL.PdfImagePlugin + • PIL.PdfParser + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.TiffImagePlugin + • PIL._typing + • PIL._util + • PIL.features + • Xlib.rdb + • Xlib.support.unix_connect + • Xlib.xauth + • _aix_support + • _distutils_hack + • _sitebuiltins + • argparse + • asyncio.base_events + • asyncio.coroutines + • asyncio.events + • asyncio.proactor_events + • asyncio.selector_events + • asyncio.unix_events + • asyncio.windows_utils + • bz2 + • charset_normalizer.api + • concurrent.futures.process + • concurrent.futures.thread + • config + • configparser + • contextlib + • ctypes + • ctypes._aix + • ctypes.util + • email.utils + • evdev.device + • evdev.eventio + • evdev.uinput + • evdev.util + • fnmatch + • genericpath + • getopt + • getpass + • gettext + • glob + • gzip + • http.cookiejar + • http.server + • importlib.metadata + • importlib.resources._common + • importlib.resources._legacy + • importlib.resources.abc + • inspect + • linecache + • locale + • logging + • logging.handlers + • lzma + • main.py + • mimetypes + • mss.linux + • mss.tools + • multiprocessing.connection + • multiprocessing.context + • multiprocessing.forkserver + • multiprocessing.heap + • multiprocessing.managers + • multiprocessing.pool + • multiprocessing.popen_fork + • multiprocessing.popen_forkserver + • multiprocessing.popen_spawn_posix + • multiprocessing.popen_spawn_win32 + • multiprocessing.process + • multiprocessing.queues + • multiprocessing.reduction + • multiprocessing.resource_sharer + • multiprocessing.resource_tracker + • multiprocessing.shared_memory + • multiprocessing.spawn + • multiprocessing.util + • netrc + • ntpath + • os.path + • packaging._elffile + • packaging._manylinux + • packaging.markers + • pathlib + • pkgutil + • platform + • posixpath + • py_compile + • pydoc + • pyi_rth_inspect.py + • pyi_rth_setuptools.py + • pynput._util + • pynput.keyboard._uinput + • pystray + • pystray._util + • pystray._util.gtk + • pystray._util.notify_dbus + • random + • raw_session + • requests.auth + • requests.sessions + • requests.utils + • runpy + • screen_capturer + • setuptools + • setuptools._core_metadata + • setuptools._distutils.archive_util + • setuptools._distutils.cmd + • setuptools._distutils.command.bdist + • setuptools._distutils.command.build + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.sdist + • setuptools._distutils.compilers.C.base + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.core + • setuptools._distutils.debug + • setuptools._distutils.dir_util + • setuptools._distutils.dist + • setuptools._distutils.extension + • setuptools._distutils.file_util + • setuptools._distutils.filelist + • setuptools._distutils.spawn + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._imp + • setuptools._path + • setuptools._shutil + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._meta + • setuptools._vendor.importlib_metadata.compat.py311 + • setuptools._vendor.jaraco.context + • setuptools._vendor.packaging._elffile + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging.markers + • setuptools._vendor.wheel.cli + • setuptools._vendor.wheel.cli.tags + • setuptools._vendor.wheel.macosx_libfile + • setuptools._vendor.wheel.vendored.packaging._elffile + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging.markers + • setuptools._vendor.zipp.glob + • setuptools.archive_util + • setuptools.command.bdist_egg + • setuptools.command.bdist_wheel + • setuptools.command.egg_info + • setuptools.command.sdist + • setuptools.command.setopt + • setuptools.config._apply_pyprojecttoml + • setuptools.config._validate_pyproject.error_reporting + • setuptools.config._validate_pyproject.formats + • setuptools.config.expand + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.discovery + • setuptools.dist + • setuptools.glob + • setuptools.installer + • setuptools.msvc + • setuptools.warnings + • setuptools.wheel + • shlex + • shutil + • site + • socket + • socketserver + • ssl + • storage + • subprocess + • sysconfig + • tarfile + • tempfile + • threading + • tray_ui + • unittest.loader + • unittest.main + • uploader + • urllib.request + • urllib3.connection + • urllib3.contrib.emscripten.connection + • urllib3.filepost + • urllib3.util.ssl_ + • uuid + • webbrowser + • xml.sax + • xml.sax.saxutils + • zipfile + +
+ +
+ +
+ + os.path +AliasNode
+imports: + os + • posixpath + +
+ + +
+ +
+ + packaging +Package + + +
+ +
+ + packaging._elffile +SourceModule
+imports: + __future__ + • enum + • os + • packaging + • struct + • typing + +
+
+imported by: + packaging._manylinux + • packaging._musllinux + +
+ +
+ +
+ + packaging._manylinux +SourceModule
+imports: + __future__ + • _manylinux + • collections + • contextlib + • ctypes + • functools + • os + • packaging + • packaging._elffile + • re + • sys + • typing + • warnings + +
+
+imported by: + packaging + • packaging.tags + +
+ +
+ +
+ + packaging._musllinux +SourceModule
+imports: + __future__ + • functools + • packaging + • packaging._elffile + • re + • subprocess + • sys + • sysconfig + • typing + +
+
+imported by: + packaging + • packaging.tags + +
+ +
+ +
+ + packaging._parser +SourceModule
+imports: + __future__ + • ast + • packaging + • packaging._tokenizer + • typing + +
+
+imported by: + packaging.markers + • packaging.requirements + +
+ +
+ +
+ + packaging._structures +SourceModule
+imports: + packaging + +
+
+imported by: + packaging.version + +
+ +
+ +
+ + packaging._tokenizer +SourceModule
+imports: + __future__ + • contextlib + • dataclasses + • packaging + • packaging.specifiers + • re + • typing + +
+ + +
+ +
+ + packaging.licenses +Package
+imports: + __future__ + • packaging + • packaging.licenses._spdx + • re + • typing + +
+ + +
+ +
+ + packaging.licenses._spdx +SourceModule
+imports: + __future__ + • packaging.licenses + • typing + +
+
+imported by: + packaging.licenses + +
+ +
+ +
+ + packaging.markers +SourceModule
+imports: + __future__ + • operator + • os + • packaging + • packaging._parser + • packaging._tokenizer + • packaging.specifiers + • packaging.utils + • platform + • sys + • typing + +
+ + +
+ +
+ + packaging.requirements +SourceModule + + +
+ +
+ + packaging.specifiers +SourceModule
+imports: + __future__ + • abc + • itertools + • packaging + • packaging.utils + • packaging.version + • re + • typing + +
+ + +
+ +
+ + packaging.tags +SourceModule
+imports: + __future__ + • importlib.machinery + • logging + • packaging + • packaging._manylinux + • packaging._musllinux + • platform + • re + • struct + • subprocess + • sys + • sysconfig + • typing + +
+ + +
+ +
+ + packaging.utils +SourceModule
+imports: + __future__ + • functools + • packaging + • packaging.tags + • packaging.version + • re + • typing + +
+ + +
+ +
+ + packaging.version +SourceModule
+imports: + __future__ + • itertools + • packaging + • packaging._structures + • re + • typing + +
+ + +
+ +
+ + pathlib +SourceModule
+imports: + _collections_abc + • errno + • fnmatch + • functools + • grp + • io + • ntpath + • os + • posixpath + • pwd + • re + • stat + • sys + • urllib.parse + • warnings + +
+ + +
+ +
+ + pickle +SourceModule
+imports: + _compat_pickle + • _pickle + • codecs + • copyreg + • functools + • io + • itertools + • pprint + • re + • struct + • sys + • types + +
+
+imported by: + logging + • logging.handlers + • multiprocessing.reduction + • tracemalloc + +
+ +
+ +
+ + pkgutil +SourceModule
+imports: + collections + • functools + • importlib + • importlib.machinery + • importlib.util + • inspect + • marshal + • os + • os.path + • re + • sys + • types + • warnings + • zipimport + +
+
+imported by: + pydoc + • pyi_rth_pkgutil.py + • runpy + • unittest.mock + +
+ +
+ +
+ + platform +SourceModule
+imports: + 'java.lang' + • _winreg + • _wmi + • collections + • functools + • itertools + • java + • os + • re + • socket + • struct + • subprocess + • sys + • vms_lib + • winreg + +
+ + +
+ +
+ + posix (builtin module)
+imports: + resource + +
+
+imported by: + importlib._bootstrap_external + • os + • posixpath + • shutil + +
+ +
+ +
+ + posixpath +SourceModule
+imports: + genericpath + • os + • posix + • pwd + • re + • stat + • sys + +
+ + +
+ +
+ + pprint +SourceModule
+imports: + collections + • dataclasses + • io + • re + • sys + • types + +
+
+imported by: + pickle + • setuptools._distutils.dist + • sysconfig + • unittest.case + • unittest.mock + +
+ +
+ +
+ + pwd (builtin module)
+imported by: + getpass + • http.server + • netrc + • pathlib + • posixpath + • setuptools._distutils.archive_util + • setuptools._distutils.util + • shutil + • subprocess + • tarfile + +
+ +
+ +
+ + py_compile +SourceModule
+imports: + argparse + • enum + • importlib._bootstrap_external + • importlib.machinery + • importlib.util + • os + • os.path + • sys + • traceback + +
+
+imported by: + setuptools._distutils.util + • zipfile + +
+ +
+ +
+ + pydoc +SourceModule
+imports: + __future__ + • builtins + • collections + • email.message + • getopt + • http.server + • importlib._bootstrap + • importlib._bootstrap_external + • importlib.machinery + • importlib.util + • inspect + • io + • os + • pkgutil + • platform + • pydoc_data.topics + • re + • reprlib + • select + • subprocess + • sys + • sysconfig + • tempfile + • textwrap + • threading + • time + • tokenize + • traceback + • tty + • urllib.parse + • warnings + • webbrowser + +
+
+imported by: + _sitebuiltins + +
+ +
+ +
+ + pydoc_data +Package
+imported by: + pydoc_data.topics + +
+ +
+ +
+ + pydoc_data.topics +SourceModule
+imports: + pydoc_data + +
+
+imported by: + pydoc + +
+ +
+ +
+ + pyexpat (builtin module)
+imported by: + _elementtree + • xml.etree.ElementTree + • xml.parsers.expat + +
+ +
+ +
+ + pyimod02_importers +MissingModule
+imported by: + pyi_rth_pkgutil.py + +
+ +
+ +
+ + pynput +Package + + +
+ +
+ + pynput._info +SourceModule
+imports: + pynput + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput._util +Package
+imports: + contextlib + • functools + • importlib + • inspect + • os + • pynput + • pynput._util + • pynput._util.win32_vks + • six + • six.moves + • six.moves.queue + • sys + • threading + • time + +
+ + +
+ +
+ + pynput._util.darwin +SourceModule
+imports: + CoreFoundation + • HIServices + • Quartz + • contextlib + • ctypes + • ctypes.util + • objc + • pynput._util + • six + +
+
+imported by: + pynput + • pynput.keyboard._darwin + • pynput.mouse._darwin + +
+ +
+ +
+ + pynput._util.darwin_vks +SourceModule
+imports: + pynput._util + +
+
+imported by: + pynput + • pynput.keyboard._darwin + +
+ +
+ +
+ + pynput._util.uinput +SourceModule
+imports: + evdev + • pynput._util + +
+
+imported by: + pynput + • pynput.keyboard._uinput + +
+ +
+ +
+ + pynput._util.win32 +SourceModule
+imports: + contextlib + • ctypes + • ctypes.wintypes + • itertools + • pynput._util + • pynput._util.win32_vks + • threading + +
+
+imported by: + pynput + • pynput.keyboard._win32 + • pynput.mouse._win32 + +
+ +
+ +
+ + pynput._util.win32_vks +SourceModule
+imports: + pynput._util + +
+
+imported by: + pynput + • pynput._util + • pynput._util.win32 + • pynput.keyboard._win32 + +
+ +
+ +
+ + pynput._util.xorg +SourceModule
+imports: + Xlib.XK + • Xlib.display + • Xlib.keysymdef + • Xlib.threaded + • contextlib + • functools + • itertools + • operator + • pynput._util + • pynput._util.xorg_keysyms + +
+
+imported by: + pynput + • pynput.keyboard._xorg + • pynput.mouse._xorg + +
+ +
+ +
+ + pynput._util.xorg_keysyms +SourceModule
+imports: + pynput._util + +
+ + +
+ +
+ + pynput.keyboard +Package
+imports: + itertools + • pynput + • pynput._util + • pynput.keyboard + +
+ + +
+ +
+ + pynput.keyboard._base +SourceModule
+imports: + contextlib + • enum + • pynput + • pynput._util + • pynput.keyboard + • six + • threading + • unicodedata + +
+ + +
+ +
+ + pynput.keyboard._darwin +SourceModule +
+imported by: + pynput + +
+ +
+ +
+ + pynput.keyboard._dummy +SourceModule
+imports: + pynput.keyboard + • pynput.keyboard._base + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput.keyboard._uinput +SourceModule
+imports: + enum + • errno + • evdev + • evdev.events + • functools + • os + • pynput._util + • pynput._util.uinput + • pynput._util.xorg_keysyms + • pynput.keyboard + • pynput.keyboard._base + • re + • subprocess + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput.keyboard._win32 +SourceModule +
+imported by: + pynput + +
+ +
+ +
+ + pynput.keyboard._xorg +SourceModule +
+imported by: + pynput + +
+ +
+ +
+ + pynput.mouse +Package
+imports: + pynput + • pynput._util + • pynput.mouse + +
+ + +
+ +
+ + pynput.mouse._base +SourceModule
+imports: + enum + • pynput + • pynput._util + • pynput.mouse + +
+ + +
+ +
+ + pynput.mouse._darwin +SourceModule
+imports: + AppKit + • Quartz + • enum + • pynput._util.darwin + • pynput.mouse + • pynput.mouse._base + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput.mouse._dummy +SourceModule
+imports: + pynput.mouse + • pynput.mouse._base + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput.mouse._win32 +SourceModule
+imports: + ctypes + • ctypes.wintypes + • enum + • pynput._util + • pynput._util.win32 + • pynput.mouse + • pynput.mouse._base + +
+
+imported by: + pynput + +
+ +
+ +
+ + pynput.mouse._xorg +SourceModule
+imports: + Xlib.X + • Xlib.display + • Xlib.ext + • Xlib.ext.xtest + • Xlib.protocol + • enum + • pynput._util.xorg + • pynput.mouse + • pynput.mouse._base + +
+
+imported by: + pynput + +
+ +
+ +
+ + pyodide +MissingModule
+imported by: + urllib3.contrib.emscripten.fetch + +
+ +
+ +
+ + pystray +Package + + +
+ +
+ + pystray._appindicator +SourceModule
+imports: + 'gi.repository' + • gi + • pystray + • pystray._base + • pystray._util.gtk + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._base +SourceModule
+imports: + functools + • inspect + • itertools + • logging + • pystray + • six.moves + • six.moves.queue + • threading + +
+ + +
+ +
+ + pystray._darwin +SourceModule
+imports: + AppKit + • Foundation + • PIL + • PyObjCTools + • io + • objc + • pystray + • pystray._base + • signal + • subprocess + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._dummy +SourceModule
+imports: + pystray + • pystray._base + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._gtk +SourceModule
+imports: + 'gi.repository' + • gi + • pystray + • pystray._util.gtk + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._info +SourceModule
+imports: + pystray + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._util +Package
+imports: + contextlib + • os + • pystray + • pystray._util + • pystray._util.notify_dbus + • pystray._util.win32 + • tempfile + +
+ + +
+ +
+ + pystray._util.gtk +SourceModule
+imports: + 'gi.repository' + • atexit + • functools + • gi + • os + • pystray + • pystray._base + • pystray._util + • pystray._util.notify_dbus + • signal + • tempfile + +
+
+imported by: + pystray + • pystray._appindicator + • pystray._gtk + +
+ +
+ +
+ + pystray._util.notify_dbus +SourceModule
+imports: + 'gi.repository' + • atexit + • gi + • os + • pystray._util + • shutil + • tempfile + +
+
+imported by: + pystray + • pystray._util + • pystray._util.gtk + +
+ +
+ +
+ + pystray._util.win32 +SourceModule
+imports: + ctypes + • ctypes.wintypes + • pystray._util + +
+
+imported by: + pystray + • pystray._util + • pystray._win32 + +
+ +
+ +
+ + pystray._win32 +SourceModule
+imports: + ctypes + • ctypes.wintypes + • pystray + • pystray._base + • pystray._util + • pystray._util.win32 + • six.moves + • six.moves.queue + • threading + +
+
+imported by: + pystray + +
+ +
+ +
+ + pystray._xorg +SourceModule
+imports: + PIL + • Xlib.XK + • Xlib.display + • Xlib.threaded + • contextlib + • functools + • pystray + • pystray._base + • six + • six.moves + • six.moves.queue + • sys + • threading + • types + +
+
+imported by: + pystray + +
+ +
+ +
+ + queue +SourceModule
+imports: + _queue + • collections + • heapq + • threading + • time + • types + +
+ + +
+ +
+ + quopri +SourceModule
+imports: + binascii + • getopt + • io + • sys + +
+
+imported by: + email.encoders + • email.message + • encodings.quopri_codec + +
+ +
+ +
+ + random +SourceModule
+imports: + _collections_abc + • _random + • _sha2 + • bisect + • hashlib + • itertools + • math + • operator + • os + • statistics + • time + • warnings + +
+ + +
+ +
+ + raw_session +SourceModule
+imports: + __future__ + • config + • dataclasses + • json + • os + • time + • typing + • uuid + +
+
+imported by: + screen_capturer + • storage + • tray_ui + +
+ +
+ +
+ + re +Package
+imports: + _sre + • copyreg + • enum + • functools + • re + • re._compiler + • re._constants + • re._parser + • warnings + +
+
+imported by: + PIL.EpsImagePlugin + • PIL.GimpPaletteFile + • PIL.ImImagePlugin + • PIL.Image + • PIL.ImageColor + • PIL.ImageOps + • PIL.ImtImagePlugin + • PIL.PdfParser + • PIL.PngImagePlugin + • PIL.XbmImagePlugin + • PIL.XpmImagePlugin + • Xlib.rdb + • Xlib.support.unix_connect + • Xlib.support.vms_connect + • Xlib.xobject.colormap + • _pydecimal + • _sre + • _strptime + • argparse + • ast + • base64 + • charset_normalizer.constant + • charset_normalizer.models + • charset_normalizer.utils + • configparser + • csv + • ctypes._aix + • ctypes.util + • dataclasses + • difflib + • email._encoded_words + • email._header_value_parser + • email.feedparser + • email.generator + • email.header + • email.message + • email.policy + • email.quoprimime + • email.utils + • encodings.idna + • evdev.uinput + • evdev.util + • fnmatch + • fractions + • ftplib + • gettext + • glob + • html + • http.client + • http.cookiejar + • http.cookies + • idna.core + • importlib.metadata + • importlib.metadata._adapters + • importlib.metadata._text + • inspect + • ipaddress + • json.decoder + • json.encoder + • json.scanner + • locale + • logging + • logging.handlers + • main.py + • packaging._manylinux + • packaging._musllinux + • packaging._tokenizer + • packaging.licenses + • packaging.specifiers + • packaging.tags + • packaging.utils + • packaging.version + • pathlib + • pickle + • pkgutil + • platform + • posixpath + • pprint + • pydoc + • pynput.keyboard._uinput + • re + • re._casefix + • re._compiler + • re._constants + • re._parser + • requests._internal_utils + • requests.auth + • requests.utils + • rlcompleter + • setuptools._distutils.cmd + • setuptools._distutils.command.build_ext + • setuptools._distutils.compilers.C.base + • setuptools._distutils.dist + • setuptools._distutils.fancy_getopt + • setuptools._distutils.filelist + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._distutils.version + • setuptools._distutils.versionpredicate + • setuptools._normalization + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._adapters + • setuptools._vendor.importlib_metadata._text + • setuptools._vendor.jaraco.text + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._musllinux + • setuptools._vendor.packaging._tokenizer + • setuptools._vendor.packaging.specifiers + • setuptools._vendor.packaging.tags + • setuptools._vendor.packaging.utils + • setuptools._vendor.packaging.version + • setuptools._vendor.tomli._re + • setuptools._vendor.wheel.cli.convert + • setuptools._vendor.wheel.cli.pack + • setuptools._vendor.wheel.metadata + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging._musllinux + • setuptools._vendor.wheel.vendored.packaging._tokenizer + • setuptools._vendor.wheel.vendored.packaging.specifiers + • setuptools._vendor.wheel.vendored.packaging.tags + • setuptools._vendor.wheel.vendored.packaging.utils + • setuptools._vendor.wheel.vendored.packaging.version + • setuptools._vendor.wheel.wheelfile + • setuptools._vendor.zipp + • setuptools._vendor.zipp.glob + • setuptools.command.bdist_egg + • setuptools.command.bdist_wheel + • setuptools.command.egg_info + • setuptools.command.sdist + • setuptools.config._validate_pyproject.error_reporting + • setuptools.config._validate_pyproject.fastjsonschema_exceptions + • setuptools.config._validate_pyproject.fastjsonschema_validations + • setuptools.config._validate_pyproject.formats + • setuptools.dist + • setuptools.extension + • setuptools.glob + • setuptools.wheel + • shlex + • smtplib + • sre_compile + • sre_constants + • sre_parse + • string + • sysconfig + • tarfile + • textwrap + • tokenize + • tomllib._re + • typing + • unittest.case + • unittest.loader + • urllib.parse + • urllib.request + • urllib3.connection + • urllib3.http2.connection + • urllib3.response + • urllib3.util.retry + • urllib3.util.ssl_match_hostname + • urllib3.util.url + • warnings + • xml.etree.ElementPath + • xml.etree.ElementTree + • zipfile._path + • zipfile._path.glob + +
+ +
+ +
+ + re._casefix +SourceModule
+imports: + re + +
+
+imported by: + main.py + • re._compiler + +
+ +
+ +
+ + re._compiler +SourceModule
+imports: + _sre + • re + • re._casefix + • re._constants + • re._parser + • sys + +
+
+imported by: + main.py + • re + • sre_compile + +
+ +
+ +
+ + re._constants +SourceModule
+imports: + _sre + • re + +
+
+imported by: + main.py + • re + • re._compiler + • re._parser + • sre_constants + +
+ +
+ +
+ + re._parser +SourceModule
+imports: + re + • re._constants + • unicodedata + • warnings + +
+
+imported by: + main.py + • re + • re._compiler + • sre_parse + +
+ +
+ +
+ + readline /usr/lib/python3.12/lib-dynload/readline.cpython-312-x86_64-linux-gnu.so
+imported by: + rlcompleter + • site + +
+ +
+ +
+ + reprlib +SourceModule
+imports: + _thread + • builtins + • itertools + +
+
+imported by: + asyncio.base_futures + • asyncio.base_tasks + • asyncio.format_helpers + • collections + • functools + • main.py + • pydoc + +
+ +
+ +
+ + requests +Package + + +
+ +
+ + requests.__version__ +SourceModule
+imports: + requests + +
+
+imported by: + requests + • requests.utils + +
+ +
+ +
+ + requests._internal_utils +SourceModule
+imports: + re + • requests + • requests.compat + +
+
+imported by: + requests.auth + • requests.cookies + • requests.models + • requests.sessions + • requests.utils + +
+ +
+ +
+ + requests.adapters +SourceModule +
+imported by: + requests.sessions + +
+ +
+ +
+ + requests.api +SourceModule
+imports: + requests + • requests.sessions + +
+
+imported by: + requests + +
+ +
+ +
+ + requests.auth +SourceModule
+imports: + base64 + • hashlib + • os + • re + • requests + • requests._internal_utils + • requests.compat + • requests.cookies + • requests.utils + • threading + • time + • warnings + +
+
+imported by: + requests.adapters + • requests.models + • requests.sessions + +
+ +
+ +
+ + requests.certs +SourceModule
+imports: + certifi + • requests + +
+
+imported by: + requests + • requests.utils + +
+ +
+ +
+ + requests.compat +SourceModule
+imports: + collections + • collections.abc + • http + • http.cookiejar + • http.cookies + • importlib + • io + • json + • requests + • simplejson + • sys + • urllib.parse + • urllib.request + • urllib3 + +
+ + +
+ +
+ + requests.cookies +SourceModule
+imports: + calendar + • copy + • dummy_threading + • requests + • requests._internal_utils + • requests.compat + • threading + • time + +
+ + +
+ +
+ + requests.exceptions +SourceModule
+imports: + requests + • requests.compat + • urllib3.exceptions + +
+
+imported by: + requests + • requests.adapters + • requests.models + • requests.sessions + • requests.utils + +
+ +
+ +
+ + requests.hooks +SourceModule
+imports: + requests + +
+
+imported by: + requests.models + • requests.sessions + +
+ +
+ +
+ + requests.models +SourceModule +
+imported by: + requests + • requests.adapters + • requests.sessions + +
+ +
+ +
+ + requests.packages +SourceModule
+imports: + requests + • requests.compat + • sys + +
+
+imported by: + requests + +
+ +
+ +
+ + requests.sessions +SourceModule +
+imported by: + requests + • requests.api + +
+ +
+ +
+ + requests.status_codes +SourceModule
+imports: + requests + • requests.structures + +
+
+imported by: + requests + • requests.models + • requests.sessions + +
+ +
+ +
+ + requests.structures +SourceModule
+imports: + collections + • requests + • requests.compat + +
+ + +
+ +
+ + requests.utils +SourceModule
+imports: + codecs + • collections + • contextlib + • io + • netrc + • os + • re + • requests + • requests.__version__ + • requests._internal_utils + • requests.certs + • requests.compat + • requests.cookies + • requests.exceptions + • requests.structures + • socket + • struct + • sys + • tempfile + • urllib3.util + • warnings + • winreg + • zipfile + +
+
+imported by: + requests + • requests.adapters + • requests.auth + • requests.models + • requests.sessions + +
+ +
+ +
+ + resource /usr/lib/python3.12/lib-dynload/resource.cpython-312-x86_64-linux-gnu.so
+imported by: + posix + +
+ +
+ +
+ + rlcompleter +SourceModule
+imports: + atexit + • builtins + • inspect + • keyword + • re + • readline + +
+
+imported by: + site + +
+ +
+ +
+ + runpy +SourceModule
+imports: + importlib.machinery + • importlib.util + • io + • os + • pkgutil + • sys + • warnings + +
+
+imported by: + multiprocessing.spawn + +
+ +
+ +
+ + screen_capturer +SourceModule
+imports: + __future__ + • config + • mss + • mss.tools + • os + • raw_session + • time + • typing + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + secrets +SourceModule
+imports: + base64 + • hmac + • random + +
+
+imported by: + multiprocessing.shared_memory + +
+ +
+ +
+ + select (builtin module)
+imported by: + Xlib.protocol.display + • evdev.eventio + • evdev.eventio_async + • http.server + • pydoc + • selectors + • subprocess + • urllib3.util.wait + +
+ +
+ +
+ + selectors +SourceModule
+imports: + abc + • collections + • collections.abc + • math + • select + • sys + +
+ + +
+ +
+ + setuptools +Package + + +
+ +
+ + setuptools._core_metadata +SourceModule + + +
+ +
+ + setuptools._discovery +SourceModule
+imports: + functools + • operator + • packaging.requirements + • setuptools + +
+
+imported by: + setuptools.wheel + +
+ +
+ +
+ + setuptools._distutils +Package + + +
+ +
+ + setuptools._distutils._log +SourceModule
+imports: + distutils + • logging + • setuptools._distutils + +
+ + +
+ +
+ + setuptools._distutils._modified +SourceModule + + +
+ +
+ + setuptools._distutils._msvccompiler +SourceModule + + +
+ +
+ + setuptools._distutils.archive_util +SourceModule + + +
+ +
+ + setuptools._distutils.ccompiler +SourceModule + + +
+ +
+ + setuptools._distutils.cmd +SourceModule + + +
+ +
+ + setuptools._distutils.command +Package
+imports: + distutils + • setuptools._distutils + +
+ + +
+ +
+ + setuptools._distutils.command.bdist +SourceModule +
+imported by: + setuptools.command + +
+ +
+ +
+ + setuptools._distutils.command.build +SourceModule +
+imported by: + setuptools.command.build + +
+ +
+ +
+ + setuptools._distutils.command.build_ext +SourceModule +
+imported by: + setuptools + +
+ +
+ +
+ + setuptools._distutils.command.check +SourceModule +
+imported by: + distutils.command.check + +
+ +
+ +
+ + setuptools._distutils.command.sdist +SourceModule +
+imported by: + setuptools.command.sdist + +
+ +
+ +
+ + setuptools._distutils.compat +Package
+imports: + __future__ + • collections.abc + • setuptools._distutils + • typing + +
+ + +
+ +
+ + setuptools._distutils.compat.numpy +SourceModule +
+imported by: + setuptools._distutils.ccompiler + +
+ +
+ +
+ + setuptools._distutils.compat.py39 +SourceModule
+imports: + _imp + • functools + • itertools + • platform + • setuptools._distutils.compat + • sys + +
+ + +
+ +
+ + setuptools._distutils.compilers +NamespacePackage
+imports: + setuptools._distutils + +
+
+imported by: + setuptools._distutils.compilers.C + +
+ +
+ +
+ + setuptools._distutils.compilers.C +NamespacePackage + + +
+ +
+ + setuptools._distutils.compilers.C.base +SourceModule + + +
+ +
+ + setuptools._distutils.compilers.C.errors +SourceModule + + +
+ +
+ + setuptools._distutils.compilers.C.msvc +SourceModule + + +
+ +
+ + setuptools._distutils.core +SourceModule + + +
+ +
+ + setuptools._distutils.debug +SourceModule
+imports: + distutils + • os + • setuptools._distutils + +
+ + +
+ +
+ + setuptools._distutils.dir_util +SourceModule + + +
+ +
+ + setuptools._distutils.dist +SourceModule + + +
+ +
+ + setuptools._distutils.errors +SourceModule + + +
+ +
+ + setuptools._distutils.extension +SourceModule + + +
+ +
+ + setuptools._distutils.fancy_getopt +SourceModule
+imports: + __future__ + • collections.abc + • distutils + • getopt + • re + • setuptools._distutils + • setuptools._distutils.errors + • string + • sys + • typing + +
+ + +
+ +
+ + setuptools._distutils.file_util +SourceModule + + +
+ +
+ + setuptools._distutils.filelist +SourceModule + + +
+ +
+ + setuptools._distutils.log +SourceModule
+imports: + distutils + • logging + • setuptools._distutils._log + • warnings + +
+ + +
+ +
+ + setuptools._distutils.spawn +SourceModule + + +
+ +
+ + setuptools._distutils.sysconfig +SourceModule + + +
+ +
+ + setuptools._distutils.text_file +SourceModule
+imports: + distutils + • setuptools._distutils + • sys + +
+ + +
+ +
+ + setuptools._distutils.util +SourceModule + + +
+ +
+ + setuptools._distutils.version +SourceModule
+imports: + contextlib + • re + • setuptools._distutils + • warnings + +
+ + +
+ +
+ + setuptools._distutils.versionpredicate +SourceModule
+imports: + distutils + • operator + • re + • setuptools._distutils + • setuptools._distutils.version + +
+
+imported by: + setuptools._distutils.dist + +
+ +
+ +
+ + setuptools._entry_points +SourceModule +
+imported by: + setuptools + • setuptools.command.egg_info + • setuptools.dist + +
+ +
+ +
+ + setuptools._imp +SourceModule
+imports: + importlib.machinery + • importlib.util + • os + • setuptools + • tokenize + +
+
+imported by: + setuptools + • setuptools.depends + +
+ +
+ +
+ + setuptools._importlib +SourceModule
+imports: + importlib.metadata + • importlib.resources + • importlib_metadata + • setuptools + • sys + +
+ + +
+ +
+ + setuptools._itertools +SourceModule
+imports: + more_itertools + • setuptools + +
+
+imported by: + setuptools._entry_points + +
+ +
+ +
+ + setuptools._normalization +SourceModule
+imports: + packaging + • packaging.licenses + • re + • setuptools + • typing + +
+ + +
+ +
+ + setuptools._path +SourceModule
+imports: + __future__ + • contextlib + • more_itertools + • os + • setuptools + • sys + • typing + • typing_extensions + • typing_extensions.TypeAlias + +
+ + +
+ +
+ + setuptools._reqs +SourceModule + + +
+ +
+ + setuptools._shutil +SourceModule
+imports: + distutils + • os + • setuptools + • setuptools._distutils.log + • setuptools.compat + • setuptools.compat.py311 + • stat + • typing + +
+
+imported by: + setuptools + • setuptools.command.bdist_wheel + +
+ +
+ +
+ + setuptools._static +SourceModule
+imports: + functools + • packaging.specifiers + • setuptools + • setuptools.warnings + • typing + +
+ + +
+ +
+ + setuptools._vendor +NamespacePackage
+imports: + setuptools + +
+ + +
+ +
+ + setuptools._vendor.importlib_metadata +Package + + +
+ +
+ + setuptools._vendor.importlib_metadata._adapters +SourceModule + + +
+ +
+ + setuptools._vendor.importlib_metadata._collections +SourceModule + + +
+ +
+ + setuptools._vendor.importlib_metadata._compat +SourceModule
+imports: + platform + • setuptools._vendor.importlib_metadata + • sys + +
+ + +
+ +
+ + setuptools._vendor.importlib_metadata._functools +SourceModule + + +
+ +
+ + setuptools._vendor.importlib_metadata._itertools +SourceModule + + +
+ +
+ + setuptools._vendor.importlib_metadata._meta +SourceModule
+imports: + __future__ + • os + • setuptools._vendor.importlib_metadata + • typing + +
+ + +
+ +
+ + setuptools._vendor.importlib_metadata._text +SourceModule + + +
+ +
+ + setuptools._vendor.importlib_metadata.compat +Package + + +
+ +
+ + setuptools._vendor.importlib_metadata.compat.py311 +SourceModule
+imports: + os + • pathlib + • setuptools._vendor.importlib_metadata.compat + • sys + • types + +
+ + +
+ +
+ + setuptools._vendor.importlib_metadata.compat.py39 +SourceModule + + +
+ +
+ + setuptools._vendor.jaraco +NamespacePackage
+imports: + setuptools._vendor + +
+ + +
+ +
+ + setuptools._vendor.jaraco.context +SourceModule
+imports: + __future__ + • backports + • contextlib + • functools + • operator + • os + • setuptools._vendor.jaraco + • shutil + • subprocess + • sys + • tarfile + • tempfile + • typing + • urllib.request + • warnings + +
+
+imported by: + jaraco.context + +
+ +
+ +
+ + setuptools._vendor.jaraco.functools +Package
+imports: + collections.abc + • functools + • inspect + • itertools + • more_itertools + • operator + • setuptools._vendor.jaraco + • time + • types + • warnings + +
+
+imported by: + jaraco.functools + +
+ +
+ +
+ + setuptools._vendor.jaraco.text +Package +
+imported by: + jaraco.text + +
+ +
+ +
+ + setuptools._vendor.more_itertools +Package + + +
+ +
+ + setuptools._vendor.more_itertools.more +SourceModule
+imports: + collections + • collections.abc + • functools + • heapq + • itertools + • math + • operator + • queue + • random + • setuptools._vendor.more_itertools + • setuptools._vendor.more_itertools.recipes + • sys + • time + • warnings + +
+
+imported by: + setuptools._vendor.more_itertools + +
+ +
+ +
+ + setuptools._vendor.more_itertools.recipes +SourceModule
+imports: + collections + • collections.abc + • functools + • itertools + • math + • operator + • random + • setuptools._vendor.more_itertools + • sys + +
+ + +
+ +
+ + setuptools._vendor.packaging +Package + + +
+ +
+ + setuptools._vendor.packaging._elffile +SourceModule
+imports: + __future__ + • enum + • os + • setuptools._vendor.packaging + • struct + • typing + +
+ + +
+ +
+ + setuptools._vendor.packaging._manylinux +SourceModule
+imports: + __future__ + • _manylinux + • collections + • contextlib + • ctypes + • functools + • os + • re + • setuptools._vendor.packaging + • setuptools._vendor.packaging._elffile + • sys + • typing + • warnings + +
+ + +
+ +
+ + setuptools._vendor.packaging._musllinux +SourceModule + + +
+ +
+ + setuptools._vendor.packaging._parser +SourceModule + + +
+ +
+ + setuptools._vendor.packaging._structures +SourceModule + + +
+ +
+ + setuptools._vendor.packaging._tokenizer +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.markers +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.requirements +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.specifiers +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.tags +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.utils +SourceModule + + +
+ +
+ + setuptools._vendor.packaging.version +SourceModule + + +
+ +
+ + setuptools._vendor.tomli +Package + + +
+ +
+ + setuptools._vendor.tomli._parser +SourceModule +
+imported by: + setuptools._vendor.tomli + +
+ +
+ +
+ + setuptools._vendor.tomli._re +SourceModule
+imports: + __future__ + • datetime + • functools + • re + • setuptools._vendor.tomli + • setuptools._vendor.tomli._types + • typing + +
+
+imported by: + setuptools._vendor.tomli._parser + +
+ +
+ +
+ + setuptools._vendor.tomli._types +SourceModule
+imports: + setuptools._vendor.tomli + • typing + +
+ + +
+ +
+ + setuptools._vendor.typing_extensions +SourceModule
+imports: + _socket + • abc + • collections + • collections.abc + • contextlib + • functools + • inspect + • operator + • setuptools._vendor + • sys + • types + • typing + • warnings + +
+
+imported by: + typing_extensions + +
+ +
+ +
+ + setuptools._vendor.wheel +Package + + +
+ +
+ + setuptools._vendor.wheel.cli +Package + + +
+ +
+ + setuptools._vendor.wheel.cli.convert +SourceModule +
+imported by: + setuptools._vendor.wheel.cli + +
+ +
+ +
+ + setuptools._vendor.wheel.cli.pack +SourceModule +
+imported by: + setuptools._vendor.wheel.cli + +
+ +
+ +
+ + setuptools._vendor.wheel.cli.tags +SourceModule +
+imported by: + setuptools._vendor.wheel.cli + +
+ +
+ +
+ + setuptools._vendor.wheel.cli.unpack +SourceModule +
+imported by: + setuptools._vendor.wheel.cli + +
+ +
+ +
+ + setuptools._vendor.wheel.macosx_libfile +SourceModule
+imports: + __future__ + • ctypes + • io + • os + • sys + • typing + • wheel + +
+
+imported by: + setuptools.command.bdist_wheel + +
+ +
+ +
+ + setuptools._vendor.wheel.metadata +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.util +SourceModule
+imports: + __future__ + • base64 + • logging + • wheel + +
+ + +
+ +
+ + setuptools._vendor.wheel.vendored +Package
+imports: + setuptools._vendor.wheel + +
+ + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging +Package + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._elffile +SourceModule
+imports: + enum + • os + • setuptools._vendor.wheel.vendored.packaging + • struct + • typing + +
+ + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._manylinux +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._musllinux +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._parser +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._structures +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging._tokenizer +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.markers +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.requirements +SourceModule +
+imported by: + setuptools._vendor.wheel.metadata + +
+ +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.specifiers +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.tags +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.utils +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.vendored.packaging.version +SourceModule + + +
+ +
+ + setuptools._vendor.wheel.wheelfile +SourceModule
+imports: + __future__ + • csv + • hashlib + • io + • os.path + • re + • setuptools._vendor.wheel + • setuptools._vendor.wheel.cli + • setuptools._vendor.wheel.util + • stat + • time + • typing + • typing_extensions + • typing_extensions.Buffer + • wheel + • zipfile + +
+ + +
+ +
+ + setuptools._vendor.zipp +Package
+imports: + contextlib + • io + • itertools + • pathlib + • posixpath + • re + • setuptools._vendor + • setuptools._vendor.zipp.compat.py310 + • setuptools._vendor.zipp.glob + • stat + • sys + • zipfile + +
+ + +
+ +
+ + setuptools._vendor.zipp.compat +Package
+imports: + setuptools._vendor.zipp + +
+ + +
+ +
+ + setuptools._vendor.zipp.compat.py310 +SourceModule
+imports: + io + • setuptools._vendor.zipp.compat + • sys + +
+
+imported by: + setuptools._vendor.zipp + +
+ +
+ +
+ + setuptools._vendor.zipp.glob +SourceModule
+imports: + os + • re + • setuptools._vendor.zipp + +
+
+imported by: + setuptools._vendor.zipp + +
+ +
+ +
+ + setuptools.archive_util +SourceModule
+imports: + contextlib + • os + • posixpath + • setuptools + • setuptools._distutils.errors + • setuptools._path + • shutil + • tarfile + • zipfile + +
+
+imported by: + setuptools.wheel + +
+ +
+ +
+ + setuptools.command +Package + + +
+ +
+ + setuptools.command._requirestxt +SourceModule
+imports: + __future__ + • collections + • collections.abc + • io + • itertools + • jaraco.text + • packaging.requirements + • setuptools + • setuptools._reqs + • setuptools.command + • typing + +
+ + +
+ +
+ + setuptools.command.bdist_egg +SourceModule + + +
+ +
+ + setuptools.command.bdist_wheel +SourceModule +
+imported by: + setuptools.dist + +
+ +
+ +
+ + setuptools.command.build +SourceModule +
+imported by: + setuptools.command.sdist + +
+ +
+ +
+ + setuptools.command.egg_info +SourceModule + + +
+ +
+ + setuptools.command.sdist +SourceModule +
+imported by: + setuptools.command.egg_info + +
+ +
+ +
+ + setuptools.command.setopt +SourceModule +
+imported by: + setuptools.command.egg_info + +
+ +
+ +
+ + setuptools.compat +Package + + +
+ +
+ + setuptools.compat.py310 +SourceModule
+imports: + setuptools.compat + • sys + • tomli + • tomllib + +
+
+imported by: + setuptools.config.pyprojecttoml + +
+ +
+ +
+ + setuptools.compat.py311 +SourceModule
+imports: + __future__ + • _typeshed + • setuptools.compat + • shutil + • sys + • typing + • typing_extensions + • typing_extensions.TypeAlias + +
+
+imported by: + setuptools._shutil + • setuptools.compat + +
+ +
+ +
+ + setuptools.compat.py39 +SourceModule
+imports: + setuptools.compat + • sys + +
+
+imported by: + setuptools.compat + • setuptools.unicode_utils + +
+ +
+ +
+ + setuptools.config +Package + + +
+ +
+ + setuptools.config._apply_pyprojecttoml +SourceModule +
+imported by: + setuptools.config.pyprojecttoml + +
+ +
+ +
+ + setuptools.config._validate_pyproject +Package + + +
+ +
+ + setuptools.config._validate_pyproject.error_reporting +SourceModule + + +
+ +
+ + setuptools.config._validate_pyproject.extra_validations +SourceModule + + +
+ +
+ + setuptools.config._validate_pyproject.fastjsonschema_exceptions +SourceModule + + +
+ +
+ + setuptools.config._validate_pyproject.fastjsonschema_validations +SourceModule + + +
+ +
+ + setuptools.config._validate_pyproject.formats +SourceModule + + +
+ +
+ + setuptools.config.expand +SourceModule + + +
+ +
+ + setuptools.config.pyprojecttoml +SourceModule +
+imported by: + setuptools.config + • setuptools.dist + +
+ +
+ +
+ + setuptools.config.setupcfg +SourceModule +
+imported by: + setuptools.config + • setuptools.dist + +
+ +
+ +
+ + setuptools.depends +SourceModule
+imports: + __future__ + • contextlib + • dis + • marshal + • packaging.version + • setuptools + • setuptools._imp + • sys + • types + • typing + +
+
+imported by: + setuptools + +
+ +
+ +
+ + setuptools.discovery +SourceModule +
+imported by: + setuptools + • setuptools.config.expand + • setuptools.dist + +
+ +
+ +
+ + setuptools.dist +SourceModule + + +
+ +
+ + setuptools.errors +SourceModule
+imports: + __future__ + • distutils + • setuptools + • setuptools._distutils.errors + +
+ + +
+ +
+ + setuptools.extension +SourceModule + + +
+ +
+ + setuptools.glob +SourceModule
+imports: + __future__ + • _typeshed + • collections.abc + • fnmatch + • os + • re + • setuptools + • typing + +
+
+imported by: + setuptools.command.egg_info + +
+ +
+ +
+ + setuptools.installer +SourceModule +
+imported by: + setuptools.dist + +
+ +
+ +
+ + setuptools.logging +SourceModule
+imports: + inspect + • logging + • setuptools + • setuptools._distutils.log + • setuptools.monkey + • sys + +
+
+imported by: + setuptools + +
+ +
+ +
+ + setuptools.monkey +SourceModule
+imports: + __future__ + • inspect + • platform + • setuptools + • setuptools._core_metadata + • setuptools._distutils.filelist + • sys + • types + • typing + +
+
+imported by: + setuptools + • setuptools.dist + • setuptools.extension + • setuptools.logging + +
+ +
+ +
+ + setuptools.msvc +SourceModule
+imports: + __future__ + • contextlib + • itertools + • json + • more_itertools + • os + • os.path + • platform + • setuptools + • setuptools._distutils.errors + • typing + • typing_extensions + • winreg + +
+
+imported by: + setuptools + +
+ +
+ +
+ + setuptools.unicode_utils +SourceModule + + +
+ +
+ + setuptools.version +SourceModule
+imports: + setuptools + • setuptools._importlib + +
+
+imported by: + setuptools + +
+ +
+ +
+ + setuptools.warnings +SourceModule
+imports: + __future__ + • datetime + • inspect + • os + • setuptools + • textwrap + • typing + • typing_extensions + • typing_extensions.TypeAlias + • warnings + +
+ + +
+ +
+ + setuptools.wheel +SourceModule +
+imported by: + setuptools.installer + +
+ +
+ +
+ + setuptools.windows_support +SourceModule
+imports: + ctypes + • ctypes.wintypes + • platform + • setuptools + +
+
+imported by: + setuptools + • setuptools.dist + +
+ +
+ +
+ + shlex +SourceModule
+imports: + collections + • io + • os + • re + • sys + +
+
+imported by: + PIL.ImageShow + • setuptools.dist + • webbrowser + +
+ +
+ +
+ + shutil +SourceModule
+imports: + _winapi + • bz2 + • collections + • errno + • fnmatch + • grp + • lzma + • nt + • os + • posix + • pwd + • stat + • sys + • tarfile + • warnings + • zipfile + • zlib + +
+ + +
+ +
+ + signal +SourceModule
+imports: + _signal + • enum + +
+ + +
+ +
+ + simplejson +MissingModule
+imported by: + requests.compat + +
+ +
+ +
+ + site +SourceModule
+imports: + _sitebuiltins + • atexit + • builtins + • io + • os + • readline + • rlcompleter + • sitecustomize + • stat + • sys + • textwrap + • traceback + • usercustomize + +
+ + +
+ +
+ + sitecustomize +SourceModule
+imports: + apport_python_hook + +
+
+imported by: + site + +
+ +
+ +
+ + six +SourceModule
+imports: + StringIO + • __future__ + • functools + • importlib.util + • io + • itertools + • operator + • struct + • sys + • types + +
+ + +
+ +
+ + six.moves +RuntimePackage
+imports: + six + • six.moves._thread + • six.moves.queue + +
+
+imported by: + Xlib.threaded + • pynput._util + • pystray._base + • pystray._win32 + • pystray._xorg + +
+ +
+ +
+ + six.moves._thread +AliasNode
+imports: + _thread + +
+
+imported by: + Xlib.threaded + • six.moves + +
+ +
+ +
+ + six.moves.queue +AliasNode
+imports: + queue + +
+
+imported by: + pynput._util + • pystray._base + • pystray._win32 + • pystray._xorg + • six.moves + +
+ +
+ +
+ + smtplib +SourceModule
+imports: + base64 + • copy + • datetime + • email.base64mime + • email.generator + • email.message + • email.utils + • hmac + • io + • re + • socket + • ssl + • sys + +
+
+imported by: + logging.handlers + +
+ +
+ +
+ + socket +SourceModule
+imports: + _socket + • array + • enum + • errno + • io + • os + • selectors + • sys + +
+ + +
+ +
+ + socketserver +SourceModule
+imports: + io + • os + • selectors + • socket + • sys + • threading + • time + • traceback + +
+
+imported by: + http.server + +
+ +
+ +
+ + socks +MissingModule
+imported by: + urllib3.contrib.socks + +
+ +
+ +
+ + sre_compile +SourceModule
+imports: + re + • re._compiler + • warnings + +
+
+imported by: + main.py + +
+ +
+ +
+ + sre_constants +SourceModule
+imports: + re + • re._constants + • warnings + +
+
+imported by: + main.py + +
+ +
+ +
+ + sre_parse +SourceModule
+imports: + re + • re._parser + • warnings + +
+
+imported by: + main.py + +
+ +
+ +
+ + ssl +SourceModule
+imports: + _ssl + • base64 + • calendar + • collections + • enum + • errno + • os + • socket + • sys + • time + • warnings + +
+ + +
+ +
+ + stat +SourceModule
+imports: + _stat + +
+ + +
+ +
+ + statistics +SourceModule
+imports: + _statistics + • bisect + • collections + • decimal + • fractions + • functools + • itertools + • math + • numbers + • operator + • random + • sys + +
+
+imported by: + random + +
+ +
+ +
+ + storage +SourceModule
+imports: + __future__ + • config + • os + • raw_session + • zipfile + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + string +SourceModule
+imports: + _string + • collections + • re + +
+ + +
+ +
+ + stringprep +SourceModule
+imports: + unicodedata + +
+
+imported by: + encodings.idna + +
+ +
+ +
+ + struct +SourceModule
+imports: + _struct + +
+ + +
+ +
+ + subprocess +SourceModule
+imports: + _posixsubprocess + • _winapi + • builtins + • contextlib + • errno + • fcntl + • grp + • io + • locale + • msvcrt + • os + • pwd + • select + • selectors + • signal + • sys + • threading + • time + • types + • warnings + +
+ + +
+ +
+ + sys (builtin module)
+imported by: + PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.IcnsImagePlugin + • PIL.Image + • PIL.ImageCms + • PIL.ImageFont + • PIL.ImageMode + • PIL.ImageQt + • PIL.ImageShow + • PIL.JpegImagePlugin + • PIL.SpiderImagePlugin + • PIL._imagingcms + • PIL._typing + • PIL.features + • Xlib.ext.xinput + • Xlib.protocol.display + • Xlib.protocol.rq + • Xlib.rdb + • Xlib.support.connect + • _aix_support + • _collections_abc + • _compression + • _distutils_hack + • _pydatetime + • _pydecimal + • _sitebuiltins + • argparse + • ast + • asyncio + • asyncio.base_events + • asyncio.coroutines + • asyncio.events + • asyncio.format_helpers + • asyncio.futures + • asyncio.streams + • asyncio.unix_events + • asyncio.windows_events + • asyncio.windows_utils + • base64 + • calendar + • certifi.core + • codecs + • collections + • concurrent.futures.process + • configparser + • contextlib + • ctypes + • ctypes._aix + • ctypes._endian + • ctypes.util + • dataclasses + • dis + • email._header_value_parser + • email.generator + • email.iterators + • email.policy + • encodings + • encodings.rot_13 + • encodings.utf_16 + • encodings.utf_32 + • enum + • evdev.eventio_async + • fractions + • ftplib + • getopt + • getpass + • gettext + • glob + • gzip + • http.client + • http.server + • importlib + • importlib._bootstrap_external + • importlib.metadata + • importlib.util + • inspect + • linecache + • locale + • logging + • mimetypes + • mss.darwin + • mss.windows + • multiprocessing + • multiprocessing.connection + • multiprocessing.context + • multiprocessing.dummy + • multiprocessing.forkserver + • multiprocessing.heap + • multiprocessing.managers + • multiprocessing.popen_spawn_win32 + • multiprocessing.process + • multiprocessing.queues + • multiprocessing.reduction + • multiprocessing.resource_sharer + • multiprocessing.resource_tracker + • multiprocessing.spawn + • multiprocessing.synchronize + • multiprocessing.util + • ntpath + • os + • packaging._manylinux + • packaging._musllinux + • packaging.markers + • packaging.tags + • pathlib + • pickle + • pkgutil + • platform + • posixpath + • pprint + • py_compile + • pydoc + • pyi_rth_inspect.py + • pyi_rth_multiprocessing.py + • pynput._util + • pystray + • pystray._xorg + • quopri + • re._compiler + • requests.compat + • requests.packages + • requests.sessions + • requests.utils + • runpy + • selectors + • setuptools + • setuptools._distutils + • setuptools._distutils.cmd + • setuptools._distutils.command.build + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.sdist + • setuptools._distutils.compat.py39 + • setuptools._distutils.compilers.C.base + • setuptools._distutils.core + • setuptools._distutils.dist + • setuptools._distutils.fancy_getopt + • setuptools._distutils.spawn + • setuptools._distutils.sysconfig + • setuptools._distutils.text_file + • setuptools._distutils.util + • setuptools._importlib + • setuptools._path + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._compat + • setuptools._vendor.importlib_metadata.compat.py311 + • setuptools._vendor.jaraco.context + • setuptools._vendor.more_itertools.more + • setuptools._vendor.more_itertools.recipes + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._musllinux + • setuptools._vendor.packaging.markers + • setuptools._vendor.packaging.tags + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.cli + • setuptools._vendor.wheel.macosx_libfile + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging._musllinux + • setuptools._vendor.wheel.vendored.packaging.markers + • setuptools._vendor.wheel.vendored.packaging.tags + • setuptools._vendor.zipp + • setuptools._vendor.zipp.compat.py310 + • setuptools.command + • setuptools.command.bdist_egg + • setuptools.command.bdist_wheel + • setuptools.command.egg_info + • setuptools.compat.py310 + • setuptools.compat.py311 + • setuptools.compat.py39 + • setuptools.config._validate_pyproject.error_reporting + • setuptools.config.expand + • setuptools.depends + • setuptools.dist + • setuptools.installer + • setuptools.logging + • setuptools.monkey + • setuptools.unicode_utils + • shlex + • shutil + • site + • six + • smtplib + • socket + • socketserver + • ssl + • statistics + • subprocess + • sysconfig + • tarfile + • tempfile + • threading + • tokenize + • traceback + • types + • typing + • unittest.case + • unittest.loader + • unittest.main + • unittest.mock + • unittest.result + • unittest.runner + • unittest.suite + • urllib.request + • urllib3 + • urllib3.connection + • urllib3.connectionpool + • urllib3.response + • urllib3.util.ssl_ + • uuid + • warnings + • weakref + • webbrowser + • xml.etree.ElementTree + • xml.parsers.expat + • xml.sax + • xml.sax.saxutils + • xmlrpc.client + • zipfile + • zipimport + +
+ +
+ +
+ + sysconfig +SourceModule
+imports: + _aix_support + • _imp + • _sysconfigdata__x86_64-linux-gnu + • os + • os.path + • pprint + • re + • sys + • threading + • types + • warnings + +
+ + +
+ +
+ + syslog (builtin module)
+imported by: + setuptools + +
+ +
+ +
+ + tarfile +SourceModule
+imports: + argparse + • builtins + • bz2 + • copy + • grp + • gzip + • io + • lzma + • os + • pwd + • re + • shutil + • stat + • struct + • sys + • time + • warnings + • zlib + +
+ + +
+ +
+ + tempfile +SourceModule
+imports: + _thread + • errno + • functools + • io + • os + • random + • shutil + • stat + • sys + • types + • warnings + • weakref + +
+ + +
+ +
+ + termios /usr/lib/python3.12/lib-dynload/termios.cpython-312-x86_64-linux-gnu.so
+imported by: + getpass + • tty + +
+ +
+ +
+ + textwrap +SourceModule
+imports: + re + +
+ + +
+ +
+ + threading +SourceModule
+imports: + _collections + • _thread + • _threading_local + • _weakrefset + • collections + • functools + • itertools + • os + • sys + • time + • traceback + • warnings + +
+ + +
+ +
+ + time (builtin module)
+imports: + _strptime + +
+ + +
+ +
+ + token +SourceModule
+imported by: + inspect + • tokenize + +
+ +
+ +
+ + tokenize +SourceModule
+imports: + _tokenize + • argparse + • builtins + • codecs + • collections + • functools + • io + • itertools + • re + • sys + • token + +
+ + +
+ +
+ + tomli +AliasNode
+imports: + setuptools._vendor.tomli + +
+
+imported by: + setuptools.compat.py310 + +
+ +
+ +
+ + tomllib +Package
+imports: + tomllib._parser + +
+
+imported by: + setuptools.compat.py310 + • tomllib._parser + • tomllib._re + • tomllib._types + +
+ +
+ +
+ + tomllib._parser +SourceModule
+imports: + __future__ + • collections.abc + • string + • tomllib + • tomllib._re + • tomllib._types + • types + • typing + +
+
+imported by: + tomllib + +
+ +
+ +
+ + tomllib._re +SourceModule
+imports: + __future__ + • datetime + • functools + • re + • tomllib + • tomllib._types + • typing + +
+
+imported by: + tomllib._parser + +
+ +
+ +
+ + tomllib._types +SourceModule
+imports: + tomllib + • typing + +
+
+imported by: + tomllib._parser + • tomllib._re + +
+ +
+ +
+ + traceback +SourceModule
+imports: + ast + • collections.abc + • contextlib + • itertools + • linecache + • sys + • textwrap + • unicodedata + +
+ + +
+ +
+ + tracemalloc +SourceModule
+imports: + _tracemalloc + • collections.abc + • fnmatch + • functools + • linecache + • os.path + • pickle + +
+
+imported by: + warnings + +
+ +
+ +
+ + tray_ui +SourceModule
+imports: + PIL + • PIL.Image + • PIL.ImageDraw + • __future__ + • config + • event_captor + • key_captor + • logging + • os + • platform + • pystray + • raw_session + • screen_capturer + • socket + • storage + • threading + • typing + • uploader + • window_info + +
+
+imported by: + main.py + +
+ +
+ +
+ + trove_classifiers +MissingModule + +
+ +
+ + tty +SourceModule
+imports: + termios + +
+
+imported by: + pydoc + +
+ +
+ +
+ + types +SourceModule
+imports: + _collections_abc + • functools + • sys + +
+
+imported by: + PIL.Image + • PIL.ImageDraw + • PIL.ImageFilter + • PIL.ImageFont + • PIL.ImageMath + • PIL._typing + • Xlib.display + • _weakrefset + • asyncio.coroutines + • asyncio.futures + • asyncio.queues + • asyncio.tasks + • asyncio.timeouts + • concurrent.futures._base + • concurrent.futures.thread + • contextlib + • copy + • csv + • ctypes + • dataclasses + • difflib + • dis + • email.headerregistry + • enum + • functools + • http.cookies + • importlib.metadata._functools + • importlib.resources._common + • importlib.resources._legacy + • importlib.util + • inspect + • logging + • main.py + • multiprocessing.managers + • multiprocessing.pool + • multiprocessing.queues + • multiprocessing.shared_memory + • multiprocessing.spawn + • pickle + • pkgutil + • pprint + • pystray._xorg + • queue + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._functools + • setuptools._vendor.importlib_metadata.compat.py311 + • setuptools._vendor.jaraco.functools + • setuptools._vendor.tomli._parser + • setuptools._vendor.typing_extensions + • setuptools.command.bdist_egg + • setuptools.config._apply_pyprojecttoml + • setuptools.config.expand + • setuptools.config.pyprojecttoml + • setuptools.depends + • setuptools.monkey + • six + • subprocess + • sysconfig + • tempfile + • tomllib._parser + • typing + • unittest.case + • unittest.loader + • unittest.mock + • urllib.parse + • urllib3.connectionpool + • urllib3.http2.connection + • urllib3.poolmanager + • urllib3.util.retry + • urllib3.util.util + +
+ +
+ +
+ + typing +SourceModule
+imports: + _typing + • abc + • collections + • collections.abc + • contextlib + • copyreg + • functools + • inspect + • operator + • re + • sys + • types + • warnings + +
+
+imported by: + PIL.AvifImagePlugin + • PIL.BlpImagePlugin + • PIL.BmpImagePlugin + • PIL.BufrStubImagePlugin + • PIL.DdsImagePlugin + • PIL.EpsImagePlugin + • PIL.GifImagePlugin + • PIL.GimpGradientFile + • PIL.GimpPaletteFile + • PIL.GribStubImagePlugin + • PIL.Hdf5StubImagePlugin + • PIL.IcnsImagePlugin + • PIL.IcoImagePlugin + • PIL.ImImagePlugin + • PIL.Image + • PIL.ImageCms + • PIL.ImageDraw + • PIL.ImageDraw2 + • PIL.ImageFile + • PIL.ImageFilter + • PIL.ImageFont + • PIL.ImageMath + • PIL.ImageMode + • PIL.ImageOps + • PIL.ImagePalette + • PIL.ImageQt + • PIL.ImageShow + • PIL.ImageTk + • PIL.IptcImagePlugin + • PIL.Jpeg2KImagePlugin + • PIL.JpegImagePlugin + • PIL.MpoImagePlugin + • PIL.MspImagePlugin + • PIL.PaletteFile + • PIL.PalmImagePlugin + • PIL.PcxImagePlugin + • PIL.PdfImagePlugin + • PIL.PdfParser + • PIL.PngImagePlugin + • PIL.PpmImagePlugin + • PIL.PsdImagePlugin + • PIL.QoiImagePlugin + • PIL.SgiImagePlugin + • PIL.SpiderImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL.TiffTags + • PIL.WebPImagePlugin + • PIL.WmfImagePlugin + • PIL.XbmImagePlugin + • PIL._avif + • PIL._imaging + • PIL._imagingcms + • PIL._imagingft + • PIL._imagingmath + • PIL._imagingtk + • PIL._typing + • PIL._util + • PIL._webp + • PIL.features + • asyncio.staggered + • asyncio.timeouts + • charset_normalizer.api + • charset_normalizer.cd + • charset_normalizer.legacy + • charset_normalizer.models + • charset_normalizer.utils + • evdev.device + • evdev.ecodes + • evdev.eventio + • evdev.eventio_async + • evdev.events + • evdev.uinput + • evdev.util + • event_captor + • functools + • idna.core + • idna.intranges + • idna.uts46data + • importlib.metadata + • importlib.metadata._meta + • importlib.resources._common + • importlib.resources._legacy + • importlib.resources.abc + • key_captor + • mss.base + • mss.darwin + • mss.exception + • mss.factory + • mss.linux + • mss.models + • mss.screenshot + • mss.tools + • mss.windows + • packaging._elffile + • packaging._manylinux + • packaging._musllinux + • packaging._parser + • packaging._tokenizer + • packaging.licenses + • packaging.licenses._spdx + • packaging.markers + • packaging.requirements + • packaging.specifiers + • packaging.tags + • packaging.utils + • packaging.version + • raw_session + • requests.adapters + • screen_capturer + • setuptools + • setuptools._distutils._modified + • setuptools._distutils.archive_util + • setuptools._distutils.cmd + • setuptools._distutils.command.bdist + • setuptools._distutils.command.build + • setuptools._distutils.command.build_ext + • setuptools._distutils.command.check + • setuptools._distutils.command.sdist + • setuptools._distutils.compat + • setuptools._distutils.compilers.C.base + • setuptools._distutils.dist + • setuptools._distutils.fancy_getopt + • setuptools._distutils.filelist + • setuptools._distutils.spawn + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._normalization + • setuptools._path + • setuptools._reqs + • setuptools._shutil + • setuptools._static + • setuptools._vendor.importlib_metadata + • setuptools._vendor.importlib_metadata._meta + • setuptools._vendor.importlib_metadata.compat.py39 + • setuptools._vendor.jaraco.context + • setuptools._vendor.packaging._elffile + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.packaging._musllinux + • setuptools._vendor.packaging._parser + • setuptools._vendor.packaging._tokenizer + • setuptools._vendor.packaging.markers + • setuptools._vendor.packaging.requirements + • setuptools._vendor.packaging.specifiers + • setuptools._vendor.packaging.tags + • setuptools._vendor.packaging.utils + • setuptools._vendor.packaging.version + • setuptools._vendor.tomli._parser + • setuptools._vendor.tomli._re + • setuptools._vendor.tomli._types + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.macosx_libfile + • setuptools._vendor.wheel.metadata + • setuptools._vendor.wheel.vendored.packaging._elffile + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools._vendor.wheel.vendored.packaging._musllinux + • setuptools._vendor.wheel.vendored.packaging._parser + • setuptools._vendor.wheel.vendored.packaging._tokenizer + • setuptools._vendor.wheel.vendored.packaging.markers + • setuptools._vendor.wheel.vendored.packaging.requirements + • setuptools._vendor.wheel.vendored.packaging.specifiers + • setuptools._vendor.wheel.vendored.packaging.tags + • setuptools._vendor.wheel.vendored.packaging.utils + • setuptools._vendor.wheel.vendored.packaging.version + • setuptools._vendor.wheel.wheelfile + • setuptools.command._requirestxt + • setuptools.command.bdist_egg + • setuptools.command.bdist_wheel + • setuptools.command.build + • setuptools.command.sdist + • setuptools.compat.py311 + • setuptools.config + • setuptools.config._apply_pyprojecttoml + • setuptools.config._validate_pyproject + • setuptools.config._validate_pyproject.error_reporting + • setuptools.config._validate_pyproject.extra_validations + • setuptools.config._validate_pyproject.formats + • setuptools.config.expand + • setuptools.config.pyprojecttoml + • setuptools.config.setupcfg + • setuptools.depends + • setuptools.discovery + • setuptools.dist + • setuptools.extension + • setuptools.glob + • setuptools.monkey + • setuptools.msvc + • setuptools.warnings + • tomllib._parser + • tomllib._re + • tomllib._types + • tray_ui + • uploader + • urllib3 + • urllib3._base_connection + • urllib3._collections + • urllib3._request_methods + • urllib3._version + • urllib3.connection + • urllib3.connectionpool + • urllib3.contrib.emscripten.connection + • urllib3.contrib.emscripten.fetch + • urllib3.contrib.emscripten.response + • urllib3.contrib.pyopenssl + • urllib3.contrib.socks + • urllib3.exceptions + • urllib3.fields + • urllib3.filepost + • urllib3.http2 + • urllib3.http2.connection + • urllib3.poolmanager + • urllib3.response + • urllib3.util.connection + • urllib3.util.proxy + • urllib3.util.request + • urllib3.util.retry + • urllib3.util.ssl_ + • urllib3.util.ssl_match_hostname + • urllib3.util.ssltransport + • urllib3.util.timeout + • urllib3.util.url + • urllib3.util.util + • window_info + +
+ +
+ +
+ + typing_extensions +AliasNode + + +
+ +
+ + typing_extensions.Buffer +MissingModule + +
+ +
+ + typing_extensions.Literal +MissingModule + +
+ +
+ + typing_extensions.Self +MissingModule + +
+ +
+ + typing_extensions.TypeAlias +MissingModule + +
+ +
+ + typing_extensions.TypeVarTuple +MissingModule + +
+ +
+ + typing_extensions.Unpack +MissingModule + +
+ +
+ + typing_extensions.deprecated +MissingModule + +
+ +
+ + unicodedata (builtin module) + +
+ +
+ + unittest +Package + + +
+ +
+ + unittest._log +SourceModule
+imports: + collections + • logging + • unittest + • unittest.case + +
+
+imported by: + unittest.case + +
+ +
+ +
+ + unittest.async_case +SourceModule
+imports: + asyncio + • contextvars + • inspect + • unittest + • unittest.case + • warnings + +
+
+imported by: + unittest + +
+ +
+ +
+ + unittest.case +SourceModule
+imports: + collections + • contextlib + • difflib + • functools + • pprint + • re + • sys + • time + • traceback + • types + • unittest + • unittest._log + • unittest.result + • unittest.util + • warnings + +
+
+imported by: + unittest + • unittest._log + • unittest.async_case + • unittest.loader + • unittest.runner + • unittest.suite + +
+ +
+ +
+ + unittest.loader +SourceModule
+imports: + fnmatch + • functools + • os + • re + • sys + • traceback + • types + • unittest + • unittest.case + • unittest.suite + • unittest.util + • warnings + +
+
+imported by: + unittest + • unittest.main + +
+ +
+ +
+ + unittest.main +SourceModule
+imports: + argparse + • os + • sys + • unittest + • unittest.loader + • unittest.runner + • unittest.signals + • warnings + +
+
+imported by: + unittest + +
+ +
+ +
+ + unittest.mock +SourceModule
+imports: + _io + • asyncio + • builtins + • contextlib + • functools + • inspect + • io + • pkgutil + • pprint + • sys + • threading + • types + • unittest + • unittest.util + +
+ + +
+ +
+ + unittest.result +SourceModule
+imports: + functools + • io + • sys + • traceback + • unittest + • unittest.util + +
+
+imported by: + unittest + • unittest.case + • unittest.runner + +
+ +
+ +
+ + unittest.runner +SourceModule
+imports: + sys + • time + • unittest + • unittest.case + • unittest.result + • unittest.signals + • warnings + +
+
+imported by: + unittest + • unittest.main + +
+ +
+ +
+ + unittest.signals +SourceModule
+imports: + functools + • signal + • unittest + • weakref + +
+
+imported by: + unittest + • unittest.main + • unittest.runner + +
+ +
+ +
+ + unittest.suite +SourceModule
+imports: + sys + • unittest + • unittest.case + • unittest.util + +
+
+imported by: + unittest + • unittest.loader + +
+ +
+ +
+ + unittest.util +SourceModule
+imports: + collections + • os.path + • unittest + +
+
+imported by: + unittest + • unittest.case + • unittest.loader + • unittest.mock + • unittest.result + • unittest.suite + +
+ +
+ +
+ + uploader +SourceModule
+imports: + __future__ + • config + • os + • requests + • typing + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + urllib +Package + +
+ +
+ + urllib.error +SourceModule
+imports: + io + • urllib + • urllib.response + +
+
+imported by: + urllib.request + +
+ +
+ +
+ + urllib.parse +SourceModule
+imports: + collections + • functools + • ipaddress + • math + • re + • types + • unicodedata + • urllib + • warnings + +
+ + +
+ +
+ + urllib.request +SourceModule
+imports: + _scproxy + • base64 + • bisect + • contextlib + • email + • email.utils + • fnmatch + • ftplib + • getpass + • hashlib + • http.client + • http.cookiejar + • io + • ipaddress + • mimetypes + • nturl2path + • os + • re + • socket + • ssl + • string + • sys + • tempfile + • time + • urllib + • urllib.error + • urllib.parse + • urllib.response + • warnings + • winreg + +
+ + +
+ +
+ + urllib.response +SourceModule
+imports: + tempfile + • urllib + +
+
+imported by: + urllib.error + • urllib.request + +
+ +
+ +
+ + urllib3 +Package + + +
+ +
+ + urllib3._base_connection +SourceModule + + +
+ +
+ + urllib3._collections +SourceModule
+imports: + __future__ + • collections + • enum + • threading + • typing + • typing_extensions + • urllib3 + +
+ + +
+ +
+ + urllib3._request_methods +SourceModule +
+imported by: + urllib3.connectionpool + • urllib3.poolmanager + +
+ +
+ +
+ + urllib3._version +SourceModule
+imports: + typing + • urllib3 + +
+
+imported by: + urllib3 + • urllib3.connection + +
+ +
+ +
+ + urllib3.connection +SourceModule + + +
+ +
+ + urllib3.connectionpool +SourceModule + + +
+ +
+ + urllib3.contrib +Package
+imports: + urllib3 + • urllib3.contrib.pyopenssl + +
+ + +
+ +
+ + urllib3.contrib.emscripten +Package + + +
+ +
+ + urllib3.contrib.emscripten.connection +SourceModule +
+imported by: + urllib3.contrib.emscripten + +
+ +
+ +
+ + urllib3.contrib.emscripten.fetch +SourceModule + + +
+ +
+ + urllib3.contrib.emscripten.request +SourceModule + + +
+ +
+ + urllib3.contrib.emscripten.response +SourceModule + + +
+ +
+ + urllib3.contrib.pyopenssl +SourceModule
+imports: + 'OpenSSL.crypto' + • 'cryptography.x509' + • OpenSSL + • __future__ + • cryptography + • idna + • io + • logging + • socket + • ssl + • typing + • urllib3 + • urllib3.contrib + • urllib3.util + +
+
+imported by: + requests + • urllib3.contrib + +
+ +
+ +
+ + urllib3.contrib.socks +SourceModule +
+imported by: + requests.adapters + +
+ +
+ +
+ + urllib3.exceptions +SourceModule + + +
+ +
+ + urllib3.fields +SourceModule
+imports: + __future__ + • email.utils + • mimetypes + • typing + • urllib3 + • warnings + +
+
+imported by: + requests.models + • urllib3.filepost + +
+ +
+ +
+ + urllib3.filepost +SourceModule
+imports: + __future__ + • binascii + • codecs + • io + • os + • typing + • urllib3 + • urllib3.fields + +
+
+imported by: + requests.models + • urllib3 + • urllib3._request_methods + +
+ +
+ +
+ + urllib3.http2 +Package + + +
+ +
+ + urllib3.http2.connection +SourceModule +
+imported by: + urllib3.http2 + +
+ +
+ +
+ + urllib3.http2.probe +SourceModule
+imports: + __future__ + • threading + • urllib3.http2 + +
+
+imported by: + urllib3.connection + • urllib3.http2 + +
+ +
+ +
+ + urllib3.poolmanager +SourceModule +
+imported by: + requests.adapters + • urllib3 + • urllib3.contrib.socks + +
+ +
+ +
+ + urllib3.response +SourceModule
+imports: + __future__ + • brotli + • brotlicffi + • collections + • compression + • contextlib + • http.client + • io + • json + • logging + • re + • socket + • sys + • typing + • urllib3 + • urllib3._base_connection + • urllib3._collections + • urllib3.connection + • urllib3.connectionpool + • urllib3.exceptions + • urllib3.util + • urllib3.util.response + • urllib3.util.retry + • warnings + • zlib + • zstandard + +
+ + +
+ +
+ + urllib3.util +Package + + +
+ +
+ + urllib3.util.connection +SourceModule + + +
+ +
+ + urllib3.util.proxy +SourceModule
+imports: + __future__ + • typing + • urllib3.connection + • urllib3.util + • urllib3.util.url + +
+
+imported by: + urllib3.connectionpool + • urllib3.poolmanager + +
+ +
+ +
+ + urllib3.util.request +SourceModule
+imports: + __future__ + • base64 + • brotli + • brotlicffi + • compression + • enum + • io + • typing + • urllib3.exceptions + • urllib3.util + • urllib3.util.util + • zstandard + +
+
+imported by: + urllib3 + • urllib3.connection + • urllib3.connectionpool + • urllib3.util + +
+ +
+ +
+ + urllib3.util.response +SourceModule
+imports: + __future__ + • email.errors + • http.client + • urllib3.exceptions + • urllib3.util + +
+
+imported by: + urllib3.connection + • urllib3.response + • urllib3.util + +
+ +
+ +
+ + urllib3.util.retry +SourceModule
+imports: + __future__ + • email + • itertools + • logging + • random + • re + • time + • types + • typing + • typing_extensions + • urllib3.connectionpool + • urllib3.exceptions + • urllib3.response + • urllib3.util + • urllib3.util.util + +
+ + +
+ +
+ + urllib3.util.ssl_ +SourceModule
+imports: + __future__ + • binascii + • hashlib + • hmac + • os + • socket + • ssl + • sys + • typing + • urllib3.exceptions + • urllib3.util + • urllib3.util.ssltransport + • urllib3.util.url + • warnings + +
+ + +
+ +
+ + urllib3.util.ssl_match_hostname +SourceModule
+imports: + __future__ + • ipaddress + • re + • typing + • urllib3.util + • urllib3.util.ssl_ + +
+
+imported by: + urllib3.connection + • urllib3.connectionpool + +
+ +
+ +
+ + urllib3.util.ssltransport +SourceModule
+imports: + __future__ + • io + • socket + • ssl + • typing + • typing_extensions + • urllib3.exceptions + • urllib3.util + • urllib3.util.ssl_ + +
+
+imported by: + urllib3.connection + • urllib3.util.ssl_ + +
+ +
+ +
+ + urllib3.util.timeout +SourceModule
+imports: + __future__ + • enum + • socket + • time + • typing + • urllib3.exceptions + • urllib3.util + +
+ + +
+ +
+ + urllib3.util.url +SourceModule
+imports: + __future__ + • idna + • re + • typing + • urllib3.exceptions + • urllib3.util + • urllib3.util.util + +
+ + +
+ +
+ + urllib3.util.util +SourceModule
+imports: + __future__ + • types + • typing + • urllib3.util + +
+ + +
+ +
+ + urllib3.util.wait +SourceModule
+imports: + __future__ + • functools + • select + • socket + • urllib3.util + +
+
+imported by: + urllib3.connection + • urllib3.util + +
+ +
+ +
+ + usercustomize +MissingModule
+imported by: + site + +
+ +
+ +
+ + uuid +SourceModule
+imports: + _uuid + • argparse + • enum + • hashlib + • io + • os + • platform + • random + • shutil + • socket + • subprocess + • sys + • time + +
+
+imported by: + raw_session + +
+ +
+ +
+ + vms_lib +MissingModule
+imported by: + platform + +
+ +
+ +
+ + warnings +SourceModule
+imports: + _warnings + • builtins + • linecache + • re + • sys + • traceback + • tracemalloc + +
+
+imported by: + PIL.IcoImagePlugin + • PIL.Image + • PIL.ImageFont + • PIL.JpegImagePlugin + • PIL.PngImagePlugin + • PIL.TgaImagePlugin + • PIL.TiffImagePlugin + • PIL._deprecate + • PIL.features + • _collections_abc + • _distutils_hack + • _pydatetime + • argparse + • ast + • asyncio.base_events + • asyncio.base_subprocess + • asyncio.events + • asyncio.proactor_events + • asyncio.selector_events + • asyncio.sslproto + • asyncio.streams + • asyncio.tasks + • asyncio.unix_events + • asyncio.windows_utils + • calendar + • charset_normalizer.legacy + • configparser + • email.utils + • enum + • getpass + • gettext + • gzip + • hmac + • http.cookiejar + • importlib + • importlib.abc + • importlib.metadata + • importlib.metadata._adapters + • importlib.resources._common + • importlib.resources._legacy + • locale + • logging + • main.py + • multiprocessing.forkserver + • multiprocessing.pool + • multiprocessing.resource_tracker + • os + • packaging._manylinux + • pathlib + • pkgutil + • pydoc + • random + • re + • re._parser + • requests + • requests.adapters + • requests.auth + • requests.utils + • runpy + • setuptools._distutils._msvccompiler + • setuptools._distutils.command.bdist + • setuptools._distutils.compilers.C.base + • setuptools._distutils.compilers.C.msvc + • setuptools._distutils.dist + • setuptools._distutils.extension + • setuptools._distutils.log + • setuptools._distutils.spawn + • setuptools._distutils.sysconfig + • setuptools._distutils.util + • setuptools._distutils.version + • setuptools._vendor.jaraco.context + • setuptools._vendor.jaraco.functools + • setuptools._vendor.more_itertools.more + • setuptools._vendor.packaging._manylinux + • setuptools._vendor.typing_extensions + • setuptools._vendor.wheel.vendored.packaging._manylinux + • setuptools.command.bdist_wheel + • setuptools.warnings + • shutil + • sre_compile + • sre_constants + • sre_parse + • ssl + • subprocess + • sysconfig + • tarfile + • tempfile + • threading + • typing + • unittest.async_case + • unittest.case + • unittest.loader + • unittest.main + • unittest.runner + • urllib.parse + • urllib.request + • urllib3 + • urllib3.connection + • urllib3.connectionpool + • urllib3.contrib.socks + • urllib3.exceptions + • urllib3.fields + • urllib3.poolmanager + • urllib3.response + • urllib3.util.ssl_ + • webbrowser + • xml.etree.ElementTree + • zipfile + +
+ +
+ +
+ + weakref +SourceModule
+imports: + _collections_abc + • _weakref + • _weakrefset + • atexit + • copy + • gc + • itertools + • sys + +
+ + +
+ +
+ + webbrowser +SourceModule
+imports: + copy + • getopt + • os + • shlex + • shutil + • subprocess + • sys + • threading + • warnings + +
+
+imported by: + pydoc + +
+ +
+ +
+ + wheel +AliasNode
+imports: + setuptools._vendor.wheel + +
+ + +
+ +
+ + win32evtlog +MissingModule
+imported by: + logging.handlers + +
+ +
+ +
+ + win32evtlogutil +MissingModule
+imported by: + logging.handlers + +
+ +
+ +
+ + window_info +SourceModule
+imports: + __future__ + • subprocess + • typing + +
+
+imported by: + tray_ui + +
+ +
+ +
+ + winreg +MissingModule + +
+ +
+ + xml +Package
+imports: + xml.sax.expatreader + • xml.sax.xmlreader + +
+
+imported by: + xml.etree + • xml.parsers + • xml.sax + +
+ +
+ +
+ + xml.etree +Package
+imports: + xml + • xml.etree + • xml.etree.ElementPath + • xml.etree.ElementTree + +
+ + +
+ +
+ + xml.etree.ElementInclude +SourceModule
+imports: + copy + • urllib.parse + • xml.etree + • xml.etree.ElementTree + +
+
+imported by: + _elementtree + +
+ +
+ +
+ + xml.etree.ElementPath +SourceModule
+imports: + re + • xml.etree + +
+
+imported by: + _elementtree + • xml.etree + • xml.etree.ElementTree + +
+ +
+ +
+ + xml.etree.ElementTree +SourceModule
+imports: + _elementtree + • collections + • collections.abc + • contextlib + • io + • pyexpat + • re + • sys + • warnings + • weakref + • xml.etree + • xml.etree.ElementPath + • xml.parsers + • xml.parsers.expat + +
+ + +
+ +
+ + xml.etree.cElementTree +SourceModule
+imports: + xml.etree + • xml.etree.ElementTree + +
+
+imported by: + _elementtree + +
+ +
+ +
+ + xml.parsers +Package
+imports: + xml + • xml.parsers.expat + +
+ + +
+ +
+ + xml.parsers.expat +SourceModule
+imports: + pyexpat + • sys + • xml.parsers + +
+
+imported by: + xml.etree.ElementTree + • xml.parsers + • xml.sax.expatreader + • xmlrpc.client + +
+ +
+ +
+ + xml.sax +Package
+imports: + io + • os + • sys + • xml + • xml.sax + • xml.sax._exceptions + • xml.sax.expatreader + • xml.sax.handler + • xml.sax.saxutils + • xml.sax.xmlreader + +
+ + +
+ +
+ + xml.sax._exceptions +SourceModule
+imports: + xml.sax + +
+
+imported by: + xml.sax + • xml.sax.expatreader + • xml.sax.xmlreader + +
+ +
+ +
+ + xml.sax.expatreader +SourceModule +
+imported by: + xml + • xml.sax + +
+ +
+ +
+ + xml.sax.handler +SourceModule
+imports: + xml.sax + +
+
+imported by: + xml.sax + • xml.sax.expatreader + • xml.sax.saxutils + • xml.sax.xmlreader + +
+ +
+ +
+ + xml.sax.saxutils +SourceModule
+imports: + codecs + • io + • os + • sys + • urllib.parse + • urllib.request + • xml.sax + • xml.sax.handler + • xml.sax.xmlreader + +
+
+imported by: + xml.sax + • xml.sax.expatreader + • xml.sax.xmlreader + +
+ +
+ +
+ + xml.sax.xmlreader +SourceModule
+imports: + xml.sax + • xml.sax._exceptions + • xml.sax.handler + • xml.sax.saxutils + +
+
+imported by: + xml + • xml.sax + • xml.sax.expatreader + • xml.sax.saxutils + +
+ +
+ +
+ + xmlrpc +Package
+imported by: + xmlrpc.client + +
+ +
+ +
+ + xmlrpc.client +SourceModule
+imports: + base64 + • datetime + • decimal + • errno + • gzip + • http.client + • io + • sys + • time + • urllib.parse + • xml.parsers + • xml.parsers.expat + • xmlrpc + +
+
+imported by: + multiprocessing.connection + +
+ +
+ +
+ + zipfile +Package
+imports: + argparse + • binascii + • bz2 + • importlib.util + • io + • lzma + • os + • py_compile + • shutil + • stat + • struct + • sys + • threading + • time + • warnings + • zipfile._path + • zlib + +
+ + +
+ +
+ + zipfile._path +Package
+imports: + contextlib + • io + • itertools + • pathlib + • posixpath + • re + • zipfile + • zipfile._path.glob + +
+
+imported by: + zipfile + • zipfile._path.glob + +
+ +
+ +
+ + zipfile._path.glob +SourceModule
+imports: + re + • zipfile._path + +
+
+imported by: + zipfile._path + +
+ +
+ +
+ + zipimport +SourceModule
+imports: + _frozen_importlib + • _frozen_importlib_external + • _imp + • _io + • _warnings + • importlib.readers + • marshal + • sys + • time + • zlib + +
+
+imported by: + pkgutil + +
+ +
+ +
+ + zipp +AliasNode
+imports: + setuptools._vendor.zipp + +
+ + +
+ +
+ + zlib (builtin module)
+imported by: + PIL.PdfParser + • PIL.PngImagePlugin + • encodings.zlib_codec + • gzip + • mss.tools + • shutil + • tarfile + • urllib3.response + • zipfile + • zipimport + +
+ +
+ +
+ + zstandard +MissingModule
+imported by: + urllib3.response + • urllib3.util.request + +
+ +
+ + + diff --git a/config.py b/config.py new file mode 100644 index 0000000..9e34d1a --- /dev/null +++ b/config.py @@ -0,0 +1,34 @@ +# config.py +""" +Configuration de base pour agent_v0. +""" + +from __future__ import annotations + +import os +from pathlib import Path + +AGENT_VERSION = "0.1.0" + +# Dossier racine du projet (là où se trouve ce fichier) +BASE_DIR = Path(__file__).resolve().parent + +# Endpoint de ton serveur (placeholder pour l'instant) +SERVER_URL = "https://example.com/api/traces/upload" + +# Durée max d'une session en secondes (ex: 30 minutes) +MAX_SESSION_DURATION_S = 30 * 60 + +# Dossier racine local où stocker les sessions (chemin ABSOLU) +SESSIONS_ROOT = str(BASE_DIR / "sessions") + +# Dossier et fichier de logs +LOGS_DIR = BASE_DIR / "logs" +LOG_FILE = LOGS_DIR / "agent_v0.log" + +# Faut-il quitter l'application après un Stop session ? +EXIT_AFTER_SESSION = True + +# Création des dossiers si besoin +os.makedirs(SESSIONS_ROOT, exist_ok=True) +os.makedirs(LOGS_DIR, exist_ok=True) diff --git a/dist/agent_v0_tray b/dist/agent_v0_tray new file mode 100755 index 0000000..9005fe5 Binary files /dev/null and b/dist/agent_v0_tray differ diff --git a/event_captor.py b/event_captor.py new file mode 100644 index 0000000..02f4252 --- /dev/null +++ b/event_captor.py @@ -0,0 +1,140 @@ +# event_captor.py +""" +Hooks souris pour agent_v0. + +v0+ : +- écoute des clics souris globaux +- écoute du scroll (molette) +- détecte les périodes d'immobilité (hover) > hover_min_idle_ms +""" + +from __future__ import annotations + +import threading +import time +from typing import Callable, Optional + +from pynput import mouse + +MouseClickCallback = Callable[[str, int, int], None] +MouseScrollCallback = Callable[[int, int, int, int], None] # x, y, dx, dy +MouseHoverCallback = Callable[[int, int, int], None] # x, y, idle_ms + + +class EventCaptor: + """ + Capture les événements souris globaux et les relaie à des callbacks. + """ + + def __init__( + self, + on_mouse_click: MouseClickCallback, + on_scroll: Optional[MouseScrollCallback] = None, + on_hover: Optional[MouseHoverCallback] = None, + hover_min_idle_ms: int = 700, + ) -> None: + """ + :param on_mouse_click: fonction appelée sur clic souris, + signature (button_str, x, y) + :param on_scroll: fonction appelée sur scroll (molette), ou None + signature (x, y, dx, dy) + :param on_hover: fonction appelée quand la souris est immobile + depuis hover_min_idle_ms, ou None + signature (x, y, idle_ms) + """ + self._on_mouse_click = on_mouse_click + self._on_scroll = on_scroll + self._on_hover = on_hover + self._hover_min_idle_ms = hover_min_idle_ms + + self._listener: mouse.Listener | None = None + + # Pour le suivi du déplacement souris (hover) + self._last_move_time: Optional[float] = None + self._last_move_pos: Optional[tuple[int, int]] = None + + self._hover_thread: Optional[threading.Thread] = None + self._hover_thread_running: bool = False + + def start(self) -> None: + """Démarre l'écoute globale des événements souris.""" + if self._listener is not None: + return + + self._listener = mouse.Listener( + on_click=self._handle_click, + on_scroll=self._handle_scroll, + on_move=self._handle_move, + ) + self._listener.start() + + if self._on_hover is not None: + self._hover_thread_running = True + self._hover_thread = threading.Thread( + target=self._hover_loop, name="HoverDetector", daemon=True + ) + self._hover_thread.start() + + def stop(self) -> None: + """Arrête l'écoute globale et le thread hover.""" + if self._listener is not None: + self._listener.stop() + self._listener = None + + self._hover_thread_running = False + self._hover_thread = None + + self._last_move_time = None + self._last_move_pos = None + + # --- internes --- + + def _handle_click(self, x: int, y: int, button: mouse.Button, pressed: bool) -> None: + # On ne loggue que l'événement "pressed" + if not pressed: + return + + button_str = getattr(button, "name", str(button)) + self._on_mouse_click(button_str, x, y) + + def _handle_scroll(self, x: int, y: int, dx: int, dy: int) -> None: + if self._on_scroll is not None: + self._on_scroll(x, y, dx, dy) + + def _handle_move(self, x: int, y: int) -> None: + now = time.monotonic() + self._last_move_time = now + self._last_move_pos = (x, y) + + def _hover_loop(self) -> None: + """ + Thread qui surveille l'immobilité de la souris. + Si la souris reste immobile plus de hover_min_idle_ms, + on déclenche un callback on_hover(x, y, idle_ms). + """ + last_hover_trigger_time: float | None = None + + while self._hover_thread_running: + time.sleep(0.1) + + if self._on_hover is None: + continue + + if self._last_move_time is None or self._last_move_pos is None: + continue + + now = time.monotonic() + idle_ms = int((now - self._last_move_time) * 1000) + + if idle_ms < self._hover_min_idle_ms: + continue + + # Éviter de déclencher en boucle pour la même "immobilité" + if last_hover_trigger_time is not None: + # Si on a déjà déclenché récemment, on attend un nouveau mouvement + if self._last_move_time <= last_hover_trigger_time: + continue + + x, y = self._last_move_pos + self._on_hover(x, y, idle_ms) + last_hover_trigger_time = now diff --git a/key_captor.py b/key_captor.py new file mode 100644 index 0000000..9019f74 --- /dev/null +++ b/key_captor.py @@ -0,0 +1,123 @@ +# key_captor.py +""" +Capture des combos clavier pour agent_v0. + +v0 : +- écoute globale clavier via pynput +- maintient un set de touches "modificateurs" enfoncées (CTRL, ALT, SHIFT, CMD) +- quand une touche non-modif est pressée avec au moins un modif, + appelle un callback (keys: List[str]) du type ["CTRL", "F"] +""" + +from __future__ import annotations + +from typing import Callable, List, Set + +from pynput import keyboard + +KeyComboCallback = Callable[[List[str]], None] + + +MODIFIER_MAP = { + keyboard.Key.ctrl_l: "CTRL", + keyboard.Key.ctrl_r: "CTRL", + keyboard.Key.alt_l: "ALT", + keyboard.Key.alt_r: "ALT", + keyboard.Key.shift: "SHIFT", + keyboard.Key.shift_l: "SHIFT", + keyboard.Key.shift_r: "SHIFT", + keyboard.Key.cmd: "CMD", + keyboard.Key.cmd_l: "CMD", + keyboard.Key.cmd_r: "CMD", +} + + +class KeyCaptor: + """ + Capture les combos clavier globaux et les relaie à un callback. + """ + + def __init__(self, on_key_combo: KeyComboCallback) -> None: + """ + :param on_key_combo: fonction appelée sur combo clavier, + signature (keys: List[str]) + """ + self._on_key_combo = on_key_combo + self._listener: keyboard.Listener | None = None + self._mods_pressed: Set[str] = set() + + def start(self) -> None: + """Démarre l'écoute globale clavier.""" + if self._listener is not None: + return + + self._listener = keyboard.Listener( + on_press=self._handle_press, + on_release=self._handle_release, + ) + self._listener.start() + + def stop(self) -> None: + """Arrête l'écoute globale clavier.""" + if self._listener is not None: + self._listener.stop() + self._listener = None + self._mods_pressed.clear() + + # --- callbacks internes --- + + def _handle_press(self, key: keyboard.Key | keyboard.KeyCode) -> None: + # Gestion des mods + mod_name = MODIFIER_MAP.get(key) + if mod_name: + self._mods_pressed.add(mod_name) + return + + # Ici : touche non-modif + if not self._mods_pressed: + # Pas de modif → on ignore (on ne log pas la frappe "normale") + return + + # On construit la liste des touches + keys = sorted(self._mods_pressed) + + # Nom de la touche principale + main_key = self._key_to_str(key) + if main_key is None: + return + + keys.append(main_key) + + # Appel du callback + try: + self._on_key_combo(keys) + except Exception: + # On évite de casser le listener en cas d'erreur dans le callback + pass + + def _handle_release(self, key: keyboard.Key | keyboard.KeyCode) -> None: + # Retirer les modifs qui ne sont plus pressées + mod_name = MODIFIER_MAP.get(key) + if mod_name and mod_name in self._mods_pressed: + self._mods_pressed.discard(mod_name) + + @staticmethod + def _key_to_str(key: keyboard.Key | keyboard.KeyCode) -> str | None: + # Touche "normale" (KeyCode avec .char) + if isinstance(key, keyboard.KeyCode): + if key.char: + return key.char.upper() + return None + + # Quelques touches "spéciales" qu'on peut vouloir logguer + special_map = { + keyboard.Key.enter: "ENTER", + keyboard.Key.tab: "TAB", + keyboard.Key.esc: "ESC", + keyboard.Key.space: "SPACE", + } + if key in special_map: + return special_map[key] + + # Sinon, on ignore + return None diff --git a/logger_conf.py b/logger_conf.py new file mode 100644 index 0000000..60cf089 --- /dev/null +++ b/logger_conf.py @@ -0,0 +1,50 @@ +# logger_conf.py +""" +Configuration du logging pour agent_v0. + +- Log vers console +- Log vers fichier rotatif logs/agent_v0.log +""" + +from __future__ import annotations + +import logging +from logging.handlers import RotatingFileHandler + +from config import LOG_FILE + + +def setup_logging(level: int = logging.INFO) -> None: + """ + Configure le logging global de l'application. + + À appeler une seule fois au démarrage (dans main.py). + """ + logger = logging.getLogger() + + # Éviter de dupliquer les handlers si setup_logging est rappelé + if logger.handlers: + return + + logger.setLevel(level) + + formatter = logging.Formatter( + "[%(asctime)s] [%(levelname)s] %(name)s: %(message)s" + ) + + # Handler fichier rotatif + file_handler = RotatingFileHandler( + LOG_FILE, + maxBytes=5 * 1024 * 1024, # 5 Mo + backupCount=3, + encoding="utf-8", + ) + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) + + # Handler console + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + + logging.getLogger(__name__).info("Logging initialisé. Fichier log = %s", LOG_FILE) diff --git a/logs/agent_v0.log b/logs/agent_v0.log new file mode 100644 index 0000000..bebb029 --- /dev/null +++ b/logs/agent_v0.log @@ -0,0 +1,292 @@ +[2025-11-21 23:08:47,881] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:08:47,884] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:09:15,053] [INFO] agent_v0.tray: Démarrage d'une nouvelle session... +[2025-11-21 23:09:15,059] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:09:15,062] [INFO] agent_v0.tray: Session sess_20251121T230915_218b0d40 démarrée. +[2025-11-21 23:09:19,414] [INFO] agent_v0.tray: Clic left à (1644, 16) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:19,520] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:09:22,892] [INFO] agent_v0.tray: Clic left à (1643, 20) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:22,918] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:09:24,012] [INFO] agent_v0.tray: Clic left à (1134, 482) → screenshot=shot_0003, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:25,435] [INFO] agent_v0.tray: Clic left à (783, 558) → screenshot=shot_0004, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:26,076] [INFO] agent_v0.tray: Clic left à (801, 492) → screenshot=shot_0005, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:26,523] [INFO] agent_v0.tray: Clic left à (877, 367) → screenshot=shot_0006, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:26,867] [INFO] agent_v0.tray: Clic left à (877, 367) → screenshot=shot_0007, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:27,435] [INFO] agent_v0.tray: Clic left à (546, 582) → screenshot=shot_0008, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:09:28,000] [INFO] agent_v0.tray: Clic left à (317, 672) → screenshot=shot_0009, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:09,774] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:10:09,776] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:10:14,732] [INFO] agent_v0.tray: Démarrage d'une nouvelle session... +[2025-11-21 23:10:14,738] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:10:14,740] [INFO] agent_v0.tray: Session sess_20251121T231014_555329f7 démarrée. +[2025-11-21 23:10:16,864] [INFO] agent_v0.tray: Clic left à (1646, 16) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:17,220] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:10:18,879] [INFO] agent_v0.tray: Clic right à (1646, 17) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:21,310] [INFO] agent_v0.tray: Clic right à (1646, 17) → screenshot=shot_0003, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:21,909] [INFO] agent_v0.tray: Clic left à (1647, 18) → screenshot=shot_0004, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:22,013] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:10:22,501] [INFO] agent_v0.tray: Clic left à (1648, 19) → screenshot=shot_0005, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:22,589] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:10:24,454] [INFO] agent_v0.tray: Clic left à (26, 262) → screenshot=shot_0006, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:40,109] [INFO] agent_v0.tray: Clic left à (36, 392) → screenshot=shot_0007, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:10:40,629] [INFO] agent_v0.tray: Clic left à (1103, 532) → screenshot=shot_0008, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:43,310] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0009, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:46,830] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0010, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:47,230] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0011, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:47,510] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0012, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:47,679] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0013, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:47,799] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0014, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:47,902] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0015, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:48,046] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0016, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:48,198] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0017, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:48,302] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0018, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:48,463] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0019, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:48,640] [INFO] agent_v0.tray: Combo clavier ['CTRL', 'F'] → screenshot=shot_0020, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:51,734] [INFO] agent_v0.tray: Clic left à (1639, 21) → screenshot=shot_0021, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:51,802] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:10:55,199] [INFO] agent_v0.tray: Clic left à (1640, 21) → screenshot=shot_0022, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:10:55,317] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:10:58,479] [INFO] agent_v0.tray: Clic left à (32, 265) → screenshot=shot_0023, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:11:00,629] [INFO] agent_v0.tray: Clic left à (978, 976) → screenshot=shot_0024, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:11:32,886] [INFO] agent_v0.tray: Combo clavier ['SHIFT', '?'] → screenshot=shot_0025, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:00,591] [INFO] agent_v0.tray: Clic left à (1648, 21) → screenshot=shot_0026, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:00,715] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:01,270] [INFO] agent_v0.tray: Clic left à (1649, 21) → screenshot=shot_0027, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:01,383] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:01,814] [INFO] agent_v0.tray: Clic right à (1649, 21) → screenshot=shot_0028, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:02,485] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:02,485] [INFO] agent_v0.tray: Clic left à (1649, 21) → screenshot=shot_0029, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:02,532] [INFO] agent_v0.tray: Clic left à (1649, 21) → screenshot=shot_0030, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:02,610] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:02,974] [INFO] agent_v0.tray: Clic left à (1649, 22) → screenshot=shot_0031, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:03,077] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:03,204] [INFO] agent_v0.tray: Clic left à (1649, 22) → screenshot=shot_0032, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:03,295] [INFO] agent_v0.tray: Session déjà active, Start ignoré. +[2025-11-21 23:12:34,831] [INFO] agent_v0.tray: Clic left à (34, 139) → screenshot=shot_0033, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:12:36,365] [INFO] agent_v0.tray: Clic left à (665, 831) → screenshot=shot_0034, window='sessions', app='nautilus' +[2025-11-21 23:12:40,509] [INFO] agent_v0.tray: Clic left à (669, 612) → screenshot=shot_0035, window='sessions', app='nautilus' +[2025-11-21 23:12:40,702] [INFO] agent_v0.tray: Clic left à (669, 612) → screenshot=shot_0036, window='sess_20251121T231014_555329f7', app='nautilus' +[2025-11-21 23:12:43,244] [INFO] agent_v0.tray: Clic left à (325, 50) → screenshot=shot_0037, window='sess_20251121T231014_555329f7', app='nautilus' +[2025-11-21 23:12:44,422] [INFO] agent_v0.tray: Clic left à (503, 568) → screenshot=shot_0038, window='sessions', app='nautilus' +[2025-11-21 23:12:44,833] [INFO] agent_v0.tray: Clic left à (503, 568) → screenshot=shot_0039, window='sessions', app='nautilus' +[2025-11-21 23:12:45,277] [INFO] agent_v0.tray: Clic left à (503, 568) → screenshot=shot_0040, window='sessions', app='nautilus' +[2025-11-21 23:12:45,677] [INFO] agent_v0.tray: Clic left à (503, 568) → screenshot=shot_0041, window='sess_20251121T230915_218b0d40', app='nautilus' +[2025-11-21 23:12:46,995] [INFO] agent_v0.tray: Clic left à (322, 54) → screenshot=shot_0042, window='sess_20251121T230915_218b0d40', app='nautilus' +[2025-11-21 23:12:53,358] [INFO] agent_v0.tray: Clic left à (33, 394) → screenshot=shot_0043, window='sessions', app='nautilus' +[2025-11-21 23:12:55,468] [ERROR] pystray._base: An error occurred in the main loop +Traceback (most recent call last): + File "/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_xorg.py", line 209, in _mainloop + for event in self._events(): + File "/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/pystray/_xorg.py", line 486, in _events + event = self._display.next_event() + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/display.py", line 187, in next_event + return self.display.next_event() + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/display.py", line 217, in next_event + self.send_and_recv(event = True) + File "/home/dom/ai/agent_v0/.venv/lib/python3.12/site-packages/Xlib/protocol/display.py", line 561, in send_and_recv + rs, ws, es = select.select([self.socket], writeset, [], timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +KeyboardInterrupt +[2025-11-21 23:16:33,057] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:16:33,060] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:16:38,263] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:16:38,269] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:16:38,272] [INFO] agent_v0.tray: Session sess_20251121T231638_47da95e6 démarrée. +[2025-11-21 23:16:44,972] [INFO] agent_v0.tray: Clic left à (45, 1054) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:16:46,713] [INFO] agent_v0.tray: Clic left à (952, 560) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:16:49,006] [INFO] agent_v0.tray: Clic left à (148, 444) → screenshot=shot_0003, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:16:49,885] [INFO] agent_v0.tray: Clic left à (364, 435) → screenshot=shot_0004, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:16:50,325] [INFO] agent_v0.tray: Clic left à (309, 442) → screenshot=shot_0005, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:16:50,804] [INFO] agent_v0.tray: Clic left à (432, 488) → screenshot=shot_0006, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:16:52,134] [INFO] agent_v0.tray: Clic left à (474, 109) → screenshot=shot_0007, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:16:53,701] [INFO] agent_v0.tray: Clic left à (36, 1060) → screenshot=shot_0008, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:16:56,041] [INFO] agent_v0.tray: Clic left à (1050, 71) → screenshot=shot_0009, window='unknown_window', app='unknown_app' +[2025-11-21 23:17:00,494] [INFO] agent_v0.tray: Clic left à (1012, 167) → screenshot=shot_0010, window='unknown_window', app='unknown_app' +[2025-11-21 23:17:02,567] [INFO] agent_v0.tray: Clic left à (831, 356) → screenshot=shot_0011, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-21 23:17:07,921] [INFO] agent_v0.tray: Clic left à (1577, 195) → screenshot=shot_0012, window='*Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-21 23:17:09,150] [INFO] agent_v0.tray: Clic left à (992, 610) → screenshot=shot_0013, window='unknown_window', app='DesktopEditors' +[2025-11-21 23:17:11,398] [INFO] agent_v0.tray: Clic left à (1644, 19) → screenshot=shot_0014, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:17:11,441] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:17:11,442] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T231638_47da95e6/sess_20251121T231638_47da95e6.json +[2025-11-21 23:17:11,495] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T231638_47da95e6.zip +[2025-11-21 23:17:12,073] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:17:12,073] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:22:46,023] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:22:46,026] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:22:49,762] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:22:49,768] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:22:49,770] [INFO] agent_v0.tray: Session sess_20251121T232249_d776ec1a démarrée. +[2025-11-21 23:22:53,783] [INFO] agent_v0.tray: Clic left à (25, 1061) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:22:58,427] [INFO] agent_v0.tray: Clic left à (731, 700) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:00,659] [INFO] agent_v0.tray: Clic left à (1589, 366) → screenshot=shot_0003, window='Logiciels et mises à jour', app='software-proper' +[2025-11-21 23:23:03,428] [INFO] agent_v0.tray: Clic left à (45, 1038) → screenshot=shot_0004, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:05,299] [INFO] agent_v0.tray: Clic left à (937, 372) → screenshot=shot_0005, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:07,278] [INFO] agent_v0.tray: Clic left à (1828, 47) → screenshot=shot_0006, window='ceci est un test ceci (Brouillon) - Éditeur de texte', app='gnome-text-edit' +[2025-11-21 23:23:08,723] [INFO] agent_v0.tray: Clic left à (19, 1042) → screenshot=shot_0007, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:11,164] [INFO] agent_v0.tray: Clic left à (1100, 406) → screenshot=shot_0008, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:13,194] [INFO] agent_v0.tray: Clic left à (961, 106) → screenshot=shot_0009, window='Clocks', app='gnome-clocks' +[2025-11-21 23:23:14,781] [INFO] agent_v0.tray: Clic left à (33, 1049) → screenshot=shot_0010, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:15,707] [INFO] agent_v0.tray: Clic left à (919, 548) → screenshot=shot_0011, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:17,331] [INFO] agent_v0.tray: Clic left à (322, 440) → screenshot=shot_0012, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:23:17,772] [INFO] agent_v0.tray: Clic left à (383, 436) → screenshot=shot_0013, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:23:18,356] [INFO] agent_v0.tray: Clic left à (335, 444) → screenshot=shot_0014, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:23:18,995] [INFO] agent_v0.tray: Clic left à (446, 499) → screenshot=shot_0015, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:23:20,652] [INFO] agent_v0.tray: Clic left à (480, 108) → screenshot=shot_0016, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:23:21,954] [INFO] agent_v0.tray: Clic left à (31, 1049) → screenshot=shot_0017, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:24,444] [INFO] agent_v0.tray: Clic left à (974, 71) → screenshot=shot_0018, window='unknown_window', app='unknown_app' +[2025-11-21 23:23:28,581] [INFO] agent_v0.tray: Clic left à (977, 157) → screenshot=shot_0019, window='unknown_window', app='unknown_app' +[2025-11-21 23:23:30,164] [INFO] agent_v0.tray: Clic left à (914, 362) → screenshot=shot_0020, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-21 23:23:30,835] [INFO] agent_v0.tray: Clic left à (881, 365) → screenshot=shot_0021, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-21 23:23:35,691] [INFO] agent_v0.tray: Clic left à (1570, 201) → screenshot=shot_0022, window='*Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-21 23:23:36,804] [INFO] agent_v0.tray: Clic left à (969, 607) → screenshot=shot_0023, window='unknown_window', app='DesktopEditors' +[2025-11-21 23:23:39,031] [INFO] agent_v0.tray: Clic left à (1820, 61) → screenshot=shot_0024, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:23:43,444] [INFO] agent_v0.tray: Clic left à (49, 254) → screenshot=shot_0025, window='agent_v0 – uploader.py', app='pycharm' +[2025-11-21 23:23:47,316] [INFO] agent_v0.tray: Clic left à (1652, 18) → screenshot=shot_0026, window='ChatGPT - Geniusia_v2 - Google Chrome', app='chrome' +[2025-11-21 23:23:47,385] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:23:47,386] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T232249_d776ec1a/sess_20251121T232249_d776ec1a.json +[2025-11-21 23:23:47,482] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T232249_d776ec1a.zip +[2025-11-21 23:23:47,482] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:23:47,482] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:24:03,632] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:24:03,633] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:24:03,636] [INFO] agent_v0.tray: Session sess_20251121T232403_d88202ff démarrée. +[2025-11-21 23:24:04,839] [INFO] agent_v0.tray: Clic left à (1648, 15) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:24:04,885] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:24:04,885] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T232403_d88202ff/sess_20251121T232403_d88202ff.json +[2025-11-21 23:24:04,891] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T232403_d88202ff.zip +[2025-11-21 23:24:04,891] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:24:04,891] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:24:42,774] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:24:42,774] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:24:42,777] [INFO] agent_v0.tray: Session sess_20251121T232442_3a3b3275 démarrée. +[2025-11-21 23:24:43,921] [INFO] agent_v0.tray: Clic left à (1647, 21) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:24:43,983] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:24:43,984] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T232442_3a3b3275/sess_20251121T232442_3a3b3275.json +[2025-11-21 23:24:43,989] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T232442_3a3b3275.zip +[2025-11-21 23:24:43,989] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:24:43,989] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:26:12,849] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:26:12,851] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:26:14,713] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:26:14,719] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:26:14,721] [INFO] agent_v0.tray: Session sess_20251121T232614_247cd560 démarrée. +[2025-11-21 23:26:18,029] [INFO] agent_v0.tray: Clic left à (19, 1043) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:18,905] [INFO] agent_v0.tray: Clic left à (908, 566) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:20,298] [INFO] agent_v0.tray: Clic left à (325, 440) → screenshot=shot_0003, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:20,752] [INFO] agent_v0.tray: Clic left à (321, 405) → screenshot=shot_0004, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:21,218] [INFO] agent_v0.tray: Clic left à (374, 391) → screenshot=shot_0005, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:21,905] [INFO] agent_v0.tray: Clic left à (229, 398) → screenshot=shot_0006, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:22,936] [INFO] agent_v0.tray: Clic left à (477, 527) → screenshot=shot_0007, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:24,777] [INFO] agent_v0.tray: Clic left à (481, 110) → screenshot=shot_0008, window='Calculatrice', app='gnome-calculato' +[2025-11-21 23:26:26,122] [INFO] agent_v0.tray: Clic left à (29, 1060) → screenshot=shot_0009, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:27,738] [INFO] agent_v0.tray: Clic left à (1104, 404) → screenshot=shot_0010, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:29,120] [INFO] agent_v0.tray: Clic left à (665, 536) → screenshot=shot_0011, window='Clocks', app='gnome-clocks' +[2025-11-21 23:26:30,953] [INFO] agent_v0.tray: Clic left à (573, 221) → screenshot=shot_0012, window='Ajouter une nouvelle horloge mondiale', app='gnome-clocks' +[2025-11-21 23:26:36,271] [INFO] agent_v0.tray: Clic left à (412, 181) → screenshot=shot_0013, window='Ajouter une nouvelle horloge mondiale', app='gnome-clocks' +[2025-11-21 23:26:37,305] [INFO] agent_v0.tray: Clic left à (966, 101) → screenshot=shot_0014, window='Clocks', app='gnome-clocks' +[2025-11-21 23:26:38,675] [INFO] agent_v0.tray: Clic left à (1814, 48) → screenshot=shot_0015, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:41,696] [INFO] agent_v0.tray: Clic left à (38, 392) → screenshot=shot_0016, window='agent_v0 – config.py', app='pycharm' +[2025-11-21 23:26:43,604] [INFO] agent_v0.tray: Clic left à (1648, 15) → screenshot=shot_0017, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:26:43,641] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:26:43,642] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T232614_247cd560/sess_20251121T232614_247cd560.json +[2025-11-21 23:26:43,711] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T232614_247cd560.zip +[2025-11-21 23:26:43,711] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:26:43,711] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:33:33,808] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-21 23:33:33,811] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-21 23:33:37,486] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-21 23:33:37,492] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080 +[2025-11-21 23:33:37,495] [INFO] agent_v0.tray: Session sess_20251121T233337_212e7034 démarrée. +[2025-11-21 23:33:39,978] [INFO] agent_v0.tray: Clic left à (406, 531) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:40,303] [INFO] agent_v0.tray: Clic left à (408, 587) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:40,568] [INFO] agent_v0.tray: Clic left à (482, 666) → screenshot=shot_0003, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:40,751] [INFO] agent_v0.tray: Clic left à (520, 677) → screenshot=shot_0004, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:40,967] [INFO] agent_v0.tray: Clic left à (528, 678) → screenshot=shot_0005, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:41,159] [INFO] agent_v0.tray: Clic left à (541, 679) → screenshot=shot_0006, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:41,304] [INFO] agent_v0.tray: Clic left à (542, 679) → screenshot=shot_0007, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:43,063] [INFO] agent_v0.tray: Clic left à (1645, 16) → screenshot=shot_0008, window='Terminal', app='gnome-terminal-' +[2025-11-21 23:33:43,138] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-21 23:33:43,139] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251121T233337_212e7034/sess_20251121T233337_212e7034.json +[2025-11-21 23:33:43,174] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251121T233337_212e7034.zip +[2025-11-21 23:33:43,174] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-21 23:33:43,174] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-21 23:33:43,174] [INFO] agent_v0.tray: EXIT_AFTER_SESSION=True → arrêt de l'application. +[2025-11-22 01:19:42,609] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-22 01:19:42,609] [INFO] agent_v0.tray: Config chargée : {'user_id': 'demo_user', 'user_label': 'Démo agent_v0', 'customer': 'Clinique Demo', 'training_label': 'Facturation_T2A_demo', 'notes': 'Session réelle avec clics + screenshots + key combos.', 'mode': 'enriched', 'screenshot_mode': 'crop', 'screenshot_crop_width': 900, 'screenshot_crop_height': 700, 'capture_hover': True, 'hover_min_idle_ms': 700, 'capture_scroll': True, 'network_save_path': ''} +[2025-11-22 01:19:42,611] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-22 01:19:46,045] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-22 01:19:46,051] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080, mode=enriched +[2025-11-22 01:19:46,054] [INFO] agent_v0.tray: Session sess_20251122T011946_bc151626 démarrée. +[2025-11-22 01:19:47,987] [INFO] agent_v0.tray: Clic right à (1747, 19) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:19:49,788] [INFO] agent_v0.tray: Clic left à (1747, 19) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:19:49,909] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-22 01:19:49,910] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251122T011946_bc151626/sess_20251122T011946_bc151626.json +[2025-11-22 01:19:49,912] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251122T011946_bc151626.zip +[2025-11-22 01:19:49,912] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-22 01:19:49,912] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-22 01:19:49,912] [INFO] agent_v0.tray: EXIT_AFTER_SESSION=True → arrêt de l'application. +[2025-11-22 01:20:02,988] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-22 01:20:02,988] [INFO] agent_v0.tray: Config chargée : {'user_id': 'demo_user', 'user_label': 'Démo agent_v0', 'customer': 'Clinique Demo', 'training_label': 'Facturation_T2A_demo', 'notes': 'Session réelle avec clics + screenshots + key combos.', 'mode': 'enriched', 'screenshot_mode': 'crop', 'screenshot_crop_width': 900, 'screenshot_crop_height': 700, 'capture_hover': True, 'hover_min_idle_ms': 700, 'capture_scroll': True, 'network_save_path': ''} +[2025-11-22 01:20:02,990] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-22 01:21:38,389] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-22 01:21:38,395] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080, mode=enriched +[2025-11-22 01:21:38,398] [INFO] agent_v0.tray: Session sess_20251122T012138_2cf74644 démarrée. +[2025-11-22 01:21:40,221] [INFO] agent_v0.tray: Hover à (1217, 607) idle=761ms → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:21:42,526] [INFO] agent_v0.tray: Clic left à (1742, 18) → screenshot=shot_0002, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:21:42,599] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-22 01:21:42,600] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251122T012138_2cf74644/sess_20251122T012138_2cf74644.json +[2025-11-22 01:21:42,602] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251122T012138_2cf74644.zip +[2025-11-22 01:21:42,602] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-22 01:21:42,602] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-22 01:21:42,602] [INFO] agent_v0.tray: EXIT_AFTER_SESSION=True → arrêt de l'application. +[2025-11-22 01:22:49,761] [INFO] logger_conf: Logging initialisé. Fichier log = /home/dom/ai/agent_v0/logs/agent_v0.log +[2025-11-22 01:22:49,761] [INFO] agent_v0.tray: Config chargée : {'user_id': 'demo_user', 'user_label': 'Démo agent_v0', 'customer': 'Clinique Demo', 'training_label': 'Facturation_T2A_demo', 'notes': 'Session réelle avec clics + screenshots + key combos.', 'mode': 'enriched', 'screenshot_mode': 'crop', 'screenshot_crop_width': 900, 'screenshot_crop_height': 700, 'capture_hover': True, 'hover_min_idle_ms': 700, 'capture_scroll': True, 'network_save_path': ''} +[2025-11-22 01:22:49,763] [INFO] agent_v0.tray: Démarrage de TrayApp... +[2025-11-22 01:22:55,183] [INFO] agent_v0.tray: Toggle: démarrage d'une session. +[2025-11-22 01:22:55,189] [INFO] agent_v0.tray: Nouvelle session : platform=linux, hostname=dom-X870-Riptide-WiFi, res=1920x1080, mode=enriched +[2025-11-22 01:22:55,191] [INFO] agent_v0.tray: Session sess_20251122T012255_a6ff491a démarrée. +[2025-11-22 01:22:58,358] [INFO] agent_v0.tray: Clic left à (38, 1045) → screenshot=shot_0001, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:22:59,964] [INFO] agent_v0.tray: Clic left à (1116, 77) → screenshot=shot_0002, window='unknown_window', app='unknown_app' +[2025-11-22 01:23:01,008] [INFO] agent_v0.tray: Hover à (1117, 77) idle=763ms → screenshot=shot_0003, window='unknown_window', app='unknown_app' +[2025-11-22 01:23:03,865] [INFO] agent_v0.tray: Clic left à (964, 237) → screenshot=shot_0004, window='unknown_window', app='unknown_app' +[2025-11-22 01:23:04,732] [INFO] agent_v0.tray: Hover à (964, 236) idle=731ms → screenshot=shot_0005, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:05,954] [INFO] agent_v0.tray: Hover à (862, 216) idle=710ms → screenshot=shot_0006, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:06,683] [INFO] agent_v0.tray: Clic left à (862, 216) → screenshot=shot_0007, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:10,195] [INFO] agent_v0.tray: Clic left à (45, 402) → screenshot=shot_0008, window='Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:10,779] [INFO] agent_v0.tray: Hover à (45, 402) idle=702ms → screenshot=shot_0009, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:18,927] [INFO] agent_v0.tray: Clic left à (29, 583) → screenshot=shot_0010, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:19,405] [INFO] agent_v0.tray: Hover à (29, 583) idle=762ms → screenshot=shot_0011, window='Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:21,379] [INFO] agent_v0.tray: Clic left à (102, 96) → screenshot=shot_0012, window='Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:22,690] [INFO] agent_v0.tray: Clic left à (163, 584) → screenshot=shot_0013, window='Document1.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:23,588] [INFO] agent_v0.tray: Clic left à (977, 241) → screenshot=shot_0014, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:25,199] [INFO] agent_v0.tray: Clic left à (133, 103) → screenshot=shot_0015, window='*Livre1.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:25,428] [INFO] agent_v0.tray: Hover à (133, 103) idle=722ms → screenshot=shot_0016, window='*Livre1.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:26,459] [INFO] agent_v0.tray: Clic left à (192, 615) → screenshot=shot_0017, window='*Livre1.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:29,693] [INFO] agent_v0.tray: Clic left à (1039, 221) → screenshot=shot_0018, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:31,285] [INFO] agent_v0.tray: Clic left à (102, 98) → screenshot=shot_0019, window='*Livre2.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:32,371] [INFO] agent_v0.tray: Clic left à (154, 614) → screenshot=shot_0020, window='*Livre2.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:33,059] [INFO] agent_v0.tray: Clic left à (1037, 246) → screenshot=shot_0021, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:34,274] [INFO] agent_v0.tray: Clic left à (145, 102) → screenshot=shot_0022, window='*Livre3.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:35,620] [INFO] agent_v0.tray: Clic left à (154, 606) → screenshot=shot_0023, window='*Livre3.xlsx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:36,564] [INFO] agent_v0.tray: Clic left à (768, 254) → screenshot=shot_0024, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:37,789] [INFO] agent_v0.tray: Clic left à (117, 99) → screenshot=shot_0025, window='Document2.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:38,700] [INFO] agent_v0.tray: Clic left à (149, 583) → screenshot=shot_0026, window='Document2.docx — ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:42,994] [INFO] agent_v0.tray: Clic left à (1912, 40) → screenshot=shot_0027, window='ONLYOFFICE', app='DesktopEditors' +[2025-11-22 01:23:45,976] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0028, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:46,586] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0029, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:46,659] [INFO] agent_v0.tray: Hover à (30, 1043) idle=785ms → screenshot=shot_0030, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:47,839] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0031, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:48,362] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0032, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:49,975] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0033, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:50,756] [INFO] agent_v0.tray: Clic left à (30, 1043) → screenshot=shot_0034, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:23:57,893] [INFO] agent_v0.tray: Hover à (24, 542) idle=700ms → screenshot=shot_0035, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:24:03,100] [INFO] agent_v0.tray: Clic left à (1740, 15) → screenshot=shot_0036, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:24:03,114] [INFO] agent_v0.tray: Hover à (1740, 15) idle=752ms → screenshot=shot_0037, window='Terminal', app='gnome-terminal-' +[2025-11-22 01:24:03,152] [INFO] agent_v0.tray: Toggle: arrêt de la session. +[2025-11-22 01:24:03,153] [INFO] agent_v0.tray: Session JSON sauvegardée : /home/dom/ai/agent_v0/sessions/sess_20251122T012255_a6ff491a/sess_20251122T012255_a6ff491a.json +[2025-11-22 01:24:03,194] [INFO] agent_v0.tray: ZIP de session créé : /home/dom/ai/agent_v0/sessions/sess_20251122T012255_a6ff491a.zip +[2025-11-22 01:24:03,194] [WARNING] agent_v0.tray: Upload du ZIP échoué ou désactivé. +[2025-11-22 01:24:03,194] [INFO] agent_v0.tray: Session terminée. SESSIONS_ROOT = /home/dom/ai/agent_v0/sessions +[2025-11-22 01:24:03,194] [INFO] agent_v0.tray: EXIT_AFTER_SESSION=True → arrêt de l'application. diff --git a/main.py b/main.py new file mode 100644 index 0000000..e84c925 --- /dev/null +++ b/main.py @@ -0,0 +1,24 @@ +# main.py +""" +Point d'entrée agent_v0. + +v0 (tray) : +- initialise le logging +- lance TrayApp (icône dans la zone de notification) +- gestion Start/Stop/Queit via menu tray +""" + +from __future__ import annotations + +from logger_conf import setup_logging +from tray_ui import TrayApp + + +def main() -> None: + setup_logging() + app = TrayApp() + app.run() + + +if __name__ == "__main__": + main() diff --git a/raw_session.py b/raw_session.py new file mode 100644 index 0000000..2d029ae --- /dev/null +++ b/raw_session.py @@ -0,0 +1,238 @@ +# raw_session.py +""" +Modèle RawSession v1 pour l'agent_v0. + +Ce module définit la structure des données RawSession et +la sérialisation en JSON au format rawsession_v1. +""" + +from __future__ import annotations + +import json +import os +import time +import uuid +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional + +from config import AGENT_VERSION, SESSIONS_ROOT + + +@dataclass +class ScreenshotMeta: + screenshot_id: str + relative_path: str + captured_at: str + + +@dataclass +class Event: + t: float + type: str + window: Dict[str, Any] + screenshot_id: Optional[str] = None + # champs optionnels selon type + button: Optional[str] = None + pos: Optional[List[int]] = None + keys: Optional[List[str]] = None + idle_ms: Optional[int] = None + scroll_delta: Optional[List[int]] = None # [dx, dy] pour la molette + + +@dataclass +class RawSession: + schema_version: str + session_id: str + agent_version: str + environment: Dict[str, Any] + user: Dict[str, Any] + context: Dict[str, Any] + started_at: str + ended_at: Optional[str] = None + + events: List[Event] = field(default_factory=list) + screenshots: List[ScreenshotMeta] = field(default_factory=list) + + _start_time_monotonic: float = field(default_factory=time.monotonic, repr=False) + + @classmethod + def create( + cls, + user_id: str, + user_label: str = "", + customer: str = "", + training_label: str = "", + notes: str = "", + platform: str = "unknown", + hostname: str = "unknown", + screen_resolution: Optional[List[int]] = None, + display_scale: float = 1.0, + ) -> "RawSession": + """Fabrique une nouvelle session avec les champs de base remplis.""" + session_id = f"sess_{time.strftime('%Y%m%dT%H%M%S')}_{uuid.uuid4().hex[:8]}" + started_at = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + + environment = { + "platform": platform, + "hostname": hostname, + "screen": { + "primary_resolution": screen_resolution or [0, 0], + "display_scale": display_scale, + }, + } + user = { + "id": user_id, + "label": user_label or user_id, + } + context = { + "customer": customer, + "training_label": training_label, + "notes": notes, + } + + return cls( + schema_version="rawsession_v1", + session_id=session_id, + agent_version=AGENT_VERSION, + environment=environment, + user=user, + context=context, + started_at=started_at, + ) + + # --- API temps relatif --- + + def now_relative(self) -> float: + """Temps relatif (en secondes) depuis le début de la session.""" + return time.monotonic() - self._start_time_monotonic + + # --- API screenshots --- + + def add_screenshot( + self, + screenshot_id: str, + relative_path: str, + captured_at: Optional[str] = None, + ) -> None: + """Enregistre les métadonnées d'un screenshot.""" + captured_at = captured_at or time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + self.screenshots.append( + ScreenshotMeta( + screenshot_id=screenshot_id, + relative_path=relative_path, + captured_at=captured_at, + ) + ) + + # --- API événements --- + + def add_mouse_click_event( + self, + button: str, + pos: List[int], + window_title: str, + app_name: str, + screenshot_id: Optional[str], + ) -> None: + self.events.append( + Event( + t=self.now_relative(), + type="mouse_click", + button=button, + pos=pos, + window={"title": window_title, "app_name": app_name}, + screenshot_id=screenshot_id, + ) + ) + + def add_key_combo_event( + self, + keys: List[str], + window_title: str, + app_name: str, + screenshot_id: Optional[str], + ) -> None: + self.events.append( + Event( + t=self.now_relative(), + type="key_combo", + keys=keys, + window={"title": window_title, "app_name": app_name}, + screenshot_id=screenshot_id, + ) + ) + + def add_hover_idle_event( + self, + pos: List[int], + idle_ms: int, + window_title: str, + app_name: str, + screenshot_id: Optional[str], + ) -> None: + self.events.append( + Event( + t=self.now_relative(), + type="hover_idle", + pos=pos, + idle_ms=idle_ms, + window={"title": window_title, "app_name": app_name}, + screenshot_id=screenshot_id, + ) + ) + + def add_scroll_event( + self, + pos: List[int], + delta: List[int], + window_title: str, + app_name: str, + screenshot_id: Optional[str], + ) -> None: + """delta = [dx, dy]""" + self.events.append( + Event( + t=self.now_relative(), + type="scroll", + pos=pos, + scroll_delta=delta, + window={"title": window_title, "app_name": app_name}, + screenshot_id=screenshot_id, + ) + ) + + def close(self) -> None: + """Marque la fin de la session.""" + self.ended_at = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + + # --- Sérialisation --- + + def to_dict(self) -> Dict[str, Any]: + return { + "schema_version": self.schema_version, + "session_id": self.session_id, + "agent_version": self.agent_version, + "environment": self.environment, + "user": self.user, + "context": self.context, + "started_at": self.started_at, + "ended_at": self.ended_at, + "events": [e.__dict__ for e in self.events], + "screenshots": [s.__dict__ for s in self.screenshots], + } + + def save_json(self, base_dir: Optional[str] = None) -> str: + """ + Sauvegarde le JSON rawsession_v1 dans un sous-dossier de SESSIONS_ROOT. + + Retourne le chemin du fichier JSON. + """ + base_dir = base_dir or SESSIONS_ROOT + session_dir = os.path.join(base_dir, self.session_id) + os.makedirs(session_dir, exist_ok=True) + json_path = os.path.join(session_dir, f"{self.session_id}.json") + + with open(json_path, "w", encoding="utf-8") as f: + json.dump(self.to_dict(), f, ensure_ascii=False, indent=2) + + return json_path diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..19d9e05 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +mss>=9.0.1 +pynput>=1.7.7 +requests>=2.31.0 +pystray>=0.19.5 +Pillow>=10.0.0 +fastapi>=0.115.0 ; optional pour serveur plus tard (tu peux l’enlever ici si tu veux) +uvicorn[standard]>=0.30.0 ; idem diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..38eb5d5 --- /dev/null +++ b/run.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -e + +# Dossier du script +BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$BASE_DIR" + +echo "[agent_v0] Dossier de travail : $BASE_DIR" + +# 1) Création du venv si nécessaire +if [ ! -d ".venv" ]; then + echo "[agent_v0] Création de l'environnement virtuel (.venv)..." + python3 -m venv .venv +else + echo "[agent_v0] Environnement virtuel déjà présent (.venv)." +fi + +# 2) Activation du venv +# shellcheck disable=SC1091 +source .venv/bin/activate + +echo "[agent_v0] Python utilisé : $(which python)" +echo "[agent_v0] Version : $(python --version)" + +# 3) Création de requirements.txt si absent +if [ ! -f "requirements.txt" ]; then + echo "[agent_v0] Création de requirements.txt..." + cat > requirements.txt << 'EOF' +mss>=9.0.1 +pynput>=1.7.7 +EOF +else + echo "[agent_v0] requirements.txt déjà présent." +fi + +# 4) Upgrade pip + install deps +echo "[agent_v0] Mise à jour de pip..." +pip install --upgrade pip + +echo "[agent_v0] Installation des dépendances depuis requirements.txt..." +pip install -r requirements.txt + +# 5) Lancer l'agent +echo "[agent_v0] Lancement de main.py..." +python main.py diff --git a/screen_capturer.py b/screen_capturer.py new file mode 100644 index 0000000..29d01fd --- /dev/null +++ b/screen_capturer.py @@ -0,0 +1,110 @@ +# screen_capturer.py +""" +Capture d'écran pour agent_v0. + +v0+ : +- capture de l'écran principal en PNG +- mode "full" : écran complet +- mode "crop" : zone centrée autour d'une position (curseur) +- stockage dans sessions//shots/shot_XXXX.png +""" + +from __future__ import annotations + +import os +import time +from typing import Tuple, Optional + +from mss import mss +from mss.tools import to_png + +from config import SESSIONS_ROOT +from raw_session import RawSession + + +class ScreenCapturer: + """ + Gère la capture d'écran pour une session donnée. + """ + + def __init__( + self, + session: RawSession, + base_dir: str = SESSIONS_ROOT, + screenshot_mode: str = "full", # "full" | "crop" + crop_width: int = 800, + crop_height: int = 600, + ) -> None: + self.session = session + self.base_dir = base_dir + self._counter = 0 + + self.screenshot_mode = screenshot_mode + self.crop_width = crop_width + self.crop_height = crop_height + + # Résolution écran pour clamp la zone de crop + self.screen_width, self.screen_height = self.detect_primary_resolution() + + def _get_session_shots_dir(self) -> str: + session_dir = os.path.join(self.base_dir, self.session.session_id) + shots_dir = os.path.join(session_dir, "shots") + os.makedirs(shots_dir, exist_ok=True) + return shots_dir + + def capture(self, focus_pos: Optional[Tuple[int, int]] = None) -> Tuple[str, str]: + """ + Capture l'écran : + - si screenshot_mode == "crop" et focus_pos fourni -> zone centrée autour de focus_pos + - sinon -> plein écran + + Retourne (screenshot_id, relative_path) + """ + self._counter += 1 + screenshot_id = f"shot_{self._counter:04d}" + shots_dir = self._get_session_shots_dir() + filename = f"{screenshot_id}.png" + file_path = os.path.join(shots_dir, filename) + relative_path = os.path.join("shots", filename) + + with mss() as sct: + if self.screenshot_mode == "crop" and focus_pos is not None: + cx, cy = focus_pos + w = min(self.crop_width, self.screen_width) + h = min(self.crop_height, self.screen_height) + + left = max(0, cx - w // 2) + top = max(0, cy - h // 2) + + if left + w > self.screen_width: + left = self.screen_width - w + if top + h > self.screen_height: + top = self.screen_height - h + + region = {"left": int(left), "top": int(top), "width": int(w), "height": int(h)} + img = sct.grab(region) + else: + monitor = sct.monitors[0] # écran principal complet + img = sct.grab(monitor) + + with open(file_path, "wb") as f: + f.write(to_png(img.rgb, img.size)) + + captured_at = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + self.session.add_screenshot( + screenshot_id=screenshot_id, + relative_path=relative_path, + captured_at=captured_at, + ) + + return screenshot_id, relative_path + + @staticmethod + def detect_primary_resolution() -> Tuple[int, int]: + """ + Renvoie (width, height) de l'écran principal. + Utile pour remplir RawSession.environment.screen.primary_resolution. + """ + with mss() as sct: + mon = sct.monitors[0] + return mon["width"], mon["height"] diff --git a/sessions/sess_20251122T011946_bc151626.zip b/sessions/sess_20251122T011946_bc151626.zip new file mode 100644 index 0000000..4bc7036 Binary files /dev/null and b/sessions/sess_20251122T011946_bc151626.zip differ diff --git a/sessions/sess_20251122T011946_bc151626/sess_20251122T011946_bc151626.json b/sessions/sess_20251122T011946_bc151626/sess_20251122T011946_bc151626.json new file mode 100644 index 0000000..321a7b8 --- /dev/null +++ b/sessions/sess_20251122T011946_bc151626/sess_20251122T011946_bc151626.json @@ -0,0 +1,75 @@ +{ + "schema_version": "rawsession_v1", + "session_id": "sess_20251122T011946_bc151626", + "agent_version": "0.1.0", + "environment": { + "platform": "linux", + "hostname": "dom-X870-Riptide-WiFi", + "screen": { + "primary_resolution": [ + 1920, + 1080 + ], + "display_scale": 1.0 + } + }, + "user": { + "id": "demo_user", + "label": "Démo agent_v0" + }, + "context": { + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos." + }, + "started_at": "2025-11-22T00:19:46Z", + "ended_at": "2025-11-22T00:19:49Z", + "events": [ + { + "t": 1.935852091992274, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0001", + "button": "right", + "pos": [ + 1747, + 19 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 3.7367831929877866, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0002", + "button": "left", + "pos": [ + 1747, + 19 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + } + ], + "screenshots": [ + { + "screenshot_id": "shot_0001", + "relative_path": "shots/shot_0001.png", + "captured_at": "2025-11-22T00:19:47Z" + }, + { + "screenshot_id": "shot_0002", + "relative_path": "shots/shot_0002.png", + "captured_at": "2025-11-22T00:19:49Z" + } + ] +} \ No newline at end of file diff --git a/sessions/sess_20251122T011946_bc151626/shots/shot_0001.png b/sessions/sess_20251122T011946_bc151626/shots/shot_0001.png new file mode 100644 index 0000000..6e1d536 Binary files /dev/null and b/sessions/sess_20251122T011946_bc151626/shots/shot_0001.png differ diff --git a/sessions/sess_20251122T011946_bc151626/shots/shot_0002.png b/sessions/sess_20251122T011946_bc151626/shots/shot_0002.png new file mode 100644 index 0000000..4f71fa9 Binary files /dev/null and b/sessions/sess_20251122T011946_bc151626/shots/shot_0002.png differ diff --git a/sessions/sess_20251122T012138_2cf74644 (2)/sess_20251122T012138_2cf74644.json b/sessions/sess_20251122T012138_2cf74644 (2)/sess_20251122T012138_2cf74644.json new file mode 100644 index 0000000..4bf00de --- /dev/null +++ b/sessions/sess_20251122T012138_2cf74644 (2)/sess_20251122T012138_2cf74644.json @@ -0,0 +1,75 @@ +{ + "schema_version": "rawsession_v1", + "session_id": "sess_20251122T012138_2cf74644", + "agent_version": "0.1.0", + "environment": { + "platform": "linux", + "hostname": "dom-X870-Riptide-WiFi", + "screen": { + "primary_resolution": [ + 1920, + 1080 + ], + "display_scale": 1.0 + } + }, + "user": { + "id": "demo_user", + "label": "Démo agent_v0" + }, + "context": { + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos." + }, + "started_at": "2025-11-22T00:21:38Z", + "ended_at": "2025-11-22T00:21:42Z", + "events": [ + { + "t": 1.8258709929941688, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0001", + "button": null, + "pos": [ + 1217, + 607 + ], + "keys": null, + "idle_ms": 761, + "scroll_delta": null + }, + { + "t": 4.130582028999925, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0002", + "button": "left", + "pos": [ + 1742, + 18 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + } + ], + "screenshots": [ + { + "screenshot_id": "shot_0001", + "relative_path": "shots/shot_0001.png", + "captured_at": "2025-11-22T00:21:40Z" + }, + { + "screenshot_id": "shot_0002", + "relative_path": "shots/shot_0002.png", + "captured_at": "2025-11-22T00:21:42Z" + } + ] +} \ No newline at end of file diff --git a/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0001.png b/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0001.png new file mode 100644 index 0000000..26f942c Binary files /dev/null and b/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0001.png differ diff --git a/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0002.png b/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0002.png new file mode 100644 index 0000000..d1b7016 Binary files /dev/null and b/sessions/sess_20251122T012138_2cf74644 (2)/shots/shot_0002.png differ diff --git a/sessions/sess_20251122T012138_2cf74644.zip b/sessions/sess_20251122T012138_2cf74644.zip new file mode 100644 index 0000000..01cf720 Binary files /dev/null and b/sessions/sess_20251122T012138_2cf74644.zip differ diff --git a/sessions/sess_20251122T012138_2cf74644/sess_20251122T012138_2cf74644.json b/sessions/sess_20251122T012138_2cf74644/sess_20251122T012138_2cf74644.json new file mode 100644 index 0000000..4bf00de --- /dev/null +++ b/sessions/sess_20251122T012138_2cf74644/sess_20251122T012138_2cf74644.json @@ -0,0 +1,75 @@ +{ + "schema_version": "rawsession_v1", + "session_id": "sess_20251122T012138_2cf74644", + "agent_version": "0.1.0", + "environment": { + "platform": "linux", + "hostname": "dom-X870-Riptide-WiFi", + "screen": { + "primary_resolution": [ + 1920, + 1080 + ], + "display_scale": 1.0 + } + }, + "user": { + "id": "demo_user", + "label": "Démo agent_v0" + }, + "context": { + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos." + }, + "started_at": "2025-11-22T00:21:38Z", + "ended_at": "2025-11-22T00:21:42Z", + "events": [ + { + "t": 1.8258709929941688, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0001", + "button": null, + "pos": [ + 1217, + 607 + ], + "keys": null, + "idle_ms": 761, + "scroll_delta": null + }, + { + "t": 4.130582028999925, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0002", + "button": "left", + "pos": [ + 1742, + 18 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + } + ], + "screenshots": [ + { + "screenshot_id": "shot_0001", + "relative_path": "shots/shot_0001.png", + "captured_at": "2025-11-22T00:21:40Z" + }, + { + "screenshot_id": "shot_0002", + "relative_path": "shots/shot_0002.png", + "captured_at": "2025-11-22T00:21:42Z" + } + ] +} \ No newline at end of file diff --git a/sessions/sess_20251122T012138_2cf74644/shots/shot_0001.png b/sessions/sess_20251122T012138_2cf74644/shots/shot_0001.png new file mode 100644 index 0000000..26f942c Binary files /dev/null and b/sessions/sess_20251122T012138_2cf74644/shots/shot_0001.png differ diff --git a/sessions/sess_20251122T012138_2cf74644/shots/shot_0002.png b/sessions/sess_20251122T012138_2cf74644/shots/shot_0002.png new file mode 100644 index 0000000..d1b7016 Binary files /dev/null and b/sessions/sess_20251122T012138_2cf74644/shots/shot_0002.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/sess_20251122T012255_a6ff491a.json b/sessions/sess_20251122T012255_a6ff491a (2)/sess_20251122T012255_a6ff491a.json new file mode 100644 index 0000000..91a8431 --- /dev/null +++ b/sessions/sess_20251122T012255_a6ff491a (2)/sess_20251122T012255_a6ff491a.json @@ -0,0 +1,845 @@ +{ + "schema_version": "rawsession_v1", + "session_id": "sess_20251122T012255_a6ff491a", + "agent_version": "0.1.0", + "environment": { + "platform": "linux", + "hostname": "dom-X870-Riptide-WiFi", + "screen": { + "primary_resolution": [ + 1920, + 1080 + ], + "display_scale": 1.0 + } + }, + "user": { + "id": "demo_user", + "label": "Démo agent_v0" + }, + "context": { + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos." + }, + "started_at": "2025-11-22T00:22:55Z", + "ended_at": "2025-11-22T00:24:03Z", + "events": [ + { + "t": 3.1684997830016073, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0001", + "button": "left", + "pos": [ + 38, + 1045 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 4.774834978976287, + "type": "mouse_click", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0002", + "button": "left", + "pos": [ + 1116, + 77 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 5.81886474500061, + "type": "hover_idle", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0003", + "button": null, + "pos": [ + 1117, + 77 + ], + "keys": null, + "idle_ms": 763, + "scroll_delta": null + }, + { + "t": 8.675787344982382, + "type": "mouse_click", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0004", + "button": "left", + "pos": [ + 964, + 237 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 9.542181272991002, + "type": "hover_idle", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0005", + "button": null, + "pos": [ + 964, + 236 + ], + "keys": null, + "idle_ms": 731, + "scroll_delta": null + }, + { + "t": 10.76403674899484, + "type": "hover_idle", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0006", + "button": null, + "pos": [ + 862, + 216 + ], + "keys": null, + "idle_ms": 710, + "scroll_delta": null + }, + { + "t": 11.493462079990422, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0007", + "button": "left", + "pos": [ + 862, + 216 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 15.005104206997203, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0008", + "button": "left", + "pos": [ + 45, + 402 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 15.589322414976778, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0009", + "button": null, + "pos": [ + 45, + 402 + ], + "keys": null, + "idle_ms": 702, + "scroll_delta": null + }, + { + "t": 23.73784916198929, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0010", + "button": "left", + "pos": [ + 29, + 583 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 24.215254560986068, + "type": "hover_idle", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0011", + "button": null, + "pos": [ + 29, + 583 + ], + "keys": null, + "idle_ms": 762, + "scroll_delta": null + }, + { + "t": 26.18911038598162, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0012", + "button": "left", + "pos": [ + 102, + 96 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 27.50064410699997, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0013", + "button": "left", + "pos": [ + 163, + 584 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 28.398130443994887, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0014", + "button": "left", + "pos": [ + 977, + 241 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 30.00983267198899, + "type": "mouse_click", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0015", + "button": "left", + "pos": [ + 133, + 103 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 30.23801764898235, + "type": "hover_idle", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0016", + "button": null, + "pos": [ + 133, + 103 + ], + "keys": null, + "idle_ms": 722, + "scroll_delta": null + }, + { + "t": 31.26953744099592, + "type": "mouse_click", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0017", + "button": "left", + "pos": [ + 192, + 615 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 34.50322362600127, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0018", + "button": "left", + "pos": [ + 1039, + 221 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 36.09574069298105, + "type": "mouse_click", + "window": { + "title": "*Livre2.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0019", + "button": "left", + "pos": [ + 102, + 98 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 37.18136298598256, + "type": "mouse_click", + "window": { + "title": "*Livre2.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0020", + "button": "left", + "pos": [ + 154, + 614 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 37.86934186797589, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0021", + "button": "left", + "pos": [ + 1037, + 246 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 39.08423037099419, + "type": "mouse_click", + "window": { + "title": "*Livre3.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0022", + "button": "left", + "pos": [ + 145, + 102 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 40.43024777297978, + "type": "mouse_click", + "window": { + "title": "*Livre3.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0023", + "button": "left", + "pos": [ + 154, + 606 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 41.37494612898445, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0024", + "button": "left", + "pos": [ + 768, + 254 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 42.59985544998199, + "type": "mouse_click", + "window": { + "title": "Document2.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0025", + "button": "left", + "pos": [ + 117, + 99 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 43.510244062985294, + "type": "mouse_click", + "window": { + "title": "Document2.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0026", + "button": "left", + "pos": [ + 149, + 583 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 47.80467690699152, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0027", + "button": "left", + "pos": [ + 1912, + 40 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 50.78682437099633, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0028", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 51.39684452000074, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0029", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 51.46999536099611, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0030", + "button": null, + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": 785, + "scroll_delta": null + }, + { + "t": 52.649815398996, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0031", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 53.1728307849844, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0032", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 54.78535495797405, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0033", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 55.56673585899989, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0034", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 62.703069973998936, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0035", + "button": null, + "pos": [ + 24, + 542 + ], + "keys": null, + "idle_ms": 700, + "scroll_delta": null + }, + { + "t": 67.91067471899441, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0036", + "button": "left", + "pos": [ + 1740, + 15 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 67.92472465799074, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0037", + "button": null, + "pos": [ + 1740, + 15 + ], + "keys": null, + "idle_ms": 752, + "scroll_delta": null + } + ], + "screenshots": [ + { + "screenshot_id": "shot_0001", + "relative_path": "shots/shot_0001.png", + "captured_at": "2025-11-22T00:22:58Z" + }, + { + "screenshot_id": "shot_0002", + "relative_path": "shots/shot_0002.png", + "captured_at": "2025-11-22T00:22:59Z" + }, + { + "screenshot_id": "shot_0003", + "relative_path": "shots/shot_0003.png", + "captured_at": "2025-11-22T00:23:01Z" + }, + { + "screenshot_id": "shot_0004", + "relative_path": "shots/shot_0004.png", + "captured_at": "2025-11-22T00:23:03Z" + }, + { + "screenshot_id": "shot_0005", + "relative_path": "shots/shot_0005.png", + "captured_at": "2025-11-22T00:23:04Z" + }, + { + "screenshot_id": "shot_0006", + "relative_path": "shots/shot_0006.png", + "captured_at": "2025-11-22T00:23:05Z" + }, + { + "screenshot_id": "shot_0007", + "relative_path": "shots/shot_0007.png", + "captured_at": "2025-11-22T00:23:06Z" + }, + { + "screenshot_id": "shot_0008", + "relative_path": "shots/shot_0008.png", + "captured_at": "2025-11-22T00:23:10Z" + }, + { + "screenshot_id": "shot_0009", + "relative_path": "shots/shot_0009.png", + "captured_at": "2025-11-22T00:23:10Z" + }, + { + "screenshot_id": "shot_0010", + "relative_path": "shots/shot_0010.png", + "captured_at": "2025-11-22T00:23:18Z" + }, + { + "screenshot_id": "shot_0011", + "relative_path": "shots/shot_0011.png", + "captured_at": "2025-11-22T00:23:19Z" + }, + { + "screenshot_id": "shot_0012", + "relative_path": "shots/shot_0012.png", + "captured_at": "2025-11-22T00:23:21Z" + }, + { + "screenshot_id": "shot_0013", + "relative_path": "shots/shot_0013.png", + "captured_at": "2025-11-22T00:23:22Z" + }, + { + "screenshot_id": "shot_0014", + "relative_path": "shots/shot_0014.png", + "captured_at": "2025-11-22T00:23:23Z" + }, + { + "screenshot_id": "shot_0015", + "relative_path": "shots/shot_0015.png", + "captured_at": "2025-11-22T00:23:25Z" + }, + { + "screenshot_id": "shot_0016", + "relative_path": "shots/shot_0016.png", + "captured_at": "2025-11-22T00:23:25Z" + }, + { + "screenshot_id": "shot_0017", + "relative_path": "shots/shot_0017.png", + "captured_at": "2025-11-22T00:23:26Z" + }, + { + "screenshot_id": "shot_0018", + "relative_path": "shots/shot_0018.png", + "captured_at": "2025-11-22T00:23:29Z" + }, + { + "screenshot_id": "shot_0019", + "relative_path": "shots/shot_0019.png", + "captured_at": "2025-11-22T00:23:31Z" + }, + { + "screenshot_id": "shot_0020", + "relative_path": "shots/shot_0020.png", + "captured_at": "2025-11-22T00:23:32Z" + }, + { + "screenshot_id": "shot_0021", + "relative_path": "shots/shot_0021.png", + "captured_at": "2025-11-22T00:23:33Z" + }, + { + "screenshot_id": "shot_0022", + "relative_path": "shots/shot_0022.png", + "captured_at": "2025-11-22T00:23:34Z" + }, + { + "screenshot_id": "shot_0023", + "relative_path": "shots/shot_0023.png", + "captured_at": "2025-11-22T00:23:35Z" + }, + { + "screenshot_id": "shot_0024", + "relative_path": "shots/shot_0024.png", + "captured_at": "2025-11-22T00:23:36Z" + }, + { + "screenshot_id": "shot_0025", + "relative_path": "shots/shot_0025.png", + "captured_at": "2025-11-22T00:23:37Z" + }, + { + "screenshot_id": "shot_0026", + "relative_path": "shots/shot_0026.png", + "captured_at": "2025-11-22T00:23:38Z" + }, + { + "screenshot_id": "shot_0027", + "relative_path": "shots/shot_0027.png", + "captured_at": "2025-11-22T00:23:42Z" + }, + { + "screenshot_id": "shot_0028", + "relative_path": "shots/shot_0028.png", + "captured_at": "2025-11-22T00:23:45Z" + }, + { + "screenshot_id": "shot_0029", + "relative_path": "shots/shot_0029.png", + "captured_at": "2025-11-22T00:23:46Z" + }, + { + "screenshot_id": "shot_0030", + "relative_path": "shots/shot_0030.png", + "captured_at": "2025-11-22T00:23:46Z" + }, + { + "screenshot_id": "shot_0031", + "relative_path": "shots/shot_0031.png", + "captured_at": "2025-11-22T00:23:47Z" + }, + { + "screenshot_id": "shot_0032", + "relative_path": "shots/shot_0032.png", + "captured_at": "2025-11-22T00:23:48Z" + }, + { + "screenshot_id": "shot_0033", + "relative_path": "shots/shot_0033.png", + "captured_at": "2025-11-22T00:23:49Z" + }, + { + "screenshot_id": "shot_0034", + "relative_path": "shots/shot_0034.png", + "captured_at": "2025-11-22T00:23:50Z" + }, + { + "screenshot_id": "shot_0035", + "relative_path": "shots/shot_0035.png", + "captured_at": "2025-11-22T00:23:57Z" + }, + { + "screenshot_id": "shot_0036", + "relative_path": "shots/shot_0036.png", + "captured_at": "2025-11-22T00:24:03Z" + }, + { + "screenshot_id": "shot_0037", + "relative_path": "shots/shot_0037.png", + "captured_at": "2025-11-22T00:24:03Z" + } + ] +} \ No newline at end of file diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0001.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0001.png new file mode 100644 index 0000000..02741c4 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0001.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0002.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0002.png new file mode 100644 index 0000000..9ce112c Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0002.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0003.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0003.png new file mode 100644 index 0000000..18d9211 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0003.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0004.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0004.png new file mode 100644 index 0000000..64db545 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0004.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0005.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0005.png new file mode 100644 index 0000000..b202c55 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0005.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0006.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0006.png new file mode 100644 index 0000000..29330d8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0006.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0007.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0007.png new file mode 100644 index 0000000..29330d8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0007.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0008.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0008.png new file mode 100644 index 0000000..0916757 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0008.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0009.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0009.png new file mode 100644 index 0000000..814b637 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0009.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0010.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0010.png new file mode 100644 index 0000000..d3b1010 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0010.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0011.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0011.png new file mode 100644 index 0000000..a545079 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0011.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0012.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0012.png new file mode 100644 index 0000000..da01c42 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0012.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0013.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0013.png new file mode 100644 index 0000000..80bf0cf Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0013.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0014.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0014.png new file mode 100644 index 0000000..e6a6d79 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0014.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0015.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0015.png new file mode 100644 index 0000000..4bade34 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0015.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0016.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0016.png new file mode 100644 index 0000000..ed51d0f Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0016.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0017.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0017.png new file mode 100644 index 0000000..318643b Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0017.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0018.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0018.png new file mode 100644 index 0000000..dbf5f15 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0018.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0019.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0019.png new file mode 100644 index 0000000..e5683ce Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0019.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0020.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0020.png new file mode 100644 index 0000000..c646ae2 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0020.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0021.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0021.png new file mode 100644 index 0000000..6364bde Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0021.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0022.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0022.png new file mode 100644 index 0000000..8ef2227 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0022.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0023.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0023.png new file mode 100644 index 0000000..d945302 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0023.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0024.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0024.png new file mode 100644 index 0000000..1167f72 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0024.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0025.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0025.png new file mode 100644 index 0000000..9b67111 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0025.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0026.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0026.png new file mode 100644 index 0000000..ea00cd8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0026.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0027.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0027.png new file mode 100644 index 0000000..8cd080f Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0027.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0028.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0028.png new file mode 100644 index 0000000..f5b5765 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0028.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0029.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0029.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0029.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0030.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0030.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0030.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0031.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0031.png new file mode 100644 index 0000000..1f916c0 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0031.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0032.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0032.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0032.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0033.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0033.png new file mode 100644 index 0000000..16896b6 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0033.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0034.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0034.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0034.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0035.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0035.png new file mode 100644 index 0000000..489d066 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0035.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0036.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0036.png new file mode 100644 index 0000000..664fbb9 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0036.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0037.png b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0037.png new file mode 100644 index 0000000..c5aca7d Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a (2)/shots/shot_0037.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a.zip b/sessions/sess_20251122T012255_a6ff491a.zip new file mode 100644 index 0000000..12359af Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a.zip differ diff --git a/sessions/sess_20251122T012255_a6ff491a/sess_20251122T012255_a6ff491a.json b/sessions/sess_20251122T012255_a6ff491a/sess_20251122T012255_a6ff491a.json new file mode 100644 index 0000000..91a8431 --- /dev/null +++ b/sessions/sess_20251122T012255_a6ff491a/sess_20251122T012255_a6ff491a.json @@ -0,0 +1,845 @@ +{ + "schema_version": "rawsession_v1", + "session_id": "sess_20251122T012255_a6ff491a", + "agent_version": "0.1.0", + "environment": { + "platform": "linux", + "hostname": "dom-X870-Riptide-WiFi", + "screen": { + "primary_resolution": [ + 1920, + 1080 + ], + "display_scale": 1.0 + } + }, + "user": { + "id": "demo_user", + "label": "Démo agent_v0" + }, + "context": { + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos." + }, + "started_at": "2025-11-22T00:22:55Z", + "ended_at": "2025-11-22T00:24:03Z", + "events": [ + { + "t": 3.1684997830016073, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0001", + "button": "left", + "pos": [ + 38, + 1045 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 4.774834978976287, + "type": "mouse_click", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0002", + "button": "left", + "pos": [ + 1116, + 77 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 5.81886474500061, + "type": "hover_idle", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0003", + "button": null, + "pos": [ + 1117, + 77 + ], + "keys": null, + "idle_ms": 763, + "scroll_delta": null + }, + { + "t": 8.675787344982382, + "type": "mouse_click", + "window": { + "title": "unknown_window", + "app_name": "unknown_app" + }, + "screenshot_id": "shot_0004", + "button": "left", + "pos": [ + 964, + 237 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 9.542181272991002, + "type": "hover_idle", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0005", + "button": null, + "pos": [ + 964, + 236 + ], + "keys": null, + "idle_ms": 731, + "scroll_delta": null + }, + { + "t": 10.76403674899484, + "type": "hover_idle", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0006", + "button": null, + "pos": [ + 862, + 216 + ], + "keys": null, + "idle_ms": 710, + "scroll_delta": null + }, + { + "t": 11.493462079990422, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0007", + "button": "left", + "pos": [ + 862, + 216 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 15.005104206997203, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0008", + "button": "left", + "pos": [ + 45, + 402 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 15.589322414976778, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0009", + "button": null, + "pos": [ + 45, + 402 + ], + "keys": null, + "idle_ms": 702, + "scroll_delta": null + }, + { + "t": 23.73784916198929, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0010", + "button": "left", + "pos": [ + 29, + 583 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 24.215254560986068, + "type": "hover_idle", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0011", + "button": null, + "pos": [ + 29, + 583 + ], + "keys": null, + "idle_ms": 762, + "scroll_delta": null + }, + { + "t": 26.18911038598162, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0012", + "button": "left", + "pos": [ + 102, + 96 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 27.50064410699997, + "type": "mouse_click", + "window": { + "title": "Document1.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0013", + "button": "left", + "pos": [ + 163, + 584 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 28.398130443994887, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0014", + "button": "left", + "pos": [ + 977, + 241 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 30.00983267198899, + "type": "mouse_click", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0015", + "button": "left", + "pos": [ + 133, + 103 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 30.23801764898235, + "type": "hover_idle", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0016", + "button": null, + "pos": [ + 133, + 103 + ], + "keys": null, + "idle_ms": 722, + "scroll_delta": null + }, + { + "t": 31.26953744099592, + "type": "mouse_click", + "window": { + "title": "*Livre1.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0017", + "button": "left", + "pos": [ + 192, + 615 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 34.50322362600127, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0018", + "button": "left", + "pos": [ + 1039, + 221 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 36.09574069298105, + "type": "mouse_click", + "window": { + "title": "*Livre2.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0019", + "button": "left", + "pos": [ + 102, + 98 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 37.18136298598256, + "type": "mouse_click", + "window": { + "title": "*Livre2.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0020", + "button": "left", + "pos": [ + 154, + 614 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 37.86934186797589, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0021", + "button": "left", + "pos": [ + 1037, + 246 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 39.08423037099419, + "type": "mouse_click", + "window": { + "title": "*Livre3.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0022", + "button": "left", + "pos": [ + 145, + 102 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 40.43024777297978, + "type": "mouse_click", + "window": { + "title": "*Livre3.xlsx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0023", + "button": "left", + "pos": [ + 154, + 606 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 41.37494612898445, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0024", + "button": "left", + "pos": [ + 768, + 254 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 42.59985544998199, + "type": "mouse_click", + "window": { + "title": "Document2.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0025", + "button": "left", + "pos": [ + 117, + 99 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 43.510244062985294, + "type": "mouse_click", + "window": { + "title": "Document2.docx — ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0026", + "button": "left", + "pos": [ + 149, + 583 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 47.80467690699152, + "type": "mouse_click", + "window": { + "title": "ONLYOFFICE", + "app_name": "DesktopEditors" + }, + "screenshot_id": "shot_0027", + "button": "left", + "pos": [ + 1912, + 40 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 50.78682437099633, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0028", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 51.39684452000074, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0029", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 51.46999536099611, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0030", + "button": null, + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": 785, + "scroll_delta": null + }, + { + "t": 52.649815398996, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0031", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 53.1728307849844, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0032", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 54.78535495797405, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0033", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 55.56673585899989, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0034", + "button": "left", + "pos": [ + 30, + 1043 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 62.703069973998936, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0035", + "button": null, + "pos": [ + 24, + 542 + ], + "keys": null, + "idle_ms": 700, + "scroll_delta": null + }, + { + "t": 67.91067471899441, + "type": "mouse_click", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0036", + "button": "left", + "pos": [ + 1740, + 15 + ], + "keys": null, + "idle_ms": null, + "scroll_delta": null + }, + { + "t": 67.92472465799074, + "type": "hover_idle", + "window": { + "title": "Terminal", + "app_name": "gnome-terminal-" + }, + "screenshot_id": "shot_0037", + "button": null, + "pos": [ + 1740, + 15 + ], + "keys": null, + "idle_ms": 752, + "scroll_delta": null + } + ], + "screenshots": [ + { + "screenshot_id": "shot_0001", + "relative_path": "shots/shot_0001.png", + "captured_at": "2025-11-22T00:22:58Z" + }, + { + "screenshot_id": "shot_0002", + "relative_path": "shots/shot_0002.png", + "captured_at": "2025-11-22T00:22:59Z" + }, + { + "screenshot_id": "shot_0003", + "relative_path": "shots/shot_0003.png", + "captured_at": "2025-11-22T00:23:01Z" + }, + { + "screenshot_id": "shot_0004", + "relative_path": "shots/shot_0004.png", + "captured_at": "2025-11-22T00:23:03Z" + }, + { + "screenshot_id": "shot_0005", + "relative_path": "shots/shot_0005.png", + "captured_at": "2025-11-22T00:23:04Z" + }, + { + "screenshot_id": "shot_0006", + "relative_path": "shots/shot_0006.png", + "captured_at": "2025-11-22T00:23:05Z" + }, + { + "screenshot_id": "shot_0007", + "relative_path": "shots/shot_0007.png", + "captured_at": "2025-11-22T00:23:06Z" + }, + { + "screenshot_id": "shot_0008", + "relative_path": "shots/shot_0008.png", + "captured_at": "2025-11-22T00:23:10Z" + }, + { + "screenshot_id": "shot_0009", + "relative_path": "shots/shot_0009.png", + "captured_at": "2025-11-22T00:23:10Z" + }, + { + "screenshot_id": "shot_0010", + "relative_path": "shots/shot_0010.png", + "captured_at": "2025-11-22T00:23:18Z" + }, + { + "screenshot_id": "shot_0011", + "relative_path": "shots/shot_0011.png", + "captured_at": "2025-11-22T00:23:19Z" + }, + { + "screenshot_id": "shot_0012", + "relative_path": "shots/shot_0012.png", + "captured_at": "2025-11-22T00:23:21Z" + }, + { + "screenshot_id": "shot_0013", + "relative_path": "shots/shot_0013.png", + "captured_at": "2025-11-22T00:23:22Z" + }, + { + "screenshot_id": "shot_0014", + "relative_path": "shots/shot_0014.png", + "captured_at": "2025-11-22T00:23:23Z" + }, + { + "screenshot_id": "shot_0015", + "relative_path": "shots/shot_0015.png", + "captured_at": "2025-11-22T00:23:25Z" + }, + { + "screenshot_id": "shot_0016", + "relative_path": "shots/shot_0016.png", + "captured_at": "2025-11-22T00:23:25Z" + }, + { + "screenshot_id": "shot_0017", + "relative_path": "shots/shot_0017.png", + "captured_at": "2025-11-22T00:23:26Z" + }, + { + "screenshot_id": "shot_0018", + "relative_path": "shots/shot_0018.png", + "captured_at": "2025-11-22T00:23:29Z" + }, + { + "screenshot_id": "shot_0019", + "relative_path": "shots/shot_0019.png", + "captured_at": "2025-11-22T00:23:31Z" + }, + { + "screenshot_id": "shot_0020", + "relative_path": "shots/shot_0020.png", + "captured_at": "2025-11-22T00:23:32Z" + }, + { + "screenshot_id": "shot_0021", + "relative_path": "shots/shot_0021.png", + "captured_at": "2025-11-22T00:23:33Z" + }, + { + "screenshot_id": "shot_0022", + "relative_path": "shots/shot_0022.png", + "captured_at": "2025-11-22T00:23:34Z" + }, + { + "screenshot_id": "shot_0023", + "relative_path": "shots/shot_0023.png", + "captured_at": "2025-11-22T00:23:35Z" + }, + { + "screenshot_id": "shot_0024", + "relative_path": "shots/shot_0024.png", + "captured_at": "2025-11-22T00:23:36Z" + }, + { + "screenshot_id": "shot_0025", + "relative_path": "shots/shot_0025.png", + "captured_at": "2025-11-22T00:23:37Z" + }, + { + "screenshot_id": "shot_0026", + "relative_path": "shots/shot_0026.png", + "captured_at": "2025-11-22T00:23:38Z" + }, + { + "screenshot_id": "shot_0027", + "relative_path": "shots/shot_0027.png", + "captured_at": "2025-11-22T00:23:42Z" + }, + { + "screenshot_id": "shot_0028", + "relative_path": "shots/shot_0028.png", + "captured_at": "2025-11-22T00:23:45Z" + }, + { + "screenshot_id": "shot_0029", + "relative_path": "shots/shot_0029.png", + "captured_at": "2025-11-22T00:23:46Z" + }, + { + "screenshot_id": "shot_0030", + "relative_path": "shots/shot_0030.png", + "captured_at": "2025-11-22T00:23:46Z" + }, + { + "screenshot_id": "shot_0031", + "relative_path": "shots/shot_0031.png", + "captured_at": "2025-11-22T00:23:47Z" + }, + { + "screenshot_id": "shot_0032", + "relative_path": "shots/shot_0032.png", + "captured_at": "2025-11-22T00:23:48Z" + }, + { + "screenshot_id": "shot_0033", + "relative_path": "shots/shot_0033.png", + "captured_at": "2025-11-22T00:23:49Z" + }, + { + "screenshot_id": "shot_0034", + "relative_path": "shots/shot_0034.png", + "captured_at": "2025-11-22T00:23:50Z" + }, + { + "screenshot_id": "shot_0035", + "relative_path": "shots/shot_0035.png", + "captured_at": "2025-11-22T00:23:57Z" + }, + { + "screenshot_id": "shot_0036", + "relative_path": "shots/shot_0036.png", + "captured_at": "2025-11-22T00:24:03Z" + }, + { + "screenshot_id": "shot_0037", + "relative_path": "shots/shot_0037.png", + "captured_at": "2025-11-22T00:24:03Z" + } + ] +} \ No newline at end of file diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0001.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0001.png new file mode 100644 index 0000000..02741c4 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0001.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0002.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0002.png new file mode 100644 index 0000000..9ce112c Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0002.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0003.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0003.png new file mode 100644 index 0000000..18d9211 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0003.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0004.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0004.png new file mode 100644 index 0000000..64db545 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0004.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0005.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0005.png new file mode 100644 index 0000000..b202c55 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0005.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0006.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0006.png new file mode 100644 index 0000000..29330d8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0006.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0007.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0007.png new file mode 100644 index 0000000..29330d8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0007.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0008.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0008.png new file mode 100644 index 0000000..0916757 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0008.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0009.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0009.png new file mode 100644 index 0000000..814b637 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0009.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0010.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0010.png new file mode 100644 index 0000000..d3b1010 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0010.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0011.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0011.png new file mode 100644 index 0000000..a545079 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0011.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0012.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0012.png new file mode 100644 index 0000000..da01c42 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0012.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0013.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0013.png new file mode 100644 index 0000000..80bf0cf Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0013.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0014.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0014.png new file mode 100644 index 0000000..e6a6d79 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0014.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0015.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0015.png new file mode 100644 index 0000000..4bade34 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0015.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0016.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0016.png new file mode 100644 index 0000000..ed51d0f Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0016.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0017.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0017.png new file mode 100644 index 0000000..318643b Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0017.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0018.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0018.png new file mode 100644 index 0000000..dbf5f15 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0018.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0019.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0019.png new file mode 100644 index 0000000..e5683ce Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0019.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0020.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0020.png new file mode 100644 index 0000000..c646ae2 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0020.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0021.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0021.png new file mode 100644 index 0000000..6364bde Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0021.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0022.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0022.png new file mode 100644 index 0000000..8ef2227 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0022.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0023.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0023.png new file mode 100644 index 0000000..d945302 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0023.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0024.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0024.png new file mode 100644 index 0000000..1167f72 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0024.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0025.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0025.png new file mode 100644 index 0000000..9b67111 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0025.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0026.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0026.png new file mode 100644 index 0000000..ea00cd8 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0026.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0027.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0027.png new file mode 100644 index 0000000..8cd080f Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0027.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0028.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0028.png new file mode 100644 index 0000000..f5b5765 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0028.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0029.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0029.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0029.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0030.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0030.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0030.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0031.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0031.png new file mode 100644 index 0000000..1f916c0 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0031.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0032.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0032.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0032.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0033.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0033.png new file mode 100644 index 0000000..16896b6 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0033.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0034.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0034.png new file mode 100644 index 0000000..02f4375 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0034.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0035.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0035.png new file mode 100644 index 0000000..489d066 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0035.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0036.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0036.png new file mode 100644 index 0000000..664fbb9 Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0036.png differ diff --git a/sessions/sess_20251122T012255_a6ff491a/shots/shot_0037.png b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0037.png new file mode 100644 index 0000000..c5aca7d Binary files /dev/null and b/sessions/sess_20251122T012255_a6ff491a/shots/shot_0037.png differ diff --git a/storage.py b/storage.py new file mode 100644 index 0000000..e08d15d --- /dev/null +++ b/storage.py @@ -0,0 +1,48 @@ +# storage.py +""" +Gestion du stockage "avancé" pour agent_v0. + +v0 : +- création d'une archive ZIP pour une session donnée +""" + +from __future__ import annotations + +import os +import zipfile + +from config import SESSIONS_ROOT +from raw_session import RawSession + + +def create_session_zip(session: RawSession, base_dir: str | None = None) -> str: + """ + Crée un ZIP contenant tout le dossier de la session : + + sessions// + - .json + - shots/*.png + + Le ZIP est créé dans SESSIONS_ROOT : + sessions/.zip + + Retourne le chemin absolu du ZIP. + """ + base_dir = base_dir or SESSIONS_ROOT + + session_dir = os.path.join(base_dir, session.session_id) + if not os.path.isdir(session_dir): + raise FileNotFoundError(f"Dossier de session introuvable : {session_dir}") + + zip_path = os.path.join(base_dir, f"{session.session_id}.zip") + + # On crée/écrase le zip + with zipfile.ZipFile(zip_path, "w", compression=zipfile.ZIP_DEFLATED) as zf: + for root, _, files in os.walk(session_dir): + for name in files: + full_path = os.path.join(root, name) + # chemin relatif dans l'archive (à partir de SESSIONS_ROOT) + arcname = os.path.relpath(full_path, base_dir) + zf.write(full_path, arcname) + + return os.path.abspath(zip_path) diff --git a/tray_ui.py b/tray_ui.py new file mode 100644 index 0000000..cc58590 --- /dev/null +++ b/tray_ui.py @@ -0,0 +1,449 @@ +# tray_ui.py +""" +Interface tray (icône de zone de notification) pour agent_v0. + +Menu : +- Start/Stop session (clic gauche ou entrée par défaut) +- Start session +- Stop session +- Open sessions folder +- Open logs +- Quit + +Gère : +- création / arrêt de RawSession +- démarrage / arrêt des capteurs souris & clavier +- capture des screenshots (full ou crop) +- hover (infobulles) via hover_idle +- scroll (molette) +- sauvegarde JSON + ZIP + upload +- copie optionnelle vers un chemin réseau +""" + +from __future__ import annotations + +import logging +import os +import platform +import socket +import sys +import threading +import shutil +from typing import Optional, List + +import pystray +from pystray import Menu, MenuItem +from PIL import Image, ImageDraw + +from config import SESSIONS_ROOT, EXIT_AFTER_SESSION, LOGS_DIR +from raw_session import RawSession +from screen_capturer import ScreenCapturer +from event_captor import EventCaptor +from key_captor import KeyCaptor +from window_info import get_active_window_info +from storage import create_session_zip +from uploader import upload_session_zip +from user_config import load_user_config + +logger = logging.getLogger("agent_v0.tray") + + +def _open_in_file_manager(path: str) -> None: + """Ouvre un dossier dans le gestionnaire de fichiers en fonction de l'OS.""" + try: + if sys.platform.startswith("linux"): + os.makedirs(path, exist_ok=True) + os.system(f'xdg-open "{path}" &') + elif sys.platform.startswith("win"): + os.makedirs(path, exist_ok=True) + os.startfile(path) # type: ignore[attr-defined] + elif sys.platform == "darwin": + os.makedirs(path, exist_ok=True) + os.system(f'open "{path}" &') + else: + logger.warning("Plateforme non supportée pour l'ouverture de dossier: %s", sys.platform) + except Exception as e: + logger.exception("Erreur lors de l'ouverture du dossier %s : %s", path, e) + + +class TrayApp: + """ + Application basée sur une icône de tray. + """ + + def __init__(self) -> None: + self._lock = threading.Lock() + self.session: Optional[RawSession] = None + self.capturer: Optional[ScreenCapturer] = None + self.event_captor: Optional[EventCaptor] = None + self.key_captor: Optional[KeyCaptor] = None + self.session_active: bool = False + + # Config utilisateur + self.config = load_user_config() + logger.info("Config chargée : %s", self.config) + + self.icon = pystray.Icon( + "agent_v0", + self._create_icon_image(active=False), + "agent_v0", + self._create_menu(), + ) + + # --- Icône & menu --- + + def _create_icon_image(self, active: bool) -> Image.Image: + size = 64 + img = Image.new("RGBA", (size, size), (0, 0, 0, 0)) + draw = ImageDraw.Draw(img) + + color = (0, 200, 0, 255) if active else (120, 120, 120, 255) + + radius = 24 + center = (size // 2, size // 2) + bbox = [ + center[0] - radius, + center[1] - radius, + center[0] + radius, + center[1] + radius, + ] + draw.ellipse(bbox, fill=color) + draw.ellipse(bbox, outline=(0, 0, 0, 255), width=2) + + return img + + def _create_menu(self) -> Menu: + """ + Menu tray. + + - "Start/Stop session" est l'action par défaut (clic gauche). + """ + return Menu( + MenuItem("Start/Stop session", self.on_toggle_session, default=True), + MenuItem("Start session", self.on_start_session), + MenuItem("Stop session", self.on_stop_session), + MenuItem("Open sessions folder", self.on_open_sessions), + MenuItem("Open logs", self.on_open_logs), + MenuItem("Quit", self.on_quit), + ) + + def _set_icon_active(self, active: bool) -> None: + self.icon.icon = self._create_icon_image(active) + + # --- Lifecycle --- + + def run(self) -> None: + logger.info("Démarrage de TrayApp...") + self.icon.run() + + # --- Actions menu --- + + def on_toggle_session(self, icon: pystray.Icon, item: MenuItem) -> None: + with self._lock: + if self.session_active: + logger.info("Toggle: arrêt de la session.") + self._stop_session_internal() + else: + logger.info("Toggle: démarrage d'une session.") + self._start_session_internal() + + def on_start_session(self, icon: pystray.Icon, item: MenuItem) -> None: + with self._lock: + if self.session_active: + logger.info("Session déjà active, Start ignoré.") + return + logger.info("Démarrage d'une nouvelle session (menu Start)...") + self._start_session_internal() + + def on_stop_session(self, icon: pystray.Icon, item: MenuItem) -> None: + with self._lock: + if not self.session_active: + logger.info("Aucune session active, Stop ignoré.") + return + logger.info("Arrêt de la session (menu Stop)...") + self._stop_session_internal() + + def on_open_sessions(self, icon: pystray.Icon, item: MenuItem) -> None: + logger.info("Ouverture du dossier sessions...") + _open_in_file_manager(os.path.abspath(SESSIONS_ROOT)) + + def on_open_logs(self, icon: pystray.Icon, item: MenuItem) -> None: + logger.info("Ouverture du dossier logs...") + _open_in_file_manager(str(LOGS_DIR)) + + def on_quit(self, icon: pystray.Icon, item: MenuItem) -> None: + logger.info("Quit demandé depuis le menu tray.") + with self._lock: + if self.session_active: + logger.info("Arrêt de la session avant de quitter...") + self._stop_session_internal() + self.icon.stop() + + # --- Gestion de la session --- + + def _start_session_internal(self) -> None: + cfg = self.config + + # Infos de base sur la machine + plat = platform.system().lower() + hostname = socket.gethostname() + + # Détection de la résolution de l'écran principal + width, height = ScreenCapturer.detect_primary_resolution() + screen_resolution = [width, height] + display_scale = 1.0 # TODO: affiner si besoin + + logger.info( + "Nouvelle session : platform=%s, hostname=%s, res=%dx%d, mode=%s", + plat, + hostname, + screen_resolution[0], + screen_resolution[1], + cfg.get("mode", "enriched"), + ) + + session = RawSession.create( + user_id=cfg.get("user_id", "demo_user"), + user_label=cfg.get("user_label", cfg.get("user_id", "demo_user")), + customer=cfg.get("customer", ""), + training_label=cfg.get("training_label", ""), + notes=cfg.get("notes", ""), + platform=plat, + hostname=hostname, + screen_resolution=screen_resolution, + display_scale=display_scale, + ) + + screenshot_mode = cfg.get("screenshot_mode", "crop") + crop_w = int(cfg.get("screenshot_crop_width", 900)) + crop_h = int(cfg.get("screenshot_crop_height", 700)) + + self.session = session + self.capturer = ScreenCapturer( + session=session, + screenshot_mode=screenshot_mode, + crop_width=crop_w, + crop_height=crop_h, + ) + + capture_hover = bool(cfg.get("capture_hover", True)) + capture_scroll = bool(cfg.get("capture_scroll", True)) + hover_min_idle_ms = int(cfg.get("hover_min_idle_ms", 700)) + + # Callbacks + def on_mouse_click(button_str: str, x: int, y: int) -> None: + self._record_click_with_screenshot(button_str, x, y) + + def on_key_combo(keys: List[str]) -> None: + self._record_key_combo_with_screenshot(keys) + + def on_scroll(x: int, y: int, dx: int, dy: int) -> None: + self._record_scroll_with_screenshot(x, y, dx, dy) + + def on_hover(x: int, y: int, idle_ms: int) -> None: + self._record_hover_with_screenshot(x, y, idle_ms) + + # Capteurs + self.event_captor = EventCaptor( + on_mouse_click=on_mouse_click, + on_scroll=on_scroll if capture_scroll else None, + on_hover=on_hover if capture_hover else None, + hover_min_idle_ms=hover_min_idle_ms, + ) + self.key_captor = KeyCaptor(on_key_combo=on_key_combo) + + self.event_captor.start() + self.key_captor.start() + + self.session_active = True + self._set_icon_active(True) + + logger.info("Session %s démarrée.", session.session_id) + + def _stop_session_internal(self) -> None: + if not self.session_active or self.session is None: + return + + # Stop capteurs + if self.event_captor is not None: + self.event_captor.stop() + self.event_captor = None + + if self.key_captor is not None: + self.key_captor.stop() + self.key_captor = None + + session = self.session + self.session = None + self.capturer = None + self.session_active = False + self._set_icon_active(False) + + session.close() + + # Sauvegarde JSON + json_path = "" + try: + json_path = session.save_json() + logger.info("Session JSON sauvegardée : %s", json_path) + except Exception as e: + logger.exception("Erreur lors de la sauvegarde JSON : %s", e) + + # Création ZIP + zip_path = "" + try: + zip_path = create_session_zip(session) + logger.info("ZIP de session créé : %s", zip_path) + except Exception as e: + logger.exception("Erreur lors de la création du ZIP : %s", e) + + # Upload + if zip_path: + try: + ok = upload_session_zip(zip_path, session.session_id) + if ok: + logger.info("Upload du ZIP réussi.") + else: + logger.warning("Upload du ZIP échoué ou désactivé.") + except Exception as e: + logger.exception("Erreur lors de l'upload du ZIP : %s", e) + + # Copie réseau si configurée + net_path = self.config.get("network_save_path") or "" + if net_path and zip_path: + try: + dest_dir = os.path.join(net_path, session.session_id) + os.makedirs(dest_dir, exist_ok=True) + + if json_path and os.path.isfile(json_path): + shutil.copy2(json_path, os.path.join(dest_dir, os.path.basename(json_path))) + shutil.copy2(zip_path, os.path.join(dest_dir, os.path.basename(zip_path))) + + logger.info("Session copiée sur le chemin réseau : %s", dest_dir) + except Exception as e: + logger.exception("Erreur lors de la copie vers le chemin réseau : %s", e) + + logger.info("Session terminée. SESSIONS_ROOT = %s", os.path.abspath(SESSIONS_ROOT)) + + if EXIT_AFTER_SESSION: + logger.info("EXIT_AFTER_SESSION=True → arrêt de l'application.") + self.icon.stop() + + # --- Enregistrement des événements --- + + def _record_click_with_screenshot(self, button_str: str, x: int, y: int) -> None: + if not (self.session_active and self.session and self.capturer): + logger.debug("Clic ignoré (pas de session active).") + return + + screenshot_id, _ = self.capturer.capture((x, y)) + + win_info = get_active_window_info() + window_title = win_info["title"] + app_name = win_info["app_name"] + + self.session.add_mouse_click_event( + button=button_str, + pos=[x, y], + window_title=window_title, + app_name=app_name, + screenshot_id=screenshot_id, + ) + + logger.info( + "Clic %s à (%d, %d) → screenshot=%s, window='%s', app='%s'", + button_str, + x, + y, + screenshot_id, + window_title, + app_name, + ) + + def _record_key_combo_with_screenshot(self, keys: List[str]) -> None: + if not (self.session_active and self.session and self.capturer): + logger.debug("Combo clavier ignoré (pas de session active).") + return + + # Pour les combos clavier, on ne sait pas toujours où est la souris : + # on peut donc capturer en mode crop autours de la dernière position + # connue OU plein écran si screenshot_mode = "full". + screenshot_id, _ = self.capturer.capture(None) + + win_info = get_active_window_info() + window_title = win_info["title"] + app_name = win_info["app_name"] + + self.session.add_key_combo_event( + keys=keys, + window_title=window_title, + app_name=app_name, + screenshot_id=screenshot_id, + ) + + logger.info( + "Combo clavier %s → screenshot=%s, window='%s', app='%s'", + keys, + screenshot_id, + window_title, + app_name, + ) + + def _record_scroll_with_screenshot(self, x: int, y: int, dx: int, dy: int) -> None: + if not (self.session_active and self.session and self.capturer): + logger.debug("Scroll ignoré (pas de session active).") + return + + screenshot_id, _ = self.capturer.capture((x, y)) + + win_info = get_active_window_info() + window_title = win_info["title"] + app_name = win_info["app_name"] + + self.session.add_scroll_event( + pos=[x, y], + delta=[dx, dy], + window_title=window_title, + app_name=app_name, + screenshot_id=screenshot_id, + ) + + logger.info( + "Scroll dx=%d dy=%d à (%d, %d) → screenshot=%s, window='%s', app='%s'", + dx, + dy, + x, + y, + screenshot_id, + window_title, + app_name, + ) + + def _record_hover_with_screenshot(self, x: int, y: int, idle_ms: int) -> None: + if not (self.session_active and self.session and self.capturer): + logger.debug("Hover ignoré (pas de session active).") + return + + screenshot_id, _ = self.capturer.capture((x, y)) + + win_info = get_active_window_info() + window_title = win_info["title"] + app_name = win_info["app_name"] + + self.session.add_hover_idle_event( + pos=[x, y], + idle_ms=idle_ms, + window_title=window_title, + app_name=app_name, + screenshot_id=screenshot_id, + ) + + logger.info( + "Hover à (%d, %d) idle=%dms → screenshot=%s, window='%s', app='%s'", + x, + y, + idle_ms, + screenshot_id, + window_title, + app_name, + ) diff --git a/uploader.py b/uploader.py new file mode 100644 index 0000000..b6842be --- /dev/null +++ b/uploader.py @@ -0,0 +1,50 @@ +# uploader.py + +from __future__ import annotations + +import os +from typing import Optional + +import requests + +from config import SERVER_URL + + +def upload_session_zip(zip_path: str, session_id: str) -> bool: + """ + Envoie le zip de session au serveur. + + Retourne True si HTTP 2xx, False sinon. + """ + # Si pas configuré sérieusement, on n'upload pas + if not SERVER_URL or "example.com" in SERVER_URL: + print("[agent_v0] SERVER_URL non configuré (ou placeholder), upload désactivé.") + return False + + if not os.path.isfile(zip_path): + print(f"[agent_v0] ZIP introuvable pour upload : {zip_path}") + return False + + print(f"[agent_v0] Upload du ZIP {zip_path} vers {SERVER_URL} ...") + + try: + with open(zip_path, "rb") as f: + files = { + "file": (os.path.basename(zip_path), f, "application/zip"), + } + data = { + "session_id": session_id, + } + # Timeout plus agressif pour ne pas bloquer + resp = requests.post(SERVER_URL, files=files, data=data, timeout=5) + + if 200 <= resp.status_code < 300: + print(f"[agent_v0] Upload réussi (HTTP {resp.status_code}).") + return True + + print(f"[agent_v0] Upload échoué (HTTP {resp.status_code}). Réponse: {resp.text[:200]}") + return False + + except Exception as e: + print(f"[agent_v0] Erreur lors de l'upload : {e}") + return False diff --git a/user_config.py b/user_config.py new file mode 100644 index 0000000..acab217 --- /dev/null +++ b/user_config.py @@ -0,0 +1,94 @@ +# user_config.py +""" +Gestion du fichier de configuration utilisateur pour agent_v0. + +Format : JSON (agent_config.json) à la racine du projet. + +Exemple de config générée par défaut : +{ + "user_id": "demo_user", + "user_label": "Démo agent_v0", + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos.", + "mode": "enriched", + "screenshot_mode": "crop", + "screenshot_crop_width": 900, + "screenshot_crop_height": 700, + "capture_hover": true, + "hover_min_idle_ms": 700, + "capture_scroll": true, + "network_save_path": "" +} +""" + +from __future__ import annotations + +import json +from copy import deepcopy +from pathlib import Path +from typing import Any, Dict + +from config import BASE_DIR + +CONFIG_FILENAME = "agent_config.json" +CONFIG_PATH = BASE_DIR / CONFIG_FILENAME + +DEFAULT_CONFIG: Dict[str, Any] = { + "user_id": "demo_user", + "user_label": "Démo agent_v0", + "customer": "Clinique Demo", + "training_label": "Facturation_T2A_demo", + "notes": "Session réelle avec clics + screenshots + key combos.", + + # Mode logique de capture : "light" | "enriched" | "complete" + "mode": "enriched", + + # Screenshot : "full" ou "crop" + "screenshot_mode": "crop", + "screenshot_crop_width": 900, + "screenshot_crop_height": 700, + + # Infobulles (hover) + "capture_hover": True, + "hover_min_idle_ms": 700, + + # Molette / scroll + "capture_scroll": True, + + # Chemin réseau où recopier les sessions (JSON + ZIP) + # Exemple : "/mnt/rpa_sessions" + "network_save_path": "", +} + + +def load_user_config(path: Path | None = None) -> Dict[str, Any]: + """ + Charge la configuration utilisateur depuis agent_config.json. + - Si le fichier n'existe pas, on le crée avec DEFAULT_CONFIG. + - Si le fichier existe, on fait un merge avec DEFAULT_CONFIG + (les champs manquants prennent la valeur par défaut). + """ + cfg_path = path or CONFIG_PATH + + config = deepcopy(DEFAULT_CONFIG) + + if cfg_path.exists(): + try: + with cfg_path.open("r", encoding="utf-8") as f: + data = json.load(f) + if isinstance(data, dict): + config.update(data) + except Exception as e: + # En cas de problème de parse, on garde les defaults + print(f"[agent_v0] Erreur de lecture de {cfg_path}, utilisation des valeurs par défaut : {e}") + else: + # Créer le fichier de config par défaut + try: + with cfg_path.open("w", encoding="utf-8") as f: + json.dump(config, f, ensure_ascii=False, indent=2) + print(f"[agent_v0] Fichier de config créé : {cfg_path}") + except Exception as e: + print(f"[agent_v0] Impossible d'écrire {cfg_path} : {e}") + + return config diff --git a/window_info.py b/window_info.py new file mode 100644 index 0000000..7e6be87 --- /dev/null +++ b/window_info.py @@ -0,0 +1,55 @@ +# window_info.py +""" +Récupération des informations sur la fenêtre active (X11). + +v0 : +- utilise xdotool pour obtenir : + - le titre de la fenêtre active + - le PID de la fenêtre active, puis le nom du process via ps + +Si quelque chose ne fonctionne pas, on renvoie des valeurs "unknown". +""" + +from __future__ import annotations + +import subprocess +from typing import Dict, Optional + + +def _run_cmd(cmd: list[str]) -> Optional[str]: + """Exécute une commande et renvoie la sortie texte (strippée), ou None en cas d'erreur.""" + try: + out = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) + return out.decode("utf-8", errors="ignore").strip() + except Exception: + return None + + +def get_active_window_info() -> Dict[str, str]: + """ + Renvoie un dict : + { + "title": "...", + "app_name": "..." + } + + Nécessite xdotool installé sur le système. + """ + title = _run_cmd(["xdotool", "getactivewindow", "getwindowname"]) + pid_str = _run_cmd(["xdotool", "getactivewindow", "getwindowpid"]) + + app_name: Optional[str] = None + if pid_str: + pid_str = pid_str.strip() + # On récupère le nom du binaire via ps + app_name = _run_cmd(["ps", "-p", pid_str, "-o", "comm="]) + + if not title: + title = "unknown_window" + if not app_name: + app_name = "unknown_app" + + return { + "title": title, + "app_name": app_name, + }