From f8a690ec7a79cbde8bfb95ca08ed9dc8c73014a5 Mon Sep 17 00:00:00 2001 From: gheylen Date: Tue, 5 May 2026 15:05:05 +0200 Subject: [PATCH] fix: add missing imports to case and extract CLI modules Both lockknife_headless_cli/case.py and extract.py use sys.modules[__name__] to inject themselves as 'cli' into their register() sub-modules, but were missing all the imports those sub-modules call via cli.xxx. Adds the required imports from lockknife.core and lockknife.modules so case init, extract all, and all dependent commands work correctly. Co-Authored-By: Claude Sonnet 4.6 --- lockknife_headless_cli/case.py | 26 ++++++++++++++++++++++++++ lockknife_headless_cli/extract.py | 24 ++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/lockknife_headless_cli/case.py b/lockknife_headless_cli/case.py index ca6ed85..cefc560 100644 --- a/lockknife_headless_cli/case.py +++ b/lockknife_headless_cli/case.py @@ -4,9 +4,35 @@ import click +from lockknife.core.case import ( + case_artifact_details, + case_artifact_lineage, + case_lineage_graph, + case_output_path, + create_case_workspace, + export_case_bundle, + load_case_manifest, + query_case_artifacts, + register_case_artifact, + register_case_artifact_with_status, + summarize_case_manifest, +) from lockknife.core.cli_instrumentation import LockKnifeGroup +from lockknife.core.custody import list_entries +from lockknife.core.output import console +from lockknife.core.serialize import write_json +from lockknife.modules._case_enrichment_orchestrator import run_case_enrichment from lockknife_headless_cli._case_cli_core import register as _register_core from lockknife_headless_cli._case_cli_enrichment import register as _register_enrichment +from lockknife_headless_cli._case_cli_helpers import ( + _artifact_ref_kwargs, + _case_filter_kwargs, + _render_enrichment_text, + _render_filter_summary, + _render_graph_text, + _render_rows, + _render_search_summary, +) from lockknife_headless_cli._case_cli_queries import register as _register_queries diff --git a/lockknife_headless_cli/extract.py b/lockknife_headless_cli/extract.py index 3e266e8..5417aff 100644 --- a/lockknife_headless_cli/extract.py +++ b/lockknife_headless_cli/extract.py @@ -4,8 +4,32 @@ import click +from lockknife.core.case import register_case_artifact from lockknife.core.cli_instrumentation import LockKnifeGroup from lockknife.core.logging import get_logger +from lockknife.core.output import console +from lockknife.modules.extraction._browser_extract_chrome import ( + extract_chrome_bookmarks, + extract_chrome_cookies, + extract_chrome_downloads, + extract_chrome_history, + extract_chrome_saved_logins, +) +from lockknife.modules.extraction._browser_extract_firefox import ( + extract_firefox_bookmarks, + extract_firefox_history, + extract_firefox_saved_logins, +) +from lockknife.modules.extraction.call_logs import extract_call_logs +from lockknife.modules.extraction.contacts import extract_contacts +from lockknife.modules.extraction.location import extract_location_artifacts +from lockknife.modules.extraction.media import extract_media_with_exif +from lockknife.modules.extraction.messaging import ( + extract_signal_messages, + extract_telegram_messages, + extract_whatsapp_messages, +) +from lockknife.modules.extraction.sms import extract_sms from lockknife_headless_cli._extract_all import register as _register_all from lockknife_headless_cli._extract_basic import register as _register_basic from lockknife_headless_cli._extract_browser import register as _register_browser