Agent API_p15 - grisuno/LazyOwn GitHub Wiki
API (page 15 of 23)
Previous: API_p14.md
modules/metrics.py
Depends on: core/logging.py
Imported by: lazyc2.py, lazyown.py, modules/c2_builder.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_metrics.py
MetricsRegistry.__init__(method)modules/metrics.py:63def __init__(self)-- Create an empty registry with its own lock.MetricsRegistry.inc(method)modules/metrics.py:69def inc(self, name, labels, value)-- Increment the named counter for the given labels.MetricsRegistry.get(method)modules/metrics.py:87def get(self, name, labels)-- Return the current value of a counter.MetricsRegistry.prometheus_text(method)modules/metrics.py:107def prometheus_text(self)-- Render every counter in Prometheus text exposition format.MetricRecord.to_dict(method)modules/metrics.py:167def to_dict(self)-- Return the record as a JSON-serialisable dictionary.MetricsWriter.__init__(method)modules/metrics.py:189def __init__(self, path)-- Initialise the writer.MetricsWriter.path(method)modules/metrics.py:201def path(self)-- Return the JSONL destination path.MetricsWriter.append(method)modules/metrics.py:206def append(self, record)-- Append a single record to disk.MetricsAggregator.summarize(method)modules/metrics.py:254def summarize(cls, records, window_seconds, now_utc)-- Compute aggregate statistics over the supplied records.MetricsRecorder.__init__(method)modules/metrics.py:339def __init__(self, writer)-- Initialise the recorder.MetricsRecorder.path(method)modules/metrics.py:350def path(self)-- Return the JSONL path used by the underlying writer.MetricsRecorder.record(method)modules/metrics.py:355def record(self, command, args, duration_ms, success, exit_code, source)-- Persist a single command-execution telemetry record.MetricsRecorder.summarize(method)modules/metrics.py:416def summarize(self, window_seconds)-- Return aggregate statistics over recorded events.MetricsRecorder.tail(method)modules/metrics.py:430def tail(self, n)-- Return the most recent n records, newest first.get_recorder(function)modules/metrics.py:452def get_recorder()-- Return the process-wide :class:MetricsRecordersingleton.reset_recorder_for_tests(function)modules/metrics.py:466def reset_recorder_for_tests(writer)-- Replace the module-level recorder with a fresh instance.
modules/mfa_bypass.py
Imported by: cli/commands/cicd.py
MFABypassEngine.__init__(method)modules/mfa_bypass.py:128def __init__(self, sessions_dir)MFABypassEngine.enumerate_techniques(method)modules/mfa_bypass.py:133def enumerate_techniques(self, target)-- Enumerate viable MFA bypass techniques for a given target.MFABypassEngine.generate_phishing_templates(method)modules/mfa_bypass.py:153def generate_phishing_templates(self, target)-- Generate phishing templates tailored for MFA bypass.MFABypassEngine.mfa_conditional_access_scan(method)modules/mfa_bypass.py:223def mfa_conditional_access_scan(self, domain)-- Scan for conditional access policy gaps.MFABypassEngine.replay_oauth_token(method)modules/mfa_bypass.py:252def replay_oauth_token(self, access_token, refresh_token)-- Test if an OAuth2 token is still valid and can be replayed.MFABypassEngine.saml_golden_ticket_check(method)modules/mfa_bypass.py:278def saml_golden_ticket_check(self, adfs_server)-- Check for ADFS token signing certificate exposure.MFABypassEngine.export_report(method)modules/mfa_bypass.py:303def export_report(self)-- Export MFA bypass results to a JSON report.
modules/module_registry.py
Depends on: core/logging.py
Imported by: cli/commands/marketplace.py, cli/commands/misc_migrated.py, cli/commands/module_manager.py, cli/commands/session_ops.py, skills/lazyown_mcp.py, tests/test_module_registry.py
ModuleInfo.__init__(method)modules/module_registry.py:172def __init__(self, name, module_type, author, version, description, category, path, source, params, enabled...ModuleInfo.to_dict(method)modules/module_registry.py:202def to_dict(self)ModuleRegistry.__init__(method)modules/module_registry.py:235def __init__(self, base_dir)ModuleRegistry.get_instance(method)modules/module_registry.py:241def get_instance(cls, base_dir)-- Return the singleton registry instance.ModuleRegistry.scan(method)modules/module_registry.py:247def scan(self)-- Scan all module directories and return the full list.ModuleRegistry.rescan(method)modules/module_registry.py:260def rescan(self)-- Force a full rescan and return modules.ModuleRegistry.get(method)modules/module_registry.py:269def get(self, name)-- Get a module by name.ModuleRegistry.search(method)modules/module_registry.py:275def search(self, query, module_type, category, enabled_only, include_deprecated)-- Search indexed modules.ModuleRegistry.deprecated_modules(method)modules/module_registry.py:315def deprecated_modules(self)-- Return all deprecated modules.ModuleRegistry.by_type(method)modules/module_registry.py:321def by_type(self, module_type)-- Shorthand forsearch(module_type=module_type).ModuleRegistry.summary(method)modules/module_registry.py:325def summary(self)-- Return counts by module type.format_module_table(function)modules/module_registry.py:542def format_module_table(modules, cols)-- Format a list of modules as an aligned text table.format_module_detail(function)modules/module_registry.py:589def format_module_detail(m)-- Format a single module's full metadata.
modules/moe_router.py
Depends on: core/logging.py, modules/toposwarm_bridge.py
Imported by: modules/lesson_ingestor.py, modules/loop_ai_bridge.py, skills/swan_agent.py, tests/integration_autonomous_flow.py, tests/test_moe_rl_swan.py, tests/test_moe_router_check_regression.py
ExpertProfile.is_local(method)modules/moe_router.py:96def is_local(self)ExpertPerformance.update(method)modules/moe_router.py:115def update(self, reward, detection_prob)IExpertSelector.select(method)modules/moe_router.py:261def select(self, candidates, task_type, performance_store, deterministic)-- Return the selected expert from candidates.ExpertPerformanceStore.__init__(method)modules/moe_router.py:283def __init__(self, path)ExpertPerformanceStore.record(method)modules/moe_router.py:298def record(self, expert_id, task_type, reward, detection_prob)-- Update performance for (expert, task_type) and persist.ExpertPerformanceStore.get(method)modules/moe_router.py:316def get(self, expert_id, task_type)ExpertPerformanceStore.all_for_task(method)modules/moe_router.py:321def all_for_task(self, task_type)ExpertPerformanceStore.performance_bonus(method)modules/moe_router.py:325def performance_bonus(self, expert_id, task_type)-- Return a bonus scalar in [-0.3, +0.5] based on EMA reward history.SoftmaxSelector.__init__(method)modules/moe_router.py:377def __init__(self, temperature)SoftmaxSelector.temperature(method)modules/moe_router.py:381def temperature(self)SoftmaxSelector.temperature(method)modules/moe_router.py:385def temperature(self, value)SoftmaxSelector.select(method)modules/moe_router.py:388def select(self, candidates, task_type, performance_store, deterministic)ExpertAvailabilityChecker.__init__(method)modules/moe_router.py:443def __init__(self)ExpertAvailabilityChecker.is_available(method)modules/moe_router.py:447def is_available(self, expert, api_key)MoERouter.__init__(method)modules/moe_router.py:500def __init__(self, experts, selector, performance_store, api_key)MoERouter.route(method)modules/moe_router.py:515def route(self, task_type, goal, deterministic)-- Return the single best expert for the given task_type.MoERouter.ensemble(method)modules/moe_router.py:547def ensemble(self, task_type, goal, n)-- Return up to n distinct experts for ensemble execution.adjusted_weight(function)modules/moe_router.py:562def adjusted_weight(ep)MoERouter.record_outcome(method)modules/moe_router.py:575def record_outcome(self, expert_id, task_type, reward, detection_prob)-- Record the outcome of an expert execution.MoERouter.top_experts_for_task(method)modules/moe_router.py:589def top_experts_for_task(self, task_type, top_k)-- Return (expert, adjusted_weight) sorted descending for diagnostics.MoERouter.get_expert(method)modules/moe_router.py:605def get_expert(self, expert_id)-- Return expert by ID, or None.MoERouter.status_report(method)modules/moe_router.py:609def status_report(self)-- Return a diagnostic snapshot of all experts and their weights.get_router(function)modules/moe_router.py:684def get_router(api_key)-- Return (or create) the module-level singleton MoERouter.
modules/morse.py
reverse_morse_code(function)modules/morse.py:98def reverse_morse_code()-- Build the reverse lookup table from Morse code to characters.text_to_morse(function)modules/morse.py:109def text_to_morse(text, config)-- Convert plain text to Morse code.morse_to_text(function)modules/morse.py:130def morse_to_text(morse_code, config)-- Convert Morse code back to plain text.clear_screen(function)modules/morse.py:157def clear_screen(config)-- Reset the terminal screen using a bounded subprocess call.read_choice(function)modules/morse.py:171def read_choice(config)-- Read and validate the menu choice from standard input.run_driver(function)modules/morse.py:186def run_driver(config)-- Run the interactive Morse code conversion loop.
modules/mysql_hookandroot_lib.c
reverse_shell(function)modules/mysql_hookandroot_lib.c:74void reverse_shell(void)-- fork & send a bash shell to the attacker before starting mysqldexecvp(function)modules/mysql_hookandroot_lib.c:128int execvp(const char* filename, char* const argv[])-- execvp() hook
modules/network_opsec.py
Imported by: cli/commands/opsec_cleanup.py
NetworkOpsecEngine.__init__(method)modules/network_opsec.py:83def __init__(self, config)NetworkOpsecEngine.configure_proxy_chain(method)modules/network_opsec.py:87def configure_proxy_chain(self, chain_type)-- Configure a proxy chain for C2 communication.NetworkOpsecEngine.check_canary_tokens(method)modules/network_opsec.py:131def check_canary_tokens(self)-- Check if the target has canary token / deception technology.NetworkOpsecEngine.analyze_traffic_with_canary_check(method)modules/network_opsec.py:179def analyze_traffic_with_canary_check(self, target_host, target_port)-- Analyze whether target traffic is being intercepted or analyzed.NetworkOpsecEngine.dns_over_https_config(method)modules/network_opsec.py:246def dns_over_https_config(self)-- Generate DNS-over-HTTPS configuration for proxy and system.NetworkOpsecEngine.source_port_randomize(method)modules/network_opsec.py:269def source_port_randomize(self)-- Randomize source port for outbound connections.NetworkOpsecEngine.connection_jitter_schedule(method)modules/network_opsec.py:294def connection_jitter_schedule(self, beacon_interval)-- Generate a jitter schedule for beacon connections.NetworkOpsecEngine.canary_detection_setup(method)modules/network_opsec.py:317def canary_detection_setup(self)-- Set up canary detection for the engagement.NetworkOpsecEngine.summary(method)modules/network_opsec.py:349def summary(self)
modules/nmap2csv.py
dottedquad_to_num(function)modules/nmap2csv.py:126def dottedquad_to_num(ip)-- Convert decimal dotted quad string IP to long integernum_to_dottedquad(function)modules/nmap2csv.py:133def num_to_dottedquad(n)-- Convert long int IP to dotted quad stringunique_match_from_list(function)modules/nmap2csv.py:140def unique_match_from_list(list)-- Check the list for a potential pattern matchextract_matching_pattern(function)modules/nmap2csv.py:156def extract_matching_pattern(regex, group_name, unfiltered_list)-- Return the desired group_name from a list of matching patternsHost.__init__(method)modules/nmap2csv.py:177def __init__(self, ip, fqdn)Host.add_port(method)modules/nmap2csv.py:188def add_port(self, port)Host.get_ip_num_format(method)modules/nmap2csv.py:192def get_ip_num_format(self)Host.get_ip_dotted_format(method)modules/nmap2csv.py:195def get_ip_dotted_format(self)Host.get_fqdn(method)modules/nmap2csv.py:198def get_fqdn(self)Host.get_rdns_record(method)modules/nmap2csv.py:201def get_rdns_record(self)Host.get_port_list(method)modules/nmap2csv.py:204def get_port_list(self)Host.get_port_number_list(method)modules/nmap2csv.py:207def get_port_number_list(self)Host.get_port_protocol_list(method)modules/nmap2csv.py:216def get_port_protocol_list(self)Host.get_port_service_list(method)modules/nmap2csv.py:225def get_port_service_list(self)Host.get_port_version_list(method)modules/nmap2csv.py:234def get_port_version_list(self)Host.get_port_script_list(method)modules/nmap2csv.py:243def get_port_script_list(self)Host.get_os(method)modules/nmap2csv.py:252def get_os(self)Host.get_mac_address(method)modules/nmap2csv.py:255def get_mac_address(self)Host.get_mac_address_vendor(method)modules/nmap2csv.py:258def get_mac_address_vendor(self)Host.get_network_distance(method)modules/nmap2csv.py:261def get_network_distance(self)Host.set_fqdn(method)modules/nmap2csv.py:265def set_fqdn(self, fqdn)Host.set_rdns_record(method)modules/nmap2csv.py:268def set_rdns_record(self, rdns_record)Host.set_os(method)modules/nmap2csv.py:271def set_os(self, os)Host.set_mac(method)modules/nmap2csv.py:274def set_mac(self, mac_address, mac_address_vendor)Host.set_network_distance(method)modules/nmap2csv.py:278def set_network_distance(self, network_distance)Port.__init__(method)modules/nmap2csv.py:283def __init__(self, number, protocol, service, version, script)Port.get_number(method)modules/nmap2csv.py:290def get_number(self)Port.get_protocol(method)modules/nmap2csv.py:293def get_protocol(self)Port.get_service(method)modules/nmap2csv.py:296def get_service(self)Port.get_version(method)modules/nmap2csv.py:299def get_version(self)Port.get_script(method)modules/nmap2csv.py:302def get_script(self)Port.set_service(method)modules/nmap2csv.py:305def set_service(self, service)Port.set_version(method)modules/nmap2csv.py:308def set_version(self, version)Port.set_script(method)modules/nmap2csv.py:311def set_script(self, script)split_grepable_match(function)modules/nmap2csv.py:315def split_grepable_match(raw_string)-- Split the raw line to a neat Host objectparse(function)modules/nmap2csv.py:362def parse(fd)-- Parse the data according to several regexesparse_xml(function)modules/nmap2csv.py:492def parse_xml(xml_file)-- Parse the XML fileis_format_valid(function)modules/nmap2csv.py:572def is_format_valid(fmt)-- Check for the supplied custom output formatformatted_item(function)modules/nmap2csv.py:606def formatted_item(host, format_item)-- return the attribute value related to the hostrepeat_attributes(function)modules/nmap2csv.py:639def repeat_attributes(attribute_list)-- repeat attribute lists to the maximum for thegenerate_csv(function)modules/nmap2csv.py:653def generate_csv(fd, results, options)-- Generate a plain ';' separated csv file with the desired or default attribute formatmain(function)modules/nmap2csv.py:688def main()
modules/notify.py
Imported by: modules/custom_tools.py, modules/lazy_loop.py, skills/autonomous_daemon.py, static/js/chart.min.js, tests/test_autonomous_ops.py, tests/test_lazy_loop.py, tests/test_security_codeql_batch.py
severity_rank(function)modules/notify.py:31def severity_rank(severity, config)-- Return the comparable order for a severity label.mask_secrets(function)modules/notify.py:39def mask_secrets(text, config)-- Replace known secret prefixes with a redaction marker.url_allowed(function)modules/notify.py:57def url_allowed(url)-- SSRF dial-guard for webhook delivery (LAZY parity).post_url_validated(function)modules/notify.py:145def post_url_validated(url, data, timeout)-- POST data to a webhook URL after SSRF validation, guarding redirects._GuardRedirect.redirect_request(method)modules/notify.py:159def redirect_request(self, req, fp, code, msg, headers, newurl)Notifier.__init__(method)modules/notify.py:207def __init__(self, config)-- Initialize with shared notification constants.Notifier.should_send(method)modules/notify.py:215def should_send(self, message, channel)-- Apply event, severity, keyword and scope gates (LAZY parity).Notifier.render(method)modules/notify.py:238def render(self, message)-- Render masked Markdown text for a message.Notifier.dispatch(method)modules/notify.py:244def dispatch(self, message, channels)-- Fan out to eligible channels and journal deliveries.Notifier.flush_digest(method)modules/notify.py:260def flush_digest(self, max_age_sec)-- Emit one digest per channel when due (default 30m, LAZY parity).
modules/nuclei_templates_sync.py
repo_root(function)modules/nuclei_templates_sync.py:39def repo_root()-- Return the LazyOwn repository root derived from this file location.canonical_dest(function)modules/nuclei_templates_sync.py:48def canonical_dest(subdir)-- Return the canonical marketplace destination for a source.run(function)modules/nuclei_templates_sync.py:60def run(argv, cwd)-- Run a subprocess capturing output as text without raising.ensure_git_available(function)modules/nuclei_templates_sync.py:73def ensure_git_available()-- Abort with a clear message when the git binary is missing.clone_templates(function)modules/nuclei_templates_sync.py:84def clone_templates(repo, staging)-- Shallow-clone the template repository into the staging directory.strip_git_traces(function)modules/nuclei_templates_sync.py:113def strip_git_traces(tree)-- Remove every .git file or directory under the staged tree.count_templates(function)modules/nuclei_templates_sync.py:132def count_templates(tree)-- Count Nuclei template files under a directory tree.replace_dest(function)modules/nuclei_templates_sync.py:144def replace_dest(src, dest, expected)-- Atomically replace the destination with the staged tree contents.same_remote(function)modules/nuclei_templates_sync.py:168def same_remote(path, repo)-- Check whether an existing clone points at the expected remote.normalize(function)modules/nuclei_templates_sync.py:179def normalize(url)refresh_existing_clone(function)modules/nuclei_templates_sync.py:188def refresh_existing_clone(path, repo)-- Fast-forward an existing clean clone of the same remote.validate_subset(function)modules/nuclei_templates_sync.py:209def validate_subset(dest, subset)-- Validate a template subset with the nuclei binary when available.build_parser(function)modules/nuclei_templates_sync.py:238def build_parser()-- Build the command line parser for the sync script.sync(function)modules/nuclei_templates_sync.py:263def sync(name, repo, dest, refresh_existing, skip_validate)-- Clone, clean, and install one template source.resolve_plan(function)modules/nuclei_templates_sync.py:308def resolve_plan(args)-- Resolve the requested sources into (name, repo, dest) work items.main(function)modules/nuclei_templates_sync.py:337def main(argv)-- Entry point for the template sync script.
modules/obs_parser.py
Depends on: cli/commands/enum.py, core/logging.py
Imported by: modules/atomic_exploit_bridge.py, modules/intelligence_engine.py, modules/operation.py, modules/planner.py, modules/playbook_engine.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/integration_autonomous_flow.py, tests/test_core_modules.py, tests/test_daemon_loop.py, tests/test_phase1_data_gaps.py
Observation.by_type(method)modules/obs_parser.py:83def by_type(self, ftype)Observation.has(method)modules/obs_parser.py:86def has(self, ftype)Extractor.extract(method)modules/obs_parser.py:99def extract(self, text, host)-- Return all findings of this type found in text._ExtractorRegistry.__init__(method)modules/obs_parser.py:106def __init__(self)_ExtractorRegistry.register(method)modules/obs_parser.py:109def register(self, extractor)_ExtractorRegistry.run_all(method)modules/obs_parser.py:112def run_all(self, text, host)_IPExtractor.extract(method)modules/obs_parser.py:134def extract(self, text, host)_CredentialExtractor.extract(method)modules/obs_parser.py:175def extract(self, text, host)_ServiceVersionExtractor.extract(method)modules/obs_parser.py:198def extract(self, text, host)_PathExtractor.extract(method)modules/obs_parser.py:224def extract(self, text, host)_UsernameExtractor.extract(method)modules/obs_parser.py:245def extract(self, text, host)_HashExtractor.extract(method)modules/obs_parser.py:271def extract(self, text, host)_CVEExtractor.extract(method)modules/obs_parser.py:288def extract(self, text, host)_DomainExtractor.extract(method)modules/obs_parser.py:305def extract(self, text, host)_EmailExtractor.extract(method)modules/obs_parser.py:323def extract(self, text, host)_ErrorExtractor.extract(method)modules/obs_parser.py:345def extract(self, text, host)_CloudIdentityExtractor.extract(method)modules/obs_parser.py:367def extract(self, text, host)_SuccessDetector.is_success(method)modules/obs_parser.py:407def is_success(self, text)ObsParser.__init__(method)modules/obs_parser.py:431def __init__(self)ObsParser.register(method)modules/obs_parser.py:450def register(self, extractor)-- Register an additional Extractor (Open/Closed extension point).ObsParser.parse(method)modules/obs_parser.py:454def parse(self, output, host, tool)-- Parse output and return an Observation.get_parser(function)modules/obs_parser.py:500def get_parser()-- Return (or create) the module-level singleton ObsParser.parse(function)modules/obs_parser.py:508def parse(output, host, tool)-- Module-level convenience wrapper.
modules/operation.py
Depends on: cli/commands/enum.py, core/logging.py, modules/apt_playbooks.py, modules/obs_parser.py, modules/playbook_engine.py, modules/world_model.py
Imported by: cli/commands/caldera.py
Operation.to_dict(method)modules/operation.py:98def to_dict(self)Operation.from_dict(method)modules/operation.py:116def from_dict(cls, d)Operation.save(method)modules/operation.py:134def save(self)Operation.log_event(method)modules/operation.py:143def log_event(self, step_index, step_name, status, summary, findings_count, error)Operation.record_facts(method)modules/operation.py:164def record_facts(self, findings)OperationManager.__init__(method)modules/operation.py:183def __init__(self)OperationManager.list(method)modules/operation.py:187def list(self)-- List all persisted operations.OperationManager.get(method)modules/operation.py:199def get(self, op_id)OperationManager.create(method)modules/operation.py:206def create(self, name, target, apt_name, description)-- Create a new planned operation.OperationManager.plan_from_apt(method)modules/operation.py:225def plan_from_apt(self, op, playbook_yaml_path)-- Populate steps from an APT playbook YAML (or fall back to a derived MITRE playbook).OperationManager.start(method)modules/operation.py:287def start(self, op_id, executor)-- Start or resume a planned operation.OperationManager.pause(method)modules/operation.py:369def pause(self, op_id)OperationManager.resume(method)modules/operation.py:378def resume(self, op_id, executor)OperationManager.stop(method)modules/operation.py:386def stop(self, op_id)OperationManager.status(method)modules/operation.py:396def status(self, op_id)-- Return a structured status dict for an operation.OperationManager.timeline(method)modules/operation.py:425def timeline(self, op_id)OperationManager.report(method)modules/operation.py:431def report(self, op_id)get_manager(function)modules/operation.py:471def get_manager()-- Return a fresh :class:OperationManager.
modules/operator_profiles.py
Depends on: core/config.py, core/logging.py
Imported by: cli/commands/automation.py
OperatorProfile.to_dict(method)modules/operator_profiles.py:57def to_dict(self)OperatorProfileManager.__init__(method)modules/operator_profiles.py:88def __init__(self)OperatorProfileManager.create_profile(method)modules/operator_profiles.py:192def create_profile(self, username, display_name, role, lhost, lport, listener_port, c2_port, c2_malleable_route...-- Create a new operator profile.OperatorProfileManager.load_profile(method)modules/operator_profiles.py:260def load_profile(self, username)-- Load an operator profile.OperatorProfileManager.update_profile(method)modules/operator_profiles.py:276def update_profile(self, username)-- Update fields on an existing profile.OperatorProfileManager.delete_profile(method)modules/operator_profiles.py:289def delete_profile(self, username)-- Delete an operator profile and its directory.OperatorProfileManager.list_profiles(method)modules/operator_profiles.py:300def list_profiles(self)-- Return all operator profiles.OperatorProfileManager.touch_activity(method)modules/operator_profiles.py:312def touch_activity(self, username)-- Update last_active timestamp.OperatorProfileManager.set_attribute(method)modules/operator_profiles.py:319def set_attribute(self, username, key, value)-- Set a custom attribute on an operator profile.OperatorProfileManager.get_attribute(method)modules/operator_profiles.py:328def get_attribute(self, username, key, default)-- Get a custom attribute from an operator profile.OperatorProfileManager.log_action(method)modules/operator_profiles.py:335def log_action(self, username, action, details)-- Append an audited action to the operator's audit log.OperatorProfileManager.effective_config(method)modules/operator_profiles.py:360def effective_config(self, username)-- Merge team baseline (payload.json) with per-operator overrides.get_operator_profile_manager(function)modules/operator_profiles.py:398def get_operator_profile_manager()-- Return the singleton :class:OperatorProfileManager.
modules/opsec_scorer.py
Depends on: cli/commands/enum.py, core/config.py, core/logging.py, modules/db.py, modules/killchain.py
Imported by: cli/commands/opsec_cleanup.py, cli/commands/security.py, tests/test_opsec_scorer.py, tests/test_opsec_scorer_consolidated.py
OpsecScore.to_dict(method)modules/opsec_scorer.py:288def to_dict(self)-- Return the score serialized as a plain dictionary.OpsecScorer.__init__(method)modules/opsec_scorer.py:343def __init__(self, payload, world_model)OpsecScorer.evasion_active(method)modules/opsec_scorer.py:352def evasion_active(self)OpsecScorer.traffic_morphing_active(method)modules/opsec_scorer.py:357def traffic_morphing_active(self)OpsecScorer.score(method)modules/opsec_scorer.py:365def score(self, command, rhost, phase_override)-- Score an OPSEC risk forcommandagainstrhost.OpsecScorer.score_batch(method)modules/opsec_scorer.py:413def score_batch(self, commands, rhost)-- Score multiple commands and return {command: OpsecScore}.OpsecScorer.suggest_mitigations(method)modules/opsec_scorer.py:417def suggest_mitigations(self, command, detectable_by)-- Return mitigation suggestions for a given command.OpsecScorerV2.__init__(method)modules/opsec_scorer.py:617def __init__(self, context)OpsecScorerV2.assess(method)modules/opsec_scorer.py:622def assess(self, command, extra_context)-- Assess OPSEC risk for a command in the current context.OpsecScorerV2.should_allow(method)modules/opsec_scorer.py:696def should_allow(self, command)-- Quick gating check - returns (allowed, score).OpsecScorerV2.get_trend(method)modules/opsec_scorer.py:709def get_trend(self)-- Analyze OPSEC risk trend over the session.score_command(function)modules/opsec_scorer.py:811def score_command(command, payload, rhost)-- Convenience function: score a single command without creating a scorer instance.
modules/orchestrator_config.py
Depends on: core/config.py, modules/auto_registry.py
Imported by: cli/commands/lazyops.py, cli/lazy_orchestrator.py, modules/auto_registry.py, modules/lazy_loop.py, modules/loop_ai_bridge.py, tests/test_lazy_orchestrator.py
stages(function)modules/orchestrator_config.py:105def stages()-- Merged stage view: enabled flag, label and firing condition.stage_enabled(function)modules/orchestrator_config.py:130def stage_enabled(name)-- Return whether one pipeline stage is enabled (unknown = enabled).set_stage(function)modules/orchestrator_config.py:136def set_stage(name, enabled)-- Persist the enabled flag of one stage.effective_verbs(function)modules/orchestrator_config.py:161def effective_verbs()-- Merged auto-verb view: built-ins plus operator overrides and additions.verb_config(function)modules/orchestrator_config.py:218def verb_config(name)-- Return the merged configuration of one auto verb, or None.verb_enabled(function)modules/orchestrator_config.py:227def verb_enabled(name)-- Return whether one auto verb may be proposed or executed.upsert_verb(function)modules/orchestrator_config.py:233def upsert_verb(name)-- Create or update one auto-verb override in the payload.remove_verb(function)modules/orchestrator_config.py:290def remove_verb(name)-- Remove a custom verb, or disable a built-in one.reset(function)modules/orchestrator_config.py:315def reset()-- Drop every orchestrator override (back to defaults).
modules/osint_enrich.py
Imported by: modules/finding_lifecycle.py, tests/test_finding_lifecycle.py
cve_lookup(function)modules/osint_enrich.py:122def cve_lookup(cve_id, sessions_dir)-- Assemble OSV advisory + KEV flag + EPSS score for one CVE id.reverse_dns(function)modules/osint_enrich.py:161def reverse_dns(ip, sessions_dir)-- Best-effort PTR hostname for an IP (HackerTarget, then DoH).host_geo(function)modules/osint_enrich.py:183def host_geo(ip, sessions_dir)-- Country/org/ISP for an IP via the keyless ip-api endpoint.domain_exposure(function)modules/osint_enrich.py:198def domain_exposure(domain, sessions_dir)-- Count public urlscan.io results for a domain (no key needed).enrich_evidence(function)modules/osint_enrich.py:213def enrich_evidence(items, sessions_dir)-- Append keyless OSINT verdicts to CVE mentions inside evidence items.
modules/payload_factory.py
Imported by: cli/commands/misc_migrated.py, cli/commands/payload_generation.py, cli/commands/session_ops.py, lazyown.py, scripts/devtools/core_smoke.py, tests/test_payload_factory.py
PayloadTemplate.__init__(method)modules/payload_factory.py:222def __init__(self, name, platform, arch, description, options)PayloadTemplate.generate(method)modules/payload_factory.py:237def generate(self)-- Generate the raw payload bytes.PayloadTemplate.to_dict(method)modules/payload_factory.py:241def to_dict(self)ReverseShellPayload.__init__(method)modules/payload_factory.py:254def __init__(self)ReverseShellPayload.generate(method)modules/payload_factory.py:272def generate(self)WindowsReverseShellPayload.__init__(method)modules/payload_factory.py:293def __init__(self)WindowsReverseShellPayload.generate(method)modules/payload_factory.py:305def generate(self)MsfvenomPayload.__init__(method)modules/payload_factory.py:325def __init__(self, name, platform, arch)MsfvenomPayload.generate(method)modules/payload_factory.py:337def generate(self)ShellcodePayload.__init__(method)modules/payload_factory.py:374def __init__(self, name, platform, arch, description, escaped_hex, patcher)ShellcodePayload.generate(method)modules/payload_factory.py:397def generate(self)-- Return the shellcode, optionally patching LHOST / LPORT.DynamicShellcodePayload.__init__(method)modules/payload_factory.py:416def __init__(self, name, platform, arch, description, builder)DynamicShellcodePayload.generate(method)modules/payload_factory.py:436def generate(self)PayloadFactory.__init__(method)modules/payload_factory.py:464def __init__(self)PayloadFactory.register(method)modules/payload_factory.py:512def register(self, template)-- Register a custom payload template.PayloadFactory.list(method)modules/payload_factory.py:516def list(self, platform)-- List all registered payloads, optionally filtered by platform.PayloadFactory.get(method)modules/payload_factory.py:525def get(self, name)-- Get a payload template by name.PayloadFactory.generate(method)modules/payload_factory.py:529def generate(self, name, format, output)-- Generate a payload by name.PayloadFactory.list_formats(method)modules/payload_factory.py:664def list_formats()-- List all available output formats.format_payload_table(function)modules/payload_factory.py:672def format_payload_table(payloads)-- Format a list of payload dicts as an aligned table.
modules/phishing_orchestrator.py
Depends on: core/crypto.py, core/hardening.py
Imported by: cli/commands/phishing_wizard.py, tests/test_security_hardening_v3.py, tests/test_security_hardening_v5.py
PhishingOrchestrator.__init__(method)modules/phishing_orchestrator.py:316def __init__(self)PhishingOrchestrator.get_instance(method)modules/phishing_orchestrator.py:321def get_instance(cls)PhishingOrchestrator.launch(method)modules/phishing_orchestrator.py:332def launch(self, target_domain, template, mode, targets_file, sender_email, sender_password, smtp_host, smtp_port)-- Launch a phishing campaign.PhishingOrchestrator.profile_targets(method)modules/phishing_orchestrator.py:441def profile_targets(self, domain)-- Profile targets for a domain using OSINT techniques.PhishingOrchestrator.generate_template(method)modules/phishing_orchestrator.py:486def generate_template(self, name, target_domain, context)-- Generate or retrieve a phishing template.PhishingOrchestrator.clone_landing_page(method)modules/phishing_orchestrator.py:533def clone_landing_page(self, url)-- Clone a target login page for credential harvesting.PhishingOrchestrator.get_results(method)modules/phishing_orchestrator.py:560def get_results(self, campaign_id)-- Get campaign results.PhishingOrchestrator.record_click(method)modules/phishing_orchestrator.py:584def record_click(self, campaign_id, email)-- Record a link click.PhishingOrchestrator.record_credentials(method)modules/phishing_orchestrator.py:605def record_credentials(self, campaign_id, email, password)-- Record harvested credentials.
modules/pipeline_engine.py
Depends on: core/logging.py, modules/engagement_hooks.py, skills/autonomous_daemon.py
Imported by: cli/commands/session_ops.py, modules/playbook_executor.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_pipeline_engine.py
StepResult.to_context(method)modules/pipeline_engine.py:180def to_context(self)-- Render the step result as a dict for template lookups.PipelineRun.to_dict(method)modules/pipeline_engine.py:213def to_dict(self)-- Return a JSON-friendly representation of the full run.TemplateResolver.__init__(method)modules/pipeline_engine.py:275def __init__(self, context)TemplateResolver.render(method)modules/pipeline_engine.py:278def render(self, template)TemplateResolver.resolve(method)modules/pipeline_engine.py:289def resolve(self, dotted_path)-- Return the value at dotted_path or None when not found.ConditionEvaluator.is_truthy(method)modules/pipeline_engine.py:330def is_truthy(rendered)StepValidator.validate(method)modules/pipeline_engine.py:352def validate(predicate, output)StepDerivers.register(method)modules/pipeline_engine.py:389def register(cls, command, deriver)-- Bind a deriver to a top-level command name (case-insensitive).StepDerivers.derive(method)modules/pipeline_engine.py:396def derive(cls, command, output)-- Run the registered deriver for command on output, defensive.IStepRunner.run(method)modules/pipeline_engine.py:513def run(self, command, args, target, timeout_s)-- Execute one command.LazyOwnStepRunner.__init__(method)modules/pipeline_engine.py:537def __init__(self, runner, onecmd)LazyOwnStepRunner.run(method)modules/pipeline_engine.py:548def run(self, command, args, target, timeout_s)PipelineLoader.__init__(method)modules/pipeline_engine.py:638def __init__(self, pipelines_dir)PipelineLoader.pipelines_dir(method)modules/pipeline_engine.py:642def pipelines_dir(self)PipelineLoader.list(method)modules/pipeline_engine.py:645def list(self)-- Return every pipeline name discoverable in pipelines_dir.PipelineLoader.resolve_path(method)modules/pipeline_engine.py:658def resolve_path(self, name)-- Return the absolute path to the YAML file for the given name.PipelineLoader.load(method)modules/pipeline_engine.py:683def load(self, name)-- Parse the YAML file for name and return a validated spec.RunArtifactStore.__init__(method)modules/pipeline_engine.py:778def __init__(self, runs_dir)RunArtifactStore.runs_dir(method)modules/pipeline_engine.py:782def runs_dir(self)RunArtifactStore.open_run(method)modules/pipeline_engine.py:785def open_run(self, pipeline_name, run_id)-- Create and return the directory for this run.RunArtifactStore.write_plan(method)modules/pipeline_engine.py:797def write_plan(self, run_dir, spec)RunArtifactStore.write_step(method)modules/pipeline_engine.py:814def write_step(self, run_dir, result)RunArtifactStore.write_summary(method)modules/pipeline_engine.py:828def write_summary(self, run_dir, run)INarratorAdapter.narrate(method)modules/pipeline_engine.py:852def narrate(self, kind, target, message, payload, severity)-- Emit one narration event._SilentNarrator.narrate(method)modules/pipeline_engine.py:864def narrate(self)EngagementNarratorAdapter.__init__(method)modules/pipeline_engine.py:871def __init__(self, narrator)EngagementNarratorAdapter.narrate(method)modules/pipeline_engine.py:881def narrate(self, kind, target, message, payload, severity)PipelineEngine.__init__(method)modules/pipeline_engine.py:927def __init__(self, runner, loader, artifact_store, narrator, max_nesting)PipelineEngine.loader(method)modules/pipeline_engine.py:942def loader(self)PipelineEngine.validate(method)modules/pipeline_engine.py:945def validate(self, name)-- Load and validate without executing.PipelineEngine.run(method)modules/pipeline_engine.py:949def run(self, name, target, nesting_stack)-- Execute the pipeline.get_default_engine(function)modules/pipeline_engine.py:1300def get_default_engine(onecmd)-- Process-wide default engine for production callers.mcp_pipeline_run(function)modules/pipeline_engine.py:1314def mcp_pipeline_run(name, target, background, onecmd)-- Public MCP / CLI entry: run a pipeline.mcp_pipeline_list(function)modules/pipeline_engine.py:1368def mcp_pipeline_list()-- Return the list of available pipelines under pipelines/.mcp_pipeline_validate(function)modules/pipeline_engine.py:1385def mcp_pipeline_validate(name)-- Validate a pipeline's YAML schema without executing it.mcp_pipeline_status(function)modules/pipeline_engine.py:1414def mcp_pipeline_status(last_n)-- Return the N most recent pipeline runs and their summaries.cmd_pipeline(function)modules/pipeline_engine.py:1436def cmd_pipeline(action, name, target, background)-- CLI helper bound to thepipelinedaemon subcommand.
modules/planner.py
Depends on: core/logging.py, modules/llm_client.py, modules/obs_parser.py, modules/playbook_engine.py, modules/world_model.py
Imported by: cli/commands/caldera.py, cli/commands/session_ops.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_autonomous_ops.py, tests/test_daemon_loop.py, tests/test_engage_gates.py, tests/test_lazy_parity.py
Planner.__init__(method)modules/planner.py:269def __init__(self, world_model, obs_parser, api_key)Planner.plan(method)modules/planner.py:313def plan(self, target, max_candidates)-- Return a ranked list of next-step candidates for target.Planner.to_dict(method)modules/planner.py:413def to_dict(self, result)get_planner(function)modules/planner.py:446def get_planner(api_key)-- Return a fact-based planner with an optional LLM tie-break key.TodoList.__init__(method)modules/planner.py:468def __init__(self)-- Initialize an empty todo sequence.TodoList.todo_add(method)modules/planner.py:472def todo_add(self, name, requires)-- Append a step and return it.TodoList.todo_done(method)modules/planner.py:478def todo_done(self, name)-- Mark a step done when its requirements hold.TodoList.next_ready(method)modules/planner.py:489def next_ready(self)-- Return the first pending step whose requirements hold.TodoList.blocks(method)modules/planner.py:497def blocks(self, tactic)-- Return True when a tactic must wait for an unfinished chain.Frontier.__init__(method)modules/planner.py:514def __init__(self, planner, todos)-- Bind the frontier to a planner and an optional todo list.Frontier.todos(method)modules/planner.py:523def todos(self)-- Expose the shared todo list.Frontier.tried(method)modules/planner.py:528def tried(self)-- Return the tried technique identifiers.Frontier.refill(method)modules/planner.py:532def refill(self, target, max_intents)-- Plan fresh intents, keeping only untried and unblocked ones.Frontier.pop(method)modules/planner.py:551def pop(self)-- Claim the oldest queued intent and mark its technique tried.
modules/playbook_engine.py
Depends on: core/logging.py, core/safe_exec.py, modules/llm_client.py, modules/obs_parser.py, modules/world_model.py
Imported by: cli/commands/caldera.py, cli/commands/mcp_bridge.py, modules/operation.py, modules/planner.py, skills/lazyown_mcp.py, tests/test_core_modules.py
PlaybookStep.to_dict(method)modules/playbook_engine.py:113def to_dict(self)PlaybookStep.from_dict(method)modules/playbook_engine.py:128def from_dict(cls, d)Playbook.to_dict(method)modules/playbook_engine.py:141def to_dict(self)Playbook.from_dict(method)modules/playbook_engine.py:152def from_dict(cls, d)_StixLoader.__init__(method)modules/playbook_engine.py:188def __init__(self, json_path)_StixLoader.available(method)modules/playbook_engine.py:192def available(self)_StixLoader.store(method)modules/playbook_engine.py:195def store(self)_StixLoader.techniques_for_tactics(method)modules/playbook_engine.py:210def techniques_for_tactics(self, tactic_shortnames, platform)-- Return ATT&CK techniques matching the given tactic shortnames._AtomicIndex.__init__(method)modules/playbook_engine.py:260def __init__(self, atomics_path)_AtomicIndex.available(method)modules/playbook_engine.py:264def available(self)_AtomicIndex.build(method)modules/playbook_engine.py:267def build(self)_AtomicIndex.tests_for_technique(method)modules/playbook_engine.py:300def tests_for_technique(self, technique_id, platform)_TechniqueSelector.select(method)modules/playbook_engine.py:317def select(self, candidates, world_context, target, phase, api_key, top_n)PlaybookEngine.__init__(method)modules/playbook_engine.py:387def __init__(self, world_model, obs_parser, api_key, top_n)PlaybookEngine.derive(method)modules/playbook_engine.py:427def derive(self, target, phase, platform, apt_name)-- Generate a Playbook for target at the given phase.PlaybookEngine.execute(method)modules/playbook_engine.py:529def execute(self, playbook, executor, dry_run)-- Execute a Playbook step by step.PlaybookEngine.save(method)modules/playbook_engine.py:590def save(self, playbook, path)-- Persist playbook to YAML (compatible with existing playbooks/ format).PlaybookEngine.load(method)modules/playbook_engine.py:602def load(self, path)-- Load a playbook from YAML.PlaybookEngine.result_summary(method)modules/playbook_engine.py:631def result_summary(self, result)-- Return a human-readable / LLM-readable summary of a PlaybookResult.get_engine(function)modules/playbook_engine.py:660def get_engine(api_key)-- Return (or create) the module-level singleton PlaybookEngine.
modules/playbook_executor.py
Depends on: modules/pipeline_engine.py
PlaybookRunResult.to_dict(method)modules/playbook_executor.py:74def to_dict(self)ITTPMapper.resolve(method)modules/playbook_executor.py:97def resolve(self, technique_id, atomic_test, platform)-- Return a LazyOwn shell command string or None if unmapped.DefaultTTPMapper.register(method)modules/playbook_executor.py:180def register(cls, technique_id, platform, command)-- Add a new technique-to-command mapping.DefaultTTPMapper.resolve(method)modules/playbook_executor.py:185def resolve(self, technique_id, atomic_test, platform)PlaybookLoader.__init__(method)modules/playbook_executor.py:208def __init__(self, playbooks_dir)PlaybookLoader.list(method)modules/playbook_executor.py:211def list(self)-- Return every discoverable playbook name.PlaybookLoader.load(method)modules/playbook_executor.py:224def load(self, name)-- Load and validate a playbook by name.PlaybookEngine.__init__(method)modules/playbook_executor.py:339def __init__(self, loader, mapper, pipelines_dir)PlaybookEngine.loader(method)modules/playbook_executor.py:350def loader(self)PlaybookEngine.analyze(method)modules/playbook_executor.py:353def analyze(self, name, platform)-- Analyze a playbook: count techniques, automated vs manual, coverage.PlaybookEngine.generate_pipeline(method)modules/playbook_executor.py:378def generate_pipeline(self, name, platform)-- Generate a pipeline YAML file from a playbook.PlaybookEngine.run(method)modules/playbook_executor.py:390def run(self, name, platform, target, onecmd)-- Generate and execute a pipeline from a playbook.playbook_list(function)modules/playbook_executor.py:416def playbook_list()-- Return a JSON array of available playbooks.playbook_analyze(function)modules/playbook_executor.py:422def playbook_analyze(name, platform)-- Return a JSON summary of one playbook.playbook_generate(function)modules/playbook_executor.py:429def playbook_generate(name, platform)-- Generate a runnable pipeline from a playbook.playbook_run(function)modules/playbook_executor.py:436def playbook_run(name, platform, target, onecmd)-- Analyze, generate, and execute a playbook.
modules/polymorphic_engine.py
Imported by: cli/commands/payload_arsenal.py
PolymorphicEngine.__init__(method)modules/polymorphic_engine.py:159def __init__(self, config)PolymorphicEngine.mutate(method)modules/polymorphic_engine.py:163def mutate(self, shellcode, arch)-- Apply all configured mutation passes to shellcode.PolymorphicEngine.decode_xor(method)modules/polymorphic_engine.py:361def decode_xor(data)-- Decode single-byte XOR encrypted shellcode.PolymorphicEngine.decode_multi_xor(method)modules/polymorphic_engine.py:377def decode_multi_xor(data)-- Decode multi-byte XOR encrypted shellcode.PolymorphicEngine.generate_decoder_stub(method)modules/polymorphic_engine.py:397def generate_decoder_stub(self, arch)-- Generate a self-decrypting stub shellcode template.PolymorphicEngine.get_audit_summary(method)modules/polymorphic_engine.py:422def get_audit_summary(self)-- Return a summary of all mutations applied.
modules/privesc_predictor.py
Depends on: core/console.py, modules/llm_factory.py
Imported by: cli/commands/crystal_ball.py
parse_linpeas_output(function)modules/privesc_predictor.py:165def parse_linpeas_output(text)-- Extract a structured SystemProfile from linpeas output text.parse_winpeas_output(function)modules/privesc_predictor.py:218def parse_winpeas_output(text)-- Extract a structured SystemProfile from winpeas output text.match_known_cves(function)modules/privesc_predictor.py:249def match_known_cves(profile)-- Match kernel version against the built-in CVE database.suid_vectors(function)modules/privesc_predictor.py:287def suid_vectors(profile)-- Generate privilege escalation vectors from SUID binaries.capability_vectors(function)modules/privesc_predictor.py:361def capability_vectors(profile)-- Generate privilege escalation vectors from Linux capabilities.group_vectors(function)modules/privesc_predictor.py:463def group_vectors(profile)-- Generate privilege escalation vectors from group memberships.sudo_vectors(function)modules/privesc_predictor.py:501def sudo_vectors(profile)-- Generate privilege escalation vectors from sudo rules.cron_vectors(function)modules/privesc_predictor.py:578def cron_vectors(profile)-- Generate vectors from writable cron jobs and PATH manipulation.analyze_privesc(function)modules/privesc_predictor.py:742def analyze_privesc(filepath, text)-- Main entry point — analyse a system for privilege escalation vectors.format_crystal_ball_output(function)modules/privesc_predictor.py:827def format_crystal_ball_output(result)-- Format the analysis result as a human-readable terminal report.main(function)modules/privesc_predictor.py:908def main()-- CLI entry point for crystal ball privesc analysis.
modules/professional_report.py
Depends on: modules/llm_factory.py
Imported by: tests/test_bdd_infra_range_report.py, tests/test_infra_disposable.py
RedTeamReportGenerator.__init__(method)modules/professional_report.py:173def __init__(self, include_credentials)RedTeamReportGenerator.collect_data(method)modules/professional_report.py:179def collect_data(self)-- Collect all available engagement data from sessions directory.RedTeamReportGenerator.classify_findings(method)modules/professional_report.py:217def classify_findings(self, data)-- Classify collected data into structured findings.RedTeamReportGenerator.generate(method)modules/professional_report.py:244def generate(self, output_dir, output_format, client_name, engagement_type, with_ai, ai_backend)-- Generate the report in the specified format.RedTeamReportGenerator.collect_command_history(method)modules/professional_report.py:841def collect_command_history(self, max_entries)-- Collect operator command history for the engagement timeline.RedTeamReportGenerator.collect_loot_summary(method)modules/professional_report.py:865def collect_loot_summary(self)-- Summarize exfiltrated loot without embedding sensitive content.RedTeamReportGenerator.generate_executive_summary(method)modules/professional_report.py:911def generate_executive_summary(self, data, with_ai, ai_backend)-- Build the executive summary in business language.
modules/r.sh
Imported by: static/js/quill-2.0.3.js::c, static/js/quill-2.0.3.js::h, static/js/quill-2.0.3.js::i, static/js/quill-2.0.3.js::o, static/js/quill-2.0.3.js::s, static/js/quill-2.0.3.js::u, static/js/xterm.js::a, static/js/xterm.js::n, static/js/xterm.js::o
download_kernel_sources(function)modules/r.sh:10-- Función para descargar y extraer las fuentes del kernel
modules/reactive_engine.py
Depends on: core/config.py, core/logging.py, modules/session_rag.py
Imported by: skills/autonomous_daemon.py, skills/lazyown_groq_agents.py, skills/lazyown_mcp.py, skills/toposwarm_autonomous.py, tests/test_core_modules.py, tests/test_reactive_engine_semantic.py, tests/test_reactive_lateral_data.py
AbstractSignalMatcher.match(method)modules/reactive_engine.py:99def match(self, output, context)AVBlockedMatcher.match(method)modules/reactive_engine.py:128def match(self, output, context)CredentialFoundMatcher.match(method)modules/reactive_engine.py:159def match(self, output, context)PrivescHintMatcher.match(method)modules/reactive_engine.py:192def match(self, output, context)NewHostMatcher.match(method)modules/reactive_engine.py:214def match(self, output, context)ServiceVersionMatcher.match(method)modules/reactive_engine.py:247def match(self, output, context)ShellErrorMatcher.match(method)modules/reactive_engine.py:276def match(self, output, context)LateralOpportunityMatcher.match(method)modules/reactive_engine.py:307def match(self, output, context)DataOfInterestMatcher.match(method)modules/reactive_engine.py:349def match(self, output, context)ParquetAdvisor.__init__(method)modules/reactive_engine.py:395def __init__(self, root)ParquetAdvisor.gtfobins_for(method)modules/reactive_engine.py:421def gtfobins_for(self, binary)ParquetAdvisor.lolbas_for(method)modules/reactive_engine.py:434def lolbas_for(self, binary)-- Returns [(function_name, att&ck_technique), ...].ParquetAdvisor.technique_commands_for(method)modules/reactive_engine.py:448def technique_commands_for(self, platform, keyword)-- Return atomic test commands for platform matching keyword.EvasionAdvisor.suggest(method)modules/reactive_engine.py:504def suggest(self, signals, platform)PrivescAdvisor.suggest(method)modules/reactive_engine.py:565def suggest(self, signals, platform, parquet)SemanticContextAdvisor.__init__(method)modules/reactive_engine.py:644def __init__(self, rag, config_loader, min_score, query_limit)-- Initialise the advisor.SemanticContextAdvisor.suggest(method)modules/reactive_engine.py:734def suggest(self, output, command, platform, context)-- Return semantic next-step hints derived from past sessions.ReactiveEngine.__init__(method)modules/reactive_engine.py:810def __init__(self, matchers, evasion, privesc, parquet, semantic)ReactiveEngine.analyse(method)modules/reactive_engine.py:835def analyse(self, output, command, platform, context)-- Parse output and return prioritised ReactiveDecisions.ReactiveEngine.top_decision(method)modules/reactive_engine.py:958def top_decision(self, output, command, platform, context)-- Return only the single highest-priority decision, or None.get_engine(function)modules/reactive_engine.py:977def get_engine()
modules/recommender.py
Depends on: modules/ai_fallback.py, modules/session_state.py
Imported by: skills/lazyown_mcp.py
recommend(function)modules/recommender.py:143def recommend(state, api_key)-- Return ranked recommendations without writing to disk.recommend_and_save(function)modules/recommender.py:163def recommend_and_save(api_key)-- Build state → call Groq → write JSON → return recommendations.
modules/redteam_gym.py
Depends on: cli/engagement_hooks.py, modules/cli_auth.py
Imported by: cli/commands/redteam_gym.py, modules/exploitgym_gym.py, tests/test_infra_disposable.py
list_challenges(function)modules/redteam_gym.py:357def list_challenges()-- Return all defined gym challenges with metadata.start_challenge(function)modules/redteam_gym.py:378def start_challenge(challenge_id)-- Begin a gym challenge and track start time.submit_challenge(function)modules/redteam_gym.py:448def submit_challenge(techniques_used, success)-- Submit a completed challenge for scoring.show_leaderboard(function)modules/redteam_gym.py:679def show_leaderboard(top_n)-- Return the top N players from the leaderboard.get_active_challenge(function)modules/redteam_gym.py:706def get_active_challenge()-- Return the currently active challenge for this operator, if any.record_external_attempt(function)modules/redteam_gym.py:736def record_external_attempt(challenge_id, success, elo_bonus, techniques)-- Record a scored attempt for a challenge not defined in the catalog.main(function)modules/redteam_gym.py:790def main()-- CLI entry point — show gym leaderboard from command line.
Next: API_p16.md