lilrae 8.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lilrae-8.0.0/.bestpractices.json +93 -0
- lilrae-8.0.0/.claude/hooks/protect_files.sh +39 -0
- lilrae-8.0.0/.claude/settings.json +25 -0
- lilrae-8.0.0/.claude/skills/gh-workflow-monitor/SKILL.md +19 -0
- lilrae-8.0.0/.claude/skills/ship/SKILL.md +87 -0
- lilrae-8.0.0/.claude/skills/stage/SKILL.md +36 -0
- lilrae-8.0.0/.claude/skills/wave-issue-coverage/SKILL.md +119 -0
- lilrae-8.0.0/.cursor/environment.json +4 -0
- lilrae-8.0.0/.cursor/rules/no-jumping-ahead.mdc +50 -0
- lilrae-8.0.0/.dockerignore +26 -0
- lilrae-8.0.0/.env.example +84 -0
- lilrae-8.0.0/.gc/plan-rules.md +44 -0
- lilrae-8.0.0/.gitattributes +60 -0
- lilrae-8.0.0/.gitguardian.yaml +48 -0
- lilrae-8.0.0/.github/branch-protection-baseline.json +44 -0
- lilrae-8.0.0/.github/copilot-instructions.md +6 -0
- lilrae-8.0.0/.github/dependabot.yml +119 -0
- lilrae-8.0.0/.github/workflows/checks.yml +889 -0
- lilrae-8.0.0/.github/workflows/docs-deploy.yml +57 -0
- lilrae-8.0.0/.github/workflows/ground-control-phase-e.yml +67 -0
- lilrae-8.0.0/.github/workflows/pr-title-lint.yml +68 -0
- lilrae-8.0.0/.github/workflows/release-please.yml +143 -0
- lilrae-8.0.0/.github/workflows/scorecard.yml +72 -0
- lilrae-8.0.0/.gitignore +460 -0
- lilrae-8.0.0/.ground-control.yaml +128 -0
- lilrae-8.0.0/.mcp.json.example +53 -0
- lilrae-8.0.0/.pre-commit-ci.yaml +113 -0
- lilrae-8.0.0/.pre-commit-config.yaml +47 -0
- lilrae-8.0.0/.readthedocs.yaml +24 -0
- lilrae-8.0.0/.release-please-manifest.json +3 -0
- lilrae-8.0.0/.serena/.gitignore +1 -0
- lilrae-8.0.0/.serena/project.yml +147 -0
- lilrae-8.0.0/.trivyignore.yaml +114 -0
- lilrae-8.0.0/.vale/styles/AptlProject/EmDashDensity.yml +6 -0
- lilrae-8.0.0/.vale/styles/AptlProject/WorkflowPlatformName.yml +24 -0
- lilrae-8.0.0/.vale.ini +24 -0
- lilrae-8.0.0/AGENTS.md +138 -0
- lilrae-8.0.0/CHANGELOG.md +1728 -0
- lilrae-8.0.0/CLAUDE.md +7 -0
- lilrae-8.0.0/CODE_OF_CONDUCT.md +37 -0
- lilrae-8.0.0/CONTRIBUTING.md +157 -0
- lilrae-8.0.0/LICENSE +21 -0
- lilrae-8.0.0/Makefile +27 -0
- lilrae-8.0.0/PKG-INFO +252 -0
- lilrae-8.0.0/README.md +194 -0
- lilrae-8.0.0/SECURITY.md +51 -0
- lilrae-8.0.0/SUPPORT.md +46 -0
- lilrae-8.0.0/appliance/guest/aptl-appliance-first-boot +50 -0
- lilrae-8.0.0/appliance/guest/aptl-appliance-first-boot.service +23 -0
- lilrae-8.0.0/appliance/guest/aptl-launch.mount +12 -0
- lilrae-8.0.0/appliance/guest/claude/package-lock.json +142 -0
- lilrae-8.0.0/appliance/guest/claude/package.json +8 -0
- lilrae-8.0.0/appliance/guest/desktop-compose.yml +57 -0
- lilrae-8.0.0/appliance/guest/desktop-handoff.py +334 -0
- lilrae-8.0.0/appliance/guest/desktop-mcp-smoke.py +43 -0
- lilrae-8.0.0/appliance/guest/desktop-nginx.conf +16 -0
- lilrae-8.0.0/appliance/guest/desktop-session.sh +20 -0
- lilrae-8.0.0/appliance/guest/provision-offline.sh +230 -0
- lilrae-8.0.0/appliance/guest/scan-golden.sh +155 -0
- lilrae-8.0.0/appliance/guest/seat-desktop.py +136 -0
- lilrae-8.0.0/appliance/guest/seat-privilege-qualification.py +93 -0
- lilrae-8.0.0/appliance/guest/seat-privileges.py +198 -0
- lilrae-8.0.0/appliance/guest/seat-qualification-smoke.service +14 -0
- lilrae-8.0.0/appliance/guest/seat-qualification-smoke.sh +111 -0
- lilrae-8.0.0/appliance/guest/system-packages.sha256 +387 -0
- lilrae-8.0.0/aptl.json +40 -0
- lilrae-8.0.0/assets/docs/ai_red_team_test.pdf +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_1.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_10.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_11.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_12.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_13.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_14.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_15.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_16.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_17.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_18.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_19.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_2.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_20.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_21.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_22.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_3.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_4.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_5.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_6.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_7.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_8.png +0 -0
- lilrae-8.0.0/assets/images/li_test/cline_red_team_test_9.png +0 -0
- lilrae-8.0.0/assets/images/qradar_landing_empty.png +0 -0
- lilrae-8.0.0/assets/images/qradar_offences.png +0 -0
- lilrae-8.0.0/bin/install-raes-inventory-skill.sh +271 -0
- lilrae-8.0.0/changelog.d/+ghcr-candidate-package-visibility.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/+git-env-isolation.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/+install-scenario-packs-doc.added.md +1 -0
- lilrae-8.0.0/changelog.d/+participant-mcp-browser-readiness.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/+proxy-addr-cve-2026-90711.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/+techvault-env-packs-621-compat.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/+techvault-live-boot-honesty.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/1021.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/1034.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/567.added.md +8 -0
- lilrae-8.0.0/changelog.d/577.added.md +1 -0
- lilrae-8.0.0/changelog.d/580.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/607.changed.md +3 -0
- lilrae-8.0.0/changelog.d/689.added.md +1 -0
- lilrae-8.0.0/changelog.d/690.removed.md +16 -0
- lilrae-8.0.0/changelog.d/691.changed.md +1 -0
- lilrae-8.0.0/changelog.d/692.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/716.added.md +6 -0
- lilrae-8.0.0/changelog.d/759.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/790.changed.md +8 -0
- lilrae-8.0.0/changelog.d/824.added.md +1 -0
- lilrae-8.0.0/changelog.d/824.fixed.md +1 -0
- lilrae-8.0.0/changelog.d/876.added.md +11 -0
- lilrae-8.0.0/config/certs.yml +16 -0
- lilrae-8.0.0/config/cortex/analyzers/APTLObservable/APTL_Observable.json +26 -0
- lilrae-8.0.0/config/cortex/analyzers/APTLObservable/aptl_observable.py +61 -0
- lilrae-8.0.0/config/cortex/application.conf +50 -0
- lilrae-8.0.0/config/cortex/index-mapping.json +140 -0
- lilrae-8.0.0/config/cortex/thehive-cortex.env +7 -0
- lilrae-8.0.0/config/otel/grafana-datasources.yaml +9 -0
- lilrae-8.0.0/config/otel/otel-collector-config.yaml +30 -0
- lilrae-8.0.0/config/otel/tempo-config.yaml +23 -0
- lilrae-8.0.0/config/suricata/rules/local.rules +46 -0
- lilrae-8.0.0/config/suricata/rules/misp/misp-iocs.rules +6 -0
- lilrae-8.0.0/config/suricata/rules/misp/misp-md5.list +2 -0
- lilrae-8.0.0/config/suricata/rules/misp/misp-sha1.list +2 -0
- lilrae-8.0.0/config/suricata/rules/misp/misp-sha256.list +2 -0
- lilrae-8.0.0/config/suricata/suricata.yaml +121 -0
- lilrae-8.0.0/config/thehive/application.conf +20 -0
- lilrae-8.0.0/config/wazuh-certs-tool.sh +925 -0
- lilrae-8.0.0/config/wazuh_cluster/etc/lists/active-response-whitelist +34 -0
- lilrae-8.0.0/config/wazuh_cluster/filebeat_wazuh_module.yml +35 -0
- lilrae-8.0.0/config/wazuh_cluster/patch-rule-path.py +40 -0
- lilrae-8.0.0/config/wazuh_cluster/wazuh_manager.conf +443 -0
- lilrae-8.0.0/config/wazuh_dashboard/opensearch_dashboards.yml +12 -0
- lilrae-8.0.0/config/wazuh_dashboard/wazuh.yml +7 -0
- lilrae-8.0.0/config/wazuh_indexer/wazuh.indexer.yml +30 -0
- lilrae-8.0.0/containers/_host-identity/aptl-host-identity +17 -0
- lilrae-8.0.0/containers/_host-identity/aptl-host-identity.service +13 -0
- lilrae-8.0.0/containers/_host-identity/install.sh +18 -0
- lilrae-8.0.0/containers/_wazuh-agent/aptl-firewall-drop.sh +179 -0
- lilrae-8.0.0/containers/_wazuh-agent/install-active-response.sh +34 -0
- lilrae-8.0.0/containers/_wazuh-agent/install-rhel.sh +21 -0
- lilrae-8.0.0/containers/_wazuh-agent/install.sh +50 -0
- lilrae-8.0.0/containers/_wazuh-agent/ossec.conf.template +27 -0
- lilrae-8.0.0/containers/_wazuh-agent/wazuh-agent.sh +169 -0
- lilrae-8.0.0/containers/_wazuh-agent/wazuh.repo +7 -0
- lilrae-8.0.0/containers/appliance-egress-proxy/Dockerfile +13 -0
- lilrae-8.0.0/containers/appliance-egress-proxy/proxy.py +322 -0
- lilrae-8.0.0/containers/base/Dockerfile.rocky +86 -0
- lilrae-8.0.0/containers/base/Dockerfile.ubuntu +86 -0
- lilrae-8.0.0/containers/base/falco_custom.yaml +25 -0
- lilrae-8.0.0/containers/base/scripts/entrypoint-base.sh +172 -0
- lilrae-8.0.0/containers/base/scripts/ossec.conf.template +85 -0
- lilrae-8.0.0/containers/base/sshd/00-aptl-hardening.conf +13 -0
- lilrae-8.0.0/containers/generic-samba-ad-base/Dockerfile +30 -0
- lilrae-8.0.0/containers/generic-samba-ad-base/provider-start.sh +9 -0
- lilrae-8.0.0/containers/generic-samba-ad-base/provision-domain.sh +40 -0
- lilrae-8.0.0/containers/generic-samba-ad-wazuh-agent-base/Dockerfile +12 -0
- lilrae-8.0.0/containers/generic-systemd-base/Dockerfile +46 -0
- lilrae-8.0.0/containers/generic-systemd-base-debian/Dockerfile +36 -0
- lilrae-8.0.0/containers/generic-systemd-node22-base/Dockerfile +73 -0
- lilrae-8.0.0/containers/generic-systemd-wazuh-agent-base/Dockerfile +15 -0
- lilrae-8.0.0/containers/generic-systemd-wazuh-agent-base-debian/Dockerfile +8 -0
- lilrae-8.0.0/containers/generic-wazuh-agent-base-debian/Dockerfile +12 -0
- lilrae-8.0.0/containers/kali/audit/aptl.rules +43 -0
- lilrae-8.0.0/containers/kali-capture/Dockerfile +24 -0
- lilrae-8.0.0/containers/kali-capture/broker.py +595 -0
- lilrae-8.0.0/containers/kali-capture/entrypoint.sh +57 -0
- lilrae-8.0.0/containers/kali-capture/sshd_config +20 -0
- lilrae-8.0.0/containers/keys/aptl_lab_key.pub +1 -0
- lilrae-8.0.0/containers/keys/authorized_keys +1 -0
- lilrae-8.0.0/containers/mailserver/setup.sh +21 -0
- lilrae-8.0.0/containers/misp-suricata-sync/Dockerfile +47 -0
- lilrae-8.0.0/containers/network-boundary-helper/Dockerfile +13 -0
- lilrae-8.0.0/containers/network-boundary-helper/helper.py +1080 -0
- lilrae-8.0.0/containers/network-boundary-helper/probe.py +71 -0
- lilrae-8.0.0/containers/operator-access-proxy/Dockerfile +13 -0
- lilrae-8.0.0/containers/operator-access-proxy/proxy.py +76 -0
- lilrae-8.0.0/containers/reverse/Dockerfile +110 -0
- lilrae-8.0.0/containers/reverse/README.md +152 -0
- lilrae-8.0.0/containers/reverse/entrypoint.sh +15 -0
- lilrae-8.0.0/containers/reverse/install-all.sh +39 -0
- lilrae-8.0.0/containers/reverse/install-falco.sh +42 -0
- lilrae-8.0.0/containers/reverse/install-wazuh.sh +77 -0
- lilrae-8.0.0/containers/reverse/rebuild_container.sh +4 -0
- lilrae-8.0.0/containers/reverse/reverse-tools-install.service +15 -0
- lilrae-8.0.0/containers/reverse/setup-reverse-tools.sh +95 -0
- lilrae-8.0.0/containers/suricata-wazuh-agent/Dockerfile +23 -0
- lilrae-8.0.0/containers/windows-victim/README.md +160 -0
- lilrae-8.0.0/containers/windows-victim/enable-rdp.ps1 +16 -0
- lilrae-8.0.0/containers/windows-victim/join-domain.ps1 +27 -0
- lilrae-8.0.0/containers/windows-victim/setup-ghidra.ps1 +93 -0
- lilrae-8.0.0/containers/windows-victim/setup-python-re.ps1 +59 -0
- lilrae-8.0.0/containers/windows-victim/setup-re-tools.ps1 +85 -0
- lilrae-8.0.0/containers/windows-victim/setup-ssh.ps1 +26 -0
- lilrae-8.0.0/containers/windows-victim/setup-sysinternals.ps1 +64 -0
- lilrae-8.0.0/containers/windows-victim/setup-sysmon.ps1 +39 -0
- lilrae-8.0.0/containers/windows-victim/setup-vs-buildtools.ps1 +58 -0
- lilrae-8.0.0/containers/windows-victim/setup-wazuh-agent.ps1 +29 -0
- lilrae-8.0.0/containers/windows-victim/setup-wdk.ps1 +68 -0
- lilrae-8.0.0/containers/windows-victim/setup-x64dbg.ps1 +81 -0
- lilrae-8.0.0/docker-compose.capture.yml +46 -0
- lilrae-8.0.0/docker-compose.observability.yml +95 -0
- lilrae-8.0.0/docker-compose.yml +1102 -0
- lilrae-8.0.0/docs/CODING_STANDARDS.md +29 -0
- lilrae-8.0.0/docs/adrs/README.md +86 -0
- lilrae-8.0.0/docs/adrs/adr-000-use-adrs.md +84 -0
- lilrae-8.0.0/docs/adrs/adr-001-docker-compose-deployment.md +84 -0
- lilrae-8.0.0/docs/adrs/adr-002-wazuh-siem.md +88 -0
- lilrae-8.0.0/docs/adrs/adr-003-mcp-common-library.md +90 -0
- lilrae-8.0.0/docs/adrs/adr-004-persistent-ssh-sessions.md +188 -0
- lilrae-8.0.0/docs/adrs/adr-005-docker-compose-profiles.md +100 -0
- lilrae-8.0.0/docs/adrs/adr-006-four-network-segmentation.md +96 -0
- lilrae-8.0.0/docs/adrs/adr-007-python-cli-control-plane.md +163 -0
- lilrae-8.0.0/docs/adrs/adr-008-soc-stack-integration.md +121 -0
- lilrae-8.0.0/docs/adrs/adr-009-scenario-engine.md +146 -0
- lilrae-8.0.0/docs/adrs/adr-010-sonarcloud-quality.md +206 -0
- lilrae-8.0.0/docs/adrs/adr-011-web-ui.md +123 -0
- lilrae-8.0.0/docs/adrs/adr-012-opentelemetry-integration.md +225 -0
- lilrae-8.0.0/docs/adrs/adr-013-deployment-abstraction.md +114 -0
- lilrae-8.0.0/docs/adrs/adr-014-scenario-description-language.md +137 -0
- lilrae-8.0.0/docs/adrs/adr-015-declarative-sdl-objectives.md +76 -0
- lilrae-8.0.0/docs/adrs/adr-016-workflows-targetable-subobjects-and-enum-variables.md +89 -0
- lilrae-8.0.0/docs/adrs/adr-017-sdl-runtime-layer.md +182 -0
- lilrae-8.0.0/docs/adrs/adr-018-control-flow-primitives.md +66 -0
- lilrae-8.0.0/docs/adrs/adr-019-suricata-ids-only-prevention-via-wazuh-ar.md +104 -0
- lilrae-8.0.0/docs/adrs/adr-020-wazuh-agents-in-process-vs-sidecar.md +83 -0
- lilrae-8.0.0/docs/adrs/adr-021-active-response-whitelist-via-wrapper.md +73 -0
- lilrae-8.0.0/docs/adrs/adr-022-misp-driven-suricata-rules.md +305 -0
- lilrae-8.0.0/docs/adrs/adr-023-container-interaction-in-deployment-backend.md +203 -0
- lilrae-8.0.0/docs/adrs/adr-024-orchestrator-side-purple-continuity-carve-out.md +108 -0
- lilrae-8.0.0/docs/adrs/adr-025-strict-first-party-config-schema.md +80 -0
- lilrae-8.0.0/docs/adrs/adr-026-advisory-ci-vulnerability-scanning.md +234 -0
- lilrae-8.0.0/docs/adrs/adr-027-red-team-structured-logging.md +168 -0
- lilrae-8.0.0/docs/adrs/adr-028-runtime-rendered-service-config.md +188 -0
- lilrae-8.0.0/docs/adrs/adr-029-control-plane-secret-handling.md +178 -0
- lilrae-8.0.0/docs/adrs/adr-030-startup-partial-readiness-classification.md +249 -0
- lilrae-8.0.0/docs/adrs/adr-031-lab-orchestration-contract-guards.md +142 -0
- lilrae-8.0.0/docs/adrs/adr-032-conversation-surface-hardening.md +39 -0
- lilrae-8.0.0/docs/adrs/adr-033-agent-reasoning-trace-boundary.md +392 -0
- lilrae-8.0.0/docs/adrs/adr-034-lab-managed-soc-tls-ca.md +245 -0
- lilrae-8.0.0/docs/adrs/adr-035-raes-sdl-adoption.md +426 -0
- lilrae-8.0.0/docs/adrs/adr-036-snapshot-endpoint-registry.md +134 -0
- lilrae-8.0.0/docs/adrs/adr-037-docker-compose-backend-cohesion.md +138 -0
- lilrae-8.0.0/docs/adrs/adr-038-docs-style-lint-and-published-site.md +117 -0
- lilrae-8.0.0/docs/adrs/adr-039-web-control-plane-authentication.md +166 -0
- lilrae-8.0.0/docs/adrs/adr-040-terminal-ssh-host-key-verification-boundary.md +167 -0
- lilrae-8.0.0/docs/adrs/adr-041-kali-capture-sidecar-ownership-boundary.md +324 -0
- lilrae-8.0.0/docs/adrs/adr-042-sidecar-owned-pty-master.md +265 -0
- lilrae-8.0.0/docs/adrs/adr-043-suricata-runtime-config-ownership-boundary.md +246 -0
- lilrae-8.0.0/docs/adrs/adr-044-raes-aligned-run-reproducibility-record.md +205 -0
- lilrae-8.0.0/docs/adrs/adr-045-ephemeral-lifecycle-policy-enforcement.md +105 -0
- lilrae-8.0.0/docs/adrs/adr-046-dynamic-raes-scenario-realization.md +1404 -0
- lilrae-8.0.0/docs/adrs/adr-047-raes-experiment-admission-and-trial-plan-boundary.md +528 -0
- lilrae-8.0.0/docs/adrs/adr-048-image-free-placement-realization.md +226 -0
- lilrae-8.0.0/docs/adrs/adr-049-sealed-disposable-lab-appliance.md +613 -0
- lilrae-8.0.0/docs/adrs/adr-050-terminal-attempt-archival-and-atomic-seal.md +213 -0
- lilrae-8.0.0/docs/adrs/adr-051-component-level-raes-realization.md +330 -0
- lilrae-8.0.0/docs/adrs/adr-052-configured-participant-credential-sourcing.md +406 -0
- lilrae-8.0.0/docs/adrs/adr-053-pack-backend-deployment-serving-interaction-seam.md +397 -0
- lilrae-8.0.0/docs/adrs/adr-054-lilrae-core-and-experience-ownership.md +104 -0
- lilrae-8.0.0/docs/adrs/adr-055-local-runtime-authority-and-ownership.md +100 -0
- lilrae-8.0.0/docs/adrs/adr-056-scenario-led-capability-qualification.md +78 -0
- lilrae-8.0.0/docs/adrs/adr-057-agent-execution-compartments.md +83 -0
- lilrae-8.0.0/docs/adrs/adr-058-adoption-and-security-release-gates.md +76 -0
- lilrae-8.0.0/docs/adrs/adr-059-canonical-techvault-delivery-and-host-mcp-access.md +291 -0
- lilrae-8.0.0/docs/adrs/adr-060-vm-only-seat-containment.md +99 -0
- lilrae-8.0.0/docs/adrs/adr-061-gateless-vm-seat-access.md +46 -0
- lilrae-8.0.0/docs/adrs/adr-062-lilrae-name-and-naming-convention.md +127 -0
- lilrae-8.0.0/docs/architecture/dep-003-ephemeral-lifecycle-preflight.md +198 -0
- lilrae-8.0.0/docs/architecture/dep-008-self-contained-lab-assets-preflight.md +172 -0
- lilrae-8.0.0/docs/architecture/enterprise-infrastructure.md +808 -0
- lilrae-8.0.0/docs/architecture/exp-005-safe-parameter-binding-provenance-preflight.md +405 -0
- lilrae-8.0.0/docs/architecture/exp-008-portable-evidence-bundle-preflight.md +390 -0
- lilrae-8.0.0/docs/architecture/exp-009-aces-archival-sealing-preflight.md +407 -0
- lilrae-8.0.0/docs/architecture/exp-010-capture-admission-evidence-preflight.md +314 -0
- lilrae-8.0.0/docs/architecture/grc-boundary-surface-vocabulary-preflight.md +154 -0
- lilrae-8.0.0/docs/architecture/index.md +218 -0
- lilrae-8.0.0/docs/architecture/issue-1000-manual-release-qa-preflight.md +258 -0
- lilrae-8.0.0/docs/architecture/issue-1002-wazuh-api-tls-warmup-preflight.md +207 -0
- lilrae-8.0.0/docs/architecture/issue-1006-container-base-images-preflight.md +126 -0
- lilrae-8.0.0/docs/architecture/issue-1022-appliance-seat-delivery-preflight.md +420 -0
- lilrae-8.0.0/docs/architecture/issue-1022-historical-branch-audit.md +146 -0
- lilrae-8.0.0/docs/architecture/issue-1162-nested-virt-seat-preflight.md +209 -0
- lilrae-8.0.0/docs/architecture/issue-1179-pending-lab-cleanup-preflight.md +149 -0
- lilrae-8.0.0/docs/architecture/issue-1183-techvault-postgresql-startup-preflight.md +155 -0
- lilrae-8.0.0/docs/architecture/issue-1186-seat-privilege-preflight.md +187 -0
- lilrae-8.0.0/docs/architecture/issue-1188-wazuh-api-cold-boot-preflight.md +207 -0
- lilrae-8.0.0/docs/architecture/issue-1191-wazuh-api-cold-boot-rca-preflight.md +172 -0
- lilrae-8.0.0/docs/architecture/issue-1193-base-container-terminology-preflight.md +97 -0
- lilrae-8.0.0/docs/architecture/issue-1194-shipped-seat-network-preflight.md +174 -0
- lilrae-8.0.0/docs/architecture/issue-1201-transcript-redaction-preflight.md +76 -0
- lilrae-8.0.0/docs/architecture/issue-1232-lilrae-naming-preflight.md +104 -0
- lilrae-8.0.0/docs/architecture/issue-1234-pypi-transition-preflight.md +127 -0
- lilrae-8.0.0/docs/architecture/issue-1367-distribution-cutover-preflight.md +81 -0
- lilrae-8.0.0/docs/architecture/issue-550-soc-selected-profile-preflight.md +170 -0
- lilrae-8.0.0/docs/architecture/issue-557-participant-implementation-binding-preflight.md +392 -0
- lilrae-8.0.0/docs/architecture/issue-589-scenario-pack-capture-ownership-preflight.md +131 -0
- lilrae-8.0.0/docs/architecture/issue-591-scenario-pack-capture-asset-ownership-preflight.md +149 -0
- lilrae-8.0.0/docs/architecture/issue-592-scenario-pack-terminology-preflight.md +135 -0
- lilrae-8.0.0/docs/architecture/issue-601-participant-demonstration-preflight.md +134 -0
- lilrae-8.0.0/docs/architecture/issue-677-cert-producer-ownership-preflight.md +209 -0
- lilrae-8.0.0/docs/architecture/issue-790-ssh-module-split-preflight.md +109 -0
- lilrae-8.0.0/docs/architecture/issue-820-resource-bounded-participant-profile-preflight.md +150 -0
- lilrae-8.0.0/docs/architecture/issue-821-participant-workbench-preflight.md +236 -0
- lilrae-8.0.0/docs/architecture/issue-823-versioned-disposable-appliance-preflight.md +237 -0
- lilrae-8.0.0/docs/architecture/issue-824-kiosk-launcher-reset-recovery-preflight.md +155 -0
- lilrae-8.0.0/docs/architecture/issue-825-hosted-backup-seat-preflight.md +218 -0
- lilrae-8.0.0/docs/architecture/issue-845-raes-hard-rename-preflight.md +185 -0
- lilrae-8.0.0/docs/architecture/issue-847-openssf-scorecard-preflight.md +146 -0
- lilrae-8.0.0/docs/architecture/issue-851-first-time-user-docs-preflight.md +213 -0
- lilrae-8.0.0/docs/architecture/issue-852-devmain-promotion-preflight.md +144 -0
- lilrae-8.0.0/docs/architecture/issue-858-bounded-participant-choice-transport-preflight.md +153 -0
- lilrae-8.0.0/docs/architecture/issue-859-idempotent-stuttering-preflight.md +141 -0
- lilrae-8.0.0/docs/architecture/issue-862-explicit-participant-model-selection-preflight.md +274 -0
- lilrae-8.0.0/docs/architecture/issue-866-techvault-realization-contract-preflight.md +336 -0
- lilrae-8.0.0/docs/architecture/issue-874-scenario-bundle-realization-roots-preflight.md +248 -0
- lilrae-8.0.0/docs/architecture/issue-875-scenario-content-declaration-preflight.md +299 -0
- lilrae-8.0.0/docs/architecture/issue-876-dynamic-composition-readback-preflight.md +103 -0
- lilrae-8.0.0/docs/architecture/issue-878-scenario-verification-plugin-seam-preflight.md +520 -0
- lilrae-8.0.0/docs/architecture/issue-880-techvault-env-pack-consumption-preflight.md +249 -0
- lilrae-8.0.0/docs/architecture/issue-892-dynamic-composition-artifact-preflight.md +178 -0
- lilrae-8.0.0/docs/architecture/issue-905-lab-lifecycle-robustness-preflight.md +191 -0
- lilrae-8.0.0/docs/architecture/issue-912-misp-redis-post-realization-mutation-preflight.md +143 -0
- lilrae-8.0.0/docs/architecture/issue-913-shuffle-post-realization-mutation-preflight.md +320 -0
- lilrae-8.0.0/docs/architecture/issue-934-rename-boundary-preflight.md +196 -0
- lilrae-8.0.0/docs/architecture/issue-949-orborus-control-authority-preflight.md +241 -0
- lilrae-8.0.0/docs/architecture/issue-951-fresh-env-pack-start-preflight.md +201 -0
- lilrae-8.0.0/docs/architecture/issue-954-runtime-docs-and-test-authority-preflight.md +116 -0
- lilrae-8.0.0/docs/architecture/issue-955-systemd-substrate-privilege-preflight.md +221 -0
- lilrae-8.0.0/docs/architecture/issue-956-sdl-runtime-authority-materialization-preflight.md +100 -0
- lilrae-8.0.0/docs/architecture/issue-957-wazuh-attestation-evidence-credentials-preflight.md +259 -0
- lilrae-8.0.0/docs/architecture/issue-958-execution-boundary-preflight.md +119 -0
- lilrae-8.0.0/docs/architecture/issue-964-backend-resource-ownership-preflight.md +316 -0
- lilrae-8.0.0/docs/architecture/issue-969-platform-safety-gates-preflight.md +223 -0
- lilrae-8.0.0/docs/architecture/issue-970-generic-lab-lifecycle-preflight.md +334 -0
- lilrae-8.0.0/docs/architecture/issue-974-shuffle-worker-docker-images-preflight.md +239 -0
- lilrae-8.0.0/docs/architecture/issue-980-pack-adapter-install-seam-preflight.md +352 -0
- lilrae-8.0.0/docs/architecture/issue-985-owned-lab-fixture-preflight.md +141 -0
- lilrae-8.0.0/docs/architecture/issue-992-backend-observability-ownership-preflight.md +542 -0
- lilrae-8.0.0/docs/architecture/issue-993-boot-realization-regressions-preflight.md +162 -0
- lilrae-8.0.0/docs/architecture/networking.md +175 -0
- lilrae-8.0.0/docs/architecture/obs-002-correlation-identity-clock-preflight.md +219 -0
- lilrae-8.0.0/docs/architecture/rep-003-run-scoped-provenance-preflight.md +307 -0
- lilrae-8.0.0/docs/architecture/rng-001-ephemeral-environments-preflight.md +153 -0
- lilrae-8.0.0/docs/components/appliance-boundary.md +155 -0
- lilrae-8.0.0/docs/components/default-defensive-posture.md +740 -0
- lilrae-8.0.0/docs/components/kali-redteam.md +169 -0
- lilrae-8.0.0/docs/components/mcp-integration.md +65 -0
- lilrae-8.0.0/docs/components/mcp-smoke-test-protocol.md +13 -0
- lilrae-8.0.0/docs/components/node-realization.md +62 -0
- lilrae-8.0.0/docs/components/participant-workbench.md +61 -0
- lilrae-8.0.0/docs/components/reverse-engineering-container.md +34 -0
- lilrae-8.0.0/docs/components/victim-containers.md +115 -0
- lilrae-8.0.0/docs/components/wazuh-active-response.md +180 -0
- lilrae-8.0.0/docs/components/wazuh-siem.md +161 -0
- lilrae-8.0.0/docs/containers/victim-template-guide.md +190 -0
- lilrae-8.0.0/docs/deployment.md +326 -0
- lilrae-8.0.0/docs/getting-started/index.md +20 -0
- lilrae-8.0.0/docs/getting-started/installation.md +149 -0
- lilrae-8.0.0/docs/getting-started/installing-packs.md +115 -0
- lilrae-8.0.0/docs/getting-started/prerequisites.md +204 -0
- lilrae-8.0.0/docs/getting-started/quick-start.md +181 -0
- lilrae-8.0.0/docs/index.md +101 -0
- lilrae-8.0.0/docs/raes/app-1-appliance-boundary-materialization-preflight.md +425 -0
- lilrae-8.0.0/docs/raes/dsl-003-runtime-substitution-preflight.md +217 -0
- lilrae-8.0.0/docs/raes/dsl-005-assertion-evaluation-preflight.md +199 -0
- lilrae-8.0.0/docs/raes/dsl-008-realization-preflight.md +181 -0
- lilrae-8.0.0/docs/raes/dsl-010-participant-runtime-preflight.md +185 -0
- lilrae-8.0.0/docs/raes/issue-601-participant-demonstration.md +261 -0
- lilrae-8.0.0/docs/raes/issue-759-libvirt-service-reachability-preflight.md +143 -0
- lilrae-8.0.0/docs/raes/m1-raes-conformance-truth-up-preflight.md +238 -0
- lilrae-8.0.0/docs/raes/orchestration-capable-profile-preflight.md +170 -0
- lilrae-8.0.0/docs/raes/paper-scenario-realization.md +93 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/.gitignore +5 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/run-curated-live-proof.sh +177 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-attacker-target/participant-action.json +437 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-attacker-target/result.json +72 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-attacker-target/snapshot.json +161 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-defensive-min/result.json +50 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-defensive-min/snapshot.json +115 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-enterprise-web/result.json +63 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-enterprise-web/snapshot.json +181 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-observability-core/result.json +34 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate/techvault-observability-core/snapshot.json +54 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-gate.md +172 -0
- lilrae-8.0.0/docs/raes/techvault-curated-live-validation-preflight.md +157 -0
- lilrae-8.0.0/docs/raes/techvault-live-validation-gate.md +188 -0
- lilrae-8.0.0/docs/raes/techvault-live-validation-preflight.md +217 -0
- lilrae-8.0.0/docs/raes/techvault-static-validation-gate.md +123 -0
- lilrae-8.0.0/docs/raes/techvault-static-validation-preflight.md +166 -0
- lilrae-8.0.0/docs/red-team-taxonomy.md +207 -0
- lilrae-8.0.0/docs/reference/appliance-seat-launcher.md +424 -0
- lilrae-8.0.0/docs/reference/cli.md +138 -0
- lilrae-8.0.0/docs/reference/evidence-bundle-export.md +145 -0
- lilrae-8.0.0/docs/reference/experiment-runs.md +286 -0
- lilrae-8.0.0/docs/reference/host-mcp-access.md +163 -0
- lilrae-8.0.0/docs/reference/mcp.md +86 -0
- lilrae-8.0.0/docs/reference/participant-profile.md +158 -0
- lilrae-8.0.0/docs/reference/techvault-company-profile.md +782 -0
- lilrae-8.0.0/docs/reference/techvault-osint-readiness.md +513 -0
- lilrae-8.0.0/docs/reference/techvault-scenario-overview.md +143 -0
- lilrae-8.0.0/docs/reference/web.md +122 -0
- lilrae-8.0.0/docs/releasing.md +113 -0
- lilrae-8.0.0/docs/requirements/AGT-001/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/AGT-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/AGT-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/AGT-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/APP-1/requirement.md +63 -0
- lilrae-8.0.0/docs/requirements/APP-2/requirement.md +48 -0
- lilrae-8.0.0/docs/requirements/APP-3/requirement.md +80 -0
- lilrae-8.0.0/docs/requirements/CLI-001/requirement.md +45 -0
- lilrae-8.0.0/docs/requirements/CLI-002/requirement.md +31 -0
- lilrae-8.0.0/docs/requirements/CLI-003/requirement.md +52 -0
- lilrae-8.0.0/docs/requirements/CLI-004/requirement.md +33 -0
- lilrae-8.0.0/docs/requirements/CLI-005/requirement.md +29 -0
- lilrae-8.0.0/docs/requirements/CLI-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/CLI-007/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/DEP-001/requirement.md +35 -0
- lilrae-8.0.0/docs/requirements/DEP-003/requirement.md +31 -0
- lilrae-8.0.0/docs/requirements/DEP-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DEP-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DEP-007/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DEP-008/requirement.md +38 -0
- lilrae-8.0.0/docs/requirements/DET-001/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DET-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DET-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DET-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DET-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DET-006/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/DOC-001/requirement.md +31 -0
- lilrae-8.0.0/docs/requirements/DSL-001/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/DSL-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DSL-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DSL-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DSL-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DSL-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/DSL-007/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/DSL-008/requirement.md +69 -0
- lilrae-8.0.0/docs/requirements/DSL-009/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/DSL-010/requirement.md +45 -0
- lilrae-8.0.0/docs/requirements/ENT-001/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-002/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-003/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-005/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-006/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-007/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-008/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/ENT-009/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/EXP-001/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/EXP-002/requirement.md +55 -0
- lilrae-8.0.0/docs/requirements/EXP-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/EXP-005/requirement.md +39 -0
- lilrae-8.0.0/docs/requirements/EXP-008/requirement.md +49 -0
- lilrae-8.0.0/docs/requirements/EXP-009/requirement.md +36 -0
- lilrae-8.0.0/docs/requirements/EXP-010/requirement.md +70 -0
- lilrae-8.0.0/docs/requirements/EXP-011/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INF-001/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/INF-002/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/INF-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INF-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INF-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INF-006/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/INF-007/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/INF-010/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-001/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/INT-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/MCP-001/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/MCP-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/MCP-003/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/MCP-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/MCP-005/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/MCP-006/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/NET-001/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/NET-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/NET-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/NET-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/NET-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/OBS-001-DUP-1/requirement.md +42 -0
- lilrae-8.0.0/docs/requirements/OBS-002/requirement.md +40 -0
- lilrae-8.0.0/docs/requirements/OBS-003/requirement.md +56 -0
- lilrae-8.0.0/docs/requirements/OBS-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/ORC-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RED-001/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/RED-002/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/RED-003/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/RED-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/REP-001/requirement.md +35 -0
- lilrae-8.0.0/docs/requirements/REP-002/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/REP-003/requirement.md +56 -0
- lilrae-8.0.0/docs/requirements/REP-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/REP-005/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/REP-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RNG-001/requirement.md +32 -0
- lilrae-8.0.0/docs/requirements/RNG-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RNG-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RNG-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RNG-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RNG-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/RTE-001/requirement.md +31 -0
- lilrae-8.0.0/docs/requirements/SAF-001/requirement.md +30 -0
- lilrae-8.0.0/docs/requirements/SAF-002/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/SAF-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SAF-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SAF-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SCN-001/requirement.md +29 -0
- lilrae-8.0.0/docs/requirements/SCN-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SCN-003/requirement.md +30 -0
- lilrae-8.0.0/docs/requirements/SCN-004/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/SCN-005/requirement.md +32 -0
- lilrae-8.0.0/docs/requirements/SCN-006/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/SCN-007/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SCN-008/requirement.md +30 -0
- lilrae-8.0.0/docs/requirements/SCN-009/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/SCN-010/requirement.md +119 -0
- lilrae-8.0.0/docs/requirements/SEC-001/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SEC-002/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SEC-003/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SEC-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SEC-005/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/SEC-006/requirement.md +41 -0
- lilrae-8.0.0/docs/requirements/SEC-007/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/SEC-008/requirement.md +42 -0
- lilrae-8.0.0/docs/requirements/SIEM-001/requirement.md +32 -0
- lilrae-8.0.0/docs/requirements/SIEM-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SIEM-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SIEM-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SIEM-005/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/SIEM-006/requirement.md +38 -0
- lilrae-8.0.0/docs/requirements/SIM-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SIM-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SIM-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SOC-001/requirement.md +35 -0
- lilrae-8.0.0/docs/requirements/SOC-002/requirement.md +33 -0
- lilrae-8.0.0/docs/requirements/SOC-003/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SOC-004/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SOC-005/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/SOC-006/requirement.md +28 -0
- lilrae-8.0.0/docs/requirements/SYS-001/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-002/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-003/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-004/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-005/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-006/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-007/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-008/requirement.md +20 -0
- lilrae-8.0.0/docs/requirements/SYS-009/requirement.md +27 -0
- lilrae-8.0.0/docs/requirements/SYS-010/requirement.md +30 -0
- lilrae-8.0.0/docs/requirements/UI-001/requirement.md +32 -0
- lilrae-8.0.0/docs/requirements/UI-002/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/UI-003/requirement.md +30 -0
- lilrae-8.0.0/docs/requirements/UI-005/requirement.md +25 -0
- lilrae-8.0.0/docs/requirements/UI-006/requirement.md +24 -0
- lilrae-8.0.0/docs/requirements/UI-007/requirement.md +26 -0
- lilrae-8.0.0/docs/requirements/UI-008/requirement.md +24 -0
- lilrae-8.0.0/docs/reviews/1162-seat-acceptance.md +128 -0
- lilrae-8.0.0/docs/reviews/1178-seat-desktop-diagnostic.md +41 -0
- lilrae-8.0.0/docs/reviews/1194-seat-network-investigation.md +251 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/README.md +193 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/adr-disposition.md +60 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/agent-sandboxing.md +116 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/backlog-disposition.md +138 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/delivery-plan.md +115 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/dependency-changes.json +210 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/README.md +54 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/boundary-final.json +8 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/boundary-probes.py +92 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/boundary-results.json +8 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/dev-protection.json +1 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/precommit-baseline.txt +21 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/precommit-final.txt +243 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/process-final.json +7 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/process-probes.py +67 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/process-results.json +7 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/static-gate-final.txt +10 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/static-gate.txt +10 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/evidence/upstream-959-files.tsv +31 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/identity-disposition.tsv +29 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/migration-inventory.md +67 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/tracked-file-inventory.tsv +1914 -0
- lilrae-8.0.0/docs/reviews/962-lilrae-readiness/upstream-update.md +62 -0
- lilrae-8.0.0/docs/sdl/complex-scenario-authoring-notes.md +7 -0
- lilrae-8.0.0/docs/sdl/complex-scenarios.md +8 -0
- lilrae-8.0.0/docs/sdl/index.md +46 -0
- lilrae-8.0.0/docs/sdl/limitations.md +8 -0
- lilrae-8.0.0/docs/sdl/parser.md +9 -0
- lilrae-8.0.0/docs/sdl/precedents.md +6 -0
- lilrae-8.0.0/docs/sdl/runtime-architecture.md +34 -0
- lilrae-8.0.0/docs/sdl/sections.md +7 -0
- lilrae-8.0.0/docs/sdl/techvault-curated-variants.md +101 -0
- lilrae-8.0.0/docs/sdl/testing.md +8 -0
- lilrae-8.0.0/docs/sdl/validation.md +14 -0
- lilrae-8.0.0/docs/security/openssf-best-practices.md +66 -0
- lilrae-8.0.0/docs/specs/1178-vm-seat-access-preflight.md +20 -0
- lilrae-8.0.0/docs/specs/soc-feature-spec.md +358 -0
- lilrae-8.0.0/docs/specs/web-component-kit.md +116 -0
- lilrae-8.0.0/docs/specs/web-gui-design-preflight.md +510 -0
- lilrae-8.0.0/docs/specs/web-gui-design.md +885 -0
- lilrae-8.0.0/docs/testing/boot-realization-coverage.md +105 -0
- lilrae-8.0.0/docs/testing/issue-956-candidate-254bc40f-manual-qa.md +194 -0
- lilrae-8.0.0/docs/testing/issue-956-candidate-e23fec55-manual-qa.md +231 -0
- lilrae-8.0.0/docs/testing/lab-fixture-pack.md +82 -0
- lilrae-8.0.0/docs/testing/platform-pr-gates.md +54 -0
- lilrae-8.0.0/docs/testing/property-based-parser-tests.md +64 -0
- lilrae-8.0.0/docs/testing/smoke-test-plan.md +518 -0
- lilrae-8.0.0/docs/troubleshooting/index.md +405 -0
- lilrae-8.0.0/docs/workshop/arsenal-2026/README.md +15 -0
- lilrae-8.0.0/docs/workshop/arsenal-2026/facilitator.md +328 -0
- lilrae-8.0.0/docs/workshop/arsenal-2026/handout.md +192 -0
- lilrae-8.0.0/docs/workshop/arsenal-2026/qa.md +400 -0
- lilrae-8.0.0/docs/workshop/emergency-rollout.md +192 -0
- lilrae-8.0.0/docs/workshop/hosted-backup-seats.md +777 -0
- lilrae-8.0.0/docs/workshop/playbook.md +181 -0
- lilrae-8.0.0/docs/workshop/walkthrough.md +251 -0
- lilrae-8.0.0/eslint.config.js +81 -0
- lilrae-8.0.0/examples/aptl-lab-topology.sdl.yaml +899 -0
- lilrae-8.0.0/examples/hospital-ransomware-surgery-day.sdl.yaml +912 -0
- lilrae-8.0.0/examples/port-authority-surge-response.sdl.yaml +760 -0
- lilrae-8.0.0/examples/satcom-release-poisoning.sdl.yaml +821 -0
- lilrae-8.0.0/generate-indexer-certs.yml +56 -0
- lilrae-8.0.0/hatch_build.py +179 -0
- lilrae-8.0.0/lab_connections.txt +34 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/package-lock.json +2941 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/package.json +43 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/captures.ts +276 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/config.ts +326 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/endpoint-url.ts +58 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/http.ts +465 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/index.ts +70 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/redaction.ts +1008 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/runs.ts +285 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/server.ts +248 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/shells.ts +129 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/ssh-contracts.ts +137 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/ssh-manager.ts +468 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/ssh-session.ts +623 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/ssh.ts +19 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/telemetry-export.ts +58 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/telemetry.ts +240 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/tools/api-definitions.ts +92 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/tools/api-handlers.ts +265 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/tools/definitions.ts +187 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/tools/handlers.ts +636 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/src/utils.ts +17 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/api-tools.test.ts +198 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/captures.test.ts +498 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/config-env-substitution.test.ts +291 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/config-logic.test.ts +122 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/endpoint-url.test.ts +71 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/http-ca.test.ts +173 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/http-endpoint-security.test.ts +90 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/http-insecure.test.ts +236 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/http.test.ts +187 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/redaction.parity.test.ts +51 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/redaction.test.ts +923 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/runs.test.ts +269 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/server-hook.test.ts +265 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/server-logic.test.ts +106 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/shells.test.ts +215 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/ssh-facade.test.ts +42 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/ssh.test.ts +1703 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/telemetry-export.test.ts +38 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/telemetry.test.ts +328 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/tools-definitions.test.ts +81 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tests/tools-handlers.test.ts +463 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/tsconfig.json +15 -0
- lilrae-8.0.0/mcp/aptl-mcp-common/vitest.config.ts +14 -0
- lilrae-8.0.0/mcp/build-all-mcps.sh +22 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/.gitignore +2 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/docker-lab-config.json +102 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/package-lock.json +2351 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/package.json +33 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/tsconfig.build.json +13 -0
- lilrae-8.0.0/mcp/mcp-casemgmt/tsconfig.json +17 -0
- lilrae-8.0.0/mcp/mcp-indexer/.gitignore +2 -0
- lilrae-8.0.0/mcp/mcp-indexer/docker-lab-config.json +88 -0
- lilrae-8.0.0/mcp/mcp-indexer/package-lock.json +3546 -0
- lilrae-8.0.0/mcp/mcp-indexer/package.json +42 -0
- lilrae-8.0.0/mcp/mcp-indexer/src/index.ts +11 -0
- lilrae-8.0.0/mcp/mcp-indexer/tsconfig.build.json +9 -0
- lilrae-8.0.0/mcp/mcp-indexer/tsconfig.json +16 -0
- lilrae-8.0.0/mcp/mcp-indexer/vitest.config.ts +7 -0
- lilrae-8.0.0/mcp/mcp-network/.gitignore +2 -0
- lilrae-8.0.0/mcp/mcp-network/docker-lab-config.json +120 -0
- lilrae-8.0.0/mcp/mcp-network/package-lock.json +2351 -0
- lilrae-8.0.0/mcp/mcp-network/package.json +33 -0
- lilrae-8.0.0/mcp/mcp-network/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-network/tsconfig.build.json +13 -0
- lilrae-8.0.0/mcp/mcp-network/tsconfig.json +17 -0
- lilrae-8.0.0/mcp/mcp-red/.gitignore +4 -0
- lilrae-8.0.0/mcp/mcp-red/.prettierrc +7 -0
- lilrae-8.0.0/mcp/mcp-red/docker-lab-config.json +26 -0
- lilrae-8.0.0/mcp/mcp-red/eslint.config.js +41 -0
- lilrae-8.0.0/mcp/mcp-red/package-lock.json +3787 -0
- lilrae-8.0.0/mcp/mcp-red/package.json +43 -0
- lilrae-8.0.0/mcp/mcp-red/src/capture.ts +207 -0
- lilrae-8.0.0/mcp/mcp-red/src/classifier.ts +790 -0
- lilrae-8.0.0/mcp/mcp-red/src/effective-mode.ts +75 -0
- lilrae-8.0.0/mcp/mcp-red/src/extractor.ts +963 -0
- lilrae-8.0.0/mcp/mcp-red/src/index.ts +169 -0
- lilrae-8.0.0/mcp/mcp-red/src/logger.ts +456 -0
- lilrae-8.0.0/mcp/mcp-red/tests/capture.test.ts +335 -0
- lilrae-8.0.0/mcp/mcp-red/tests/classifier.test.ts +396 -0
- lilrae-8.0.0/mcp/mcp-red/tests/effective-mode.test.ts +166 -0
- lilrae-8.0.0/mcp/mcp-red/tests/extractor.test.ts +646 -0
- lilrae-8.0.0/mcp/mcp-red/tests/logger.test.ts +595 -0
- lilrae-8.0.0/mcp/mcp-red/tsconfig.build.json +9 -0
- lilrae-8.0.0/mcp/mcp-red/tsconfig.json +16 -0
- lilrae-8.0.0/mcp/mcp-red/vitest.config.ts +15 -0
- lilrae-8.0.0/mcp/mcp-reverse/.gitignore +4 -0
- lilrae-8.0.0/mcp/mcp-reverse/.prettierrc +7 -0
- lilrae-8.0.0/mcp/mcp-reverse/docker-lab-config.json +25 -0
- lilrae-8.0.0/mcp/mcp-reverse/eslint.config.js +41 -0
- lilrae-8.0.0/mcp/mcp-reverse/package-lock.json +3547 -0
- lilrae-8.0.0/mcp/mcp-reverse/package.json +42 -0
- lilrae-8.0.0/mcp/mcp-reverse/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-reverse/tsconfig.build.json +9 -0
- lilrae-8.0.0/mcp/mcp-reverse/tsconfig.json +16 -0
- lilrae-8.0.0/mcp/mcp-reverse/vitest.config.ts +8 -0
- lilrae-8.0.0/mcp/mcp-soar/.gitignore +2 -0
- lilrae-8.0.0/mcp/mcp-soar/docker-lab-config.json +82 -0
- lilrae-8.0.0/mcp/mcp-soar/package-lock.json +2351 -0
- lilrae-8.0.0/mcp/mcp-soar/package.json +33 -0
- lilrae-8.0.0/mcp/mcp-soar/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-soar/tsconfig.build.json +13 -0
- lilrae-8.0.0/mcp/mcp-soar/tsconfig.json +17 -0
- lilrae-8.0.0/mcp/mcp-threatintel/.gitignore +2 -0
- lilrae-8.0.0/mcp/mcp-threatintel/docker-lab-config.json +85 -0
- lilrae-8.0.0/mcp/mcp-threatintel/package-lock.json +2351 -0
- lilrae-8.0.0/mcp/mcp-threatintel/package.json +33 -0
- lilrae-8.0.0/mcp/mcp-threatintel/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-threatintel/tsconfig.build.json +13 -0
- lilrae-8.0.0/mcp/mcp-threatintel/tsconfig.json +17 -0
- lilrae-8.0.0/mcp/mcp-wazuh/docker-lab-config.json +82 -0
- lilrae-8.0.0/mcp/mcp-wazuh/package-lock.json +2471 -0
- lilrae-8.0.0/mcp/mcp-wazuh/package.json +33 -0
- lilrae-8.0.0/mcp/mcp-wazuh/src/index.ts +10 -0
- lilrae-8.0.0/mcp/mcp-wazuh/tsconfig.build.json +13 -0
- lilrae-8.0.0/mcp/mcp-wazuh/tsconfig.json +17 -0
- lilrae-8.0.0/mcp/package-lock.json +6 -0
- lilrae-8.0.0/mkdocs.yml +246 -0
- lilrae-8.0.0/participant-profiles/guided-purple-v1/aptl.json +36 -0
- lilrae-8.0.0/participant-profiles/guided-purple-v1/asset-lock.json +148 -0
- lilrae-8.0.0/participant-profiles/guided-purple-v1/narrative.json +84 -0
- lilrae-8.0.0/participant-profiles/guided-purple-v1/profile.json +54 -0
- lilrae-8.0.0/participant-profiles/guided-purple-v1/readiness.json +95 -0
- lilrae-8.0.0/pyproject.toml +229 -0
- lilrae-8.0.0/release-please-config.json +18 -0
- lilrae-8.0.0/requirements/ci.txt +640 -0
- lilrae-8.0.0/requirements/dev.txt +1279 -0
- lilrae-8.0.0/requirements/docs.txt +1223 -0
- lilrae-8.0.0/requirements/runtime.txt +1033 -0
- lilrae-8.0.0/requirements/web.txt +1053 -0
- lilrae-8.0.0/scenarios/archive/README.md +10 -0
- lilrae-8.0.0/scenarios/archive/ad-domain-compromise.yaml +170 -0
- lilrae-8.0.0/scenarios/archive/detect-brute-force.yaml +82 -0
- lilrae-8.0.0/scenarios/archive/lateral-movement-data-theft.yaml +158 -0
- lilrae-8.0.0/scenarios/archive/prime-enterprise.yaml +878 -0
- lilrae-8.0.0/scenarios/archive/prime-scenario.md +406 -0
- lilrae-8.0.0/scenarios/archive/recon-nmap-scan.yaml +85 -0
- lilrae-8.0.0/scenarios/archive/webapp-compromise.yaml +202 -0
- lilrae-8.0.0/scenarios/bounded-participant-agency-techvault.sdl.yaml +1406 -0
- lilrae-8.0.0/scenarios/catalog.json +68 -0
- lilrae-8.0.0/scenarios/paper-agent-loop.sdl.yaml +794 -0
- lilrae-8.0.0/scenarios/techvault-attacker-target.sdl.yaml +65 -0
- lilrae-8.0.0/scenarios/techvault-defensive-min.sdl.yaml +51 -0
- lilrae-8.0.0/scenarios/techvault-enterprise-web.sdl.yaml +93 -0
- lilrae-8.0.0/scripts/appliance/acquire-guest-system-packages.sh +55 -0
- lilrae-8.0.0/scripts/appliance/assemble-seat-inputs.py +223 -0
- lilrae-8.0.0/scripts/appliance/build-local-images.sh +80 -0
- lilrae-8.0.0/scripts/appliance/build-seat-image.sh +305 -0
- lilrae-8.0.0/scripts/appliance/publish-images.sh +124 -0
- lilrae-8.0.0/scripts/appliance/publish-seat-image.sh +158 -0
- lilrae-8.0.0/scripts/appliance/qualify-seat-image.sh +69 -0
- lilrae-8.0.0/scripts/appliance/qualify-seat-privileges.sh +110 -0
- lilrae-8.0.0/scripts/appliance/seat-base-image.env +5 -0
- lilrae-8.0.0/scripts/appliance/seat-build-record.py +89 -0
- lilrae-8.0.0/scripts/appliance/write-seat-image-config.py +99 -0
- lilrae-8.0.0/scripts/aptl-env.sh +62 -0
- lilrae-8.0.0/scripts/aptl-range.service +25 -0
- lilrae-8.0.0/scripts/ci/assert_boot_realization.py +729 -0
- lilrae-8.0.0/scripts/ci/assert_project_teardown.py +193 -0
- lilrae-8.0.0/scripts/cortex-apikey.sh +274 -0
- lilrae-8.0.0/scripts/cortex-index-init.sh +35 -0
- lilrae-8.0.0/scripts/generate-ssh-keys.sh +49 -0
- lilrae-8.0.0/scripts/launch-ranges.sh +119 -0
- lilrae-8.0.0/scripts/provision-range.sh +159 -0
- lilrae-8.0.0/scripts/seed-misp.sh +246 -0
- lilrae-8.0.0/scripts/seed-prime.sh +304 -0
- lilrae-8.0.0/scripts/seed-shuffle.sh +267 -0
- lilrae-8.0.0/scripts/setup-purple-demo.sh +75 -0
- lilrae-8.0.0/scripts/setup-rdp.sh +96 -0
- lilrae-8.0.0/scripts/setup-vulnerable-victim.sh +217 -0
- lilrae-8.0.0/scripts/test-continuity-audit.sh +98 -0
- lilrae-8.0.0/scripts/test-wazuh-ar-drop.sh +225 -0
- lilrae-8.0.0/scripts/test-wazuh-ar-whitelist.sh +108 -0
- lilrae-8.0.0/scripts/thehive-apikey.sh +113 -0
- lilrae-8.0.0/sonar-project.properties +167 -0
- lilrae-8.0.0/src/aptl/__init__.py +9 -0
- lilrae-8.0.0/src/aptl/_asset_manifest.py +91 -0
- lilrae-8.0.0/src/aptl/api/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/api/deps.py +243 -0
- lilrae-8.0.0/src/aptl/api/main.py +177 -0
- lilrae-8.0.0/src/aptl/api/middleware/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/api/middleware/bff.py +188 -0
- lilrae-8.0.0/src/aptl/api/routers/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/api/routers/config.py +62 -0
- lilrae-8.0.0/src/aptl/api/routers/kill.py +50 -0
- lilrae-8.0.0/src/aptl/api/routers/lab.py +203 -0
- lilrae-8.0.0/src/aptl/api/routers/scenarios.py +96 -0
- lilrae-8.0.0/src/aptl/api/routers/terminal.py +357 -0
- lilrae-8.0.0/src/aptl/api/scenario_projection.py +277 -0
- lilrae-8.0.0/src/aptl/api/schemas.py +338 -0
- lilrae-8.0.0/src/aptl/api/session.py +166 -0
- lilrae-8.0.0/src/aptl/appliance/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/appliance/access_service.py +363 -0
- lilrae-8.0.0/src/aptl/appliance/access_service_support.py +208 -0
- lilrae-8.0.0/src/aptl/appliance/download.py +264 -0
- lilrae-8.0.0/src/aptl/appliance/errors.py +5 -0
- lilrae-8.0.0/src/aptl/appliance/guest_observation.py +631 -0
- lilrae-8.0.0/src/aptl/appliance/guest_services.py +27 -0
- lilrae-8.0.0/src/aptl/appliance/guest_surfaces.py +142 -0
- lilrae-8.0.0/src/aptl/appliance/input_images.py +185 -0
- lilrae-8.0.0/src/aptl/appliance/input_profile.py +244 -0
- lilrae-8.0.0/src/aptl/appliance/loopback_proxy.py +123 -0
- lilrae-8.0.0/src/aptl/appliance/policy.py +55 -0
- lilrae-8.0.0/src/aptl/appliance/seat/__init__.py +45 -0
- lilrae-8.0.0/src/aptl/appliance/seat/_device.py +45 -0
- lilrae-8.0.0/src/aptl/appliance/seat/access.py +445 -0
- lilrae-8.0.0/src/aptl/appliance/seat/access_clients.py +87 -0
- lilrae-8.0.0/src/aptl/appliance/seat/access_state.py +104 -0
- lilrae-8.0.0/src/aptl/appliance/seat/allocation.py +359 -0
- lilrae-8.0.0/src/aptl/appliance/seat/aptl-seat.pub +4 -0
- lilrae-8.0.0/src/aptl/appliance/seat/context.py +71 -0
- lilrae-8.0.0/src/aptl/appliance/seat/errors.py +12 -0
- lilrae-8.0.0/src/aptl/appliance/seat/exposure.py +136 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image.py +492 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image_config.py +99 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image_disk_cache.py +149 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image_selection.py +466 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image_trust.py +190 -0
- lilrae-8.0.0/src/aptl/appliance/seat/image_update.py +96 -0
- lilrae-8.0.0/src/aptl/appliance/seat/kiosk.py +144 -0
- lilrae-8.0.0/src/aptl/appliance/seat/launch_descriptor.py +104 -0
- lilrae-8.0.0/src/aptl/appliance/seat/lifecycle.py +1272 -0
- lilrae-8.0.0/src/aptl/appliance/seat/locking.py +129 -0
- lilrae-8.0.0/src/aptl/appliance/seat/maintenance.py +66 -0
- lilrae-8.0.0/src/aptl/appliance/seat/models.py +81 -0
- lilrae-8.0.0/src/aptl/appliance/seat/namespace.py +48 -0
- lilrae-8.0.0/src/aptl/appliance/seat/observation.py +403 -0
- lilrae-8.0.0/src/aptl/appliance/seat/overlay.py +172 -0
- lilrae-8.0.0/src/aptl/appliance/seat/overlay_cleanup.py +38 -0
- lilrae-8.0.0/src/aptl/appliance/seat/overlay_identity.py +130 -0
- lilrae-8.0.0/src/aptl/appliance/seat/paths.py +48 -0
- lilrae-8.0.0/src/aptl/appliance/seat/persistence.py +96 -0
- lilrae-8.0.0/src/aptl/appliance/seat/prereqs.py +289 -0
- lilrae-8.0.0/src/aptl/appliance/seat/private_vm.py +156 -0
- lilrae-8.0.0/src/aptl/appliance/seat/privileges.py +122 -0
- lilrae-8.0.0/src/aptl/appliance/seat/readiness.py +247 -0
- lilrae-8.0.0/src/aptl/appliance/seat/retained_image.py +83 -0
- lilrae-8.0.0/src/aptl/appliance/seat/vm.py +465 -0
- lilrae-8.0.0/src/aptl/appliance/versioning.py +35 -0
- lilrae-8.0.0/src/aptl/backends/__init__.py +6 -0
- lilrae-8.0.0/src/aptl/backends/_compose_profile_index.py +160 -0
- lilrae-8.0.0/src/aptl/backends/_raes_admission_helpers.py +86 -0
- lilrae-8.0.0/src/aptl/backends/_raes_apply_helpers.py +77 -0
- lilrae-8.0.0/src/aptl/backends/_raes_apply_reporting.py +172 -0
- lilrae-8.0.0/src/aptl/backends/_raes_artifact_delivery_observation.py +332 -0
- lilrae-8.0.0/src/aptl/backends/_raes_backend_generated_artifacts.py +204 -0
- lilrae-8.0.0/src/aptl/backends/_raes_backend_implementation_catalog.py +449 -0
- lilrae-8.0.0/src/aptl/backends/_raes_backend_implementation_images.py +17 -0
- lilrae-8.0.0/src/aptl/backends/_raes_backend_implementation_profiles.py +259 -0
- lilrae-8.0.0/src/aptl/backends/_raes_backend_implementation_types.py +96 -0
- lilrae-8.0.0/src/aptl/backends/_raes_conformance_probe.py +146 -0
- lilrae-8.0.0/src/aptl/backends/_raes_content_spec.py +50 -0
- lilrae-8.0.0/src/aptl/backends/_raes_dataset_content.py +82 -0
- lilrae-8.0.0/src/aptl/backends/_raes_docker_materializer_observations.py +182 -0
- lilrae-8.0.0/src/aptl/backends/_raes_docker_observation_values.py +53 -0
- lilrae-8.0.0/src/aptl/backends/_raes_evaluator_engine.py +333 -0
- lilrae-8.0.0/src/aptl/backends/_raes_evaluator_progress.py +170 -0
- lilrae-8.0.0/src/aptl/backends/_raes_evidence_refresh_policy.py +46 -0
- lilrae-8.0.0/src/aptl/backends/_raes_guest_os_observation.py +63 -0
- lilrae-8.0.0/src/aptl/backends/_raes_guest_package_observation.py +174 -0
- lilrae-8.0.0/src/aptl/backends/_raes_guest_process_limits.py +125 -0
- lilrae-8.0.0/src/aptl/backends/_raes_image_policy.py +154 -0
- lilrae-8.0.0/src/aptl/backends/_raes_manifest_resources.py +26 -0
- lilrae-8.0.0/src/aptl/backends/_raes_native_evidence_acquisition.py +181 -0
- lilrae-8.0.0/src/aptl/backends/_raes_network_observation.py +41 -0
- lilrae-8.0.0/src/aptl/backends/_raes_node_realization.py +278 -0
- lilrae-8.0.0/src/aptl/backends/_raes_observation_helpers.py +478 -0
- lilrae-8.0.0/src/aptl/backends/_raes_observation_index.py +161 -0
- lilrae-8.0.0/src/aptl/backends/_raes_observation_ordering.py +198 -0
- lilrae-8.0.0/src/aptl/backends/_raes_operational_observation.py +229 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_crossing.py +215 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_evidence.py +203 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_execution.py +485 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_manifest.py +82 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_models.py +73 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_planning.py +383 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_snapshot.py +37 -0
- lilrae-8.0.0/src/aptl/backends/_raes_participant_transport.py +352 -0
- lilrae-8.0.0/src/aptl/backends/_raes_proposition_truth.py +395 -0
- lilrae-8.0.0/src/aptl/backends/_raes_provisioner_start.py +296 -0
- lilrae-8.0.0/src/aptl/backends/_raes_provisioning_helpers.py +135 -0
- lilrae-8.0.0/src/aptl/backends/_raes_realization_diagnostics.py +92 -0
- lilrae-8.0.0/src/aptl/backends/_raes_runtime_container_observation.py +250 -0
- lilrae-8.0.0/src/aptl/backends/_raes_runtime_environment_observation.py +93 -0
- lilrae-8.0.0/src/aptl/backends/_raes_runtime_materialization_admission.py +168 -0
- lilrae-8.0.0/src/aptl/backends/_raes_runtime_network_observation.py +154 -0
- lilrae-8.0.0/src/aptl/backends/_raes_runtime_target_options.py +31 -0
- lilrae-8.0.0/src/aptl/backends/_raes_scenario_queries.py +187 -0
- lilrae-8.0.0/src/aptl/backends/_raes_scenario_resolution.py +76 -0
- lilrae-8.0.0/src/aptl/backends/_raes_service_index_placement.py +84 -0
- lilrae-8.0.0/src/aptl/backends/_raes_shuffle_implementation_catalog.py +103 -0
- lilrae-8.0.0/src/aptl/backends/_raes_start_failure.py +49 -0
- lilrae-8.0.0/src/aptl/backends/_raes_stateful_observation.py +264 -0
- lilrae-8.0.0/src/aptl/backends/_raes_stateful_values.py +39 -0
- lilrae-8.0.0/src/aptl/backends/_raes_transcript_qualification.py +71 -0
- lilrae-8.0.0/src/aptl/backends/_runtime_concern_disclosure.py +60 -0
- lilrae-8.0.0/src/aptl/backends/_runtime_concern_excess.py +248 -0
- lilrae-8.0.0/src/aptl/backends/_runtime_mount_observation.py +113 -0
- lilrae-8.0.0/src/aptl/backends/_scenario_environment.py +78 -0
- lilrae-8.0.0/src/aptl/backends/_scenario_startup_runtime.py +172 -0
- lilrae-8.0.0/src/aptl/backends/identity.py +28 -0
- lilrae-8.0.0/src/aptl/backends/pack_interaction.py +110 -0
- lilrae-8.0.0/src/aptl/backends/pack_interaction_discovery.py +336 -0
- lilrae-8.0.0/src/aptl/backends/raes.py +495 -0
- lilrae-8.0.0/src/aptl/backends/raes_account_realization.py +134 -0
- lilrae-8.0.0/src/aptl/backends/raes_acl_realization.py +228 -0
- lilrae-8.0.0/src/aptl/backends/raes_artifact_availability.py +495 -0
- lilrae-8.0.0/src/aptl/backends/raes_artifact_mechanisms.py +460 -0
- lilrae-8.0.0/src/aptl/backends/raes_artifact_satisfaction.py +425 -0
- lilrae-8.0.0/src/aptl/backends/raes_backend_implementation.py +410 -0
- lilrae-8.0.0/src/aptl/backends/raes_base_substrate.py +409 -0
- lilrae-8.0.0/src/aptl/backends/raes_content_realization.py +480 -0
- lilrae-8.0.0/src/aptl/backends/raes_content_satisfaction.py +196 -0
- lilrae-8.0.0/src/aptl/backends/raes_content_source_policy.py +74 -0
- lilrae-8.0.0/src/aptl/backends/raes_dependency_closure.py +374 -0
- lilrae-8.0.0/src/aptl/backends/raes_diagnostics.py +314 -0
- lilrae-8.0.0/src/aptl/backends/raes_docker_materializer.py +474 -0
- lilrae-8.0.0/src/aptl/backends/raes_evaluator.py +488 -0
- lilrae-8.0.0/src/aptl/backends/raes_evidence.py +175 -0
- lilrae-8.0.0/src/aptl/backends/raes_evidence_acquisition.py +466 -0
- lilrae-8.0.0/src/aptl/backends/raes_execution_helpers.py +46 -0
- lilrae-8.0.0/src/aptl/backends/raes_image_realization.py +460 -0
- lilrae-8.0.0/src/aptl/backends/raes_literal_content_realization.py +267 -0
- lilrae-8.0.0/src/aptl/backends/raes_manifest.py +493 -0
- lilrae-8.0.0/src/aptl/backends/raes_materializer.py +466 -0
- lilrae-8.0.0/src/aptl/backends/raes_materializer_engine.py +415 -0
- lilrae-8.0.0/src/aptl/backends/raes_node_materialization.py +232 -0
- lilrae-8.0.0/src/aptl/backends/raes_observability_scope.py +112 -0
- lilrae-8.0.0/src/aptl/backends/raes_observation.py +492 -0
- lilrae-8.0.0/src/aptl/backends/raes_operating_systems.py +151 -0
- lilrae-8.0.0/src/aptl/backends/raes_operator_access.py +52 -0
- lilrae-8.0.0/src/aptl/backends/raes_orchestrator.py +309 -0
- lilrae-8.0.0/src/aptl/backends/raes_pack_interaction.py +73 -0
- lilrae-8.0.0/src/aptl/backends/raes_package_managers.py +247 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_actions.py +480 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_apparatus.py +278 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_apparatus_models.py +44 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_bindings.py +490 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_candidates.py +171 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_control_evidence.py +155 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_delivery.py +33 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_driver.py +495 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_evidence_publication.py +127 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_execution_support.py +69 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_exposure.py +159 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_fixture.py +72 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_fixture_blue.py +311 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_fixture_core.py +456 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_fixture_green.py +339 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_fixture_red.py +285 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_projection.py +415 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_provider.py +285 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_realization_execution.py +485 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_realizations.py +482 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_runtime.py +484 -0
- lilrae-8.0.0/src/aptl/backends/raes_participant_support.py +101 -0
- lilrae-8.0.0/src/aptl/backends/raes_placement_realization.py +223 -0
- lilrae-8.0.0/src/aptl/backends/raes_planning_compat.py +499 -0
- lilrae-8.0.0/src/aptl/backends/raes_profiles.py +412 -0
- lilrae-8.0.0/src/aptl/backends/raes_provisioner.py +364 -0
- lilrae-8.0.0/src/aptl/backends/raes_realization.py +404 -0
- lilrae-8.0.0/src/aptl/backends/raes_realization_envelope.py +145 -0
- lilrae-8.0.0/src/aptl/backends/raes_realization_model.py +394 -0
- lilrae-8.0.0/src/aptl/backends/raes_realization_networks.py +285 -0
- lilrae-8.0.0/src/aptl/backends/raes_realization_values.py +378 -0
- lilrae-8.0.0/src/aptl/backends/raes_repro.py +201 -0
- lilrae-8.0.0/src/aptl/backends/raes_runtime_attestation.py +391 -0
- lilrae-8.0.0/src/aptl/backends/raes_runtime_guest_observation.py +437 -0
- lilrae-8.0.0/src/aptl/backends/raes_runtime_model_artifact.py +66 -0
- lilrae-8.0.0/src/aptl/backends/raes_runtime_observation.py +478 -0
- lilrae-8.0.0/src/aptl/backends/raes_runtime_orchestration.py +318 -0
- lilrae-8.0.0/src/aptl/backends/raes_service_index_schema.py +192 -0
- lilrae-8.0.0/src/aptl/backends/raes_start_model.py +73 -0
- lilrae-8.0.0/src/aptl/backends/raes_stateful_realization.py +479 -0
- lilrae-8.0.0/src/aptl/backends/raes_substrate.py +172 -0
- lilrae-8.0.0/src/aptl/backends/scenario_capture.py +80 -0
- lilrae-8.0.0/src/aptl/backends/scenario_capture_discovery.py +159 -0
- lilrae-8.0.0/src/aptl/backends/scenario_planning_compatibility.py +130 -0
- lilrae-8.0.0/src/aptl/backends/scenario_planning_compatibility_discovery.py +182 -0
- lilrae-8.0.0/src/aptl/backends/scenario_runtime_hooks.py +65 -0
- lilrae-8.0.0/src/aptl/backends/scenario_runtime_parameters.py +118 -0
- lilrae-8.0.0/src/aptl/backends/scenario_runtime_selection.py +52 -0
- lilrae-8.0.0/src/aptl/backends/scenario_service_policy.py +303 -0
- lilrae-8.0.0/src/aptl/backends/scenario_startup.py +496 -0
- lilrae-8.0.0/src/aptl/backends/scenario_startup_policy.py +211 -0
- lilrae-8.0.0/src/aptl/cli/__init__.py +0 -0
- lilrae-8.0.0/src/aptl/cli/_common.py +148 -0
- lilrae-8.0.0/src/aptl/cli/_start_residue.py +70 -0
- lilrae-8.0.0/src/aptl/cli/config.py +88 -0
- lilrae-8.0.0/src/aptl/cli/container.py +126 -0
- lilrae-8.0.0/src/aptl/cli/continuity.py +363 -0
- lilrae-8.0.0/src/aptl/cli/doctor.py +92 -0
- lilrae-8.0.0/src/aptl/cli/experiment.py +143 -0
- lilrae-8.0.0/src/aptl/cli/kill.py +66 -0
- lilrae-8.0.0/src/aptl/cli/lab.py +735 -0
- lilrae-8.0.0/src/aptl/cli/lab_init.py +66 -0
- lilrae-8.0.0/src/aptl/cli/lab_render.py +466 -0
- lilrae-8.0.0/src/aptl/cli/lifecycle.py +155 -0
- lilrae-8.0.0/src/aptl/cli/main.py +57 -0
- lilrae-8.0.0/src/aptl/cli/mcp_access.py +179 -0
- lilrae-8.0.0/src/aptl/cli/participant_profile.py +88 -0
- lilrae-8.0.0/src/aptl/cli/runs.py +344 -0
- lilrae-8.0.0/src/aptl/cli/seat.py +489 -0
- lilrae-8.0.0/src/aptl/cli/seat_inputs.py +119 -0
- lilrae-8.0.0/src/aptl/cli/web.py +164 -0
- lilrae-8.0.0/src/aptl/core/__init__.py +0 -0
- lilrae-8.0.0/src/aptl/core/_credential_sources.py +122 -0
- lilrae-8.0.0/src/aptl/core/_doctor_common.py +59 -0
- lilrae-8.0.0/src/aptl/core/_doctor_runtime.py +405 -0
- lilrae-8.0.0/src/aptl/core/_pack_staging.py +76 -0
- lilrae-8.0.0/src/aptl/core/_port_bindings.py +119 -0
- lilrae-8.0.0/src/aptl/core/_soc_ca_builders.py +136 -0
- lilrae-8.0.0/src/aptl/core/_soc_ca_chain.py +405 -0
- lilrae-8.0.0/src/aptl/core/_soc_ca_generation.py +205 -0
- lilrae-8.0.0/src/aptl/core/_soc_ca_io.py +182 -0
- lilrae-8.0.0/src/aptl/core/appliance_boundary.py +300 -0
- lilrae-8.0.0/src/aptl/core/appliance_boundary_gate.py +62 -0
- lilrae-8.0.0/src/aptl/core/appliance_boundary_inventory.py +422 -0
- lilrae-8.0.0/src/aptl/core/archival/__init__.py +58 -0
- lilrae-8.0.0/src/aptl/core/archival/context.py +111 -0
- lilrae-8.0.0/src/aptl/core/archival/coordinator.py +230 -0
- lilrae-8.0.0/src/aptl/core/archival/discovery_index.py +432 -0
- lilrae-8.0.0/src/aptl/core/archival/layout.py +62 -0
- lilrae-8.0.0/src/aptl/core/archival/legacy_manifest.py +153 -0
- lilrae-8.0.0/src/aptl/core/archival/run_record.py +144 -0
- lilrae-8.0.0/src/aptl/core/archival/seal.py +233 -0
- lilrae-8.0.0/src/aptl/core/archival/status.py +128 -0
- lilrae-8.0.0/src/aptl/core/archival/verify.py +149 -0
- lilrae-8.0.0/src/aptl/core/assets.py +289 -0
- lilrae-8.0.0/src/aptl/core/attacks.py +91 -0
- lilrae-8.0.0/src/aptl/core/certs.py +394 -0
- lilrae-8.0.0/src/aptl/core/collectors.py +384 -0
- lilrae-8.0.0/src/aptl/core/config.py +461 -0
- lilrae-8.0.0/src/aptl/core/content_seed.py +196 -0
- lilrae-8.0.0/src/aptl/core/continuity.py +651 -0
- lilrae-8.0.0/src/aptl/core/contracts.py +79 -0
- lilrae-8.0.0/src/aptl/core/correlation/__init__.py +10 -0
- lilrae-8.0.0/src/aptl/core/correlation/_assemble.py +362 -0
- lilrae-8.0.0/src/aptl/core/correlation/_extract.py +268 -0
- lilrae-8.0.0/src/aptl/core/correlation/builder.py +131 -0
- lilrae-8.0.0/src/aptl/core/correlation/clock.py +131 -0
- lilrae-8.0.0/src/aptl/core/correlation/identity.py +93 -0
- lilrae-8.0.0/src/aptl/core/correlation/models.py +412 -0
- lilrae-8.0.0/src/aptl/core/correlation/persistence.py +240 -0
- lilrae-8.0.0/src/aptl/core/correlation/rules.py +98 -0
- lilrae-8.0.0/src/aptl/core/credentials.py +464 -0
- lilrae-8.0.0/src/aptl/core/deployment/__init__.py +122 -0
- lilrae-8.0.0/src/aptl/core/deployment/_account_credentials.py +174 -0
- lilrae-8.0.0/src/aptl/core/deployment/_account_provider.py +442 -0
- lilrae-8.0.0/src/aptl/core/deployment/_application_provider_realization.py +91 -0
- lilrae-8.0.0/src/aptl/core/deployment/_authored_service_hosts.py +61 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_account_realization.py +479 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_account_verification.py +197 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_autoremove.py +165 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_base_container_realization.py +353 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_base_substrate.py +489 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_boundary.py +211 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_boundary_realization.py +346 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_build_dedupe.py +98 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_capture_apparatus.py +404 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_capture_config.py +196 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_content_mounts.py +260 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_content_realization.py +211 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_direct_network.py +130 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_environment.py +316 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_generic_base_images.py +190 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_image_fetch.py +81 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_image_realization.py +491 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_lifecycle.py +177 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_mixed_realization.py +275 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_model_realization.py +289 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_network_conflicts.py +124 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_network_realization.py +497 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_node_generation.py +229 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_node_topology.py +165 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_observability.py +263 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_owned_start.py +345 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_owner_labels.py +31 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_ownership_override.py +250 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_port_readback.py +57 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_port_realization.py +166 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_post_start.py +172 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_project_cleanup.py +127 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_project_inventory.py +174 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_queries.py +468 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_realization.py +463 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_realization_networks.py +299 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_receipt_capture.py +482 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_resource_ownership.py +357 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_resource_resolution.py +487 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_config.py +386 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_inventory.py +99 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_materialization.py +102 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_observation.py +164 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_observation_helpers.py +105 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_runtime_orchestration.py +360 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_seed_attribution.py +202 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_seed_execution.py +147 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_seed_safety.py +30 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_service_health.py +262 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_service_index_realization.py +210 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_spawn_image_realization.py +352 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_artifact_helpers.py +232 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_constants.py +86 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_graph.py +265 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_model.py +492 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_override.py +47 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_readiness.py +435 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_realization.py +459 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_services.py +49 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stateful_volumes.py +93 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_stop.py +181 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_substrate_attestation.py +309 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_substrate_gate.py +337 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_traffic_mirror.py +266 -0
- lilrae-8.0.0/src/aptl/core/deployment/_compose_volume_cleanup.py +80 -0
- lilrae-8.0.0/src/aptl/core/deployment/_cortex_service_credentials.py +102 -0
- lilrae-8.0.0/src/aptl/core/deployment/_declared_listener_readiness.py +125 -0
- lilrae-8.0.0/src/aptl/core/deployment/_docker_endpoint_binding.py +205 -0
- lilrae-8.0.0/src/aptl/core/deployment/_docker_image_identity.py +211 -0
- lilrae-8.0.0/src/aptl/core/deployment/_environment_bindings.py +460 -0
- lilrae-8.0.0/src/aptl/core/deployment/_flag_signing_keys.py +102 -0
- lilrae-8.0.0/src/aptl/core/deployment/_forwarding_agent_realization.py +321 -0
- lilrae-8.0.0/src/aptl/core/deployment/_misp_cache_credential.py +178 -0
- lilrae-8.0.0/src/aptl/core/deployment/_misp_server_tls.py +119 -0
- lilrae-8.0.0/src/aptl/core/deployment/_operator_access.py +411 -0
- lilrae-8.0.0/src/aptl/core/deployment/_operator_access_endpoints.py +90 -0
- lilrae-8.0.0/src/aptl/core/deployment/_operator_access_proof.py +251 -0
- lilrae-8.0.0/src/aptl/core/deployment/_proc_net_listeners.py +232 -0
- lilrae-8.0.0/src/aptl/core/deployment/_realization_primitives.py +222 -0
- lilrae-8.0.0/src/aptl/core/deployment/_runtime_materialization_effective.py +327 -0
- lilrae-8.0.0/src/aptl/core/deployment/_runtime_materialization_qualification.py +392 -0
- lilrae-8.0.0/src/aptl/core/deployment/_runtime_materialization_types.py +50 -0
- lilrae-8.0.0/src/aptl/core/deployment/_service_index_materialization.py +453 -0
- lilrae-8.0.0/src/aptl/core/deployment/_ssh_key_bundle.py +217 -0
- lilrae-8.0.0/src/aptl/core/deployment/_stateful_certificates.py +352 -0
- lilrae-8.0.0/src/aptl/core/deployment/_wazuh_agent_configuration.py +201 -0
- lilrae-8.0.0/src/aptl/core/deployment/_wazuh_agent_realization.py +406 -0
- lilrae-8.0.0/src/aptl/core/deployment/_wazuh_attestation.py +377 -0
- lilrae-8.0.0/src/aptl/core/deployment/_wazuh_identity.py +129 -0
- lilrae-8.0.0/src/aptl/core/deployment/backend.py +441 -0
- lilrae-8.0.0/src/aptl/core/deployment/backend_container_ops.py +183 -0
- lilrae-8.0.0/src/aptl/core/deployment/backend_host_inventory.py +92 -0
- lilrae-8.0.0/src/aptl/core/deployment/boundary.py +395 -0
- lilrae-8.0.0/src/aptl/core/deployment/boundary_compiler.py +311 -0
- lilrae-8.0.0/src/aptl/core/deployment/docker_compose.py +437 -0
- lilrae-8.0.0/src/aptl/core/deployment/errors.py +40 -0
- lilrae-8.0.0/src/aptl/core/deployment/observation.py +86 -0
- lilrae-8.0.0/src/aptl/core/deployment/realization.py +472 -0
- lilrae-8.0.0/src/aptl/core/deployment/runtime_materialization.py +21 -0
- lilrae-8.0.0/src/aptl/core/deployment/ssh_compose.py +143 -0
- lilrae-8.0.0/src/aptl/core/detection.py +248 -0
- lilrae-8.0.0/src/aptl/core/doctor.py +247 -0
- lilrae-8.0.0/src/aptl/core/endpoints.py +350 -0
- lilrae-8.0.0/src/aptl/core/env.py +424 -0
- lilrae-8.0.0/src/aptl/core/ephemeral_containers.py +175 -0
- lilrae-8.0.0/src/aptl/core/evidence/__init__.py +6 -0
- lilrae-8.0.0/src/aptl/core/evidence/_persist.py +373 -0
- lilrae-8.0.0/src/aptl/core/evidence/adapters/__init__.py +6 -0
- lilrae-8.0.0/src/aptl/core/evidence/adapters/builtins.py +129 -0
- lilrae-8.0.0/src/aptl/core/evidence/adapters/sources.py +154 -0
- lilrae-8.0.0/src/aptl/core/evidence/adapters/wiring.py +49 -0
- lilrae-8.0.0/src/aptl/core/evidence/content_store.py +123 -0
- lilrae-8.0.0/src/aptl/core/evidence/coordinator.py +465 -0
- lilrae-8.0.0/src/aptl/core/evidence/outcomes.py +110 -0
- lilrae-8.0.0/src/aptl/core/evidence/protocol.py +119 -0
- lilrae-8.0.0/src/aptl/core/evidence/records.py +172 -0
- lilrae-8.0.0/src/aptl/core/evidence/visibility.py +39 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/__init__.py +31 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/_collect.py +430 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/_io.py +78 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/archive.py +247 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/build.py +259 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/closure.py +148 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/codes.py +43 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/envelope.py +158 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/errors.py +24 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/inventory.py +175 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/limits.py +48 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/models.py +92 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/projections/__init__.py +31 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/projections/jsonl.py +109 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/projections/ocsf.py +105 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/projections/parquet.py +267 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/projections/registry.py +120 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/schemas.py +111 -0
- lilrae-8.0.0/src/aptl/core/evidence_bundle/verify.py +366 -0
- lilrae-8.0.0/src/aptl/core/execution/__init__.py +31 -0
- lilrae-8.0.0/src/aptl/core/execution/apparatus.py +173 -0
- lilrae-8.0.0/src/aptl/core/execution/assembly.py +417 -0
- lilrae-8.0.0/src/aptl/core/execution/bridges.py +177 -0
- lilrae-8.0.0/src/aptl/core/execution/executor.py +272 -0
- lilrae-8.0.0/src/aptl/core/execution_boundary.py +454 -0
- lilrae-8.0.0/src/aptl/core/experiment/__init__.py +10 -0
- lilrae-8.0.0/src/aptl/core/experiment/_capture_matching.py +89 -0
- lilrae-8.0.0/src/aptl/core/experiment/admission.py +412 -0
- lilrae-8.0.0/src/aptl/core/experiment/admission_artifacts.py +273 -0
- lilrae-8.0.0/src/aptl/core/experiment/admission_steps.py +375 -0
- lilrae-8.0.0/src/aptl/core/experiment/apparatus.py +452 -0
- lilrae-8.0.0/src/aptl/core/experiment/bindings.py +434 -0
- lilrae-8.0.0/src/aptl/core/experiment/capture_mapping.py +122 -0
- lilrae-8.0.0/src/aptl/core/experiment/capture_plan.py +207 -0
- lilrae-8.0.0/src/aptl/core/experiment/capture_registry.py +462 -0
- lilrae-8.0.0/src/aptl/core/experiment/controller.py +142 -0
- lilrae-8.0.0/src/aptl/core/experiment/errors.py +227 -0
- lilrae-8.0.0/src/aptl/core/experiment/policy.py +182 -0
- lilrae-8.0.0/src/aptl/core/experiment/resolver.py +367 -0
- lilrae-8.0.0/src/aptl/core/experiment/spec_loading.py +311 -0
- lilrae-8.0.0/src/aptl/core/experiment/trial_plan.py +483 -0
- lilrae-8.0.0/src/aptl/core/experiment/trial_plan_models.py +111 -0
- lilrae-8.0.0/src/aptl/core/exporter.py +200 -0
- lilrae-8.0.0/src/aptl/core/flags.py +176 -0
- lilrae-8.0.0/src/aptl/core/health.py +139 -0
- lilrae-8.0.0/src/aptl/core/host_keys.py +242 -0
- lilrae-8.0.0/src/aptl/core/host_ports.py +422 -0
- lilrae-8.0.0/src/aptl/core/hostenv.py +141 -0
- lilrae-8.0.0/src/aptl/core/kill.py +497 -0
- lilrae-8.0.0/src/aptl/core/lab.py +4888 -0
- lilrae-8.0.0/src/aptl/core/lab_types.py +221 -0
- lilrae-8.0.0/src/aptl/core/lifecycle_cleanup.py +248 -0
- lilrae-8.0.0/src/aptl/core/lifecycle_enforce.py +346 -0
- lilrae-8.0.0/src/aptl/core/lifecycle_guard.py +454 -0
- lilrae-8.0.0/src/aptl/core/lifecycle_policy.py +257 -0
- lilrae-8.0.0/src/aptl/core/mcp_ingress.py +56 -0
- lilrae-8.0.0/src/aptl/core/objectives.py +161 -0
- lilrae-8.0.0/src/aptl/core/operator_group_state.py +100 -0
- lilrae-8.0.0/src/aptl/core/provenance/__init__.py +27 -0
- lilrae-8.0.0/src/aptl/core/provenance/coordinator.py +370 -0
- lilrae-8.0.0/src/aptl/core/provenance/identity.py +150 -0
- lilrae-8.0.0/src/aptl/core/provenance/outcomes.py +172 -0
- lilrae-8.0.0/src/aptl/core/provenance/protocol.py +97 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/__init__.py +13 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/_degraded.py +93 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/apparatus.py +111 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/artifacts.py +156 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/config_identity.py +173 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/detection.py +284 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/experiment.py +166 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/participant.py +103 -0
- lilrae-8.0.0/src/aptl/core/provenance/providers/runtime_facts.py +269 -0
- lilrae-8.0.0/src/aptl/core/provenance/record.py +133 -0
- lilrae-8.0.0/src/aptl/core/provenance/registrations.py +222 -0
- lilrae-8.0.0/src/aptl/core/provenance/registry.py +219 -0
- lilrae-8.0.0/src/aptl/core/runstore.py +487 -0
- lilrae-8.0.0/src/aptl/core/runstore_internals.py +234 -0
- lilrae-8.0.0/src/aptl/core/runtime/__init__.py +13 -0
- lilrae-8.0.0/src/aptl/core/runtime/workflow_engine.py +436 -0
- lilrae-8.0.0/src/aptl/core/scenario_bundle.py +317 -0
- lilrae-8.0.0/src/aptl/core/scenario_catalog.py +285 -0
- lilrae-8.0.0/src/aptl/core/scenarios.py +39 -0
- lilrae-8.0.0/src/aptl/core/seed_spec.py +59 -0
- lilrae-8.0.0/src/aptl/core/services.py +320 -0
- lilrae-8.0.0/src/aptl/core/session.py +408 -0
- lilrae-8.0.0/src/aptl/core/snapshot.py +469 -0
- lilrae-8.0.0/src/aptl/core/snapshot_models.py +127 -0
- lilrae-8.0.0/src/aptl/core/soc_ca.py +365 -0
- lilrae-8.0.0/src/aptl/core/ssh.py +362 -0
- lilrae-8.0.0/src/aptl/core/startup_reset_state.py +407 -0
- lilrae-8.0.0/src/aptl/core/suricata_seed.py +377 -0
- lilrae-8.0.0/src/aptl/core/sysreqs.py +266 -0
- lilrae-8.0.0/src/aptl/core/telemetry.py +277 -0
- lilrae-8.0.0/src/aptl/core/telemetry_export.py +87 -0
- lilrae-8.0.0/src/aptl/runtime_authority.py +123 -0
- lilrae-8.0.0/src/aptl/services/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/__init__.py +10 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/config.py +174 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/main.py +191 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/misp_client.py +108 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/models.py +48 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/rule_writer.py +46 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/suricata_reloader.py +95 -0
- lilrae-8.0.0/src/aptl/services/misp_suricata_sync/translator.py +357 -0
- lilrae-8.0.0/src/aptl/utils/__init__.py +0 -0
- lilrae-8.0.0/src/aptl/utils/_pathsafe_core.py +231 -0
- lilrae-8.0.0/src/aptl/utils/_pathsafe_read.py +188 -0
- lilrae-8.0.0/src/aptl/utils/curl_safe.py +286 -0
- lilrae-8.0.0/src/aptl/utils/deterministic_archive.py +82 -0
- lilrae-8.0.0/src/aptl/utils/logging.py +44 -0
- lilrae-8.0.0/src/aptl/utils/mcp_packaging.py +262 -0
- lilrae-8.0.0/src/aptl/utils/pathsafe.py +409 -0
- lilrae-8.0.0/src/aptl/utils/placeholders.py +32 -0
- lilrae-8.0.0/src/aptl/utils/redaction.py +1094 -0
- lilrae-8.0.0/src/aptl/utils/shell.py +134 -0
- lilrae-8.0.0/src/aptl/utils/strict_json.py +47 -0
- lilrae-8.0.0/src/aptl/validation/__init__.py +1 -0
- lilrae-8.0.0/src/aptl/validation/_account_parity.py +126 -0
- lilrae-8.0.0/src/aptl/validation/_gate_checks.py +430 -0
- lilrae-8.0.0/src/aptl/validation/_gate_no_start_backend.py +295 -0
- lilrae-8.0.0/src/aptl/validation/_gate_raes_cli.py +100 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_alerts.py +25 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_checks.py +414 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_models.py +198 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_operations.py +260 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_probes.py +437 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_readiness.py +192 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_telemetry.py +110 -0
- lilrae-8.0.0/src/aptl/validation/_live_gate_variation.py +92 -0
- lilrae-8.0.0/src/aptl/validation/_scenario_verification_contract.py +323 -0
- lilrae-8.0.0/src/aptl/validation/curated_live_proof.py +325 -0
- lilrae-8.0.0/src/aptl/validation/mcp_protocol.py +271 -0
- lilrae-8.0.0/src/aptl/validation/participant_live_proof.py +452 -0
- lilrae-8.0.0/src/aptl/validation/participant_mcp_smoke.py +223 -0
- lilrae-8.0.0/src/aptl/validation/participant_profile.py +369 -0
- lilrae-8.0.0/src/aptl/validation/participant_profile_models.py +366 -0
- lilrae-8.0.0/src/aptl/validation/participant_proof_redaction.py +107 -0
- lilrae-8.0.0/src/aptl/validation/participant_qualification.py +320 -0
- lilrae-8.0.0/src/aptl/validation/participant_qualification_evidence.py +333 -0
- lilrae-8.0.0/src/aptl/validation/range_snapshot_summary.py +51 -0
- lilrae-8.0.0/src/aptl/validation/realization_declaration_gate.py +112 -0
- lilrae-8.0.0/src/aptl/validation/research_scenario_catalog.py +45 -0
- lilrae-8.0.0/src/aptl/validation/scenario_verification.py +343 -0
- lilrae-8.0.0/src/aptl/validation/scenario_verification_discovery.py +395 -0
- lilrae-8.0.0/src/aptl/validation/techvault_gate.py +152 -0
- lilrae-8.0.0/src/aptl/validation/techvault_live_gate.py +475 -0
- lilrae-8.0.0/src/aptl/workbench/__init__.py +57 -0
- lilrae-8.0.0/src/aptl/workbench/_pipe_exchange.py +186 -0
- lilrae-8.0.0/src/aptl/workbench/access.py +154 -0
- lilrae-8.0.0/src/aptl/workbench/access_clients.py +183 -0
- lilrae-8.0.0/src/aptl/workbench/agent.py +493 -0
- lilrae-8.0.0/src/aptl/workbench/app.py +326 -0
- lilrae-8.0.0/src/aptl/workbench/bootstrap.py +299 -0
- lilrae-8.0.0/src/aptl/workbench/browser_gateway.py +372 -0
- lilrae-8.0.0/src/aptl/workbench/browser_mcp.py +190 -0
- lilrae-8.0.0/src/aptl/workbench/client_files.py +163 -0
- lilrae-8.0.0/src/aptl/workbench/codex_agent.py +313 -0
- lilrae-8.0.0/src/aptl/workbench/credentials.py +81 -0
- lilrae-8.0.0/src/aptl/workbench/decision_schema.py +63 -0
- lilrae-8.0.0/src/aptl/workbench/dispatch.py +224 -0
- lilrae-8.0.0/src/aptl/workbench/guest_binding.py +464 -0
- lilrae-8.0.0/src/aptl/workbench/mcp_results.py +76 -0
- lilrae-8.0.0/src/aptl/workbench/participant_source_binding.py +156 -0
- lilrae-8.0.0/src/aptl/workbench/preparation.py +262 -0
- lilrae-8.0.0/src/aptl/workbench/process.py +385 -0
- lilrae-8.0.0/src/aptl/workbench/profiles.py +334 -0
- lilrae-8.0.0/src/aptl/workbench/relay.py +295 -0
- lilrae-8.0.0/src/aptl/workbench/runtime.py +363 -0
- lilrae-8.0.0/src/aptl_techvault/README.md +102 -0
- lilrae-8.0.0/src/aptl_techvault/__init__.py +30 -0
- lilrae-8.0.0/src/aptl_techvault/build_cache.py +113 -0
- lilrae-8.0.0/src/aptl_techvault/capture.py +123 -0
- lilrae-8.0.0/src/aptl_techvault/capture_registrations.py +478 -0
- lilrae-8.0.0/src/aptl_techvault/database.py +312 -0
- lilrae-8.0.0/src/aptl_techvault/database_access.py +287 -0
- lilrae-8.0.0/src/aptl_techvault/database_support.py +99 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/__init__.py +1 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/_techvault_native_cortex.py +183 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/proposition_truth.py +211 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault.py +441 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_enrollment_baseline.py +99 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_manager_alerts.py +98 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_misp_readiness.py +179 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_native.py +457 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_native_readiness.py +465 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_native_support.py +209 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_readiness.py +164 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_readiness_probes.py +446 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_telemetry_stimulus.py +215 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_transcript.py +384 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/techvault_wazuh_agent_readiness.py +180 -0
- lilrae-8.0.0/src/aptl_techvault/evidence/transcript_parsing.py +303 -0
- lilrae-8.0.0/src/aptl_techvault/log_source_support.py +407 -0
- lilrae-8.0.0/src/aptl_techvault/log_sources.py +445 -0
- lilrae-8.0.0/src/aptl_techvault/participant_smoke.py +202 -0
- lilrae-8.0.0/src/aptl_techvault/planning_compatibility.py +68 -0
- lilrae-8.0.0/src/aptl_techvault/redis_acl_observation.py +149 -0
- lilrae-8.0.0/src/aptl_techvault/runtime_parameters.py +77 -0
- lilrae-8.0.0/src/aptl_techvault/serving.py +89 -0
- lilrae-8.0.0/src/aptl_techvault/startup.py +493 -0
- lilrae-8.0.0/src/aptl_techvault/study.py +105 -0
- lilrae-8.0.0/src/aptl_techvault/study_capture_registrations.py +62 -0
- lilrae-8.0.0/src/aptl_techvault/verification.py +255 -0
- lilrae-8.0.0/src/aptl_techvault/wazuh_credentials.py +62 -0
- lilrae-8.0.0/tests/__init__.py +0 -0
- lilrae-8.0.0/tests/_bundle_fixtures.py +204 -0
- lilrae-8.0.0/tests/archival_fixtures.py +72 -0
- lilrae-8.0.0/tests/conftest.py +219 -0
- lilrae-8.0.0/tests/fixture_pack.py +77 -0
- lilrae-8.0.0/tests/fixtures/mcp_transport_dispatch.py +38 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/assets/content/notice.txt +1 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/assets/content/tree.tar +0 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/associated-artifacts.json +97 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/docs/provenance-ledger.yaml +45 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/pack.yaml +18 -0
- lilrae-8.0.0/tests/fixtures/packs/materialization-envelope/sdl/materialization-envelope.sdl.yaml +90 -0
- lilrae-8.0.0/tests/fixtures/redaction_parity_corpus.json +289 -0
- lilrae-8.0.0/tests/fixtures/workbench_mcp_server.py +43 -0
- lilrae-8.0.0/tests/helpers.py +693 -0
- lilrae-8.0.0/tests/techvault_pack.py +69 -0
- lilrae-8.0.0/tests/test_account_credentials.py +189 -0
- lilrae-8.0.0/tests/test_account_provider.py +347 -0
- lilrae-8.0.0/tests/test_adr_049_appliance_contract.py +106 -0
- lilrae-8.0.0/tests/test_api_auth.py +255 -0
- lilrae-8.0.0/tests/test_api_bff.py +727 -0
- lilrae-8.0.0/tests/test_api_config.py +173 -0
- lilrae-8.0.0/tests/test_api_integration.py +190 -0
- lilrae-8.0.0/tests/test_api_kill.py +104 -0
- lilrae-8.0.0/tests/test_api_lab.py +553 -0
- lilrae-8.0.0/tests/test_api_scenarios.py +93 -0
- lilrae-8.0.0/tests/test_api_terminal.py +865 -0
- lilrae-8.0.0/tests/test_appliance_access_service.py +446 -0
- lilrae-8.0.0/tests/test_appliance_boundary_gate.py +184 -0
- lilrae-8.0.0/tests/test_appliance_boundary_integration.py +479 -0
- lilrae-8.0.0/tests/test_appliance_boundary_inventory.py +257 -0
- lilrae-8.0.0/tests/test_appliance_boundary_policy.py +187 -0
- lilrae-8.0.0/tests/test_appliance_download.py +123 -0
- lilrae-8.0.0/tests/test_appliance_egress_proxy.py +158 -0
- lilrae-8.0.0/tests/test_appliance_guest_observation.py +462 -0
- lilrae-8.0.0/tests/test_appliance_guest_surfaces.py +82 -0
- lilrae-8.0.0/tests/test_appliance_loopback_proxy.py +93 -0
- lilrae-8.0.0/tests/test_appliance_policy.py +35 -0
- lilrae-8.0.0/tests/test_appliance_release_workflow.py +209 -0
- lilrae-8.0.0/tests/test_appliance_seat_access.py +355 -0
- lilrae-8.0.0/tests/test_appliance_seat_allocation.py +252 -0
- lilrae-8.0.0/tests/test_appliance_seat_cli.py +548 -0
- lilrae-8.0.0/tests/test_appliance_seat_device.py +34 -0
- lilrae-8.0.0/tests/test_appliance_seat_exposure.py +134 -0
- lilrae-8.0.0/tests/test_appliance_seat_kiosk.py +91 -0
- lilrae-8.0.0/tests/test_appliance_seat_lifecycle.py +1060 -0
- lilrae-8.0.0/tests/test_appliance_seat_namespace.py +89 -0
- lilrae-8.0.0/tests/test_appliance_seat_observation.py +287 -0
- lilrae-8.0.0/tests/test_appliance_seat_paths.py +49 -0
- lilrae-8.0.0/tests/test_appliance_seat_persistence.py +83 -0
- lilrae-8.0.0/tests/test_appliance_seat_portability.py +60 -0
- lilrae-8.0.0/tests/test_appliance_seat_prereqs.py +179 -0
- lilrae-8.0.0/tests/test_appliance_seat_readiness.py +166 -0
- lilrae-8.0.0/tests/test_appliance_seat_vm.py +595 -0
- lilrae-8.0.0/tests/test_appliance_versioning.py +37 -0
- lilrae-8.0.0/tests/test_appliance_vm_containment.py +143 -0
- lilrae-8.0.0/tests/test_application_provider_realization.py +72 -0
- lilrae-8.0.0/tests/test_archival_discovery_index.py +234 -0
- lilrae-8.0.0/tests/test_archival_legacy_manifest.py +82 -0
- lilrae-8.0.0/tests/test_archival_run_record.py +163 -0
- lilrae-8.0.0/tests/test_archival_seal.py +296 -0
- lilrae-8.0.0/tests/test_archival_security.py +75 -0
- lilrae-8.0.0/tests/test_archival_status.py +112 -0
- lilrae-8.0.0/tests/test_archival_terminal_states.py +96 -0
- lilrae-8.0.0/tests/test_assert_project_teardown.py +208 -0
- lilrae-8.0.0/tests/test_assets.py +369 -0
- lilrae-8.0.0/tests/test_attacks.py +14 -0
- lilrae-8.0.0/tests/test_backend_observability.py +310 -0
- lilrae-8.0.0/tests/test_base_container_admission_integration.py +197 -0
- lilrae-8.0.0/tests/test_boot_realization_gate.py +708 -0
- lilrae-8.0.0/tests/test_boundary_compiler.py +334 -0
- lilrae-8.0.0/tests/test_bounded_participant_agency_scenario.py +259 -0
- lilrae-8.0.0/tests/test_bounded_participant_runtime.py +1606 -0
- lilrae-8.0.0/tests/test_browser_gateway.py +137 -0
- lilrae-8.0.0/tests/test_capture_apparatus.py +359 -0
- lilrae-8.0.0/tests/test_capture_registry.py +527 -0
- lilrae-8.0.0/tests/test_certs.py +611 -0
- lilrae-8.0.0/tests/test_cli.py +2683 -0
- lilrae-8.0.0/tests/test_cli_config.py +199 -0
- lilrae-8.0.0/tests/test_cli_container.py +276 -0
- lilrae-8.0.0/tests/test_cli_kill.py +178 -0
- lilrae-8.0.0/tests/test_cli_lifecycle.py +136 -0
- lilrae-8.0.0/tests/test_cli_web.py +258 -0
- lilrae-8.0.0/tests/test_collectors.py +592 -0
- lilrae-8.0.0/tests/test_compose_autoremove.py +187 -0
- lilrae-8.0.0/tests/test_compose_base_substrate.py +1824 -0
- lilrae-8.0.0/tests/test_compose_boundary_realization.py +196 -0
- lilrae-8.0.0/tests/test_compose_capability_necessity.py +222 -0
- lilrae-8.0.0/tests/test_compose_environment_bindings.py +1299 -0
- lilrae-8.0.0/tests/test_compose_network_readback.py +340 -0
- lilrae-8.0.0/tests/test_compose_platform_boundary.py +326 -0
- lilrae-8.0.0/tests/test_compose_port_realization.py +179 -0
- lilrae-8.0.0/tests/test_compose_resource_ownership.py +1143 -0
- lilrae-8.0.0/tests/test_compose_service_health.py +257 -0
- lilrae-8.0.0/tests/test_compose_substrate_attestation.py +384 -0
- lilrae-8.0.0/tests/test_compose_version.py +20 -0
- lilrae-8.0.0/tests/test_compose_volume_cleanup.py +114 -0
- lilrae-8.0.0/tests/test_config.py +554 -0
- lilrae-8.0.0/tests/test_config_fuzz.py +121 -0
- lilrae-8.0.0/tests/test_consistency.py +379 -0
- lilrae-8.0.0/tests/test_container_lifecycle_policy.py +203 -0
- lilrae-8.0.0/tests/test_container_ssh_policy.py +107 -0
- lilrae-8.0.0/tests/test_content_realization_fuzz.py +124 -0
- lilrae-8.0.0/tests/test_content_realization_source_policy.py +261 -0
- lilrae-8.0.0/tests/test_continuity.py +1113 -0
- lilrae-8.0.0/tests/test_contracts.py +132 -0
- lilrae-8.0.0/tests/test_correlation_builder.py +945 -0
- lilrae-8.0.0/tests/test_correlation_clock.py +215 -0
- lilrae-8.0.0/tests/test_correlation_identity.py +234 -0
- lilrae-8.0.0/tests/test_correlation_models.py +534 -0
- lilrae-8.0.0/tests/test_correlation_persistence.py +384 -0
- lilrae-8.0.0/tests/test_cortex_integration_config.py +199 -0
- lilrae-8.0.0/tests/test_credentials.py +1156 -0
- lilrae-8.0.0/tests/test_credentials_fuzz.py +301 -0
- lilrae-8.0.0/tests/test_curated_live_proof.py +329 -0
- lilrae-8.0.0/tests/test_curl_safe.py +187 -0
- lilrae-8.0.0/tests/test_declared_listener_readiness.py +203 -0
- lilrae-8.0.0/tests/test_deployment_backend.py +5080 -0
- lilrae-8.0.0/tests/test_deployment_stateful_realization.py +2681 -0
- lilrae-8.0.0/tests/test_detection.py +337 -0
- lilrae-8.0.0/tests/test_deterministic_archive.py +81 -0
- lilrae-8.0.0/tests/test_docker_compose_port_bindings.py +218 -0
- lilrae-8.0.0/tests/test_docker_image_identity.py +87 -0
- lilrae-8.0.0/tests/test_docs_publishing.py +70 -0
- lilrae-8.0.0/tests/test_docs_user_journey.py +195 -0
- lilrae-8.0.0/tests/test_doctor.py +730 -0
- lilrae-8.0.0/tests/test_endpoints.py +537 -0
- lilrae-8.0.0/tests/test_env.py +376 -0
- lilrae-8.0.0/tests/test_env_fuzz.py +212 -0
- lilrae-8.0.0/tests/test_env_hydration.py +204 -0
- lilrae-8.0.0/tests/test_env_pack_bundle.py +151 -0
- lilrae-8.0.0/tests/test_env_pack_realization.py +1327 -0
- lilrae-8.0.0/tests/test_ephemeral_containers.py +248 -0
- lilrae-8.0.0/tests/test_evidence_adapters.py +214 -0
- lilrae-8.0.0/tests/test_evidence_bundle_archive.py +190 -0
- lilrae-8.0.0/tests/test_evidence_bundle_cli.py +76 -0
- lilrae-8.0.0/tests/test_evidence_bundle_closure.py +318 -0
- lilrae-8.0.0/tests/test_evidence_bundle_fuzz.py +128 -0
- lilrae-8.0.0/tests/test_evidence_bundle_inventory.py +181 -0
- lilrae-8.0.0/tests/test_evidence_bundle_projections.py +279 -0
- lilrae-8.0.0/tests/test_evidence_bundle_security.py +206 -0
- lilrae-8.0.0/tests/test_evidence_bundle_verify.py +246 -0
- lilrae-8.0.0/tests/test_evidence_coordinator.py +513 -0
- lilrae-8.0.0/tests/test_evidence_correlation.py +86 -0
- lilrae-8.0.0/tests/test_evidence_fuzz.py +66 -0
- lilrae-8.0.0/tests/test_evidence_records.py +156 -0
- lilrae-8.0.0/tests/test_evidence_security.py +350 -0
- lilrae-8.0.0/tests/test_execution_boundary.py +325 -0
- lilrae-8.0.0/tests/test_execution_bridges.py +170 -0
- lilrae-8.0.0/tests/test_execution_executor.py +302 -0
- lilrae-8.0.0/tests/test_experiment_admission.py +1872 -0
- lilrae-8.0.0/tests/test_experiment_apparatus.py +919 -0
- lilrae-8.0.0/tests/test_experiment_bindings.py +660 -0
- lilrae-8.0.0/tests/test_experiment_capture_mapping.py +334 -0
- lilrae-8.0.0/tests/test_experiment_cli.py +394 -0
- lilrae-8.0.0/tests/test_experiment_contract.py +291 -0
- lilrae-8.0.0/tests/test_experiment_controller.py +507 -0
- lilrae-8.0.0/tests/test_experiment_errors.py +326 -0
- lilrae-8.0.0/tests/test_experiment_persistence.py +162 -0
- lilrae-8.0.0/tests/test_experiment_policy.py +141 -0
- lilrae-8.0.0/tests/test_experiment_resolver.py +430 -0
- lilrae-8.0.0/tests/test_experiment_spec_loading.py +489 -0
- lilrae-8.0.0/tests/test_experiment_trial_plan.py +970 -0
- lilrae-8.0.0/tests/test_exporter.py +249 -0
- lilrae-8.0.0/tests/test_flag_signing_keys.py +103 -0
- lilrae-8.0.0/tests/test_ground_control_config.py +54 -0
- lilrae-8.0.0/tests/test_guest_transport_preparation.py +51 -0
- lilrae-8.0.0/tests/test_hashed_requirements.py +178 -0
- lilrae-8.0.0/tests/test_hatch_build_hook.py +237 -0
- lilrae-8.0.0/tests/test_health.py +183 -0
- lilrae-8.0.0/tests/test_host_keys.py +186 -0
- lilrae-8.0.0/tests/test_host_mcp_boundary.py +51 -0
- lilrae-8.0.0/tests/test_host_ports.py +394 -0
- lilrae-8.0.0/tests/test_hosted_seat_helper.py +293 -0
- lilrae-8.0.0/tests/test_hostenv.py +131 -0
- lilrae-8.0.0/tests/test_in_process_agents.py +75 -0
- lilrae-8.0.0/tests/test_kali_capture_broker.py +363 -0
- lilrae-8.0.0/tests/test_kali_capture_compose.py +638 -0
- lilrae-8.0.0/tests/test_kill.py +661 -0
- lilrae-8.0.0/tests/test_lab.py +6164 -0
- lilrae-8.0.0/tests/test_lab_core_only_artifact.py +114 -0
- lilrae-8.0.0/tests/test_lab_fresh_start.py +98 -0
- lilrae-8.0.0/tests/test_lab_init_cli.py +62 -0
- lilrae-8.0.0/tests/test_lab_lifecycle_selection.py +497 -0
- lilrae-8.0.0/tests/test_lifecycle_cleanup.py +1038 -0
- lilrae-8.0.0/tests/test_lifecycle_guard.py +350 -0
- lilrae-8.0.0/tests/test_lifecycle_policy.py +497 -0
- lilrae-8.0.0/tests/test_lilrae_rename_boundary.py +192 -0
- lilrae-8.0.0/tests/test_line_endings.py +55 -0
- lilrae-8.0.0/tests/test_listener_observation_integration.py +108 -0
- lilrae-8.0.0/tests/test_live_gate_operations.py +493 -0
- lilrae-8.0.0/tests/test_live_helpers.py +39 -0
- lilrae-8.0.0/tests/test_logging.py +46 -0
- lilrae-8.0.0/tests/test_manifest_observation.py +105 -0
- lilrae-8.0.0/tests/test_materializer_integration.py +107 -0
- lilrae-8.0.0/tests/test_mcp_access.py +117 -0
- lilrae-8.0.0/tests/test_mcp_access_cli.py +79 -0
- lilrae-8.0.0/tests/test_mcp_access_clients.py +206 -0
- lilrae-8.0.0/tests/test_mcp_appliance_admission.py +166 -0
- lilrae-8.0.0/tests/test_mcp_build_script.py +28 -0
- lilrae-8.0.0/tests/test_mcp_config_example.py +211 -0
- lilrae-8.0.0/tests/test_mcp_dispatch.py +150 -0
- lilrae-8.0.0/tests/test_mcp_guest_binding.py +314 -0
- lilrae-8.0.0/tests/test_mcp_guest_management.py +245 -0
- lilrae-8.0.0/tests/test_mcp_native_ingress.py +79 -0
- lilrae-8.0.0/tests/test_mcp_payload_processes.py +140 -0
- lilrae-8.0.0/tests/test_mcp_protocol.py +168 -0
- lilrae-8.0.0/tests/test_mcp_relay.py +121 -0
- lilrae-8.0.0/tests/test_mcp_result_redaction.py +61 -0
- lilrae-8.0.0/tests/test_mcp_transport_processes.py +452 -0
- lilrae-8.0.0/tests/test_misp_redis_realization_contract.py +509 -0
- lilrae-8.0.0/tests/test_misp_suricata_sync.py +1220 -0
- lilrae-8.0.0/tests/test_mixed_realization_dispatch.py +257 -0
- lilrae-8.0.0/tests/test_mixed_realization_integration.py +262 -0
- lilrae-8.0.0/tests/test_network_boundary_helper.py +303 -0
- lilrae-8.0.0/tests/test_network_boundary_probe.py +49 -0
- lilrae-8.0.0/tests/test_no_silent_privilege_escalation.py +108 -0
- lilrae-8.0.0/tests/test_node_materialization_integration.py +257 -0
- lilrae-8.0.0/tests/test_operator_access.py +727 -0
- lilrae-8.0.0/tests/test_out_of_tree_bundle_integration.py +109 -0
- lilrae-8.0.0/tests/test_pack_adapter_install_artifact.py +501 -0
- lilrae-8.0.0/tests/test_pack_adapter_install_seam.py +477 -0
- lilrae-8.0.0/tests/test_pack_backend_interaction.py +362 -0
- lilrae-8.0.0/tests/test_pack_backend_realization.py +338 -0
- lilrae-8.0.0/tests/test_pack_content_resolution.py +391 -0
- lilrae-8.0.0/tests/test_paper_scenario_static_gate.py +245 -0
- lilrae-8.0.0/tests/test_participant_mcp_smoke.py +312 -0
- lilrae-8.0.0/tests/test_participant_profile.py +162 -0
- lilrae-8.0.0/tests/test_participant_qualification.py +625 -0
- lilrae-8.0.0/tests/test_participant_workbench.py +846 -0
- lilrae-8.0.0/tests/test_participant_workbench_adapter.py +962 -0
- lilrae-8.0.0/tests/test_pathsafe.py +611 -0
- lilrae-8.0.0/tests/test_platform_ci_gates.py +357 -0
- lilrae-8.0.0/tests/test_plugin_pack_compatibility.py +93 -0
- lilrae-8.0.0/tests/test_pr_title_guard.py +176 -0
- lilrae-8.0.0/tests/test_precommit_config.py +111 -0
- lilrae-8.0.0/tests/test_proc_net_listeners.py +198 -0
- lilrae-8.0.0/tests/test_promotion_workflow.py +168 -0
- lilrae-8.0.0/tests/test_provenance_apparatus.py +219 -0
- lilrae-8.0.0/tests/test_provenance_artifacts_host.py +231 -0
- lilrae-8.0.0/tests/test_provenance_builtin_fleet.py +278 -0
- lilrae-8.0.0/tests/test_provenance_config_runtime.py +330 -0
- lilrae-8.0.0/tests/test_provenance_coordinator.py +369 -0
- lilrae-8.0.0/tests/test_provenance_detection.py +270 -0
- lilrae-8.0.0/tests/test_provenance_identity.py +160 -0
- lilrae-8.0.0/tests/test_provenance_outcomes.py +108 -0
- lilrae-8.0.0/tests/test_provenance_record.py +191 -0
- lilrae-8.0.0/tests/test_provenance_registry.py +183 -0
- lilrae-8.0.0/tests/test_provenance_review_fixes.py +362 -0
- lilrae-8.0.0/tests/test_raes_acl_realization.py +361 -0
- lilrae-8.0.0/tests/test_raes_artifact_availability.py +420 -0
- lilrae-8.0.0/tests/test_raes_artifact_mechanisms.py +307 -0
- lilrae-8.0.0/tests/test_raes_artifact_satisfaction.py +266 -0
- lilrae-8.0.0/tests/test_raes_authored_artifact_authority.py +161 -0
- lilrae-8.0.0/tests/test_raes_backend.py +4732 -0
- lilrae-8.0.0/tests/test_raes_backend_implementation.py +496 -0
- lilrae-8.0.0/tests/test_raes_base_substrate.py +326 -0
- lilrae-8.0.0/tests/test_raes_content_satisfaction.py +501 -0
- lilrae-8.0.0/tests/test_raes_diagnostics.py +60 -0
- lilrae-8.0.0/tests/test_raes_docker_materializer.py +836 -0
- lilrae-8.0.0/tests/test_raes_dynamic_composition.py +532 -0
- lilrae-8.0.0/tests/test_raes_evaluator.py +567 -0
- lilrae-8.0.0/tests/test_raes_evidence.py +228 -0
- lilrae-8.0.0/tests/test_raes_evidence_acquisition.py +1144 -0
- lilrae-8.0.0/tests/test_raes_materializer.py +372 -0
- lilrae-8.0.0/tests/test_raes_materializer_engine.py +393 -0
- lilrae-8.0.0/tests/test_raes_namespace_cutover.py +114 -0
- lilrae-8.0.0/tests/test_raes_native_evidence_truth.py +397 -0
- lilrae-8.0.0/tests/test_raes_node_desired_state.py +75 -0
- lilrae-8.0.0/tests/test_raes_node_materialization.py +235 -0
- lilrae-8.0.0/tests/test_raes_observation.py +1911 -0
- lilrae-8.0.0/tests/test_raes_orchestrator.py +426 -0
- lilrae-8.0.0/tests/test_raes_package_managers.py +112 -0
- lilrae-8.0.0/tests/test_raes_participant_delivery.py +854 -0
- lilrae-8.0.0/tests/test_raes_planning_compat.py +541 -0
- lilrae-8.0.0/tests/test_raes_realization_service_ports.py +106 -0
- lilrae-8.0.0/tests/test_raes_repro.py +276 -0
- lilrae-8.0.0/tests/test_raes_runtime_attestation.py +198 -0
- lilrae-8.0.0/tests/test_raes_runtime_environment.py +971 -0
- lilrae-8.0.0/tests/test_raes_runtime_observation.py +2802 -0
- lilrae-8.0.0/tests/test_raes_runtime_orchestration.py +1832 -0
- lilrae-8.0.0/tests/test_raes_service_index_schema.py +141 -0
- lilrae-8.0.0/tests/test_raes_service_index_schema_lowering.py +115 -0
- lilrae-8.0.0/tests/test_raes_stateful_realization.py +320 -0
- lilrae-8.0.0/tests/test_range_integration.py +1663 -0
- lilrae-8.0.0/tests/test_realization_declaration_gate.py +102 -0
- lilrae-8.0.0/tests/test_realization_declaration_gate_contract.py +120 -0
- lilrae-8.0.0/tests/test_realization_routing.py +125 -0
- lilrae-8.0.0/tests/test_redaction.py +1019 -0
- lilrae-8.0.0/tests/test_redaction_fuzz.py +238 -0
- lilrae-8.0.0/tests/test_redaction_parity.py +35 -0
- lilrae-8.0.0/tests/test_runstore.py +543 -0
- lilrae-8.0.0/tests/test_runstore_content_store.py +119 -0
- lilrae-8.0.0/tests/test_runtime_materialization.py +454 -0
- lilrae-8.0.0/tests/test_scenario_bundle.py +502 -0
- lilrae-8.0.0/tests/test_scenario_bundle_realization_roots.py +362 -0
- lilrae-8.0.0/tests/test_scenario_bundle_wiring.py +120 -0
- lilrae-8.0.0/tests/test_scenario_catalog.py +225 -0
- lilrae-8.0.0/tests/test_scenario_detail.py +176 -0
- lilrae-8.0.0/tests/test_scenario_pack_ownership_contract.py +266 -0
- lilrae-8.0.0/tests/test_scenario_source_config.py +131 -0
- lilrae-8.0.0/tests/test_scenario_verification_artifacts.py +312 -0
- lilrae-8.0.0/tests/test_scenario_verification_seam.py +681 -0
- lilrae-8.0.0/tests/test_scenarios.py +80 -0
- lilrae-8.0.0/tests/test_scorecard_workflow.py +141 -0
- lilrae-8.0.0/tests/test_seat_desktop.py +226 -0
- lilrae-8.0.0/tests/test_seat_image.py +261 -0
- lilrae-8.0.0/tests/test_seat_image_build.py +301 -0
- lilrae-8.0.0/tests/test_seat_image_config.py +162 -0
- lilrae-8.0.0/tests/test_seat_image_consent.py +88 -0
- lilrae-8.0.0/tests/test_seat_image_runtime.py +286 -0
- lilrae-8.0.0/tests/test_seat_image_selection.py +325 -0
- lilrae-8.0.0/tests/test_seat_image_trust.py +165 -0
- lilrae-8.0.0/tests/test_seat_image_update.py +189 -0
- lilrae-8.0.0/tests/test_seat_launch_descriptor.py +62 -0
- lilrae-8.0.0/tests/test_seat_local_release.py +71 -0
- lilrae-8.0.0/tests/test_seat_maintenance.py +87 -0
- lilrae-8.0.0/tests/test_seat_overlay.py +171 -0
- lilrae-8.0.0/tests/test_seat_overlay_identity.py +103 -0
- lilrae-8.0.0/tests/test_seat_privilege_qualification.py +78 -0
- lilrae-8.0.0/tests/test_seat_privileges.py +326 -0
- lilrae-8.0.0/tests/test_seed_misp_script.py +76 -0
- lilrae-8.0.0/tests/test_seed_prime_failures.py +83 -0
- lilrae-8.0.0/tests/test_seed_script_env.py +139 -0
- lilrae-8.0.0/tests/test_seed_shuffle_script.py +176 -0
- lilrae-8.0.0/tests/test_service_index_materialization.py +316 -0
- lilrae-8.0.0/tests/test_services.py +604 -0
- lilrae-8.0.0/tests/test_session.py +592 -0
- lilrae-8.0.0/tests/test_shell.py +67 -0
- lilrae-8.0.0/tests/test_shuffle_realization_contract.py +174 -0
- lilrae-8.0.0/tests/test_smoke.py +325 -0
- lilrae-8.0.0/tests/test_snapshot.py +741 -0
- lilrae-8.0.0/tests/test_snapshot_status.py +169 -0
- lilrae-8.0.0/tests/test_soc_ca.py +637 -0
- lilrae-8.0.0/tests/test_sonar_assert_no_new_issues.py +115 -0
- lilrae-8.0.0/tests/test_ssh.py +706 -0
- lilrae-8.0.0/tests/test_ssh_key_bundle.py +433 -0
- lilrae-8.0.0/tests/test_stage_hosted_seat_payload.py +100 -0
- lilrae-8.0.0/tests/test_stranded_helper_cleanup.py +285 -0
- lilrae-8.0.0/tests/test_substrate_daemon_gate.py +363 -0
- lilrae-8.0.0/tests/test_substrate_posture_real_docker.py +264 -0
- lilrae-8.0.0/tests/test_supply_chain_pinning.py +423 -0
- lilrae-8.0.0/tests/test_sysreqs.py +376 -0
- lilrae-8.0.0/tests/test_techvault_build_cache.py +71 -0
- lilrae-8.0.0/tests/test_techvault_curated_variants.py +220 -0
- lilrae-8.0.0/tests/test_techvault_database.py +582 -0
- lilrae-8.0.0/tests/test_techvault_dns_integration.py +141 -0
- lilrae-8.0.0/tests/test_techvault_evidence_sources.py +241 -0
- lilrae-8.0.0/tests/test_techvault_live_gate.py +1962 -0
- lilrae-8.0.0/tests/test_techvault_log_sources.py +464 -0
- lilrae-8.0.0/tests/test_techvault_native_evidence.py +471 -0
- lilrae-8.0.0/tests/test_techvault_pack_interaction_provider.py +69 -0
- lilrae-8.0.0/tests/test_techvault_readiness_probe_scripts.py +274 -0
- lilrae-8.0.0/tests/test_techvault_readiness_sources.py +766 -0
- lilrae-8.0.0/tests/test_techvault_runtime_parameters.py +78 -0
- lilrae-8.0.0/tests/test_techvault_scenario_verifier.py +167 -0
- lilrae-8.0.0/tests/test_techvault_startup_adapter.py +606 -0
- lilrae-8.0.0/tests/test_techvault_static_gate.py +1246 -0
- lilrae-8.0.0/tests/test_techvault_study_adapter.py +54 -0
- lilrae-8.0.0/tests/test_techvault_telemetry_spine.py +176 -0
- lilrae-8.0.0/tests/test_techvault_telemetry_stimulus.py +183 -0
- lilrae-8.0.0/tests/test_telemetry.py +387 -0
- lilrae-8.0.0/tests/test_traffic_mirror.py +117 -0
- lilrae-8.0.0/tests/test_version.py +10 -0
- lilrae-8.0.0/tests/test_version_consistency.py +62 -0
- lilrae-8.0.0/tests/test_wazuh_active_response.py +999 -0
- lilrae-8.0.0/tests/test_wazuh_identity.py +156 -0
- lilrae-8.0.0/tests/test_web_api_identity.py +66 -0
- lilrae-8.0.0/tests/test_web_dockerfile_cmd.py +54 -0
- lilrae-8.0.0/tests/test_workbench_authorization.py +168 -0
- lilrae-8.0.0/tests/test_workbench_process.py +787 -0
- lilrae-8.0.0/tests/test_workflow_engine.py +359 -0
- lilrae-8.0.0/tools/.gitignore +4 -0
- lilrae-8.0.0/tools/check_pr_title.py +279 -0
- lilrae-8.0.0/tools/install-vale.sh +169 -0
- lilrae-8.0.0/tools/run-targeted-tests.sh +78 -0
- lilrae-8.0.0/tools/sonar/README.md +20 -0
- lilrae-8.0.0/tools/sonar/assert_no_new_issues.py +174 -0
- lilrae-8.0.0/tools/vale-lint-all.sh +22 -0
- lilrae-8.0.0/tools/vale-lint-hook.sh +34 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/README.md +17 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/aptl-range.service.txt +25 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/envpack-kali-fixups.sh.txt +122 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/envpack-soar-fixups.sh.txt +195 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/envpack-suricata-fixups.sh.txt +130 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/launch-ranges.sh.txt +119 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/provision-range.sh.txt +156 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/setup-purple-demo.sh.txt +75 -0
- lilrae-8.0.0/tools/workshop/arsenal-2026/setup-rdp.sh.txt +98 -0
- lilrae-8.0.0/tools/workshop/hosted-seat-kali-node.patch +19 -0
- lilrae-8.0.0/tools/workshop/hosted_seat.py +401 -0
- lilrae-8.0.0/tools/workshop/stage_hosted_seat_payload.py +172 -0
- lilrae-8.0.0/uv.lock +2928 -0
- lilrae-8.0.0/web/.dockerignore +6 -0
- lilrae-8.0.0/web/Caddyfile +33 -0
- lilrae-8.0.0/web/Dockerfile +39 -0
- lilrae-8.0.0/web/Dockerfile.api +57 -0
- lilrae-8.0.0/web/caddy-build/go.mod +171 -0
- lilrae-8.0.0/web/caddy-build/go.sum +587 -0
- lilrae-8.0.0/web/caddy-build/main.go +12 -0
- lilrae-8.0.0/web/package-lock.json +3749 -0
- lilrae-8.0.0/web/package.json +41 -0
- lilrae-8.0.0/web/src/app.css +225 -0
- lilrae-8.0.0/web/src/app.html +16 -0
- lilrae-8.0.0/web/src/lib/api.ts +182 -0
- lilrae-8.0.0/web/src/lib/bff.ts +138 -0
- lilrae-8.0.0/web/src/lib/components/ConfigSummaryList.svelte +84 -0
- lilrae-8.0.0/web/src/lib/components/ContainerCard.svelte +96 -0
- lilrae-8.0.0/web/src/lib/components/ContainerGrid.svelte +22 -0
- lilrae-8.0.0/web/src/lib/components/KillConfirmDialog.svelte +70 -0
- lilrae-8.0.0/web/src/lib/components/LabStartNotice.svelte +111 -0
- lilrae-8.0.0/web/src/lib/components/LabStatusBadge.svelte +20 -0
- lilrae-8.0.0/web/src/lib/components/LocalUseNoticeDialog.svelte +45 -0
- lilrae-8.0.0/web/src/lib/components/NavBar.svelte +32 -0
- lilrae-8.0.0/web/src/lib/components/PrivacyDetailsPanel.svelte +61 -0
- lilrae-8.0.0/web/src/lib/components/ScenarioCard.svelte +72 -0
- lilrae-8.0.0/web/src/lib/components/SettingsDialog.svelte +169 -0
- lilrae-8.0.0/web/src/lib/components/Terminal.svelte +217 -0
- lilrae-8.0.0/web/src/lib/components/kit/Badge.svelte +37 -0
- lilrae-8.0.0/web/src/lib/components/kit/Button.svelte +57 -0
- lilrae-8.0.0/web/src/lib/components/kit/Dialog.svelte +96 -0
- lilrae-8.0.0/web/src/lib/components/kit/Field.svelte +60 -0
- lilrae-8.0.0/web/src/lib/components/kit/Menu.svelte +153 -0
- lilrae-8.0.0/web/src/lib/components/kit/Select.svelte +62 -0
- lilrae-8.0.0/web/src/lib/components/kit/StatusBadge.svelte +17 -0
- lilrae-8.0.0/web/src/lib/components/kit/Table.svelte +48 -0
- lilrae-8.0.0/web/src/lib/components/kit/TextInput.svelte +56 -0
- lilrae-8.0.0/web/src/lib/components/kit/field-context.ts +16 -0
- lilrae-8.0.0/web/src/lib/components/kit/focus-trap.ts +70 -0
- lilrae-8.0.0/web/src/lib/components/kit/id.ts +13 -0
- lilrae-8.0.0/web/src/lib/components/kit/index.ts +28 -0
- lilrae-8.0.0/web/src/lib/components/kit/tone.ts +64 -0
- lilrae-8.0.0/web/src/lib/components/workbench/ContainerStatusBlock.svelte +35 -0
- lilrae-8.0.0/web/src/lib/components/workbench/NarrativeBlock.svelte +15 -0
- lilrae-8.0.0/web/src/lib/components/workbench/ObjectiveBlock.svelte +33 -0
- lilrae-8.0.0/web/src/lib/components/workbench/SectionDivider.svelte +13 -0
- lilrae-8.0.0/web/src/lib/components/workbench/SiemQueryBlock.svelte +31 -0
- lilrae-8.0.0/web/src/lib/components/workbench/StepBlock.svelte +32 -0
- lilrae-8.0.0/web/src/lib/components/workbench/TerminalBlock.svelte +41 -0
- lilrae-8.0.0/web/src/lib/components/workbench/WorkbenchStatusBar.svelte +92 -0
- lilrae-8.0.0/web/src/lib/container-state.ts +6 -0
- lilrae-8.0.0/web/src/lib/markdown.ts +12 -0
- lilrae-8.0.0/web/src/lib/session.ts +75 -0
- lilrae-8.0.0/web/src/lib/stores/lab.ts +91 -0
- lilrae-8.0.0/web/src/lib/stores/preferences.ts +259 -0
- lilrae-8.0.0/web/src/lib/stores/ui.ts +60 -0
- lilrae-8.0.0/web/src/lib/time.ts +44 -0
- lilrae-8.0.0/web/src/lib/types.ts +221 -0
- lilrae-8.0.0/web/src/routes/+error.svelte +16 -0
- lilrae-8.0.0/web/src/routes/+layout.svelte +53 -0
- lilrae-8.0.0/web/src/routes/+layout.ts +16 -0
- lilrae-8.0.0/web/src/routes/+page.svelte +245 -0
- lilrae-8.0.0/web/src/routes/+page.ts +24 -0
- lilrae-8.0.0/web/src/routes/config/+page.svelte +26 -0
- lilrae-8.0.0/web/src/routes/config/+page.ts +21 -0
- lilrae-8.0.0/web/src/routes/scenarios/[id]/+page.svelte +52 -0
- lilrae-8.0.0/web/src/routes/scenarios/[id]/+page.ts +27 -0
- lilrae-8.0.0/web/src/routes/terminal/[container]/+page.svelte +95 -0
- lilrae-8.0.0/web/svelte.config.js +36 -0
- lilrae-8.0.0/web/tests/components/ConfigSummaryList.test.ts +76 -0
- lilrae-8.0.0/web/tests/components/KillConfirmDialog.test.ts +81 -0
- lilrae-8.0.0/web/tests/components/LabStartNotice.test.ts +147 -0
- lilrae-8.0.0/web/tests/components/LabStatusBadge.test.ts +17 -0
- lilrae-8.0.0/web/tests/components/LocalUseNoticeDialog.test.ts +55 -0
- lilrae-8.0.0/web/tests/components/NavBar.test.ts +31 -0
- lilrae-8.0.0/web/tests/components/PrivacyDetailsPanel.test.ts +40 -0
- lilrae-8.0.0/web/tests/components/ScenarioCard.test.ts +76 -0
- lilrae-8.0.0/web/tests/components/SettingsDialog.test.ts +60 -0
- lilrae-8.0.0/web/tests/components/Terminal.test.ts +231 -0
- lilrae-8.0.0/web/tests/components/kit/Badge.test.ts +42 -0
- lilrae-8.0.0/web/tests/components/kit/Button.test.ts +51 -0
- lilrae-8.0.0/web/tests/components/kit/Dialog.test.ts +64 -0
- lilrae-8.0.0/web/tests/components/kit/Field.test.ts +37 -0
- lilrae-8.0.0/web/tests/components/kit/Menu.test.ts +74 -0
- lilrae-8.0.0/web/tests/components/kit/Select.test.ts +35 -0
- lilrae-8.0.0/web/tests/components/kit/StatusBadge.test.ts +17 -0
- lilrae-8.0.0/web/tests/components/kit/Table.test.ts +28 -0
- lilrae-8.0.0/web/tests/components/kit/TextInput.test.ts +28 -0
- lilrae-8.0.0/web/tests/components/kit/fixtures/DialogHarness.svelte +22 -0
- lilrae-8.0.0/web/tests/components/kit/fixtures/FieldHarness.svelte +17 -0
- lilrae-8.0.0/web/tests/components/kit/fixtures/SelectHarness.svelte +23 -0
- lilrae-8.0.0/web/tests/components/kit/fixtures/TableHarness.svelte +20 -0
- lilrae-8.0.0/web/tests/components/kit/fixtures/TextInputHarness.svelte +16 -0
- lilrae-8.0.0/web/tests/components/kit/focus-trap.test.ts +78 -0
- lilrae-8.0.0/web/tests/components/kit/helpers.ts +15 -0
- lilrae-8.0.0/web/tests/components/kit/tone.test.ts +48 -0
- lilrae-8.0.0/web/tests/components/workbench/blocks.test.ts +99 -0
- lilrae-8.0.0/web/tests/lib/api.test.ts +331 -0
- lilrae-8.0.0/web/tests/lib/bff.test.ts +185 -0
- lilrae-8.0.0/web/tests/lib/container-state.test.ts +23 -0
- lilrae-8.0.0/web/tests/lib/markdown.test.ts +48 -0
- lilrae-8.0.0/web/tests/lib/preferences.test.ts +158 -0
- lilrae-8.0.0/web/tests/lib/routes.test.ts +130 -0
- lilrae-8.0.0/web/tests/lib/session.test.ts +79 -0
- lilrae-8.0.0/web/tests/lib/stores.test.ts +220 -0
- lilrae-8.0.0/web/tests/lib/time.test.ts +30 -0
- lilrae-8.0.0/web/tests/lib/ui.test.ts +84 -0
- lilrae-8.0.0/web/tests/routes/config-page.test.ts +64 -0
- lilrae-8.0.0/web/tests/routes/fixtures/LayoutHarness.svelte +7 -0
- lilrae-8.0.0/web/tests/routes/layout.test.ts +32 -0
- lilrae-8.0.0/web/tests/routes/page.test.ts +193 -0
- lilrae-8.0.0/web/tests/routes/scenario-workbench.test.ts +139 -0
- lilrae-8.0.0/web/tests/routes/terminal-page.test.ts +97 -0
- lilrae-8.0.0/web/tests/setup.ts +1 -0
- lilrae-8.0.0/web/tsconfig.json +14 -0
- lilrae-8.0.0/web/vite.config.ts +20 -0
- lilrae-8.0.0/web/vitest.config.ts +22 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "APTL — Advanced Purple Team Lab",
|
|
3
|
+
"description": "A local Docker-based purple-team lab for exercising human and AI red- and blue-team workflows in an intentionally vulnerable enterprise range.",
|
|
4
|
+
"homepage_url": "https://openrae.github.io/lilrae/",
|
|
5
|
+
"repo_url": "https://github.com/OpenRAE/lilrae",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"description_good_status": "Met",
|
|
8
|
+
"description_good_justification": "https://openrae.github.io/lilrae/",
|
|
9
|
+
"interact_status": "Met",
|
|
10
|
+
"interact_justification": "https://openrae.github.io/lilrae/#help-and-project-policies",
|
|
11
|
+
"contribution_status": "Met",
|
|
12
|
+
"contribution_justification": "https://github.com/OpenRAE/lilrae/blob/main/CONTRIBUTING.md",
|
|
13
|
+
"contribution_requirements_status": "Met",
|
|
14
|
+
"contribution_requirements_justification": "https://github.com/OpenRAE/lilrae/blob/main/CONTRIBUTING.md#making-changes",
|
|
15
|
+
"floss_license_status": "Met",
|
|
16
|
+
"floss_license_justification": "APTL is distributed under the OSI-approved MIT License.",
|
|
17
|
+
"floss_license_osi_status": "Met",
|
|
18
|
+
"floss_license_osi_justification": "The MIT License is OSI approved.",
|
|
19
|
+
"license_location_status": "Met",
|
|
20
|
+
"license_location_justification": "https://github.com/OpenRAE/lilrae/blob/main/LICENSE",
|
|
21
|
+
"documentation_basics_status": "Met",
|
|
22
|
+
"documentation_basics_justification": "https://openrae.github.io/lilrae/getting-started/",
|
|
23
|
+
"documentation_interface_status": "Met",
|
|
24
|
+
"documentation_interface_justification": "https://openrae.github.io/lilrae/reference/cli/",
|
|
25
|
+
"sites_https_status": "Met",
|
|
26
|
+
"sites_https_justification": "The repository, package index, and both documentation hosts use HTTPS.",
|
|
27
|
+
"discussion_status": "Met",
|
|
28
|
+
"discussion_justification": "https://github.com/OpenRAE/lilrae/issues",
|
|
29
|
+
"english_status": "Met",
|
|
30
|
+
"english_justification": "Project documentation and contribution channels use English.",
|
|
31
|
+
"maintained_status": "Met",
|
|
32
|
+
"repo_public_status": "Met",
|
|
33
|
+
"repo_public_justification": "https://github.com/OpenRAE/lilrae",
|
|
34
|
+
"repo_track_status": "Met",
|
|
35
|
+
"repo_track_justification": "The public Git repository records changes, authors, and timestamps.",
|
|
36
|
+
"repo_interim_status": "Met",
|
|
37
|
+
"repo_interim_justification": "Feature branches and pull requests expose interim changes for review.",
|
|
38
|
+
"repo_distributed_status": "Met",
|
|
39
|
+
"repo_distributed_justification": "The project uses Git.",
|
|
40
|
+
"version_unique_status": "Met",
|
|
41
|
+
"version_unique_justification": "Every release has a unique PEP 440 version and Git tag.",
|
|
42
|
+
"version_semver_status": "Met",
|
|
43
|
+
"version_semver_justification": "APTL publishes three-part semantic versions.",
|
|
44
|
+
"version_tags_status": "Met",
|
|
45
|
+
"version_tags_justification": "https://github.com/OpenRAE/lilrae/tags",
|
|
46
|
+
"release_notes_status": "Met",
|
|
47
|
+
"release_notes_justification": "https://github.com/OpenRAE/lilrae/releases",
|
|
48
|
+
"release_notes_vulns_status": "Met",
|
|
49
|
+
"release_notes_vulns_justification": "Release notes identify user-visible fixes; no public APTL vulnerability with a CVE has been fixed to date.",
|
|
50
|
+
"report_process_status": "Met",
|
|
51
|
+
"report_process_justification": "https://github.com/OpenRAE/lilrae/blob/main/SUPPORT.md",
|
|
52
|
+
"report_tracker_status": "Met",
|
|
53
|
+
"report_tracker_justification": "https://github.com/OpenRAE/lilrae/issues",
|
|
54
|
+
"report_archive_status": "Met",
|
|
55
|
+
"report_archive_justification": "https://github.com/OpenRAE/lilrae/issues?q=is%3Aissue",
|
|
56
|
+
"vulnerability_report_process_status": "Met",
|
|
57
|
+
"vulnerability_report_process_justification": "https://github.com/OpenRAE/lilrae/security/policy",
|
|
58
|
+
"vulnerability_report_private_status": "Met",
|
|
59
|
+
"vulnerability_report_private_justification": "https://github.com/OpenRAE/lilrae/security/advisories/new",
|
|
60
|
+
"test_status": "Met",
|
|
61
|
+
"test_justification": "https://github.com/OpenRAE/lilrae/blob/main/CONTRIBUTING.md#verification",
|
|
62
|
+
"test_invocation_status": "Met",
|
|
63
|
+
"test_invocation_justification": "The Python suite uses pytest and the TypeScript suites use npm test.",
|
|
64
|
+
"test_continuous_integration_status": "Met",
|
|
65
|
+
"test_continuous_integration_justification": "https://github.com/OpenRAE/lilrae/actions/workflows/checks.yml",
|
|
66
|
+
"test_policy_status": "Met",
|
|
67
|
+
"test_policy_justification": "https://github.com/OpenRAE/lilrae/blob/main/CONTRIBUTING.md#making-changes",
|
|
68
|
+
"tests_are_added_status": "Met",
|
|
69
|
+
"tests_are_added_justification": "Recent feature and fix pull requests include focused regression tests.",
|
|
70
|
+
"tests_documented_added_status": "Met",
|
|
71
|
+
"tests_documented_added_justification": "https://github.com/OpenRAE/lilrae/blob/main/CONTRIBUTING.md#making-changes",
|
|
72
|
+
"warnings_status": "Met",
|
|
73
|
+
"warnings_justification": "Pre-commit, Ruff, Vale, strict MkDocs, TypeScript checks, and SonarCloud run in CI.",
|
|
74
|
+
"warnings_fixed_status": "Met",
|
|
75
|
+
"warnings_fixed_justification": "Required checks must pass before protected-branch integration.",
|
|
76
|
+
"warnings_strict_status": "Met",
|
|
77
|
+
"warnings_strict_justification": "The project uses strict documentation builds and blocking lint, type, complexity, and new-code quality gates.",
|
|
78
|
+
"no_leaked_credentials_status": "Met",
|
|
79
|
+
"no_leaked_credentials_justification": "Secret detection runs in pre-commit and CI; committed fixture credentials are intentionally public lab data.",
|
|
80
|
+
"static_analysis_status": "Met",
|
|
81
|
+
"static_analysis_justification": "SonarCloud analyzes proposed releases and a blocking gate rejects new issues.",
|
|
82
|
+
"static_analysis_common_vulnerabilities_status": "Met",
|
|
83
|
+
"static_analysis_common_vulnerabilities_justification": "SonarCloud, Trivy, pip-audit, and OSV-Scanner examine common defect and vulnerability classes.",
|
|
84
|
+
"static_analysis_often_status": "Met",
|
|
85
|
+
"static_analysis_often_justification": "Static analysis runs in the pull-request and integration-branch checks.",
|
|
86
|
+
"dynamic_analysis_status": "Met",
|
|
87
|
+
"dynamic_analysis_justification": "Property-based fuzz tests vary parser and configuration inputs; live release qualification exercises the deployed lab.",
|
|
88
|
+
"dynamic_analysis_unsafe_status": "N/A",
|
|
89
|
+
"dynamic_analysis_unsafe_justification": "APTL production source is Python and TypeScript, not a memory-unsafe language.",
|
|
90
|
+
"dynamic_analysis_enable_assertions_status": "Met",
|
|
91
|
+
"dynamic_analysis_enable_assertions_justification": "Pytest, Hypothesis, and Vitest execute with their assertions enabled.",
|
|
92
|
+
"general_comments": "The complete passing-level assessment and evidence links are maintained at https://openrae.github.io/lilrae/security/openssf-best-practices/. Account-only attestations must be confirmed by the maintainer in the badge application."
|
|
93
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Block edits to sensitive files (.env, credentials, keys)
|
|
3
|
+
FILE_PATH=$(jq -r '.tool_input.file_path // empty')
|
|
4
|
+
|
|
5
|
+
if [[ -z "$FILE_PATH" ]]; then
|
|
6
|
+
exit 0
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
BASENAME=$(basename "$FILE_PATH")
|
|
10
|
+
|
|
11
|
+
# Block .env files, but allow committed templates (`.env.example`,
|
|
12
|
+
# `.env.*.example`) since those carry placeholders, not secrets.
|
|
13
|
+
if [[ "$BASENAME" == .env* ]] && [[ "$BASENAME" != *.example ]]; then
|
|
14
|
+
echo "BLOCKED: Editing $BASENAME is not allowed. These files contain secrets." >&2
|
|
15
|
+
exit 2
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
if [[ "$BASENAME" == "local_settings.py" ]]; then
|
|
19
|
+
echo "BLOCKED: Editing $BASENAME is not allowed. These files contain secrets." >&2
|
|
20
|
+
exit 2
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# The config-rendering source module src/aptl/core/credentials.py is NOT a
|
|
24
|
+
# secret store — it renders credentialized service config from checked-in
|
|
25
|
+
# templates (ADR-028) and holds no secrets. The credential-store glob below
|
|
26
|
+
# (`credentials*`) otherwise catches it; exempt this one source path so the
|
|
27
|
+
# module stays editable while every real secret file (.env*, *.key, *.pem,
|
|
28
|
+
# credential data files) remains protected.
|
|
29
|
+
if [[ "$FILE_PATH" == */src/aptl/core/credentials.py || "$FILE_PATH" == "src/aptl/core/credentials.py" ]]; then
|
|
30
|
+
exit 0
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Block key/credential files
|
|
34
|
+
if [[ "$BASENAME" == *.key ]] || [[ "$BASENAME" == *.pem ]] || [[ "$BASENAME" == "credentials"* ]]; then
|
|
35
|
+
echo "BLOCKED: Editing $BASENAME is not allowed. These files contain secrets." >&2
|
|
36
|
+
exit 2
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
exit 0
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"mcp__aptl-reverse__reverse_info",
|
|
5
|
+
"mcp__aptl-soar__soar_get_execution",
|
|
6
|
+
"mcp__aptl-case-mgmt__cases_update_case",
|
|
7
|
+
"mcp__aptl-reverse__reverse_run_command",
|
|
8
|
+
"WebFetch(domain:raw.githubusercontent.com)",
|
|
9
|
+
"Bash(git clone:*)"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"hooks": {
|
|
13
|
+
"PreToolUse": [
|
|
14
|
+
{
|
|
15
|
+
"matcher": "Edit|Write",
|
|
16
|
+
"hooks": [
|
|
17
|
+
{
|
|
18
|
+
"type": "command",
|
|
19
|
+
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/protect_files.sh"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gh-workflow-monitor
|
|
3
|
+
description: Monitor GitHub workflows, propose fixes for failures, and report status
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# GitHub Workflow Monitor
|
|
8
|
+
|
|
9
|
+
Use the `gh` for GitHub operations.
|
|
10
|
+
|
|
11
|
+
## Step 1: Check current branch.
|
|
12
|
+
|
|
13
|
+
## Step 2: If the branch is not green, find the GitHub Actions workflow run associated with the current branch. Use the gh cli.
|
|
14
|
+
|
|
15
|
+
## Step 3: Monitor the workflow run for failures.
|
|
16
|
+
|
|
17
|
+
## Step 4: If the workflow run fails, propose a fix.
|
|
18
|
+
|
|
19
|
+
## Step 5: If the workflow run succeeds, exit plan mode and report the status.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ship
|
|
3
|
+
description: Ship current branch — CI, SonarCloud, code review, security review, fix all issues, merge. Assumes code is already committed and pushed.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Ship Current Branch
|
|
8
|
+
|
|
9
|
+
Assumes code is already committed and pushed. Handles: PR creation, CI monitoring, SonarCloud, code review, security review, fixing all issues, and merging.
|
|
10
|
+
|
|
11
|
+
**IMPORTANT:** NEVER include Co-Authored-By, "Generated with Claude Code", or any Claude/AI attribution in commit messages, PR descriptions, or any other artifacts.
|
|
12
|
+
|
|
13
|
+
## Phase 1: Create PR
|
|
14
|
+
|
|
15
|
+
1. Determine the current branch: `git branch --show-current`
|
|
16
|
+
2. Check if a PR already exists: `gh pr list --head <branch> --json number,url`
|
|
17
|
+
3. If no PR exists, create one:
|
|
18
|
+
```
|
|
19
|
+
gh pr create --base dev --title "<concise title>" --body "<description>"
|
|
20
|
+
```
|
|
21
|
+
4. Note the PR number.
|
|
22
|
+
|
|
23
|
+
## Phase 2: CI Monitor
|
|
24
|
+
|
|
25
|
+
1. Find the latest workflow run: `gh run list --branch <branch> --limit 1 --json status,conclusion,databaseId`
|
|
26
|
+
2. If the run is in progress, watch it: `gh run watch <id>`
|
|
27
|
+
3. If it failed:
|
|
28
|
+
- Get failed logs: `gh run view <id> --log-failed`
|
|
29
|
+
- Diagnose and fix the issue.
|
|
30
|
+
- `git add`, `git commit`, `git push`.
|
|
31
|
+
- Go back to step 1.
|
|
32
|
+
4. If it succeeded, proceed.
|
|
33
|
+
|
|
34
|
+
## Phase 3: SonarCloud Check
|
|
35
|
+
|
|
36
|
+
1. Wait 60 seconds for SonarCloud analysis to propagate.
|
|
37
|
+
2. Use `get_project_quality_gate_status` with project key `Brad-Edwards_aptl` to check the quality gate.
|
|
38
|
+
3. Use `search_sonar_issues_in_projects` to find new issues on the current branch.
|
|
39
|
+
4. If issues found:
|
|
40
|
+
- Fix them.
|
|
41
|
+
- `git add`, `git commit`, `git push`.
|
|
42
|
+
- Re-run Phase 2.
|
|
43
|
+
5. If clean, proceed.
|
|
44
|
+
|
|
45
|
+
## Phase 4: Code Review
|
|
46
|
+
|
|
47
|
+
**CRITICAL: You MUST use the Skill tool to invoke the built-in review skill.**
|
|
48
|
+
|
|
49
|
+
1. Merge dev into the current branch: `git fetch origin dev && git merge origin/dev`
|
|
50
|
+
2. If there are merge conflicts, resolve them, commit, and push.
|
|
51
|
+
3. Call the Skill tool with `skill="review"` to invoke the real built-in code review.
|
|
52
|
+
4. After the review completes, fix ALL issues it identified.
|
|
53
|
+
- Do NOT defer ANY issues.
|
|
54
|
+
- Do NOT categorize issues as "low priority" to avoid work.
|
|
55
|
+
- You are an LLM. You have no time constraints. Fix everything.
|
|
56
|
+
- The ONLY reason to stop and escalate to the user is if a fix requires
|
|
57
|
+
a significant architectural change touching 5+ files outside the
|
|
58
|
+
current feature scope.
|
|
59
|
+
5. After fixing, re-read all findings and confirm each one was addressed.
|
|
60
|
+
|
|
61
|
+
## Phase 5: Security Review
|
|
62
|
+
|
|
63
|
+
**CRITICAL: You MUST use the Skill tool to invoke the built-in security-review skill.**
|
|
64
|
+
|
|
65
|
+
1. Call the Skill tool with `skill="security-review"` to invoke the real built-in security review.
|
|
66
|
+
2. After the review completes, fix ALL issues it identified.
|
|
67
|
+
- Same rules as Phase 4: fix everything, defer nothing.
|
|
68
|
+
3. After fixing, confirm all findings were addressed.
|
|
69
|
+
|
|
70
|
+
## Phase 6: Final Commit & CI
|
|
71
|
+
|
|
72
|
+
If ANY fixes were made in Phases 4-5:
|
|
73
|
+
1. `git add` all changed files.
|
|
74
|
+
2. `git commit -m "Fix code review and security review findings"`
|
|
75
|
+
3. `git push`
|
|
76
|
+
4. Re-run Phase 2 (CI Monitor).
|
|
77
|
+
5. Re-run Phase 3 (SonarCloud).
|
|
78
|
+
|
|
79
|
+
## Phase 7: Report (DO NOT MERGE)
|
|
80
|
+
|
|
81
|
+
**You MUST NOT merge the PR. You MUST NOT run `gh pr merge`. The user reviews and merges.**
|
|
82
|
+
|
|
83
|
+
- Summary of all changes made during the ship process
|
|
84
|
+
- Review findings and what was fixed
|
|
85
|
+
- Security review findings and what was fixed
|
|
86
|
+
- Confirmation: CI green, SonarCloud passed, PR ready for user review
|
|
87
|
+
- PR URL
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stage
|
|
3
|
+
description: Stage files, run pre-commit, fix failures, loop until clean
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Stage Changes
|
|
8
|
+
|
|
9
|
+
## Step 1: Identify Changed Files
|
|
10
|
+
|
|
11
|
+
1. Run `git status` to see all changed and untracked files.
|
|
12
|
+
2. Exclude from staging: .env files, credentials, secrets, large binaries.
|
|
13
|
+
|
|
14
|
+
## Step 2: Stage Files
|
|
15
|
+
|
|
16
|
+
1. `git add` all relevant changed files.
|
|
17
|
+
|
|
18
|
+
## Step 3: Pre-commit Loop
|
|
19
|
+
|
|
20
|
+
Run up to 5 iterations:
|
|
21
|
+
|
|
22
|
+
1. Run `pre-commit run` against the staged files. Never use `--all-files`
|
|
23
|
+
locally; CI/CD owns whole-tree checks.
|
|
24
|
+
2. If it passes, proceed to Step 4.
|
|
25
|
+
3. If it fails:
|
|
26
|
+
- Read the failure output.
|
|
27
|
+
- Fix the issues.
|
|
28
|
+
- Re-stage any modified files with `git add`.
|
|
29
|
+
- Go back to step 1.
|
|
30
|
+
4. If still failing after 5 attempts, report the failure details to the user and stop.
|
|
31
|
+
|
|
32
|
+
## Step 4: Report
|
|
33
|
+
|
|
34
|
+
- List what is staged: `git diff --cached --name-only`
|
|
35
|
+
- Confirm pre-commit passes.
|
|
36
|
+
- "All files staged and pre-commit clean. Ready for commit."
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wave-issue-coverage
|
|
3
|
+
description: For each DRAFT requirement in a given Ground Control wave (or all waves), ensure a GitHub issue covers it and is bidirectionally linked. Use when the user asks to "cover wave N requirements with issues", "back-fill issues for draft requirements", or similar. Requires the Ground Control MCP and `gh` CLI.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Wave Issue Coverage
|
|
7
|
+
|
|
8
|
+
Back-fill GitHub issue coverage for DRAFT Ground Control requirements in a given wave.
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
- **wave**: integer wave number (e.g. `1`, `2`, `3`) OR the literal string `all`
|
|
13
|
+
- `all` → process every wave that has DRAFT requirements, smallest wave first
|
|
14
|
+
|
|
15
|
+
## Preconditions
|
|
16
|
+
|
|
17
|
+
1. Read `.ground-control.yaml` at the repo root via `gc_get_repo_ground_control_context` to obtain:
|
|
18
|
+
- `project` — Ground Control project identifier
|
|
19
|
+
- `github_repo` — `owner/repo` for `gh` calls
|
|
20
|
+
These values are passed to every MCP and `gh` call in this workflow. Do not hard-code them.
|
|
21
|
+
2. The GC MCP server (`mcp__ground-control__*`) must be available.
|
|
22
|
+
3. `gh auth status` must be authenticated with write access to `github_repo`.
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### 1. Resolve the requirement list
|
|
27
|
+
|
|
28
|
+
Call `gc_list_requirements` with `project=<project>`, `status=DRAFT`, `size=200`, and:
|
|
29
|
+
- `wave=<N>` if a single wave was given, OR
|
|
30
|
+
- no `wave` filter if `all` was given (then group results by wave and process oldest wave first).
|
|
31
|
+
|
|
32
|
+
Capture the full list of `(uid, id, title, requirement_type, priority, wave)` tuples. This is the work list.
|
|
33
|
+
|
|
34
|
+
### 2. Choose progress tracker
|
|
35
|
+
|
|
36
|
+
Pick based on the size of the work list:
|
|
37
|
+
|
|
38
|
+
| Count | Tracker |
|
|
39
|
+
|---|---|
|
|
40
|
+
| ≤ 25 | `TaskCreate` — one task per requirement, processed in order |
|
|
41
|
+
| > 25 | A temp file at `/tmp/wave-issue-coverage-<wave>-<timestamp>.md` with a checkbox per requirement; update inline as each completes |
|
|
42
|
+
|
|
43
|
+
For the temp-file path, use a single in-progress `TaskCreate` task ("Process wave N coverage — see temp file") so the user still sees forward motion in their TaskList.
|
|
44
|
+
|
|
45
|
+
### 3. Process sequentially — DO NOT parallelize
|
|
46
|
+
|
|
47
|
+
For each requirement, in order:
|
|
48
|
+
|
|
49
|
+
1. **Check existing GC traceability**
|
|
50
|
+
`gc_get_traceability` with the requirement UUID. Note any existing `GITHUB_ISSUE` artifact links.
|
|
51
|
+
|
|
52
|
+
2. **Search GitHub for the UID**
|
|
53
|
+
`gh issue list --repo <github_repo> --state all --search "<UID> in:title,body" --json number,title,state`
|
|
54
|
+
|
|
55
|
+
3. **Search GitHub for topic overlap (only if no UID match)**
|
|
56
|
+
Run a small number of focused keyword searches drawn from the requirement title/statement. The goal is to catch issues that pre-date the UID convention or were filed under a different name. Pick the strongest 1–3 keywords; do not flood with searches.
|
|
57
|
+
|
|
58
|
+
4. **Decide coverage**
|
|
59
|
+
- **Issue found that fully or substantially covers the requirement** → link it and update its body (step 5).
|
|
60
|
+
- **Issue found that partially covers** → link it (step 5) AND create a new issue for the remaining scope (step 6).
|
|
61
|
+
- **No relevant issue** → create a new issue (step 6).
|
|
62
|
+
|
|
63
|
+
5. **Link existing issue + update body**
|
|
64
|
+
- If GC has no link to the issue yet, call `gc_create_traceability_link` with `link_type=DOCUMENTS` (DRAFT requirements reject `IMPLEMENTS` — see Notes).
|
|
65
|
+
- Read the current issue body; if it does not already have a `## Requirements` section, prepend one:
|
|
66
|
+
```markdown
|
|
67
|
+
## Requirements
|
|
68
|
+
|
|
69
|
+
- <UID> — <Requirement Title>
|
|
70
|
+
```
|
|
71
|
+
If it has one but the UID is missing, add the bullet to the existing list. Save via `gh issue edit <n> --body-file <tempfile>`.
|
|
72
|
+
- Apply labels (step 7).
|
|
73
|
+
|
|
74
|
+
6. **Create new issue**
|
|
75
|
+
- Call `gc_create_github_issue` with `uid=<UID>`, `project=<project>`, `repo=<github_repo>`, `extra_body="## Requirements\n\n- <UID> — <Title>"`, and `labels=[...]` (step 7 list).
|
|
76
|
+
- The MCP tool will return a warning that the auto-link failed because the requirement is DRAFT (it tries `IMPLEMENTS`). Manually create the link with `gc_create_traceability_link` using `link_type=DOCUMENTS`.
|
|
77
|
+
|
|
78
|
+
7. **Tag the issue**
|
|
79
|
+
Every issue touched or created in this workflow must carry, at minimum:
|
|
80
|
+
- `requirement`
|
|
81
|
+
- `wave-<N>` (the requirement's wave; create the label if it does not exist via `gh label create wave-<N> --description "Wave <N> requirement" --color B60205`)
|
|
82
|
+
|
|
83
|
+
Plus 1–3 topic-specific labels chosen from the repo's existing label set. Pick conservatively; do not invent new topic labels. Common picks:
|
|
84
|
+
- GC-D* (GitHub integration) → `integrations`, `backend`
|
|
85
|
+
- GC-E* (traceability semantics) → `domain`, `backend`
|
|
86
|
+
- GC-L* (MCP tools) → `mcp-grc`, `api`
|
|
87
|
+
- GC-C* (analysis / quality gates) → `quality`, `ci-cd`
|
|
88
|
+
- GC-Q* (web UI) → `frontend`, `ui`
|
|
89
|
+
- GC-O* (workflow / agents) → `agents`, `workflow`, `documentation`
|
|
90
|
+
- GC-P* (platform / security) → `security` or `auth`
|
|
91
|
+
- TC-* (test management) → `testing`, plus `data-model` / `domain` / `frontend` as fits
|
|
92
|
+
|
|
93
|
+
Apply with `gh issue edit <n> --add-label "a,b,c"`. If a pre-existing issue already has labels, add to them; do not strip.
|
|
94
|
+
|
|
95
|
+
8. **Mark the task / temp-file row complete** and move to the next requirement. Never advance two requirements in parallel.
|
|
96
|
+
|
|
97
|
+
### 4. Report back
|
|
98
|
+
|
|
99
|
+
Single short summary: how many requirements processed, how many already had coverage, how many issues created. Do NOT enumerate everything done — the user will read the TaskList or temp file if they want detail.
|
|
100
|
+
|
|
101
|
+
## Notes
|
|
102
|
+
|
|
103
|
+
- **DRAFT requirements + IMPLEMENTS link**: `gc_create_traceability_link` with `link_type=IMPLEMENTS` rejects DRAFT requirements with `422`. Always use `DOCUMENTS` for issue → DRAFT links. This matches what `gc_create_github_issue` is *trying* to do but the auto-link inside that tool currently uses `IMPLEMENTS` and silently warns; do the link yourself.
|
|
104
|
+
- **Issue body `## Requirements` section**: per `docs/DEVELOPMENT_WORKFLOW.md`, the `/implement` skill parses this section. Format must be a markdown H2 named exactly `## Requirements` followed by a bulleted list, each bullet starting with the UID. This is what makes the issue routable through `/implement` later.
|
|
105
|
+
- **Sequential, not parallel**: the tooling will let you fan out, but the user has explicitly asked for serial processing every time. Honor it.
|
|
106
|
+
- **Don't invent labels**: if a topic label doesn't exist in `gh label list`, skip it rather than creating it. The only label this skill creates is `wave-<N>` when missing.
|
|
107
|
+
- **Idempotency**: re-running this skill on the same wave should be a no-op for already-covered requirements. The presence of a `GITHUB_ISSUE` traceability link AND a `## Requirements` section listing the UID AND `requirement` + `wave-<N>` labels means there is nothing to do; move on.
|
|
108
|
+
|
|
109
|
+
## Quick reference — MCP calls
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
gc_get_repo_ground_control_context(repo_path=<absolute repo path>)
|
|
113
|
+
gc_list_requirements(project, status="DRAFT", wave=<N>, size=200)
|
|
114
|
+
gc_get_traceability(id=<requirement UUID>)
|
|
115
|
+
gc_create_github_issue(uid, project, repo, extra_body, labels)
|
|
116
|
+
gc_create_traceability_link(requirement_id, artifact_type="GITHUB_ISSUE",
|
|
117
|
+
artifact_identifier="#<n>", artifact_title,
|
|
118
|
+
artifact_url, link_type="DOCUMENTS")
|
|
119
|
+
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description:
|
|
3
|
+
globs:
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
# DO NOT JUMP AHEAD
|
|
7
|
+
|
|
8
|
+
ALWAYS follow these rules when working on this codebase:
|
|
9
|
+
|
|
10
|
+
1. **ONLY do what is explicitly requested** - Do not add extra features, scripts, or files that weren't asked for
|
|
11
|
+
2. **DO NOT assume what the user wants** - If unclear, ask for clarification rather than making assumptions
|
|
12
|
+
3. **CHECK before going beyond the request** - If you think something additional might be helpful, ask first
|
|
13
|
+
4. **STOP when the task is complete** - Don't continue adding "helpful" extras
|
|
14
|
+
5. **RESPECT the user's workflow** - They know their codebase and requirements better than you do
|
|
15
|
+
|
|
16
|
+
## What NOT to do:
|
|
17
|
+
- Create helper scripts without being asked
|
|
18
|
+
- Add complex setup procedures when simple ones exist
|
|
19
|
+
- Generate documentation for features that don't exist yet
|
|
20
|
+
- Modify files beyond what was specifically requested
|
|
21
|
+
- Add "best practices" that weren't requested
|
|
22
|
+
|
|
23
|
+
## What TO do:
|
|
24
|
+
- Answer the specific question asked
|
|
25
|
+
- Make only the changes explicitly requested
|
|
26
|
+
- Ask for clarification when requirements are unclear
|
|
27
|
+
- Keep responses focused and concise
|
|
28
|
+
- Respect existing code patterns and structure
|
|
29
|
+
|
|
30
|
+
**Remember: Being helpful means doing exactly what was asked, not what you think might be helpful.**
|
|
31
|
+
|
|
32
|
+
# WRITING STYLE GUIDELINES
|
|
33
|
+
|
|
34
|
+
ALWAYS follow these writing rules for this technical/cyber audience:
|
|
35
|
+
|
|
36
|
+
## DO NOT:
|
|
37
|
+
- Use marketing language, boosterism, or sales-y content
|
|
38
|
+
- Write verbose explanations or "value propositions"
|
|
39
|
+
- Use excessive emojis or excitement
|
|
40
|
+
- Create bulleted lists with bold formatting everywhere
|
|
41
|
+
- Write like you're selling something
|
|
42
|
+
|
|
43
|
+
## DO:
|
|
44
|
+
- Use plain, simple, direct language
|
|
45
|
+
- Write for busy technical professionals
|
|
46
|
+
- Be concise and to the point
|
|
47
|
+
- Focus on facts and functionality
|
|
48
|
+
- Remember: technical people get turned off by marketing speak
|
|
49
|
+
|
|
50
|
+
**Remember: This audience wants information, not persuasion. Write documentation like you're talking to a colleague, not a prospect.**
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.git
|
|
2
|
+
.github
|
|
3
|
+
.venv
|
|
4
|
+
.pytest_cache
|
|
5
|
+
.mypy_cache
|
|
6
|
+
__pycache__
|
|
7
|
+
*.pyc
|
|
8
|
+
node_modules
|
|
9
|
+
**/node_modules
|
|
10
|
+
# `containers/` is intentionally NOT excluded: the in-process target
|
|
11
|
+
# images (ad / dns / fileshare / webapp; issue #248) and the remaining
|
|
12
|
+
# `wazuh-sidecar` image build from the repo root and need access to the
|
|
13
|
+
# shared `containers/_wazuh-agent/` files plus their own per-container
|
|
14
|
+
# subdirectory. Per-container build contexts (victim, workstation, kali,
|
|
15
|
+
# etc.) read their own `.dockerignore` so they're unaffected.
|
|
16
|
+
docs/
|
|
17
|
+
notes/
|
|
18
|
+
coverage.xml
|
|
19
|
+
.coverage
|
|
20
|
+
*.egg-info
|
|
21
|
+
dist/
|
|
22
|
+
build/
|
|
23
|
+
.svelte-kit
|
|
24
|
+
web/node_modules
|
|
25
|
+
web/.svelte-kit
|
|
26
|
+
web/tests
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# APTL Lab Credentials
|
|
2
|
+
# Copy this file to .env; `aptl lab start` hydrates it, filling every
|
|
3
|
+
# CHANGE_ME placeholder with a runnable value (randomizing real secrets). You
|
|
4
|
+
# only need to supply values you specifically want to pin.
|
|
5
|
+
# The .env file is gitignored and will not be committed.
|
|
6
|
+
#
|
|
7
|
+
# NOTE: INDEXER_* and DASHBOARD_* below are NOT user-selectable. They must match
|
|
8
|
+
# the OpenSearch demo-user hashes baked into the checked-in
|
|
9
|
+
# config/wazuh_indexer/internal_users.yml (admin=SecretPassword,
|
|
10
|
+
# kibanaserver=kibanaserver); the indexer never recomputes those hashes from
|
|
11
|
+
# .env. Leave the placeholders (hydration fills the correct fixtures) or set the
|
|
12
|
+
# exact fixture values. Any other value is reconciled back at start with a
|
|
13
|
+
# warning, because the indexer would otherwise reject it.
|
|
14
|
+
|
|
15
|
+
# Wazuh Indexer / OpenSearch admin credentials (auto-managed fixture)
|
|
16
|
+
INDEXER_USERNAME=admin
|
|
17
|
+
INDEXER_PASSWORD=CHANGE_ME_indexer_password
|
|
18
|
+
|
|
19
|
+
# Wazuh Dashboard internal user (auto-managed fixture)
|
|
20
|
+
DASHBOARD_USERNAME=kibanaserver
|
|
21
|
+
DASHBOARD_PASSWORD=CHANGE_ME_dashboard_password
|
|
22
|
+
|
|
23
|
+
# Wazuh API credentials
|
|
24
|
+
API_USERNAME=wazuh-wui
|
|
25
|
+
API_PASSWORD=CHANGE_ME_api_password
|
|
26
|
+
|
|
27
|
+
# Wazuh cluster key
|
|
28
|
+
WAZUH_CLUSTER_KEY=CHANGE_ME_cluster_key
|
|
29
|
+
|
|
30
|
+
# Web control-plane API token (ADR-039). Required when running the optional
|
|
31
|
+
# aptl-web-api and aptl-web-ui services. The API rejects missing, empty, or
|
|
32
|
+
# placeholder values at runtime. Generate a real token with:
|
|
33
|
+
# python3 -c 'import secrets; print(secrets.token_hex(32))'
|
|
34
|
+
APTL_API_TOKEN=CHANGE_ME_api_token
|
|
35
|
+
|
|
36
|
+
# Identity of the aptl-web-api container (issue #1193). It never runs as root:
|
|
37
|
+
# it runs as the user that owns this project (the one who runs `aptl lab
|
|
38
|
+
# start`), so it can read the owner-only lab state under .aptl/, and joins only
|
|
39
|
+
# the Docker socket's group. Set both from the project owner's shell:
|
|
40
|
+
# echo "APTL_WEB_API_USER=$(id -u):$(id -g)"
|
|
41
|
+
# echo "APTL_DOCKER_SOCKET_GID=$(stat -c %g /var/run/docker.sock)"
|
|
42
|
+
# Left unset, the web API container refuses to start.
|
|
43
|
+
APTL_WEB_API_USER=CHANGE_ME_uid:gid
|
|
44
|
+
APTL_DOCKER_SOCKET_GID=CHANGE_ME_docker_socket_gid
|
|
45
|
+
|
|
46
|
+
# Enterprise services
|
|
47
|
+
DB_PASSWORD=techvault_db_pass
|
|
48
|
+
AD_ADMIN_PASSWORD=Admin123!
|
|
49
|
+
|
|
50
|
+
# SOC tools
|
|
51
|
+
MISP_ADMIN_PASSWORD=MispAdmin2024!
|
|
52
|
+
# MISP REST API auth key. Used by both the MISP server (as ADMIN_KEY) and
|
|
53
|
+
# every downstream consumer (aptl-misp-suricata-sync, mcp-threatintel, etc.).
|
|
54
|
+
# Generate a fresh 40-character alphanumeric value with:
|
|
55
|
+
# tr -dc A-Za-z0-9 </dev/urandom | head -c 40 ; echo
|
|
56
|
+
# The placeholder below is rejected by aptl-misp-suricata-sync at startup
|
|
57
|
+
# so the lab fails loudly if you forget to replace it.
|
|
58
|
+
MISP_API_KEY=PLEASEREPLACEMEPLEASEREPLACEMEPLEASEREPLACE
|
|
59
|
+
# TLS verification for SOC stack consumers connecting to MISP.
|
|
60
|
+
# SEC-006 / ADR-034 (issue #258) made the lab-managed CA the default
|
|
61
|
+
# trust anchor: ServiceConfig defaults MISP_VERIFY_SSL to true, and the
|
|
62
|
+
# misp-suricata-sync container mounts the CA bundle at
|
|
63
|
+
# /etc/lab-ca/lab-ca.pem. Leaving these lines commented out (or unset)
|
|
64
|
+
# lets the in-code defaults win. Override only for local debugging, e.g.
|
|
65
|
+
# while iterating on a self-signed MISP fork:
|
|
66
|
+
# MISP_VERIFY_SSL=false
|
|
67
|
+
# MISP_CA_CERT_PATH=
|
|
68
|
+
# MISP_VERIFY_SSL=true
|
|
69
|
+
# MISP_CA_CERT_PATH=/etc/lab-ca/lab-ca.pem
|
|
70
|
+
THEHIVE_SECRET=aptl-thehive-lab-secret-key-2024-purple
|
|
71
|
+
SHUFFLE_ADMIN_PASSWORD=ShuffleAdmin2024!
|
|
72
|
+
SHUFFLE_API_KEY=31a211c4-ea5c-4a49-b022-5e2434e758a7
|
|
73
|
+
|
|
74
|
+
# Grafana (OTel observability stack)
|
|
75
|
+
GRAFANA_ADMIN_USER=admin
|
|
76
|
+
GRAFANA_ADMIN_PASSWORD=CHANGE_ME_grafana_password
|
|
77
|
+
|
|
78
|
+
# Host-port publishing. Every service's published host port has a
|
|
79
|
+
# `${APTL_HP_<SERVICE>_<PORT>:-default}` override. `aptl lab start` probes
|
|
80
|
+
# each default and, if it is already in use on this host (e.g. an editor's
|
|
81
|
+
# port-forwarding, another app), automatically publishes that service on a
|
|
82
|
+
# free port instead and reports the real port in the start summary. Set any of
|
|
83
|
+
# these to pin a specific port; a value you set here is always honored as-is.
|
|
84
|
+
# APTL_HP_WAZUH_DASHBOARD_5601=443
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# LilRAE plan rules
|
|
2
|
+
|
|
3
|
+
Mandatory constraints the `/implement` skill applies during plan phase.
|
|
4
|
+
|
|
5
|
+
- One issue = one PR. A delivery PR MUST address every acceptance criterion
|
|
6
|
+
of its issue, including code, documentation, and tests. Extend the existing
|
|
7
|
+
PR; do not distribute one issue across multiple PRs. If an issue is too large,
|
|
8
|
+
create smaller linked issues with explicit acceptance criteria and one
|
|
9
|
+
complete PR per smaller issue. The parent tracks their delivery.
|
|
10
|
+
- Plans that add or change Python code MUST include corresponding pytest
|
|
11
|
+
tests in `tests/`. Use `pytest -m fuzz` for property-based tests
|
|
12
|
+
(the default test run skips them per `pyproject.toml`).
|
|
13
|
+
- Plans that add or change MCP TypeScript servers (anything under `mcp/`)
|
|
14
|
+
MUST include corresponding vitest tests in that server's `tests/`
|
|
15
|
+
directory.
|
|
16
|
+
- Plans that add or change web frontend code MUST include corresponding
|
|
17
|
+
vitest tests in `web/tests/`.
|
|
18
|
+
- Plans that touch `mcp/aptl-mcp-common` MUST account for the fact that
|
|
19
|
+
every MCP server consumes it. Run only targeted common and consumer tests
|
|
20
|
+
locally; CI/CD rebuilds and tests every dependent MCP before the change is
|
|
21
|
+
considered complete.
|
|
22
|
+
- Plans that change any Compose asset (`docker-compose*.yml`), container
|
|
23
|
+
Dockerfiles, or `config/` files MUST include focused local contract tests.
|
|
24
|
+
CI/CD owns the clean `aptl lab stop -v && aptl lab start` validation on a
|
|
25
|
+
fresh machine — the lab is the primary product, not the codebase.
|
|
26
|
+
- Local verification MUST remain change-scoped: targeted pytest or Vitest
|
|
27
|
+
paths plus `pre-commit run` on staged files. Bare/full suites,
|
|
28
|
+
`pre-commit run --all-files`, whole-tree prose checks, dependency checks, and
|
|
29
|
+
coverage runs are CI/CD-only.
|
|
30
|
+
- Plans MUST NOT edit `CHANGELOG.md` or the version. Releases are automated by
|
|
31
|
+
release-please from Conventional Commit PR titles: `feat:` (minor),
|
|
32
|
+
`fix:`/`perf:` (patch), `feat!:` or a `BREAKING CHANGE:` footer (major);
|
|
33
|
+
`docs`/`chore`/`refactor`/`test`/`ci`/`build` do not release. The PR title is
|
|
34
|
+
the changelog entry, so make it a clear Conventional Commit. See
|
|
35
|
+
`docs/releasing.md`.
|
|
36
|
+
- New code MUST use `lilrae` naming: a new module, package, service,
|
|
37
|
+
environment variable (`LILRAE_`), resource name, or configuration file is
|
|
38
|
+
named for LilRAE, not APTL. Code that extends an existing interface MUST keep
|
|
39
|
+
that interface's current identifiers (for example the `aptl` import root,
|
|
40
|
+
`aptl` CLI, `aptl.*` entry-point groups, existing config fields, `APTL_*`
|
|
41
|
+
variables, and runtime resource names); add no alias, shim, or parallel
|
|
42
|
+
`lilrae` spelling. Renaming an existing identifier needs its own
|
|
43
|
+
compatibility decision. See
|
|
44
|
+
[ADR-062](../docs/adrs/adr-062-lilrae-name-and-naming-convention.md).
|