diff --git a/README.md b/README.md index 1667b95..001c00a 100644 --- a/README.md +++ b/README.md @@ -244,6 +244,13 @@ The [backend architecture guardrails](docs/decisions/cyberbattlesim-backend-guar record the component ownership, failure hygiene, capability claims, and acceptance-test mapping. +Issue [#30](https://github.com/OpenRAE/adapters/issues/30) adds the frozen +[source-native/RAES baseline reproduction](docs/cyberbattlesim-baseline-reproduction.md). +Its content-addressed bundle preserves all 20 scheduled terminal attempts, +offline-recomputable aggregates, six separately cited tiers, and the known +stochastic, topology, evaluator, metric, and packaging limitations for the +OpenRAE/research#14 and #20 consumers. + Issue [#28](https://github.com/OpenRAE/adapters/issues/28) composes that runtime target with the published RAES conformance report and adapter-local source-protocol probes. The backend conformance result remains the exact diff --git a/docs/cyberbattlesim-baseline-reproduction.md b/docs/cyberbattlesim-baseline-reproduction.md new file mode 100644 index 0000000..3104966 --- /dev/null +++ b/docs/cyberbattlesim-baseline-reproduction.md @@ -0,0 +1,169 @@ +# CyberBattleSim baseline reproduction + +Issue [OpenRAE/adapters#30](https://github.com/OpenRAE/adapters/issues/30) +collects the qualified `CyberBattleChain-v0` credential-cache baseline through +two deliberately different lanes: the unmodified upstream +`epsilon_greedy_search` evaluator and the RAES-mediated researcher path. The +result is a content-addressed public data bundle for OpenRAE/research#14 and +OpenRAE/research#20, not a deterministic-replay or outcome-equivalence claim. + +## Required apparatus + +Use CPython 3.12 with the repository's locked `cyberbattlesim` extra, plus a +wheel built from Microsoft CyberBattleSim commit +`854d6966607fb68645651f55b0f97221bd293e0d`. The installed wheel must pass the +adapter's complete-root, selected-file, version, dependency-artifact, symlink, +and module-origin admission checks. A directory or editable simulator install +is rejected. + +The experiment needs no GPU, model weights, external dataset, or network after +source, wheel, and dependency acquisition. Four x86-64 vCPUs, 16 GiB RAM, and +20 GiB of free disk are ample. Collection records logical CPU count, physical +memory, operating system, Python, installed distributions, source identity, +wheel digest, and environment-pack digest without retaining a host name, IP, +provider identifier, path, or provider log. + +## Frozen sequence + +Run from an isolated checkout root. Every output is exclusive and must be a new +invocation-relative directory. + +```bash +mkdir reproduction-work +python -m raes_adapters.cyberbattlesim.reproduction declare \ + --output reproduction-work/declaration +python -m raes_adapters.cyberbattlesim.reproduction native \ + --declaration reproduction-work/declaration \ + --output reproduction-work/native-oracle +``` + +The declaration preallocates ten source-native and ten RAES-mediated run and +attempt IDs, with retry budget zero. It embeds a validated RAES +`ExperimentStudyModel`, references the published task/spec, pins all apparatus +and runner bytes, declares actual random-stream dispositions, and fixes the +aggregation, missingness, bootstrap, tolerance, and six-tier policies. The +native command invokes the exact upstream evaluator once for its ten-episode +schedule. Native reward vectors exist only in private scratch; portable rows +retain cumulative reward, steps, availability, and a source-backed terminal +cause. The upstream evaluator carries its `steps_done` epsilon-decay counter +across episode boundaries. The mediated collector therefore passes the sum of +prior completed mediated steps into each next episode; a failed attempt consumes +only the steps it actually completed and is never retried. + +The first terminalized 20-attempt series under declaration +`825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232` +is rejected from final publication. Its byte-oriented leak gate treated the +names of fields explicitly listed in RAES `withheld_refs` as if native values +had leaked. The scanner bound into that declaration was not changed in place. +The replacement declaration discloses the rejection and allocates disjoint +`cbs-r2-*` run and attempt identities while leaving the source, conditions, +metrics, aggregation, tolerances, and tier policy unchanged. The structural +gate permits those names only as withheld-reference strings; the same names as +JSON keys, embedded payload strings, or non-JSON content still fail closed. + +Revision 2, declaration +`f09ec5759021cf1d5de9b260e0299934bf6f6cc4161b822e8f5f0b76bdb96b53`, +is retained as an immutable negative result. It exposed two adapter apparatus +defects: the mediated driver discarded source-provided network availability and +collapsed all source termination to a generic cause, while its ten independent +processes restarted epsilon decay at zero instead of matching the native +ten-episode batch. Its reward comparison was bounded, its step interval crossed +the frozen tolerance, and its availability/cause comparisons were unavailable. +The corrected `cbs-r3-*` selection binds the predecessor declaration and +inventory identities, but does not edit that bundle, widen a tolerance, change +random-stream bindings, or reinterpret the old result. + +Revision 3, declaration +`c588a174ab97ef1e4d863b743a02213e9527b7731cfbdc897d6602d72362bebf`, +is the finalized corrective result. All 20 scheduled attempts terminalized +valid with zero retries, and the 138-file bundle verifies offline with +`inventory.json` SHA-256 +`20eec98ff44f09e3b3466e0c57af2a960cf9886cdfcd9d5add5f5392172fa8dd`. +Availability and cause are now complete: mean availability differs by +`-0.0008853231676272388` within the frozen +/-0.05 band, and cause proportions +differ by at most `0.1` within the frozen +/-0.10 band. The outcome-evaluation +tier nevertheless remains failed. Reward has mean difference `-488.6` but a +95% interval of `[-1558.015, 90.6]`, outside +/-500; steps have mean difference +`51.4` but a 95% interval of `[-48.5, 153.8025]`, outside +/-60. + +The interval failures are driven by one retained mediated attempt that reached +the predeclared 600-step evaluator cutoff with cumulative reward `512`; the +other nine mediated attempts average about `258.8` steps and `5699.2` reward. +That sensitivity calculation is diagnostic only. The cutoff row was not +excluded, the schedule was not rerun, and the criteria were not changed after +observation. Its exact random path cannot be replayed or causally assigned: +the source-native evaluator leaves all four observed random streams unbound, +while the mediated path binds the Gym environment and action-space streams but +leaves Python-global and NumPy-global streams unbound. A stronger claim needs a +new, prospectively declared study with adequate power and a shared stochastic- +control contract; it cannot be manufactured by editing this result. + +Every stage also writes `bench-notes.json`. Each closed note has an RFC 3339 +UTC timestamp with millisecond precision, phase, severity, stable event code, +concise observation, disposition, and relative evidence references. Collection +writes start and terminalization observations as they happen. Failures remain +timestamped and visible, but exception text, raw native output, host paths, +credentials, and provider identifiers never become notes. The issue thread is +the timestamped record for apparatus and development observations that precede +the frozen declaration. + +Review and commit the unchanged declaration, completed `protocol.json`, native +rows, and oracle before any mediated attempt. If those bytes or any declared +artifact change, discard the unrun schedule and start a new declaration. + +Then collect the mediated lane against the exact admitted pack: + +```bash +python -m raes_adapters.cyberbattlesim.reproduction mediated \ + --oracle reproduction-work/native-oracle \ + --pack environments/cyberbattlesim-chain \ + --output reproduction-work/mediated +``` + +Each mediated attempt invokes the installed researcher command independently, +passes the exact pack/scenario/task/spec/participant joins, admits every policy +proposal through RAES, evaluates through the adapter, verifies cleanup, seals +its portable evidence, and continues to terminalize later IDs after a failed +attempt. In addition to cumulative reward and step count, the evaluator retains +only the source's finite `[0,1]` `network_availability` value for every committed +step and a source-backed reconstructed terminal cause. Those values are written +to `episode-outcome.json`, whose SHA-256 digest is bound by exactly one RAES +evidence record. Missing, malformed, non-finite, out-of-range, length-mismatched, +or unbound outcome evidence fails closed; no raw source `info` is published. + +Finally use the full `declaration_sha256` from the completed protocol as the +output directory name: + +```bash +python -m raes_adapters.cyberbattlesim.reproduction finalize \ + --oracle reproduction-work/native-oracle \ + --mediated reproduction-work/mediated \ + --output packages/cyberbattlesim_adapter/reproduction/ +python -m raes_adapters.cyberbattlesim.reproduction verify \ + --bundle packages/cyberbattlesim_adapter/reproduction/ +``` + +`finalize` assembles a new root once, recomputes lane summaries and 10,000 +counter-addressed SHA-256 percentile-bootstrap resamples, evaluates the six +predeclared tiers, validates digest-bound JSON-Pointer citations, scans the +allowlisted public projection, retains the timestamped verification disposition, +and writes `inventory.json` last. `verify` is a pure offline read: it does not +import CyberBattleSim, contact a network, mutate the bench notes, or read +credentials, caches, provider logs, or private scratch. + +## Interpreting the bundle + +All 20 scheduled attempts stay in the denominator and end `valid`, `invalid`, +`failed`, or `excluded`. Missing metrics are never imputed. Numeric bounded +reproduction requires the complete 95% mean-difference interval to fit inside +the frozen band: steps ±60, cumulative reward ±500, mean availability ±0.05, +and terminal-cause proportion ±0.10. Criteria are not widened after observing +the native oracle. + +The six tier results are separate: authored-source, contract, +execution-control, state-observation, outcome-evaluation, and disclosure. A +passing integrity or contract tier cannot erase stochastic, topology, +observation, evaluator-path, metric-availability, packaging, or upstream +limitations. The bundle makes no claim of deterministic replay, exact state or +observation equivalence, cross-simulator equality, agent ranking, benchmark +comparability, outcome equivalence, or general scientific reproducibility. diff --git a/docs/cyberbattlesim-researcher-command.md b/docs/cyberbattlesim-researcher-command.md index d3c3530..dba7e5e 100644 --- a/docs/cyberbattlesim-researcher-command.md +++ b/docs/cyberbattlesim-researcher-command.md @@ -54,7 +54,7 @@ raes-pack-release check --pack cyberbattlesim-chain The admitted pack content digest is: ```text -sha256:08ae7e997b50bb396c290c4a5537a65e9e7d8b8e6abc97d1ff65022c4258e417 +sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905 ``` An asset with different bytes is rejected even if it is otherwise a valid @@ -67,7 +67,7 @@ From the directory containing the extracted pack: ```bash raes-adapters validate --backend cyberbattlesim-chain --mode smoke \ --pack cyberbattlesim-chain \ - --pack-digest sha256:08ae7e997b50bb396c290c4a5537a65e9e7d8b8e6abc97d1ff65022c4258e417 \ + --pack-digest sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905 \ --scenario sdl/cyberbattlesim-chain.sdl.yaml \ --scenario-digest sha256:9d696ea7fa23a1e7cf4c1cbc145a7989370dc4e9afff2cd5a17d6d1af887b528 \ --experiment experiment/cyberbattlesim-chain.spec.exp.json \ @@ -90,7 +90,7 @@ Use the same arguments with `run`, plus an unused invocation-relative output: ```bash raes-adapters run --backend cyberbattlesim-chain --mode smoke \ --pack cyberbattlesim-chain \ - --pack-digest sha256:08ae7e997b50bb396c290c4a5537a65e9e7d8b8e6abc97d1ff65022c4258e417 \ + --pack-digest sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905 \ --scenario sdl/cyberbattlesim-chain.sdl.yaml \ --scenario-digest sha256:9d696ea7fa23a1e7cf4c1cbc145a7989370dc4e9afff2cd5a17d6d1af887b528 \ --experiment experiment/cyberbattlesim-chain.spec.exp.json \ @@ -106,7 +106,14 @@ raes-adapters run --backend cyberbattlesim-chain --mode smoke \ The exact upstream `CredentialCacheExploiter` proposes each native action. A proposal does not mutate the simulator: its semantic action must first cross the RAES participant admission boundary. The existing adapter evaluator projects -the result, and cleanup is always attempted and verified. +the result, including a checksum-bound sanitized availability/cause artifact, +and cleanup is always attempted and verified. + +An individual run starts epsilon decay at step offset zero. The baseline +reproduction collector supplies `--epsilon-step-offset` internally so ten +process-isolated episodes follow the upstream evaluator's cumulative batch +schedule. The value is non-negative, recorded in participant provenance, and is +rejected for other backends; it is not a seed or replay control. Study mode requires ten `--seed 20260729` occurrences, matching the selected source episode count. Repeated seed labels do not establish deterministic diff --git a/docs/decisions/cyberbattlesim-baseline-reproduction-guardrails.md b/docs/decisions/cyberbattlesim-baseline-reproduction-guardrails.md new file mode 100644 index 0000000..a3a9608 --- /dev/null +++ b/docs/decisions/cyberbattlesim-baseline-reproduction-guardrails.md @@ -0,0 +1,244 @@ +# CyberBattleSim baseline-reproduction guardrails + +GitHub issue #30 is the authority for this deliverable. This note fixes the +repository-wide boundaries for the frozen source-native/RAES comparison bundle. +It defines no RAES contract, scientific equivalence vocabulary, simulator +profile, or implementation plan. + +## One frozen study artifact, two execution lanes + +The issue-mandated +`packages/cyberbattlesim_adapter/reproduction//` coordinate is +a checked-in, consumer-facing **data** boundary for OpenRAE/research#14 and #20. +It is not a Python package, import root, distribution, environment pack, +runtime store, or second adapter. Do not add `pyproject.toml`, `__init__.py`, a +lockfile, executable source, or native simulator content beneath that path. +The one `raes-adapters` distribution and all executable CyberBattleSim behavior +remain under `src/raes_adapters/cyberbattlesim`; the external environment pack +remains under `environments/cyberbattlesim-chain`. + +The source-native and RAES-mediated lanes share only immutable selection, +metric definitions, attempt identities, terminal-disposition rules, and +post-run analysis. Their execution paths remain deliberately distinct: + +- The source-native lane executes the pinned + `notebooks/notebook_withdefender.py` selection through the pinned upstream + `epsilon_greedy_search` path before adapter normalization. It must first + reuse the complete source/distribution/tree/module-origin admission checks. + It must not call `CyberBattleSimDriver`, RAES action admission, the adapter + evaluator, or a copied/reimplemented notebook loop and call that native. +- The mediated lane uses the exact admitted external pack and participant + artifacts, `CyberBattleSimDriver`, `create_cyberbattlesim_target()`, + `RuntimeManager`, public participant action admission, the adapter evaluator, + and verified cleanup. It must not call the upstream evaluator directly, + inject a fake driver, or import native state around the target boundary. + +Common post-processing reads retained portable evidence from both lanes. It +must not compare in-memory native objects, use the native lane as an alternate +adapter implementation, or force the two lanes through one ambiguous generic +"runner" abstraction. + +## Freeze and identity boundary + +`protocol.json` has two integrity domains. Its declaration fixes the condition +matrix, source and apparatus selections, evaluator, metric definitions, run +allocation, seeds and actual binding dispositions, reset/order/budget/stop and +exclusion rules, aggregation and 95% uncertainty method, missing-data policy, +tolerances, and exact/bounded/failed criteria before source execution. Its +oracle section records the source-native results without changing that +declaration. The declaration digest is retained before the native lane; the +completed file and oracle are byte-frozen in version control before the first +mediated attempt, and every mediated attempt binds their digest. Neither +criteria nor source outcomes may be edited after mediated evidence exists. + +The semantic owners inside that file remain the published +`ExperimentTaskModel`, `ExperimentSpecModel`, and `ExperimentStudyModel` +surfaces. In particular, use the study run-allocation and analysis-plan fields +for conditions, replication, statistical method, uncertainty, multiplicity, +stopping, and missingness, and use the task's evaluation protocol and metric +definitions for measured constructs. `protocol.json` is a thin issue-local +index plus the comparison/oracle fields issue #30 explicitly requires; it must +reference the canonical task/spec/pack artifacts by id and digest rather than +copy their contents or define another experiment model or JSON Schema. + +`source-ledger.json` is likewise a bundle-local integrity index, not a second +mapping ledger. It cites `qualification.json`, `public-protocol.md`, +`mapping/source-ledger.jsonl`, `mapping/loss-disclosures.md`, the selected +notebook/source files, external pack, participant artifacts, adapter version, +and every compatibility patch by immutable identity and digest. Existing loss +and exclusion meanings stay with their canonical owners. A new patch must first +become reviewed qualification evidence with its base and resulting identities; +it cannot appear only in setup code or the reproduction bundle. + +`` names an immutable study revision, not a mutable branch, +working tree, date alias, source tag alone, or "latest" directory. An admitted +bundle root is never overwritten, resumed, appended, or reused. A changed +protocol, source, pack, patch, analysis method, or rerun is a new revision with +new attempt identities. + +## Reuse the existing owners + +| Concern | Canonical incumbent and required boundary | +| --- | --- | +| Selected source and public protocol | `load_qualification()`, `read_public_protocol()`, `CYBERBATTLE_CHAIN`, `EvidenceSelection`, the qualified source-file/tree/runtime-artifact identities, and the package-local source/loss ledgers. Read and join them; do not repeat source constants in a study runner. | +| Source admission | `verify_selected_cyberbattlesim_source()` and `_source_admission`'s distribution, direct-artifact, complete-root, selected-file, symlink, version, and module-origin checks. Both real lanes fail closed before native import; a missing/mismatched source is retained as a terminal failure, never a fake-driver fallback. | +| Pack and authored contracts | `raes_env_packs.validate_pack()`, `verify_pack_content_digest()`, `raes-pack-release check`, confined `_pack_child()`, strict duplicate-key JSON loading, bounded RAES SDL parsing/instantiation/digest, and the exact external task/spec/participant artifacts. Do not execute acquired pack code or trust filenames without bytes. | +| Experiment design and allocation | `ExperimentTaskModel`, `ExperimentSpecModel`, `ExperimentStudyModel`, `ExperimentRunAllocationPlanModel`, `ExperimentAnalysisPlanModel`, and their cross-artifact validators. Do not create a reproduction protocol DTO, alternate metric catalog, or prose-only tolerance table. | +| Scheduled trial identity | RAES `AdmittedTrialPlanModel` / `AdmittedTrialEntryModel`, their seal/digest validators, `TrialCoordinateModel`, and admitted execution-control/cleanup-plan fields where the scheduled study is representable. Preallocate unique run coordinates and distinguish a logical run from every effect-capable attempt. | +| Attempt and run provenance | `TrialRunProvenanceModel`, `TrialExecutionAttemptReferenceModel`, `ExperimentRunModel` statuses, `ExperimentInvalidationModel`, operation references, and the published cleanup receipt on the mediated path. The mandated valid/invalid/failed/excluded bundle disposition is a thin terminal index over those owners, not another run or receipt model. Never turn an exclusion into a success or omit it from the scheduled inventory. | +| Runtime and participant authority | `RunControls`, `execute_episode()`, `create_cyberbattlesim_target()`, `RuntimeManager`, `RuntimeTarget`, the four backend components, public participant admission/result/history validation, and `RuntimeManager.destroy()`. Reuse or narrowly extract existing admission/artifact mechanics; do not call private RAES backend methods or copy the researcher workflow into a second adapter. | +| Evidence and measures | `ExperimentCaptureSpecModel`, `ExperimentEvidenceRecordModel`, `ExperimentDerivedMeasureModel`, `ExperimentArtifactRefModel`, `_experiment_evidence.py`, `CyberBattleSimEvaluator`, and task metric ids. Retain model-validated per-run projections; no local observation/reward/metric DTO and no native fallback payload. | +| Conformance and disclosures | `run_cyberbattlesim_conformance()`, `cyberbattlesim_backend_conformance_payload()`, source-protocol diagnostics, manifest capability-evidence closure, declared weaknesses, scenario-ledger validation, and the existing non-claims. Conformance is cited evidence, not a study run or outcome-equivalence result. | +| Diagnostics and redaction | RAES `Diagnostic` / `DiagnosticModel` / `diagnostic_model()`, `ApplyResult`, canonical model/report projections, `redact_native_value()`, and `bounded_context_label()`. Use stable JSON Pointer addresses and bounded input-free messages; add no exception or diagnostic hierarchy. | +| Persistence and integrity | Exclusive invocation-relative output reservation, `atomic_write_json_artifact()`, relative artifact references, `_seal_inventory()`-style size/hash inventory written last, and existing no-clobber behavior. The checked-in bundle is archival experiment output, not `ControlPlaneStore` runtime state or a new evidence repository service. | +| Verification and workflow | Existing CyberBattleSim qualification, ledger, backend, conformance, researcher-command, hostile-leak, and clean-wheel tests; the one `pyproject.toml`/`uv.lock`; `_verification_envs()`, `_distributions()`, strict docs/policy, and canonical `nox -s verify`. Real native evidence remains a reviewed manual/readiness lane; do not add a network-dependent PR test or unenforced workflow. | + +Published models should carry every fact they can express. The four mandated +bundle projections that RAES does not currently own remain narrowly +issue-local: + +- `protocol.json` adds the source/mediated pairing, frozen oracle values, and + predeclared exact/bounded/failed comparison criteria around canonical + experiment references; +- each `runs/` terminal row adds only lane plus + valid/invalid/failed/excluded disposition and references to the applicable + RAES run/evidence/attempt/cleanup artifacts; +- `aggregates.json` adds structured point estimates and 95% interval endpoints + computed from referenced per-run measures, because a prose uncertainty field + is not a recomputable interval; and +- `tiers.json` fixes exactly the six issue-named tiers and their + pass/fail/weakened result with relative, digest-bound, JSON-Pointer evidence + citations. These labels are not a backend profile, RAES validation profile, + capability table, or reusable equivalence vocabulary. + +Use a small closed backend-local validator for only those issue-mandated gaps: +reject duplicate/unknown fields, non-finite numbers, duplicate identities, +unsafe relative paths, missing digests, unresolved citations, undeclared +metrics, nonterminal attempts, post-freeze drift, and aggregate/tier results +that cannot be recomputed. Do not publish Pydantic models or JSON Schemas for +them, put them in `raes_adapters.base`, or duplicate validation already owned by +RAES, the pack validator, qualification, or the source ledger. + +## Attempts, aggregation, and tier claims + +All logical run and attempt identities are allocated before the applicable +lane starts. A retry is a new effect-capable attempt id linked to the same +logical run only when the frozen retry policy permits it; an id is never reused +after failure, exclusion, cancellation, timeout, cleanup failure, or process +failure. The accepted bundle contains no scheduled/running/unknown residue. +Every row ends valid, invalid, failed, or excluded, cites bounded diagnostics +and cleanup evidence where applicable, and remains visible to denominator and +missing-data calculations. + +The current researcher batch loop is not sufficient by itself: it stops at the +first exception and retains only a batch-level failure. Reproduction must keep +the same admission/execution/sealing mechanics while terminalizing each +predeclared attempt and continuing or stopping exactly as the frozen policy +says. A cleanup, evidence-validation, persistence, inventory, or terminalization +failure is not a valid run. An interrupted, unsealed root is not publishable and +must never be mistaken for a resumable successful bundle. + +Aggregation is a pure read of retained terminal rows and model-validated +per-run evidence. It uses the frozen metric, inclusion, missingness, +aggregation, and 95% interval methods; records all scheduled, valid, invalid, +failed, and excluded counts; and never reads simulator source, imports the +adapter, uses wall-clock order as data, or silently drops a bad run. Clean +recomputation verifies every content digest and contract join, recomputes +`aggregates.json` and `tiers.json` byte-for-byte or semantically under an +explicit canonicalization, and needs no network, native source, credential, +provider log, or private artifact. + +Tier results do not collapse into one `passed` boolean. A tier may pass only +the predeclared facts and evidence within its scope. A known loss, unsupported +RAES fact, missing source artifact, control mismatch, or unavailable metric +becomes failed or weakened according to the frozen criteria; it is not repaired +by widening a tolerance after viewing outcomes. Citations point to retained +artifact paths, SHA-256 digests, and JSON Pointers, never raw source logs or an +uncited prose assertion. + +## Cross-cutting security and whole-repository path + +| Layer the intended design passes | Required treatment | +| --- | --- | +| Authentication and authorization | The reproducer is a local operator command with no route, daemon, remote caller, or new authentication surface. Source-native execution is oracle collection only, not participant authorization. Mediated actions still cross the compiled participant behavior, exact manifest/selection/configuration and exposure-policy joins, and public RAES admission. Any later HTTP surface must reuse `create_control_plane_app()` with `ControlPlaneSecurityConfig.strict_defaults`, verified identity, role/target authorization, request-size limits, denial audit, and redacted errors. | +| Secrets and disclosure | The public protocol needs no credential input and must not read a repository/user secret store, `.env`, provider log, or ambient token. Learned CyberBattleSim credentials, native observations, action coordinates/masks, hidden graph/evaluator truth, reward vectors, random state, stdout/stderr, object representations, paths, argv/environment mappings, exceptions, and tracebacks remain private. Hashing any of them does not make them publishable. Final publication is allowlist-based and reviewed. | +| CLI and configuration shape | Extend only the existing closed command/backend selection or a backend-local module entry point; accept no arbitrary import, evaluator class, source path, corpus/profile root, plugin, URL, environment override, or native field selector. Reuse safe run-id rules, exact mode/cardinality checks, strict JSON, confined pack-child resolution, pack digest, scenario/task/spec/participant joins, and source admission before output/native execution. | +| Source-native shape checks | Verify the qualified artifact before import, then validate only the pinned reset/step/evaluator return shapes and bounded scalar/category/series projections. Native records are not made portable by recursive sanitization. An unexpected shape or unsupported terminal/availability fact is a bounded failed/weakened result, not guessed data. | +| RAES/runtime validation | The mediated path passes RAES SDL/experiment/participant closed models, pack validation, `RuntimeTarget` manifest/signature gates, `RuntimeManager` planning, `ApplyResult` and snapshot-transition validation, participant/action/history joins, evaluator/evidence models, and cleanup receipt validation. Native mutation followed by invalid projection is failure requiring cleanup. | +| Error envelopes | Expected source, parser, identity, control, execution, timeout, cleanup, projection, persistence, recomputation, and tier failures become validated RAES diagnostics with fixed codes/messages. Never serialize exception text/types from hostile native code, causes, locals, rejected Pydantic input, raw stdout/stderr, or traceback. The terminal bundle row references diagnostics and does not invent an error envelope. | +| OS/process exposure | Run from explicit isolated temporary working/home/cache directories with cleared `PYTHONPATH`, `PYTHONSAFEPATH=1`, no network after acquisition, no shell interpolation, explicit argument vectors, a small environment allowlist, timeouts, bounded control output, and native stdout/stderr redirected and discarded. Reuse the pattern in `sanitized_subprocess_env()` / `_run()` from the qualification tooling when process isolation is needed; never put secrets or native payloads in argv/environment. A sanitized environment is not proof of OS-level network isolation: collector code performs no network calls, and any claim of enforced egress denial must cite an external sandbox or network-namespace control. | +| Logging and observability | Portable observability is contract-validated evidence, terminal rows, bounded diagnostics, cleanup/operation references, aggregates, tiers, limitations, closed timestamped bench notes, and the final inventory. Each bench note uses an RFC 3339 UTC timestamp, phase, severity, stable event code, observation, disposition, and relative evidence references; start, failure, and terminalization events are written as they occur. Logs/terminal output are allowlisted to safe ids, counts, relative names, modes, and dispositions. Do not log plans, pack contents, actions, observations, rewards, paths, random state, exception text, or native process output. | +| Persistence and publication | Reserve a new confined root exclusively, reject files/directories/symlinks already present, publish validated JSON atomically, use fixed/safe child names and relative URIs, and write the content inventory last. Every collected stage, final bundle root, and member must be a regular non-symlink object; finalization and offline verification reject symlinked inputs even when their targets resolve inside the bundle. Never overwrite, append, resume, auto-delete material failures, retain host paths, or treat a mutable cache/database as evidence. The repository's 500 KiB file gate and private-key/leak scans still apply to every checked-in member. | +| Repository workflow | Keep code/tests in the existing package/test/nox graph and preserve lazy base/extra isolation. The real source-native plus real mediated run updates the manual CyberBattleSim readiness protocol and passing record only after both identities and leak checks pass. If a new CI job ever becomes unavoidable, it must join `PR Gate`; issue #30 does not justify one by default. | + +## Extension seam + +The extension seam is one immutable backend-local reproduction selection: +frozen revision; source qualification and notebook/evaluator identity; external +pack/scenario/task/spec/participant identities; lane ids; admitted trial plan; +metric and analysis references; and comparison/tier policy. Execution harnesses +receive that selection and emit retained evidence; the recomputer receives only +the sealed bundle. + +A second CyberBattleSim public baseline, changed run count, or additional metric +is another selection and frozen bundle. It must not require editing the first +bundle, a cross-simulator registry, `raes_adapters.base`, RAES schemas/profiles, +or a hard-coded metric/tier switch outside the selection. The seam is not an +invitation to make source-native execution generic across simulators. + +## Gotchas and anti-patterns + +- The public notebook leaves all four stochastic sources uncontrolled, while + the current mediated reset applies the provided value to Gym environment and + action-space streams but leaves Python and global NumPy unbound. A repeated + seed label is not the same as an executable binding. Freeze and compare the + actual dispositions; do not silently seed the native oracle, remove seeding + from the mediated path, or call the lanes equivalent merely to improve a tier. +- The current task declares steps, cumulative reward, availability, and + terminal-cause metrics. The corrected adapter retains the source-provided + availability scalar for each committed step and uses availability together + with the source terminal reward/flags to distinguish the pinned protocol's + causes. Do not retain any other source `info`, infer a specific cause when + those signals are incomplete, or bypass the checksum-bound evaluator evidence + member. Missing or malformed facts fail closed. +- The authored RAES topology is explicitly representative while the native + apparatus generates the size-10 chain. Shared condition identity does not + make the scenario snapshots or state spaces equal. Preserve + `loss-abstracted-topology` in state/observation and outcome interpretation. +- The adapter reproduces the selected policy through proposal plus RAES + admission and an adapter-owned loop; the native oracle uses upstream + `epsilon_greedy_search`. The mediated collector must carry completed prior + lane steps into the next episode's epsilon schedule, while keeping the actual + unequal random-stream dispositions visible. A shared policy class name or + matching epsilon sequence alone is not evaluator or stochastic equivalence. +- Keep source termination, reconstructed cause, Gym termination/truncation, + evaluator cutoff, participant terminal reason, objective truth, run status, + attempt disposition, cleanup status, derived measure, aggregate acceptance, + conformance, readiness, and scientific validity distinct. +- Do not combine the historical benchmark snapshot with the newer qualified + commit, use it as the oracle, or tune against it. Do not fetch a floating + notebook, branch, image, dependency, or environment pack during reproduction. +- Do not duplicate `qualification.json`, `source-ledger.jsonl`, task/spec, + participant artifacts, native source, raw notebooks, or environment-pack + content into the bundle. Cite immutable identities and include only the + issue-required reviewed projections. +- Do not add a reproduction schema registry, profile, capability table, + controller, service, database, repository, cache, exception hierarchy, + redaction policy, second console script, second distribution/lock, or + simulator-wide baseline framework. + +## Non-goals and implementation boundaries + +- No patch or requalification of CyberBattleSim, new source artifact, + deterministic random-stream binding, replay engine, training loop, agent + ranking, leaderboard, or notebook UI is part of issue #30. +- No change to RAES SDL/experiment/participant/validation semantics, backend + profiles, fixture corpus, environment-pack schema, manifest vocabulary, + runtime security, `ControlPlaneStore`, or shared base semantic boundary. +- No deterministic replay, exact state/observation equivalence, + cross-simulator equality, benchmark comparability, agent superiority, + general scientific reproducibility, or outcome equivalence follows from a + passing run, interval, tier, readiness record, or clean recomputation. +- The bundle qualifies this one pinned CyberBattleSim baseline and adapter + selection for the named frozen research consumers. It is not a general + reproduction service or evidence authority for other backends or studies. diff --git a/docs/decisions/cyberbattlesim-native-readiness-record.md b/docs/decisions/cyberbattlesim-native-readiness-record.md index 1629ec9..cd46486 100644 --- a/docs/decisions/cyberbattlesim-native-readiness-record.md +++ b/docs/decisions/cyberbattlesim-native-readiness-record.md @@ -40,3 +40,90 @@ traceback. Native stdout and stderr were discarded by the command boundary. The golden-readiness checklist remains unchecked. Advancing from `built` to `golden` still requires its full manual participant-equivalent walkthrough and durable golden evidence. + +## Baseline reproduction evidence — 2026-08-10 + +Issue [OpenRAE/adapters#30](https://github.com/OpenRAE/adapters/issues/30) +executed the exact source-native and installed RAES-mediated paths from an +offline CPython 3.12.3 environment on four x86-64 vCPUs with 16 GiB RAM. The +apparatus used implementation commit +`bf1cbff7bfeace506324910651697ef7b00b5de6`, adapter wheel SHA-256 +`52550a728936151208dd6875b5112b274edd9e3b93e844e34f34497026aa1808`, +and upstream wheel SHA-256 +`d921703d77b82f14aeaff223cfeaf3753916b1518119d474dfd5e4444170b9a5`. +The admitted pack digest was +`sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905`. + +The accepted declaration is +`f09ec5759021cf1d5de9b260e0299934bf6f6cc4161b822e8f5f0b76bdb96b53`. +All ten source-native and ten mediated attempts terminalized valid with cleanup +verified and zero retries. The final 128-file bundle passed structural leakage +scanning, contract validation, digest-bound citation validation, inventory +verification, and independent offline recomputation. Its inventory file +SHA-256 is +`4653bc5afbf501f005f997df782f73f282cccbe28f9cbe176d5a9c3f5970a292`. + +The scientific result is deliberately not described as passing overall: + +| Tier or metric | Result | +| --- | --- | +| Authored source / contract / disclosure | passed / passed / passed | +| Execution control / state-observation | weakened / weakened | +| Outcome-evaluation | failed | +| Cumulative reward | bounded; mean difference 19.2, 95% interval `[-91.8025, 130.1025]` within ±500 | +| Steps to termination | outside tolerance; mean difference 33.5, 95% interval `[-55.0, 119.5]` exceeds ±60 | +| Availability / terminal cause | unavailable because the mediated evaluator does not retain them | + +The first 20-attempt series remains retained under declaration +`825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232` +with a machine-readable rejection record. Its bound byte scanner could not +distinguish RAES `withheld_refs` names from native values, so its criteria and +scanner were not edited in place; the accepted revision used disjoint +identities and unchanged scientific conditions. + +## Corrective baseline reproduction — 2026-08-11 + +Revision 3 ran from implementation commit +`e5d6aff625047037f5a94a9635d92966413055b7` using the exact adapter wheel with +SHA-256 +`150c3b69a91d766d7863feb01e443257ad646e7f9cddcb2727a58c8c6137793d`. +Its declaration is +`c588a174ab97ef1e4d863b743a02213e9527b7731cfbdc897d6602d72362bebf`. +All ten source-native and ten mediated attempts terminalized valid with zero +retries. The final 138-file bundle passes independent offline recomputation, +evidence-reference and citation checks, the bounded leakage scan, regular-tree +checks, and inventory verification. Its `inventory.json` SHA-256 is +`20eec98ff44f09e3b3466e0c57af2a960cf9886cdfcd9d5add5f5392172fa8dd`. + +Revision 3 corrected the apparatus defects without changing the frozen +tolerances or stochastic bindings: the mediated lane now retains one +checksum-bound sanitized availability/cause artifact per episode and carries +the upstream evaluator's cumulative epsilon-step schedule across its isolated +processes. The observed result is: + +| Tier or metric | Result | +| --- | --- | +| Authored source / contract / disclosure | passed / passed / passed | +| Execution control / state-observation | weakened / weakened | +| Outcome-evaluation | failed | +| Cumulative reward | outside tolerance; mean difference `-488.6`, 95% interval `[-1558.015, 90.6]` exceeds +/-500 | +| Steps to termination | outside tolerance; mean difference `51.4`, 95% interval `[-48.5, 153.8025]` exceeds +/-60 | +| Mean availability | bounded; mean difference `-0.0008853231676272388`, 95% interval `[-0.010524172216097161, 0.00887836373877486]` within +/-0.05 | +| Terminal cause | bounded; source `defender-sla` proportion `1.0`, mediated `0.9` plus `0.1` evaluator cutoff, within +/-0.10 | + +One mediated attempt reached the declared 600-step cutoff with cumulative +reward `512`; the other nine mediated attempts average about `258.8` steps and +`5699.2` reward. This single retained row drives both interval failures. It was +not excluded or retried. Because the compared paths have explicitly different +and partly unbound random-stream dispositions, the exact path is not +deterministically attributable. The result supports readiness and research +diagnosis, but not outcome equivalence; a stronger claim requires a separately +declared stochastic-control and sample-size design. + +Together, these records supply the CyberBattleSim apparatus/readiness slice for +[OpenRAE/research#14](https://github.com/OpenRAE/research/issues/14) and the +content-addressed, recomputable publication slice for +[OpenRAE/research#20](https://github.com/OpenRAE/research/issues/20). It does +not by itself close corpus-wide readiness, complete the paper, assign a +persistent identifier, mark the environment pack golden, or establish +deterministic replay or outcome equivalence. diff --git a/docs/index.md b/docs/index.md index 2661ba6..76f9a03 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,6 +21,7 @@ semantic and protocol authority. - [Installed researcher command](researcher-command.md) - [NASim researcher command](nasim-researcher-command.md) - [CyberBattleSim researcher command](cyberbattlesim-researcher-command.md) +- [CyberBattleSim baseline reproduction](cyberbattlesim-baseline-reproduction.md) - [Contribution guide](https://github.com/OpenRAE/adapters/blob/dev/CONTRIBUTING.md) - [Architecture decisions](decisions/adrs/README.md) - [CybORG/CAGE-2 backend qualification guardrails](decisions/cyborg-cage2-runtime-qualification-guardrails.md) @@ -45,6 +46,7 @@ semantic and protocol authority. - [CyberBattleSim backend architecture guardrails](decisions/cyberbattlesim-backend-guardrails.md) - [CyberBattleSim conformance-composition guardrails](decisions/cyberbattlesim-conformance-guardrails.md) - [CyberBattleSim environment-pack and researcher-command guardrails](decisions/cyberbattlesim-researcher-command-guardrails.md) +- [CyberBattleSim baseline-reproduction guardrails](decisions/cyberbattlesim-baseline-reproduction-guardrails.md) - [CyberBattleSim chain native-readiness record](decisions/cyberbattlesim-native-readiness-record.md) - [Project services](maintainers/project-services.md) diff --git a/environments/cyberbattlesim-chain/docs/golden-readiness-checklist.md b/environments/cyberbattlesim-chain/docs/golden-readiness-checklist.md index 1f89f12..e9fb479 100644 --- a/environments/cyberbattlesim-chain/docs/golden-readiness-checklist.md +++ b/environments/cyberbattlesim-chain/docs/golden-readiness-checklist.md @@ -34,3 +34,31 @@ pack may move beyond its evidence-backed status. It is not participant content. before a source transition and that the evaluator remains a separate view. - [ ] Confirm the scenario objective and experiment controls agree with the canonical installed mirrors and the recorded native rehearsal. + +## Baseline-reproduction readiness lane + +This lane is separate from golden promotion. Completing it does not change the +pack status from `built` to `golden`. + +- [ ] Build and install CyberBattleSim from the exact qualified commit as a + non-editable wheel, then pass pre-import source admission. +- [ ] Freeze the issue-30 declaration with 20 unique run/attempt IDs, zero + retries, exact task/spec/pack/participant/runner digests, actual + stochastic dispositions, missingness policy, bootstrap method, + tolerances, and six tier criteria. +- [ ] Execute the exact upstream ten-episode `epsilon_greedy_search` batch and + commit the completed native oracle before the first mediated attempt. +- [ ] Execute all ten mediated attempts through RAES participant admission, + evaluator projection, sealed evidence, and verified cleanup; retain every + failed, invalid, or excluded attempt without replacement. +- [ ] Recompute `aggregates.json` and `tiers.json` offline from the retained run + rows; verify all digest-bound citations and the final inventory. +- [ ] Scan the complete bundle for native observations, action coordinates, + credentials, reward vectors, hidden state, random state, host paths, + argument/environment dumps, provider logs, exceptions, and tracebacks. +- [ ] Record the exact source/adapter/pack/software/hardware identities and all + unsupported controls or metrics in the readiness record. +- [ ] Confirm the report makes no deterministic-replay, exact state or + observation equivalence, cross-simulator equality, agent-ranking, + benchmark-comparability, outcome-equivalence, or general scientific + reproducibility claim. diff --git a/environments/cyberbattlesim-chain/pack.content-manifest.json b/environments/cyberbattlesim-chain/pack.content-manifest.json index ec12772..3f65562 100644 --- a/environments/cyberbattlesim-chain/pack.content-manifest.json +++ b/environments/cyberbattlesim-chain/pack.content-manifest.json @@ -51,9 +51,9 @@ "uri": "raes-environment-pack:/docs/golden-readiness-checklist.md", "checksum": { "algorithm": "sha256", - "value": "ab3febf666b60f8a08186d9e9e97471b652e2522ef3c9cd5a34b450921229fe2" + "value": "9b718e4e388b409cb619bc9e6c02c87fd942cfea8c3c535f94c35b2f8040219f" }, - "size_bytes": 2123, + "size_bytes": 3824, "created_at": "2026-08-08T00:00:00Z", "source": "OpenRAE/adapters#29", "satisfies_refs": [], @@ -205,5 +205,5 @@ "description": null } }, - "set_digest": "sha256:08ae7e997b50bb396c290c4a5537a65e9e7d8b8e6abc97d1ff65022c4258e417" + "set_digest": "sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905" } diff --git a/mkdocs.yml b/mkdocs.yml index 055ba2e..e99ca36 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,6 +33,7 @@ nav: - Researcher command: researcher-command.md - NASim researcher command: nasim-researcher-command.md - CyberBattleSim researcher command: cyberbattlesim-researcher-command.md + - CyberBattleSim baseline reproduction: cyberbattlesim-baseline-reproduction.md - Maintainers: - Continuous integration: maintainers/ci.md - Project services: maintainers/project-services.md @@ -66,6 +67,7 @@ nav: - CyberBattleSim backend architecture guardrails: decisions/cyberbattlesim-backend-guardrails.md - CyberBattleSim conformance-composition guardrails: decisions/cyberbattlesim-conformance-guardrails.md - CyberBattleSim environment-pack and researcher-command guardrails: decisions/cyberbattlesim-researcher-command-guardrails.md + - CyberBattleSim baseline-reproduction guardrails: decisions/cyberbattlesim-baseline-reproduction-guardrails.md - CyberBattleSim chain native-readiness record: decisions/cyberbattlesim-native-readiness-record.md - ADR 003 — Single distribution and Trusted Publishing: decisions/adrs/adr-003-single-distribution-and-trusted-publishing.md - ADR 002 — RAES authority and adapter boundaries: decisions/adrs/adr-002-raes-authority-and-adapter-boundaries.md diff --git a/noxfile.py b/noxfile.py index dad1857..fbde2ec 100644 --- a/noxfile.py +++ b/noxfile.py @@ -618,7 +618,7 @@ def _distributions(session: nox.Session) -> None: "--pack", str(REPO_ROOT / "environments" / "cyberbattlesim-chain"), "--pack-digest", - "sha256:08ae7e997b50bb396c290c4a5537a65e9e7d8b8e6abc97d1ff65022c4258e417", + "sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905", "--scenario", "sdl/cyberbattlesim-chain.sdl.yaml", "--scenario-digest", diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/bench-notes.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/bench-notes.json new file mode 100644 index 0000000..1ab3ece --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/bench-notes.json @@ -0,0 +1,23 @@ +{ + "declaration_sha256": "825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232", + "notes": [ + { + "disposition": "passed", + "event_code": "protocol-declared", + "evidence_refs": [ + { + "path": "protocol.json" + }, + { + "path": "source-ledger.json" + } + ], + "note_id": "declaration-001", + "phase": "declaration", + "recorded_at": "2026-08-10T03:54:02.312Z", + "severity": "info", + "summary": "The declaration and 20 never-reused attempt identities were written before experiment effects." + } + ], + "schema_version": "cyberbattlesim-baseline-bench-notes/v1" +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/inventory.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/inventory.json new file mode 100644 index 0000000..9bbc9eb --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/inventory.json @@ -0,0 +1,22 @@ +{ + "artifacts": [ + { + "media_type": "application/json", + "path": "bench-notes.json", + "sha256": "2abc2ef6dbd22b16fe465068d557edd87864cb5f5c44ab23fd78b96499e81690", + "size_bytes": 662 + }, + { + "media_type": "application/json", + "path": "protocol.json", + "sha256": "ca618b9541527af706bc78d8b8262f9c83af0668801adf6574b2517d52e4ed1f", + "size_bytes": 17372 + }, + { + "media_type": "application/json", + "path": "source-ledger.json", + "sha256": "01c8dee3298778bdf537281b128b39c8030f134fe7492fabe4577d62ed370598", + "size_bytes": 4338 + } + ] +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/protocol.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/protocol.json new file mode 100644 index 0000000..eded497 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/protocol.json @@ -0,0 +1,495 @@ +{ + "declaration": { + "aggregation": { + "bootstrap_resamples": 10000, + "missingness": "No imputation; every terminal attempt remains in denominators.", + "numeric_statistics": [ + "count", + "mean", + "median", + "sample-standard-deviation", + "minimum", + "maximum" + ], + "uncertainty": "95% deterministic percentile bootstrap interval of the mean" + }, + "artifacts": [ + { + "artifact_id": "qualification", + "path": "src/raes_adapters/cyberbattlesim/qualification.json", + "sha256": "0b55f88c0ff628980c976a50f38f71ff7ec0f94b2e50e2b87f6498d5dd01c147" + }, + { + "artifact_id": "public-protocol", + "path": "src/raes_adapters/cyberbattlesim/public-protocol.md", + "sha256": "0de0d8585ee9e3bb0901bd2d71b71a9504774b38bdab38f6f5509d0a9e34d26f" + }, + { + "artifact_id": "source-ledger", + "path": "src/raes_adapters/cyberbattlesim/mapping/source-ledger.jsonl", + "sha256": "8776a340873e6b56a55767e4257f05ba1bb71fa2b37003a2023b0fe3b0cce553" + }, + { + "artifact_id": "loss-disclosures", + "path": "src/raes_adapters/cyberbattlesim/mapping/loss-disclosures.md", + "sha256": "3c2530553a6ab035a6c505e80bf02298f1ab07dd3ffc72216f87f6381113181c" + }, + { + "artifact_id": "reproduction-runner", + "path": "src/raes_adapters/cyberbattlesim/reproduction.py", + "sha256": "44c5573635a2adc655e78eff8765c25c58b469a3f378975fce83f21c6c4ead98" + }, + { + "artifact_id": "mediated-researcher", + "path": "src/raes_adapters/cyberbattlesim/researcher.py", + "sha256": "35a320b319fd2fd880a49ce2a670576c23a754ff4a67d80618be848fb42fc0d1" + }, + { + "artifact_id": "mediated-driver", + "path": "src/raes_adapters/cyberbattlesim/backend/driver.py", + "sha256": "1f86e3522c6e7ff5b17f8ac4eed5d9567da3c674218b5f1bf3cd8c0e10028202" + }, + { + "artifact_id": "selected-source-helper", + "path": "src/raes_adapters/cyberbattlesim/backend/source.py", + "sha256": "977b91e77d0c1fe23f265ab59151a8c478b43fff20d44afd79b0392c20bf62de" + }, + { + "artifact_id": "task", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.task.exp.json", + "sha256": "6588ac115931b8de7052d52ccb94bbd258c5e6c78ffb9d5f5d1c0570f9236ce5" + }, + { + "artifact_id": "spec", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.spec.exp.json", + "sha256": "c31d2f4376ad7877d756e6a572a5e9e344b0899c4e8e996e1b5f57eaa78be391" + }, + { + "artifact_id": "pack-manifest", + "path": "environments/cyberbattlesim-chain/pack.content-manifest.json", + "sha256": "8131a2a294da39fceeca1595da1f987dbbc934a234c635fbb935e7d223cf103c" + }, + { + "artifact_id": "participant-manifest", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.manifest.json", + "sha256": "2ea827eb709a036b1721a91fabce787a320845bf26e3e6f0a0e5e768e7f9d93b" + }, + { + "artifact_id": "participant-selection", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.selection.json", + "sha256": "ce920ca6362b37e8cde6af12190ee9b84e9ea3c3fc89842d31366f0ec6031935" + }, + { + "artifact_id": "participant-configuration", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.configuration.json", + "sha256": "2b5e0fd0ef0be839af33763199e76192196a4928ca555a230af0f685c38eeced" + } + ], + "bench_notes": { + "artifact": "bench-notes.json", + "publication_policy": "Record controlled observations and dispositions as work occurs; exclude raw native output, exception text, host paths, credentials, and provider identifiers.", + "required_fields": [ + "note_id", + "recorded_at", + "phase", + "severity", + "event_code", + "summary", + "disposition", + "evidence_refs" + ], + "schema_version": "cyberbattlesim-baseline-bench-notes/v1", + "timestamp_profile": "RFC3339 UTC with millisecond precision" + }, + "comparison": { + "bounded": { + "cumulative_attacker_reward": 500.0, + "network_availability": 0.05, + "steps_to_termination": 60.0, + "terminal_cause": 0.1 + }, + "exact": "Complete ordered per-run vectors and control dispositions match.", + "failed": "A complete interval lies outside its bound.", + "unavailable": "A declared metric is absent from either lane; no tolerance is inferred." + }, + "condition": { + "attacker": "CredentialCacheExploiter", + "defender": "ScanAndReimageCompromisedMachines(0.6,2,5)", + "episode_count_per_lane": 10, + "epsilon": 0.9, + "epsilon_exponential_decay": 10000, + "epsilon_minimum": 0.1, + "gym_id": "CyberBattleChain-v0", + "maximum_steps": 600, + "size": 10 + }, + "explicit_non_claims": [ + "deterministic replay", + "exact state or observation equivalence", + "cross-simulator equality", + "agent ranking", + "benchmark comparability", + "outcome equivalence", + "general scientific reproducibility" + ], + "metrics": [ + "steps_to_termination", + "cumulative_attacker_reward", + "network_availability", + "terminal_cause" + ], + "retry_budget": 0, + "schedule": [ + { + "attempt_id": "cbs-native-01-attempt-01", + "lane": "source-native", + "replicate": 1, + "run_id": "cbs-native-01", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-02-attempt-01", + "lane": "source-native", + "replicate": 2, + "run_id": "cbs-native-02", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-03-attempt-01", + "lane": "source-native", + "replicate": 3, + "run_id": "cbs-native-03", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-04-attempt-01", + "lane": "source-native", + "replicate": 4, + "run_id": "cbs-native-04", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-05-attempt-01", + "lane": "source-native", + "replicate": 5, + "run_id": "cbs-native-05", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-06-attempt-01", + "lane": "source-native", + "replicate": 6, + "run_id": "cbs-native-06", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-07-attempt-01", + "lane": "source-native", + "replicate": 7, + "run_id": "cbs-native-07", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-08-attempt-01", + "lane": "source-native", + "replicate": 8, + "run_id": "cbs-native-08", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-09-attempt-01", + "lane": "source-native", + "replicate": 9, + "run_id": "cbs-native-09", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-10-attempt-01", + "lane": "source-native", + "replicate": 10, + "run_id": "cbs-native-10", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-01-attempt-01", + "lane": "raes-mediated", + "replicate": 1, + "run_id": "cbs-mediated-01", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-02-attempt-01", + "lane": "raes-mediated", + "replicate": 2, + "run_id": "cbs-mediated-02", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-03-attempt-01", + "lane": "raes-mediated", + "replicate": 3, + "run_id": "cbs-mediated-03", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-04-attempt-01", + "lane": "raes-mediated", + "replicate": 4, + "run_id": "cbs-mediated-04", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-05-attempt-01", + "lane": "raes-mediated", + "replicate": 5, + "run_id": "cbs-mediated-05", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-06-attempt-01", + "lane": "raes-mediated", + "replicate": 6, + "run_id": "cbs-mediated-06", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-07-attempt-01", + "lane": "raes-mediated", + "replicate": 7, + "run_id": "cbs-mediated-07", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-08-attempt-01", + "lane": "raes-mediated", + "replicate": 8, + "run_id": "cbs-mediated-08", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-09-attempt-01", + "lane": "raes-mediated", + "replicate": 9, + "run_id": "cbs-mediated-09", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-10-attempt-01", + "lane": "raes-mediated", + "replicate": 10, + "run_id": "cbs-mediated-10", + "seed_label": 20260729 + } + ], + "source_selection": { + "commit": "854d6966607fb68645651f55b0f97221bd293e0d", + "evaluator": "cyberbattle.agents.baseline.learner.epsilon_greedy_search", + "notebook_path": "notebooks/notebook_withdefender.py", + "notebook_sha256": "847999b0a907c22a6e64b93c96d444d43e0a66dbfba2a2bd0a9ba888cfa41fcc", + "repository": "https://github.com/microsoft/CyberBattleSim", + "runtime_tree_sha256": "1b8bf39a7cb9c172b51b5223dfac13b9d01e166b34dc2bb29297cddb254a06fe", + "tree": "4271b137ab2de593be52d7afb0a51bee59045a45", + "version": "0.1.0" + }, + "stochastic_controls": { + "raes-mediated": { + "applied": [ + "gym-environment", + "gym-action-space" + ], + "unbound": [ + "python-random", + "numpy-global" + ] + }, + "source-native": { + "applied": [], + "unbound": [ + "gym-environment", + "gym-action-space", + "python-random", + "numpy-global" + ] + } + }, + "study": { + "analysis_plan": { + "analysis_id": "cyberbattlesim-baseline-comparison-v1", + "description": "Lane summaries and predeclared bounded differences.", + "metrics": [ + "steps_to_termination", + "cumulative_attacker_reward", + "network_availability", + "terminal_cause" + ], + "missing_data_policy": { + "handling": "Retain all terminal attempts in denominators; do not impute or silently drop.", + "missingness_assumption": "Missingness is apparatus- or failure-induced, not random.", + "sensitivity_analysis": "Unavailable declared metrics weaken the applicable tier." + }, + "multiple_comparison_policy": { + "correction": "none", + "family": "four descriptive metric comparisons", + "rationale": "No hypothesis-test or general population claim is made." + }, + "primary_metric": "cumulative_attacker_reward", + "statistical_method": { + "assumptions": [ + "Attempts are the fixed scheduled episodes and are not replaced after failure." + ], + "comparison_family": "four predeclared task metrics", + "estimand": "RAES-mediated lane mean minus source-native lane mean", + "method": "descriptive lane summaries and difference in means", + "unit_of_analysis": "episode" + }, + "uncertainty_method": { + "interval_level": 0.95, + "method": "deterministic percentile bootstrap", + "procedure": "10,000 counter-addressed SHA-256 resamples bound to the declaration digest." + } + }, + "behavioral_claims": [ + { + "assurance_axis": "bounded-test", + "assurance_status": "tested", + "evidence_boundary": "Exactly ten preallocated terminal attempts per lane under the frozen issue-30 comparison and missingness rules.", + "evidence_refs": [], + "evidence_scope": "finite", + "explicit_non_claims": [ + "No trace, state, observation, deterministic-replay, or outcome-equivalence claim is made." + ], + "left_carrier_ref": "condition:source-native", + "limitations": [ + "The lanes have different stochastic bindings and evaluator paths." + ], + "observation_projection_ref": "experiment-study-v1", + "observation_projection_revision": "rev1", + "quantifier_scope": "finite-cases", + "relation_id": "empirical-adequacy", + "relation_parameter_profile_ref": null, + "relation_parameter_profile_revision": null, + "right_carrier_ref": "condition:raes-mediated", + "subject": "The fixed CyberBattleSim credential-cache baseline selection", + "taxonomy_id": "raes-behavioral-relations", + "taxonomy_revision": "rev12" + } + ], + "description": "Frozen two-lane reproduction of the selected public credential-cache baseline.", + "export_artifacts": [], + "factors": { + "execution-lane": { + "factor_kind": "apparatus", + "levels": [ + "source-native", + "raes-mediated" + ], + "name": "Execution lane" + } + }, + "inclusion_criteria": [ + "Only preallocated terminal attempts from the exact qualified selection are included." + ], + "membership": { + "primary-task": { + "grouping": null, + "inclusion_rationale": "The qualified public task owns all measured constructs.", + "role": "primary-task", + "target_ref": { + "ref_digest": null, + "ref_id": "cyberbattlesim-chain-task", + "ref_kind": "task", + "ref_path": null, + "ref_version": null + } + } + }, + "owner": "OpenRAE", + "purpose": "Retain bounded readiness and reproduction evidence for OpenRAE/research#14 and OpenRAE/research#20 without asserting deterministic replay or outcome equivalence.", + "report_artifacts": [], + "research_questions": [ + "Which authored, contract, control, observation, outcome, and disclosure facts survive the selected RAES-mediated execution?" + ], + "run_allocation": { + "allocation_method": "preallocated fixed condition matrix", + "allocation_unit": "episode", + "blocking_factors": [], + "compared_conditions": [ + "source-native", + "raes-mediated" + ], + "condition_assignments": { + "raes-mediated": { + "condition_id": "raes-mediated", + "description": null, + "difficulty_condition": "fixed", + "difficulty_policy_id": null, + "factor_levels": { + "execution-lane": "raes-mediated" + }, + "required_parameters": [ + { + "name": "execution-lane", + "redaction": "none", + "value": "raes-mediated", + "value_kind": "apparatus" + } + ], + "required_refs": [] + }, + "source-native": { + "condition_id": "source-native", + "description": null, + "difficulty_condition": "fixed", + "difficulty_policy_id": null, + "factor_levels": { + "execution-lane": "source-native" + }, + "required_parameters": [ + { + "name": "execution-lane", + "redaction": "none", + "value": "source-native", + "value_kind": "apparatus" + } + ], + "required_refs": [] + } + }, + "randomization_unit": null, + "replication_policy": "Ten fixed scheduled episodes per lane; retry budget zero.", + "stopping_rule": "Terminalize every scheduled attempt; do not replace failures.", + "target_runs_per_condition": 10 + }, + "schema_version": "experiment-study/v1", + "study_id": "cyberbattlesim-chain-baseline-reproduction", + "study_kind": "study", + "study_version": "1.0.0", + "title": "CyberBattleSim chain source-native and RAES-mediated reproduction", + "validation_basis_disclosures": [], + "validity_notes": [ + { + "category": "reproducibility", + "mitigation": "Record actual lane-specific binding dispositions and make no replay claim.", + "note": "The source evaluator leaves four random streams unbound." + } + ] + }, + "terminal_dispositions": [ + "excluded", + "failed", + "invalid", + "valid" + ], + "tier_policy": [ + "authored-source", + "contract", + "execution-control", + "state-observation", + "outcome-evaluation", + "disclosure" + ] + }, + "declaration_sha256": "825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232", + "oracle": null, + "schema_version": "cyberbattlesim-baseline-reproduction/v1" +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/source-ledger.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/source-ledger.json new file mode 100644 index 0000000..28cf724 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/declaration/source-ledger.json @@ -0,0 +1,107 @@ +{ + "adapter": { + "distribution": "raes-adapters", + "runner_artifact_ids": [ + "reproduction-runner", + "mediated-researcher", + "mediated-driver", + "selected-source-helper" + ], + "version": "0.0.0" + }, + "artifact_refs": [ + { + "artifact_id": "qualification", + "path": "src/raes_adapters/cyberbattlesim/qualification.json", + "sha256": "0b55f88c0ff628980c976a50f38f71ff7ec0f94b2e50e2b87f6498d5dd01c147" + }, + { + "artifact_id": "public-protocol", + "path": "src/raes_adapters/cyberbattlesim/public-protocol.md", + "sha256": "0de0d8585ee9e3bb0901bd2d71b71a9504774b38bdab38f6f5509d0a9e34d26f" + }, + { + "artifact_id": "source-ledger", + "path": "src/raes_adapters/cyberbattlesim/mapping/source-ledger.jsonl", + "sha256": "8776a340873e6b56a55767e4257f05ba1bb71fa2b37003a2023b0fe3b0cce553" + }, + { + "artifact_id": "loss-disclosures", + "path": "src/raes_adapters/cyberbattlesim/mapping/loss-disclosures.md", + "sha256": "3c2530553a6ab035a6c505e80bf02298f1ab07dd3ffc72216f87f6381113181c" + }, + { + "artifact_id": "reproduction-runner", + "path": "src/raes_adapters/cyberbattlesim/reproduction.py", + "sha256": "44c5573635a2adc655e78eff8765c25c58b469a3f378975fce83f21c6c4ead98" + }, + { + "artifact_id": "mediated-researcher", + "path": "src/raes_adapters/cyberbattlesim/researcher.py", + "sha256": "35a320b319fd2fd880a49ce2a670576c23a754ff4a67d80618be848fb42fc0d1" + }, + { + "artifact_id": "mediated-driver", + "path": "src/raes_adapters/cyberbattlesim/backend/driver.py", + "sha256": "1f86e3522c6e7ff5b17f8ac4eed5d9567da3c674218b5f1bf3cd8c0e10028202" + }, + { + "artifact_id": "selected-source-helper", + "path": "src/raes_adapters/cyberbattlesim/backend/source.py", + "sha256": "977b91e77d0c1fe23f265ab59151a8c478b43fff20d44afd79b0392c20bf62de" + }, + { + "artifact_id": "task", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.task.exp.json", + "sha256": "6588ac115931b8de7052d52ccb94bbd258c5e6c78ffb9d5f5d1c0570f9236ce5" + }, + { + "artifact_id": "spec", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.spec.exp.json", + "sha256": "c31d2f4376ad7877d756e6a572a5e9e344b0899c4e8e996e1b5f57eaa78be391" + }, + { + "artifact_id": "pack-manifest", + "path": "environments/cyberbattlesim-chain/pack.content-manifest.json", + "sha256": "8131a2a294da39fceeca1595da1f987dbbc934a234c635fbb935e7d223cf103c" + }, + { + "artifact_id": "participant-manifest", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.manifest.json", + "sha256": "2ea827eb709a036b1721a91fabce787a320845bf26e3e6f0a0e5e768e7f9d93b" + }, + { + "artifact_id": "participant-selection", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.selection.json", + "sha256": "ce920ca6362b37e8cde6af12190ee9b84e9ea3c3fc89842d31366f0ec6031935" + }, + { + "artifact_id": "participant-configuration", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.configuration.json", + "sha256": "2b5e0fd0ef0be839af33763199e76192196a4928ca555a230af0f685c38eeced" + } + ], + "compatibility_patches": [], + "exclusions": [ + "historical benchmark output from a different commit", + "native observations, action coordinates, credentials, hidden state, and reward vectors", + "provider logs, credentials, environment dumps, and tracebacks" + ], + "loss_refs": [ + "loss-abstracted-topology", + "loss-benchmark-defects", + "loss-no-source-artifact", + "loss-observation-abstraction", + "loss-unbound-random-streams" + ], + "schema_version": "cyberbattlesim-baseline-source-ledger/v1", + "source": { + "commit": "854d6966607fb68645651f55b0f97221bd293e0d", + "notebook_path": "notebooks/notebook_withdefender.py", + "notebook_sha256": "847999b0a907c22a6e64b93c96d444d43e0a66dbfba2a2bd0a9ba888cfa41fcc", + "repository": "https://github.com/microsoft/CyberBattleSim", + "runtime_tree_sha256": "1b8bf39a7cb9c172b51b5223dfac13b9d01e166b34dc2bb29297cddb254a06fe", + "tree": "4271b137ab2de593be52d7afb0a51bee59045a45", + "version": "0.1.0" + } +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/bench-notes.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/bench-notes.json new file mode 100644 index 0000000..4c76bac --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/bench-notes.json @@ -0,0 +1,344 @@ +{ + "declaration_sha256": "825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232", + "notes": [ + { + "disposition": "observed", + "event_code": "mediated-collection-started", + "evidence_refs": [ + { + "path": "protocol.json" + }, + { + "path": "environment.json" + } + ], + "note_id": "mediated-001", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:46.141Z", + "severity": "info", + "summary": "The ten preallocated RAES-mediated attempts were started with zero retries." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-002", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:46.141Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-01 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-01/record.json" + } + ], + "note_id": "mediated-003", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:50.964Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-01 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-004", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:50.965Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-02 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-02/record.json" + } + ], + "note_id": "mediated-005", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:55.538Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-02 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-006", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:55.538Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-03 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-03/record.json" + } + ], + "note_id": "mediated-007", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:59.661Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-03 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-008", + "phase": "mediated", + "recorded_at": "2026-08-10T03:58:59.661Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-04 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-04/record.json" + } + ], + "note_id": "mediated-009", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:04.334Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-04 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-010", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:04.335Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-05 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-05/record.json" + } + ], + "note_id": "mediated-011", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:08.958Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-05 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-012", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:08.959Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-06 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-06/record.json" + } + ], + "note_id": "mediated-013", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:13.532Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-06 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-014", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:13.532Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-07 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-07/record.json" + } + ], + "note_id": "mediated-015", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:18.456Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-07 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-016", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:18.457Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-08 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-08/record.json" + } + ], + "note_id": "mediated-017", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:22.579Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-08 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-018", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:22.580Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-09 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-09/record.json" + } + ], + "note_id": "mediated-019", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:27.003Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-09 was terminalized as valid." + }, + { + "disposition": "observed", + "event_code": "mediated-attempt-started", + "evidence_refs": [ + { + "path": "protocol.json" + } + ], + "note_id": "mediated-020", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:27.003Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-10 was started." + }, + { + "disposition": "passed", + "event_code": "mediated-attempt-terminalized", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-10/record.json" + } + ], + "note_id": "mediated-021", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:31.176Z", + "severity": "info", + "summary": "Scheduled RAES-mediated attempt cbs-mediated-10 was terminalized as valid." + }, + { + "disposition": "passed", + "event_code": "mediated-collection-completed", + "evidence_refs": [ + { + "path": "runs/cbs-mediated-01/record.json" + }, + { + "path": "runs/cbs-mediated-02/record.json" + }, + { + "path": "runs/cbs-mediated-03/record.json" + }, + { + "path": "runs/cbs-mediated-04/record.json" + }, + { + "path": "runs/cbs-mediated-05/record.json" + }, + { + "path": "runs/cbs-mediated-06/record.json" + }, + { + "path": "runs/cbs-mediated-07/record.json" + }, + { + "path": "runs/cbs-mediated-08/record.json" + }, + { + "path": "runs/cbs-mediated-09/record.json" + }, + { + "path": "runs/cbs-mediated-10/record.json" + } + ], + "note_id": "mediated-022", + "phase": "mediated", + "recorded_at": "2026-08-10T03:59:31.177Z", + "severity": "info", + "summary": "The RAES-mediated lane terminalized all ten attempts; 10 were valid and 0 failed." + } + ], + "schema_version": "cyberbattlesim-baseline-bench-notes/v1" +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/collection.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/collection.json new file mode 100644 index 0000000..fccaf80 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/collection.json @@ -0,0 +1,6 @@ +{ + "lane": "raes-mediated", + "protocol_sha256": "93d79b72c9e26af2be1365e094e04ac0fff0fa884a7afdb8650e7e52a90418c4", + "terminal_count": 10, + "valid_count": 10 +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/environment.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/environment.json new file mode 100644 index 0000000..f286755 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/environment.json @@ -0,0 +1,41 @@ +{ + "lane": "raes-mediated", + "limitations": [ + "The upstream source has no selected public index or release artifact.", + "Python-global and NumPy-global random streams are unbound in the mediated lane.", + "All four observed random streams are unbound in the source-native lane.", + "The authored RAES topology is representative rather than state-identical.", + "The mediated evaluator does not retain availability series or a specific terminal cause." + ], + "machine": { + "architecture": "x86_64", + "logical_cpu_count": 4, + "operating_system": "Linux", + "operating_system_release": "6.17.0-1019-aws", + "physical_memory_bytes": 16375947264 + }, + "pack": { + "content_digest": "sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905", + "identity": "cyberbattlesim-chain", + "version": "1.0.0" + }, + "python": { + "implementation": "CPython", + "version": "3.12.3" + }, + "schema_version": "cyberbattlesim-baseline-environment/v1", + "software": { + "cyberbattlesim": "0.1.0", + "gymnasium": "0.29.1", + "numpy": "1.26.4", + "raes": "3.3.0", + "raes-adapters": "0.0.0", + "raes-env-packs": "3.6.2" + }, + "source": { + "commit": "854d6966607fb68645651f55b0f97221bd293e0d", + "installed_artifact_sha256": "unavailable", + "tree": "4271b137ab2de593be52d7afb0a51bee59045a45", + "version": "0.1.0" + } +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/inventory.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/inventory.json new file mode 100644 index 0000000..5b3af24 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/inventory.json @@ -0,0 +1,628 @@ +{ + "artifacts": [ + { + "media_type": "application/json", + "path": "bench-notes.json", + "sha256": "459541c4b6968940ef04ec5b0297da0d18259ee6896ac83dce63030c2bec3641", + "size_bytes": 10053 + }, + { + "media_type": "application/json", + "path": "collection.json", + "sha256": "a29a4b6b2f605dcc2b611355542ddefc987e8aeddfc224551eceb37ce6ee3b2e", + "size_bytes": 164 + }, + { + "media_type": "application/json", + "path": "environment.json", + "sha256": "44c306f0e7090dfe5e2229e1d3f08435ebc80aeb5b814f7d9a10f970ce2f520e", + "size_bytes": 1378 + }, + { + "media_type": "application/json", + "path": "protocol.json", + "sha256": "93d79b72c9e26af2be1365e094e04ac0fff0fa884a7afdb8650e7e52a90418c4", + "size_bytes": 93420 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/provenance.json", + "sha256": "03718a9eecba2f934fd86a16abaa833dfdb7af16da03e3b789000a774a42c91d", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/derived-measures.json", + "sha256": "b9923ad9ae6b1ee6ca2cdfdee7aa4bead10820c74b04c2ab7d2340926734729b", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/evidence-records.json", + "sha256": "998fab14ee3502f674b46cc5439c13e271af53df29e8e53950081a895e891b8d", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/run.json", + "sha256": "1825d1ee178afc31ef60e9d02704554e647d9470bf9a916eed8588df45f65b22", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/summary.json", + "sha256": "86895aa82134ad8fef357b331a40ff42acb7bca4e6792df8c8a692f5d8514e8a", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/portable/summary.json", + "sha256": "e8cb3e4c56ae65bc4a4f8a6758f22628e324bc483371f55b45a0fb92fc4b00ea", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01/record.json", + "sha256": "8e26a43edc3cf39d0b2fb7a50bfba7212eb59f6ad7fffa3f04d263bee15384eb", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/provenance.json", + "sha256": "17dec483032c790d671036be819ec23901e4fe4005b8e176bd2281c4f73be0b2", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/derived-measures.json", + "sha256": "20a28932577668883cc571cef9826ffb38a113060646450b40da09b8d040c5ec", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/evidence-records.json", + "sha256": "ae62234d13f73675cae6a29a874460a83cafd4af7b0e9dd1030a2ab6d4659107", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/run.json", + "sha256": "56d68c6c05be4765e5ec02f84224ddb9c678e57dd20e28953b55e29aca941460", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/runs/cbs-mediated-02-1/summary.json", + "sha256": "d5c27b06168da4abe8c336433d2352d17b66c3d150e1694df924525869313bb1", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/portable/summary.json", + "sha256": "809da44fe887b86ba9861f51601cb9d800cfb46249016f67ad23d9dfa4eec2f7", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-02/record.json", + "sha256": "3edf234eacf55ed6a7a453f4d3fcad576de9527fa5925b3f00544d4bed9ab75c", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/provenance.json", + "sha256": "a108c3fd211dd413f4a3c6d3843e7da9afd53afd4a2c883e755a4e22e471de12", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/derived-measures.json", + "sha256": "c4c32630bbf611049df06286f7ec5812cc8821b3de395dc87758a149258885ec", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/evidence-records.json", + "sha256": "5594e0bcae99c74fb3ad55e42cb884baaf91b2445b7d0b802f846ba3be262864", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/run.json", + "sha256": "8b3c1e8acb2954d5194704ada9c38e3e144e264bb63991b8c7c016ba079881b6", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/runs/cbs-mediated-03-1/summary.json", + "sha256": "e2b37cf4e0279e5885f93d4f5d3b7f8333f0352331f8783c1701722fc17f1913", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/portable/summary.json", + "sha256": "9ed101fd4e3da5bc5a8fb60a9c57380b38e5dff7cbf02314d5aa29373f0cc906", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-03/record.json", + "sha256": "318a37cee896be2d141b2732196265dd6b240518bf5709e36f4c3bab4573a86e", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/provenance.json", + "sha256": "594eb6a2d712aa6a770986e640eba9f80d39f3ff6155d90e029d5b36ab313991", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/derived-measures.json", + "sha256": "e8bbd32209c81de19ed022ff23970248bd887cdb7f378b557c536d0ad47f13b3", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/evidence-records.json", + "sha256": "bf8613e7ee71e1f414bf851796b695ba0c49be4ab415b77e9bd299c4fae28c83", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/run.json", + "sha256": "f6d8f297f09d51d9da8428a08605c91f076b7e8114d38488ef1455481fea2328", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/runs/cbs-mediated-04-1/summary.json", + "sha256": "811313046e1e395632aa77bdecfcaa0e16915712af32eb263052d0fb4668124c", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/portable/summary.json", + "sha256": "7217fcaaee27fe61a23daf4b5db0c777ce778f945e722a8e10e488a91f73b786", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-04/record.json", + "sha256": "0c19313d95e3fa5ab8a3d33d5bf954a3c7acf420b2e4d697f5b6e61a71e5494e", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/provenance.json", + "sha256": "66ca289f8394f3ac6c7a4a25870a2635ce2153739483214a745c1f34b21a8723", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/derived-measures.json", + "sha256": "7f627482e4e287aa6c3ce06e9a10506355a72f1de0dddb6023db9cfe6039a803", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/evidence-records.json", + "sha256": "12c9154e3469508b19dfa1898fb7ffdab0f06582881702f2947dbb865f42efe6", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/run.json", + "sha256": "9924235d97130e1ebfe62e8dbc692908ca9f248f0e3c79c15209b720c59ae7ea", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/runs/cbs-mediated-05-1/summary.json", + "sha256": "b13458ea370ae803b1d91421dfdc3f69654d5f84ec093420a3dc52411af08aea", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/portable/summary.json", + "sha256": "97388e187ae683897f8bc1dc3888ea7bfe54d85c773022e69a9795809165efa7", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-05/record.json", + "sha256": "60d6364171e331c6495becf07ec336ac1aba2508c885b0c3164905c7ee735ee4", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/provenance.json", + "sha256": "cd91b0b2a8122594e3b02e2f612278ef99cafb1690648085863627e499c761b8", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/derived-measures.json", + "sha256": "0c02d43749b2b802972789a24408191a207e19c463db913f0451271b92926282", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/evidence-records.json", + "sha256": "3c66dfd94a862fa6e5219c075d50492ec8385d9a130bae6bd2795bb05268b6eb", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/run.json", + "sha256": "3116420331f894d5a4bb4538c77ec6198cf4b8c08d5d093255f914aff9e7c18f", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/runs/cbs-mediated-06-1/summary.json", + "sha256": "f8a93ed0fa7b1cafa01b162472f6aa9e14764132a2b988bffd2d6e711005f7a1", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/portable/summary.json", + "sha256": "54074c5e353bce586fbfc35479cdb0cd50c4462d668df8abbe02be7c6c1d094c", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-06/record.json", + "sha256": "81620548fa781a077eb7fe1f7ba1c72505b3f11edb38912cc5868354077dd80b", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/provenance.json", + "sha256": "f585296ae4108beee144c762a19de4524058370f8cbee80a8a785e9385730ce0", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/derived-measures.json", + "sha256": "cedb8789257c34a562cd71319a74a981b19e067508705b6e0076540d5b5730b9", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/evidence-records.json", + "sha256": "9b736a9c1c6a4e7765c3d1448bdbd121ea44d7518dd3d61b74595997c64833e1", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/run.json", + "sha256": "65d41221e6e7f6701469689bccc770640e27ff2c3ecfad3b4352d135bdc0eaea", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/runs/cbs-mediated-07-1/summary.json", + "sha256": "42150411b6e95cbc377e44b37c916fc926238e51bcf23dd9efc084a1d7b85112", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/portable/summary.json", + "sha256": "0d89dae302276247616016fec5339ccccc163cf9f3c44afced338cf83d76ddab", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-07/record.json", + "sha256": "13786db778e209465d673af04fd39a184ec8d90b69796dcdd520444d05c8961e", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/provenance.json", + "sha256": "1f2319131e850a3f36592bd9cb3588aaed9db720655fc57183e8187ce2e66c74", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/derived-measures.json", + "sha256": "aea78ed2523331b4fec74c5197b711dc1e5a78c6a461836f1131417046fe4f21", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/evidence-records.json", + "sha256": "621e6b3d2e2e19cf1606d75565a1a8b1bffdaab9560e4421b267adbf739fd40a", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/run.json", + "sha256": "c5a5b7608adceb242c1a6f78dbbb4812c5f6fd33b9549d179873548df0ce1518", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/runs/cbs-mediated-08-1/summary.json", + "sha256": "25a4adc5170c29cf89fb43b802b99c67f7a91ee7781fd10661d35a9efe170243", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/portable/summary.json", + "sha256": "3264b6d97612c3bece5ab5e35b966cbf4d15c288306d24352de8d6251e9affb3", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-08/record.json", + "sha256": "55ca5f68bf191b574161bc0e6afc7511786fd3202218f937bb62dddd7ddfe192", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/provenance.json", + "sha256": "1b9a306b4e18e9e7c9f0e9d130da67b97825d5698e62e1f40e44a5135d88e0e8", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/derived-measures.json", + "sha256": "a48eef6c35c553e4714fd16f19b9e58c60cfcd5e81ec482434d4f17ab08cb3ef", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/evidence-records.json", + "sha256": "a313189482561b821e21d8847693de02eafd247a1d46decc3f5a3d3dd43b986b", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/run.json", + "sha256": "d3fe4c9523a69c7450534f9459cfc1e5806e2e03280ad21b66be65b80caa5d90", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/runs/cbs-mediated-09-1/summary.json", + "sha256": "4baf599d7a77dce3336ffbf27c272e3a3b457850e61c990e15cdf2d4f6321364", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/portable/summary.json", + "sha256": "03a5fd3e63340ee9697732df43efb4eb642b7b1f14f92ebd712b1ec2ea7e1466", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-09/record.json", + "sha256": "5a733c167b231ded8c438082ad96980ce3000c4111156cc65844caa82b10632f", + "size_bytes": 1726 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/provenance.json", + "sha256": "92b684f05bf78164edcdf99f30403b49f56eb831f00fc7fa5d3e6e716a9846c2", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/derived-measures.json", + "sha256": "27b28ef443746a650d985d5dba4fdb825ef358aa3d828b17a78065e235a7fc10", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/evidence-records.json", + "sha256": "b5f78d37505a5698a01b0a245aefb09fbeb584c6874a31d3a6d652791b01c90e", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/run.json", + "sha256": "1aecba4321e5508359af171c4203ac6ba32e175df969d95970ad44ffa50443d5", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/runs/cbs-mediated-10-1/summary.json", + "sha256": "684165d88b0cf7dfb2d42b003b3c8517ae09391449b305f70a718f95f25304ea", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/portable/summary.json", + "sha256": "6db3a0ad784e8a0e743a3690050e18adfd8d90de3778c4d3019680b3405712d8", + "size_bytes": 289 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-10/record.json", + "sha256": "b5bd0562d75b245575f361163ea62a256e0b4af4feebaeefd904626665dc9d7c", + "size_bytes": 1727 + } + ] +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/protocol.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/protocol.json new file mode 100644 index 0000000..ae6503e --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/protocol.json @@ -0,0 +1,3581 @@ +{ + "declaration": { + "aggregation": { + "bootstrap_resamples": 10000, + "missingness": "No imputation; every terminal attempt remains in denominators.", + "numeric_statistics": [ + "count", + "mean", + "median", + "sample-standard-deviation", + "minimum", + "maximum" + ], + "uncertainty": "95% deterministic percentile bootstrap interval of the mean" + }, + "artifacts": [ + { + "artifact_id": "qualification", + "path": "src/raes_adapters/cyberbattlesim/qualification.json", + "sha256": "0b55f88c0ff628980c976a50f38f71ff7ec0f94b2e50e2b87f6498d5dd01c147" + }, + { + "artifact_id": "public-protocol", + "path": "src/raes_adapters/cyberbattlesim/public-protocol.md", + "sha256": "0de0d8585ee9e3bb0901bd2d71b71a9504774b38bdab38f6f5509d0a9e34d26f" + }, + { + "artifact_id": "source-ledger", + "path": "src/raes_adapters/cyberbattlesim/mapping/source-ledger.jsonl", + "sha256": "8776a340873e6b56a55767e4257f05ba1bb71fa2b37003a2023b0fe3b0cce553" + }, + { + "artifact_id": "loss-disclosures", + "path": "src/raes_adapters/cyberbattlesim/mapping/loss-disclosures.md", + "sha256": "3c2530553a6ab035a6c505e80bf02298f1ab07dd3ffc72216f87f6381113181c" + }, + { + "artifact_id": "reproduction-runner", + "path": "src/raes_adapters/cyberbattlesim/reproduction.py", + "sha256": "44c5573635a2adc655e78eff8765c25c58b469a3f378975fce83f21c6c4ead98" + }, + { + "artifact_id": "mediated-researcher", + "path": "src/raes_adapters/cyberbattlesim/researcher.py", + "sha256": "35a320b319fd2fd880a49ce2a670576c23a754ff4a67d80618be848fb42fc0d1" + }, + { + "artifact_id": "mediated-driver", + "path": "src/raes_adapters/cyberbattlesim/backend/driver.py", + "sha256": "1f86e3522c6e7ff5b17f8ac4eed5d9567da3c674218b5f1bf3cd8c0e10028202" + }, + { + "artifact_id": "selected-source-helper", + "path": "src/raes_adapters/cyberbattlesim/backend/source.py", + "sha256": "977b91e77d0c1fe23f265ab59151a8c478b43fff20d44afd79b0392c20bf62de" + }, + { + "artifact_id": "task", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.task.exp.json", + "sha256": "6588ac115931b8de7052d52ccb94bbd258c5e6c78ffb9d5f5d1c0570f9236ce5" + }, + { + "artifact_id": "spec", + "path": "environments/cyberbattlesim-chain/experiment/cyberbattlesim-chain.spec.exp.json", + "sha256": "c31d2f4376ad7877d756e6a572a5e9e344b0899c4e8e996e1b5f57eaa78be391" + }, + { + "artifact_id": "pack-manifest", + "path": "environments/cyberbattlesim-chain/pack.content-manifest.json", + "sha256": "8131a2a294da39fceeca1595da1f987dbbc934a234c635fbb935e7d223cf103c" + }, + { + "artifact_id": "participant-manifest", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.manifest.json", + "sha256": "2ea827eb709a036b1721a91fabce787a320845bf26e3e6f0a0e5e768e7f9d93b" + }, + { + "artifact_id": "participant-selection", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.selection.json", + "sha256": "ce920ca6362b37e8cde6af12190ee9b84e9ea3c3fc89842d31366f0ec6031935" + }, + { + "artifact_id": "participant-configuration", + "path": "environments/cyberbattlesim-chain/participant/cyberbattlesim-red-credential-cache.configuration.json", + "sha256": "2b5e0fd0ef0be839af33763199e76192196a4928ca555a230af0f685c38eeced" + } + ], + "bench_notes": { + "artifact": "bench-notes.json", + "publication_policy": "Record controlled observations and dispositions as work occurs; exclude raw native output, exception text, host paths, credentials, and provider identifiers.", + "required_fields": [ + "note_id", + "recorded_at", + "phase", + "severity", + "event_code", + "summary", + "disposition", + "evidence_refs" + ], + "schema_version": "cyberbattlesim-baseline-bench-notes/v1", + "timestamp_profile": "RFC3339 UTC with millisecond precision" + }, + "comparison": { + "bounded": { + "cumulative_attacker_reward": 500.0, + "network_availability": 0.05, + "steps_to_termination": 60.0, + "terminal_cause": 0.1 + }, + "exact": "Complete ordered per-run vectors and control dispositions match.", + "failed": "A complete interval lies outside its bound.", + "unavailable": "A declared metric is absent from either lane; no tolerance is inferred." + }, + "condition": { + "attacker": "CredentialCacheExploiter", + "defender": "ScanAndReimageCompromisedMachines(0.6,2,5)", + "episode_count_per_lane": 10, + "epsilon": 0.9, + "epsilon_exponential_decay": 10000, + "epsilon_minimum": 0.1, + "gym_id": "CyberBattleChain-v0", + "maximum_steps": 600, + "size": 10 + }, + "explicit_non_claims": [ + "deterministic replay", + "exact state or observation equivalence", + "cross-simulator equality", + "agent ranking", + "benchmark comparability", + "outcome equivalence", + "general scientific reproducibility" + ], + "metrics": [ + "steps_to_termination", + "cumulative_attacker_reward", + "network_availability", + "terminal_cause" + ], + "retry_budget": 0, + "schedule": [ + { + "attempt_id": "cbs-native-01-attempt-01", + "lane": "source-native", + "replicate": 1, + "run_id": "cbs-native-01", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-02-attempt-01", + "lane": "source-native", + "replicate": 2, + "run_id": "cbs-native-02", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-03-attempt-01", + "lane": "source-native", + "replicate": 3, + "run_id": "cbs-native-03", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-04-attempt-01", + "lane": "source-native", + "replicate": 4, + "run_id": "cbs-native-04", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-05-attempt-01", + "lane": "source-native", + "replicate": 5, + "run_id": "cbs-native-05", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-06-attempt-01", + "lane": "source-native", + "replicate": 6, + "run_id": "cbs-native-06", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-07-attempt-01", + "lane": "source-native", + "replicate": 7, + "run_id": "cbs-native-07", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-08-attempt-01", + "lane": "source-native", + "replicate": 8, + "run_id": "cbs-native-08", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-09-attempt-01", + "lane": "source-native", + "replicate": 9, + "run_id": "cbs-native-09", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-native-10-attempt-01", + "lane": "source-native", + "replicate": 10, + "run_id": "cbs-native-10", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-01-attempt-01", + "lane": "raes-mediated", + "replicate": 1, + "run_id": "cbs-mediated-01", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-02-attempt-01", + "lane": "raes-mediated", + "replicate": 2, + "run_id": "cbs-mediated-02", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-03-attempt-01", + "lane": "raes-mediated", + "replicate": 3, + "run_id": "cbs-mediated-03", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-04-attempt-01", + "lane": "raes-mediated", + "replicate": 4, + "run_id": "cbs-mediated-04", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-05-attempt-01", + "lane": "raes-mediated", + "replicate": 5, + "run_id": "cbs-mediated-05", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-06-attempt-01", + "lane": "raes-mediated", + "replicate": 6, + "run_id": "cbs-mediated-06", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-07-attempt-01", + "lane": "raes-mediated", + "replicate": 7, + "run_id": "cbs-mediated-07", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-08-attempt-01", + "lane": "raes-mediated", + "replicate": 8, + "run_id": "cbs-mediated-08", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-09-attempt-01", + "lane": "raes-mediated", + "replicate": 9, + "run_id": "cbs-mediated-09", + "seed_label": 20260729 + }, + { + "attempt_id": "cbs-mediated-10-attempt-01", + "lane": "raes-mediated", + "replicate": 10, + "run_id": "cbs-mediated-10", + "seed_label": 20260729 + } + ], + "source_selection": { + "commit": "854d6966607fb68645651f55b0f97221bd293e0d", + "evaluator": "cyberbattle.agents.baseline.learner.epsilon_greedy_search", + "notebook_path": "notebooks/notebook_withdefender.py", + "notebook_sha256": "847999b0a907c22a6e64b93c96d444d43e0a66dbfba2a2bd0a9ba888cfa41fcc", + "repository": "https://github.com/microsoft/CyberBattleSim", + "runtime_tree_sha256": "1b8bf39a7cb9c172b51b5223dfac13b9d01e166b34dc2bb29297cddb254a06fe", + "tree": "4271b137ab2de593be52d7afb0a51bee59045a45", + "version": "0.1.0" + }, + "stochastic_controls": { + "raes-mediated": { + "applied": [ + "gym-environment", + "gym-action-space" + ], + "unbound": [ + "python-random", + "numpy-global" + ] + }, + "source-native": { + "applied": [], + "unbound": [ + "gym-environment", + "gym-action-space", + "python-random", + "numpy-global" + ] + } + }, + "study": { + "analysis_plan": { + "analysis_id": "cyberbattlesim-baseline-comparison-v1", + "description": "Lane summaries and predeclared bounded differences.", + "metrics": [ + "steps_to_termination", + "cumulative_attacker_reward", + "network_availability", + "terminal_cause" + ], + "missing_data_policy": { + "handling": "Retain all terminal attempts in denominators; do not impute or silently drop.", + "missingness_assumption": "Missingness is apparatus- or failure-induced, not random.", + "sensitivity_analysis": "Unavailable declared metrics weaken the applicable tier." + }, + "multiple_comparison_policy": { + "correction": "none", + "family": "four descriptive metric comparisons", + "rationale": "No hypothesis-test or general population claim is made." + }, + "primary_metric": "cumulative_attacker_reward", + "statistical_method": { + "assumptions": [ + "Attempts are the fixed scheduled episodes and are not replaced after failure." + ], + "comparison_family": "four predeclared task metrics", + "estimand": "RAES-mediated lane mean minus source-native lane mean", + "method": "descriptive lane summaries and difference in means", + "unit_of_analysis": "episode" + }, + "uncertainty_method": { + "interval_level": 0.95, + "method": "deterministic percentile bootstrap", + "procedure": "10,000 counter-addressed SHA-256 resamples bound to the declaration digest." + } + }, + "behavioral_claims": [ + { + "assurance_axis": "bounded-test", + "assurance_status": "tested", + "evidence_boundary": "Exactly ten preallocated terminal attempts per lane under the frozen issue-30 comparison and missingness rules.", + "evidence_refs": [], + "evidence_scope": "finite", + "explicit_non_claims": [ + "No trace, state, observation, deterministic-replay, or outcome-equivalence claim is made." + ], + "left_carrier_ref": "condition:source-native", + "limitations": [ + "The lanes have different stochastic bindings and evaluator paths." + ], + "observation_projection_ref": "experiment-study-v1", + "observation_projection_revision": "rev1", + "quantifier_scope": "finite-cases", + "relation_id": "empirical-adequacy", + "relation_parameter_profile_ref": null, + "relation_parameter_profile_revision": null, + "right_carrier_ref": "condition:raes-mediated", + "subject": "The fixed CyberBattleSim credential-cache baseline selection", + "taxonomy_id": "raes-behavioral-relations", + "taxonomy_revision": "rev12" + } + ], + "description": "Frozen two-lane reproduction of the selected public credential-cache baseline.", + "export_artifacts": [], + "factors": { + "execution-lane": { + "factor_kind": "apparatus", + "levels": [ + "source-native", + "raes-mediated" + ], + "name": "Execution lane" + } + }, + "inclusion_criteria": [ + "Only preallocated terminal attempts from the exact qualified selection are included." + ], + "membership": { + "primary-task": { + "grouping": null, + "inclusion_rationale": "The qualified public task owns all measured constructs.", + "role": "primary-task", + "target_ref": { + "ref_digest": null, + "ref_id": "cyberbattlesim-chain-task", + "ref_kind": "task", + "ref_path": null, + "ref_version": null + } + } + }, + "owner": "OpenRAE", + "purpose": "Retain bounded readiness and reproduction evidence for OpenRAE/research#14 and OpenRAE/research#20 without asserting deterministic replay or outcome equivalence.", + "report_artifacts": [], + "research_questions": [ + "Which authored, contract, control, observation, outcome, and disclosure facts survive the selected RAES-mediated execution?" + ], + "run_allocation": { + "allocation_method": "preallocated fixed condition matrix", + "allocation_unit": "episode", + "blocking_factors": [], + "compared_conditions": [ + "source-native", + "raes-mediated" + ], + "condition_assignments": { + "raes-mediated": { + "condition_id": "raes-mediated", + "description": null, + "difficulty_condition": "fixed", + "difficulty_policy_id": null, + "factor_levels": { + "execution-lane": "raes-mediated" + }, + "required_parameters": [ + { + "name": "execution-lane", + "redaction": "none", + "value": "raes-mediated", + "value_kind": "apparatus" + } + ], + "required_refs": [] + }, + "source-native": { + "condition_id": "source-native", + "description": null, + "difficulty_condition": "fixed", + "difficulty_policy_id": null, + "factor_levels": { + "execution-lane": "source-native" + }, + "required_parameters": [ + { + "name": "execution-lane", + "redaction": "none", + "value": "source-native", + "value_kind": "apparatus" + } + ], + "required_refs": [] + } + }, + "randomization_unit": null, + "replication_policy": "Ten fixed scheduled episodes per lane; retry budget zero.", + "stopping_rule": "Terminalize every scheduled attempt; do not replace failures.", + "target_runs_per_condition": 10 + }, + "schema_version": "experiment-study/v1", + "study_id": "cyberbattlesim-chain-baseline-reproduction", + "study_kind": "study", + "study_version": "1.0.0", + "title": "CyberBattleSim chain source-native and RAES-mediated reproduction", + "validation_basis_disclosures": [], + "validity_notes": [ + { + "category": "reproducibility", + "mitigation": "Record actual lane-specific binding dispositions and make no replay claim.", + "note": "The source evaluator leaves four random streams unbound." + } + ] + }, + "terminal_dispositions": [ + "excluded", + "failed", + "invalid", + "valid" + ], + "tier_policy": [ + "authored-source", + "contract", + "execution-control", + "state-observation", + "outcome-evaluation", + "disclosure" + ] + }, + "declaration_sha256": "825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232", + "oracle": { + "declaration_sha256": "825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232", + "lane": "source-native", + "native_result_set_sha256": "00041aa18dc205e0923531a3d05f4e5216c3375a2f90275eac320bd7e650366e", + "ordered_results": [ + { + "metrics": { + "cumulative_attacker_reward": 5782.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 266, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-01" + }, + { + "metrics": { + "cumulative_attacker_reward": 5647.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 406, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-02" + }, + { + "metrics": { + "cumulative_attacker_reward": 6009.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.75 + ], + "steps_to_termination": 336, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-03" + }, + { + "metrics": { + "cumulative_attacker_reward": 5758.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 251, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-04" + }, + { + "metrics": { + "cumulative_attacker_reward": 5880.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.6666666666666666 + ], + "steps_to_termination": 226, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-05" + }, + { + "metrics": { + "cumulative_attacker_reward": 5772.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 291, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-06" + }, + { + "metrics": { + "cumulative_attacker_reward": 5639.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 146, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-07" + }, + { + "metrics": { + "cumulative_attacker_reward": 5779.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 366, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-08" + }, + { + "metrics": { + "cumulative_attacker_reward": 5886.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.75 + ], + "steps_to_termination": 331, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-09" + }, + { + "metrics": { + "cumulative_attacker_reward": 6020.0, + "network_availability": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.8333333333333334, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.9166666666666666, + 0.75 + ], + "steps_to_termination": 361, + "terminal_cause": "defender-sla" + }, + "run_id": "cbs-native-10" + } + ] + }, + "schema_version": "cyberbattlesim-baseline-reproduction/v1" +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/inventory.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/inventory.json new file mode 100644 index 0000000..5a41bbe --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/inventory.json @@ -0,0 +1,58 @@ +{ + "artifacts": [ + { + "media_type": "application/json", + "path": "machine-inventory.json", + "sha256": "ad489e5c927c7356c8716b5276cc47cc764233e7cefb802ce8b85913a5b90eae", + "size_bytes": 370 + }, + { + "media_type": "application/json", + "path": "provenance.json", + "sha256": "03718a9eecba2f934fd86a16abaa833dfdb7af16da03e3b789000a774a42c91d", + "size_bytes": 14050 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/derived-measures.json", + "sha256": "b9923ad9ae6b1ee6ca2cdfdee7aa4bead10820c74b04c2ab7d2340926734729b", + "size_bytes": 1642 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/diagnostics.json", + "sha256": "5c8608e37ae160bd6e20c2b492c0ad45c2ca19797dd843f020c9e4e2f43b1258", + "size_bytes": 957 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/evidence-records.json", + "sha256": "998fab14ee3502f674b46cc5439c13e271af53df29e8e53950081a895e891b8d", + "size_bytes": 2381 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/participant-provenance.json", + "sha256": "d7ec55c3983741a9f05979540b526b2dc4ce3133bf1842d0d2f91aceb8815d2c", + "size_bytes": 1956 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/run.json", + "sha256": "1825d1ee178afc31ef60e9d02704554e647d9470bf9a916eed8588df45f65b22", + "size_bytes": 11909 + }, + { + "media_type": "application/json", + "path": "runs/cbs-mediated-01-1/summary.json", + "sha256": "86895aa82134ad8fef357b331a40ff42acb7bca4e6792df8c8a692f5d8514e8a", + "size_bytes": 170 + }, + { + "media_type": "application/json", + "path": "summary.json", + "sha256": "e8cb3e4c56ae65bc4a4f8a6758f22628e324bc483371f55b45a0fb92fc4b00ea", + "size_bytes": 289 + } + ] +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/machine-inventory.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/machine-inventory.json new file mode 100644 index 0000000..81b3dee --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/machine-inventory.json @@ -0,0 +1,17 @@ +{ + "architecture": "x86_64", + "operating_system": "Linux", + "operating_system_release": "6.17.0-1019-aws", + "python": { + "implementation": "CPython", + "version": "3.12.3" + }, + "software": { + "cyberbattlesim": "0.1.0", + "gymnasium": "0.29.1", + "numpy": "1.26.4", + "raes": "3.3.0", + "raes-adapters": "0.0.0", + "raes-env-packs": "3.6.2" + } +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/provenance.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/provenance.json new file mode 100644 index 0000000..c8c36b2 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/provenance.json @@ -0,0 +1,409 @@ +{ + "adapter": { + "distribution": "raes-adapters", + "version": "0.0.0" + }, + "backend_manifest": { + "capabilities": { + "cleanup": { + "name": "cyberbattlesim-cleanup", + "supported_action_kinds": [ + "destroy", + "reset", + "verify" + ], + "supported_contract_versions": [ + "trial-cleanup-plan-v1", + "trial-cleanup-receipt-v1" + ], + "supported_verification_methods": [ + "probe", + "receipt" + ], + "supports_residual_state_disclosure": true, + "supports_reusable_state": true + }, + "evaluator": { + "constraints": { + "objective_terminal_state": "running until a distinct mapped terminal cause is available", + "outcome_reproduction": "stochastic-bounded", + "proposition_projection": "binding-preserving unknown under lossy source evidence", + "reward_owner": "evaluator" + }, + "name": "cyberbattlesim-evaluator", + "preserves_binding_provenance": true, + "supported_evidence_channels": [ + "api_response" + ], + "supported_predicate_families": [ + "boolean", + "number", + "presence", + "string" + ], + "supported_quantifiers": [ + "all", + "any", + "at_least" + ], + "supported_sections": [ + "assertions", + "conditions", + "objectives", + "propositions" + ], + "supported_time_domains": [ + "wall_clock" + ], + "supported_truth_outcomes": [ + "false", + "true", + "unknown", + "unsupported" + ], + "supports_objectives": true, + "supports_scoring": true + }, + "observation": null, + "orchestrator": { + "constraints": { + "native_transition_owner": "participant-runtime", + "workflow_scope": "episode lifecycle and serialized participant steps" + }, + "name": "cyberbattlesim-orchestrator", + "supported_sections": [ + "events", + "workflows" + ], + "supported_workflow_features": [ + "call" + ], + "supported_workflow_state_predicates": [], + "supports_assertion_refs": false, + "supports_inject_bindings": false, + "supports_workflows": true + }, + "participant_runtime": { + "constraints": { + "autonomous_policy": "qualified CredentialCacheExploiter through RAES action admission", + "max_in_flight_native_transitions": "1", + "native_action_coordinates": "driver-private", + "native_target_attribution": "unavailable; request targets remain intent and are not echoed as realized effect targets", + "participant_action_scope": "connect, local-vulnerability, and remote-vulnerability attacker contracts", + "source_internal_defender": "scan-and-reimage executes inside the selected source step and is not a participant-admitted action" + }, + "execution_bindings": [ + { + "action_contract_address": "participant.action-contract.connect", + "binding_id": "cyberbattlesim-connect", + "constraint_refs": [ + "constraint:serialized-native-transition" + ], + "evidence_refs": [ + "source-ledger:credential-cache-exploiter" + ], + "max_action_attempts": 1, + "max_in_flight": 1, + "max_retries": 0, + "participant_implementation_ref": "participant/cyberbattlesim-red-credential-cache.manifest.json", + "schema_version": "participant-execution-binding/v1", + "target_addresses": [ + "provision.node.customer-data" + ], + "timeout_seconds": 30 + }, + { + "action_contract_address": "participant.action-contract.local-vulnerability", + "binding_id": "cyberbattlesim-local-vulnerability", + "constraint_refs": [ + "constraint:serialized-native-transition" + ], + "evidence_refs": [ + "source-ledger:credential-cache-exploiter" + ], + "max_action_attempts": 1, + "max_in_flight": 1, + "max_retries": 0, + "participant_implementation_ref": "participant/cyberbattlesim-red-credential-cache.manifest.json", + "schema_version": "participant-execution-binding/v1", + "target_addresses": [ + "provision.node.linux-relay" + ], + "timeout_seconds": 30 + }, + { + "action_contract_address": "participant.action-contract.remote-vulnerability", + "binding_id": "cyberbattlesim-remote-vulnerability", + "constraint_refs": [ + "constraint:serialized-native-transition" + ], + "evidence_refs": [ + "source-ledger:credential-cache-exploiter" + ], + "max_action_attempts": 1, + "max_in_flight": 1, + "max_retries": 0, + "participant_implementation_ref": "participant/cyberbattlesim-red-credential-cache.manifest.json", + "schema_version": "participant-execution-binding/v1", + "target_addresses": [ + "provision.node.windows-relay" + ], + "timeout_seconds": 30 + } + ], + "feature_support": [ + { + "constraint_refs": [], + "disclosure_refs": [ + "docs/decisions/cyberbattlesim-backend-guardrails.md" + ], + "evidence_refs": [], + "feature": "interference", + "limitation_refs": [ + "limitation:cyberbattlesim:source-internal-defender" + ], + "support_level": "disclosed_weak" + } + ], + "max_autonomous_action_attempts": 1, + "max_autonomous_burst_size": 1, + "max_autonomous_in_flight": 1, + "max_autonomous_occurrences": 10000, + "max_autonomous_participants": 1, + "max_autonomous_retries_per_occurrence": 1, + "max_concurrent_actions": 2, + "max_execution_services": 1, + "name": "cyberbattlesim-participant-runtime", + "resource_budgets": null, + "supported_autonomous_action_contracts": [ + "participant.action-contract.connect", + "participant.action-contract.local-vulnerability", + "participant.action-contract.remote-vulnerability" + ], + "supported_autonomous_activity_features": [], + "supported_autonomous_observation_boundaries": [ + "participant.observation-boundary.attacker-view" + ], + "supported_autonomous_policy_profiles": [ + "participant-autonomous-execution/v1" + ], + "supported_autonomous_random_stream_profiles": [], + "supported_autonomous_selection_strategies": [ + "ordered_cycle" + ], + "supported_autonomous_target_addresses": [ + "provision.node.customer-data", + "provision.node.linux-relay", + "provision.node.windows-relay" + ], + "supported_behavior_features": [ + "action_contracts", + "attribution_support", + "autonomous_execution", + "behavior_history", + "effects", + "failure_classes", + "observation_boundaries", + "outcome_interpretation", + "preconditions", + "state_transitions", + "temporal_contracts" + ], + "supported_execution_control_actions": [ + "drain", + "pause", + "reset", + "resume", + "start", + "teardown" + ], + "supported_interaction_features": [ + "interference" + ], + "supported_participant_roles": [ + "red" + ], + "supports_autonomous_execution": true, + "supports_bounded_concurrency": true, + "supports_execution_control": true + }, + "provisioner": { + "constraints": { + "account_realization": "auth method and group intent map to source-generated credentials; no source identity equivalence", + "topology_realization": "selected generated chain; authored topology is representative" + }, + "max_total_nodes": 10, + "name": "cyberbattlesim-provisioner", + "supported_account_features": [ + "auth_method", + "groups" + ], + "supported_content_types": [], + "supported_domain_profiles": [], + "supported_generated_artifact_kinds": [], + "supported_node_types": [ + "switch", + "vm" + ], + "supported_os_families": [ + "linux", + "windows" + ], + "supported_service_materialization_profiles": [], + "supports_accounts": true, + "supports_acls": false, + "supports_generated_artifacts": false, + "supports_persistent_volumes": false + } + }, + "compatibility": { + "processors": [ + "raes-reference-processor" + ] + }, + "concept_bindings": [ + { + "family": "assets", + "scope": "capabilities.provisioner.supported_node_types" + }, + { + "family": "assets", + "scope": "capabilities.provisioner.supported_os_families" + }, + { + "family": "tools-and-artifacts", + "scope": "capabilities.provisioner.supported_content_types" + }, + { + "family": "identities", + "scope": "capabilities.provisioner.supported_account_features" + }, + { + "family": "identities", + "scope": "capabilities.provisioner.supported_domain_profiles" + }, + { + "family": "tools-and-artifacts", + "scope": "capabilities.provisioner.supported_service_materialization_profiles" + }, + { + "family": "actions-and-events", + "scope": "capabilities.orchestrator.supported_sections" + }, + { + "family": "observables", + "scope": "capabilities.evaluator.supported_sections" + }, + { + "family": "identities", + "scope": "capabilities.participant_runtime.supported_participant_roles" + }, + { + "family": "actions-and-events", + "scope": "capabilities.participant_runtime.supported_behavior_features" + }, + { + "family": "relationships", + "scope": "capabilities.participant_runtime.supported_interaction_features" + } + ], + "constraints": { + "dependency_installation": "separately-installed-pinned-source", + "execution_controls": "partial", + "outcome_reproduction": "stochastic-bounded", + "protocol_configuration": "attested", + "run_evidence": "attestable", + "source_identity": "qualified-complete-runtime-artifact-roots-attested" + }, + "identity": { + "name": "cyberbattlesim", + "version": "0.0.0" + }, + "realization_support": [ + { + "artifact_mechanisms": [], + "constraints": { + "source_profile": "cyberbattlesim-chain-public-854d696", + "topology": "representative authored topology maps to generated size-10 chain" + }, + "disclosure_kinds": [ + "backend-manifest-v2", + "operation-status-v1", + "runtime-snapshot-v1" + ], + "domain": "runtime-realization", + "observation_capabilities": {}, + "support_mode": "constrained", + "supported_constraint_kinds": [ + "account-feature", + "node-type", + "os-family", + "workflow-feature", + "workflow-state-predicate" + ], + "supported_exact_requirement_kinds": [ + "declared-capability-match" + ] + } + ], + "schema_version": "backend-manifest/v2", + "supported_contract_versions": [ + "backend-manifest-v2", + "provisioning-plan-v1", + "orchestration-plan-v1", + "evaluation-plan-v1", + "operation-receipt-v1", + "operation-status-v1", + "runtime-snapshot-v1", + "workflow-result-envelope-v1", + "workflow-history-event-stream-v1", + "evaluation-result-envelope-v1", + "proposition-truth-result-v1", + "evaluation-history-event-stream-v1", + "participant-episode-state-envelope-v1", + "participant-episode-history-event-stream-v1", + "participant-behavior-history-event-stream-v1", + "participant-execution-binding-v1", + "participant-execution-control-v1", + "participant-execution-service-state-v1", + "participant-control-occurrence-v1", + "participant-crossing-occurrence-v1", + "participant-lifecycle-event-v1", + "participant-observation-envelope-v1", + "participant-shared-state-record-v1", + "participant-joint-action-record-v1", + "participant-time-management-context-v1", + "experiment-capture-spec-v1", + "experiment-evidence-record-v1", + "experiment-derived-measure-v1", + "trial-cleanup-plan-v1", + "trial-cleanup-receipt-v1" + ] + }, + "configuration": { + "experiment_id": "cyberbattlesim-chain-spec", + "experiment_version": "1.0.0", + "mode": "smoke", + "participant_configuration": "participant/cyberbattlesim-red-credential-cache.configuration.json", + "participant_implementation": "cyberbattlesim-red-credential-cache", + "participant_manifest": "participant/cyberbattlesim-red-credential-cache.manifest.json", + "participant_selection": "participant/cyberbattlesim-red-credential-cache.selection.json", + "run_id": "cbs-mediated-01", + "seeds": [ + 20260729 + ], + "trial_length": 600 + }, + "environment_pack": { + "digest": "sha256:66493882579d5cba87248c5722782ff5ded5f0d7423f4e559f15bfb61712a905", + "identity": "cyberbattlesim-chain" + }, + "scenario": { + "digest": "sha256:9d696ea7fa23a1e7cf4c1cbc145a7989370dc4e9afff2cd5a17d6d1af887b528", + "identity": "sdl/cyberbattlesim-chain.sdl.yaml" + }, + "source": { + "commit": "854d6966607fb68645651f55b0f97221bd293e0d", + "version": "0.1.0" + } +} diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/derived-measures.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/derived-measures.json new file mode 100644 index 0000000..41e940b --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/derived-measures.json @@ -0,0 +1,46 @@ +[ + { + "derived_measure_id": "measure.cyberbattlesim.cumulative-attacker-reward.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "generated_at": "2026-08-10T03:58:50.048204Z", + "limitations": [ + "Single-run cumulative source reward; no deterministic replay or outcome equivalence is claimed.", + "Python-global and NumPy-global random streams remain unbound by the selected reset protocol." + ], + "measure_kind": "score", + "measure_version": "1.0.0", + "method": { + "description": "Report the sanitized cumulative reward maintained by the serialized source driver.", + "method_id": "cyberbattlesim-cumulative-reward", + "method_version": "1.0.0", + "name": "Source cumulative attacker reward", + "parameters": [] + }, + "metric_ref": { + "ref_digest": null, + "ref_id": "cumulative_attacker_reward", + "ref_kind": "metric-definition", + "ref_path": null, + "ref_version": "1.0.0" + }, + "provenance_refs": [ + { + "ref_digest": null, + "ref_id": "cyberbattlesim-chain-task", + "ref_kind": "task", + "ref_path": null, + "ref_version": "1.0.0" + } + ], + "schema_version": "experiment-derived-measure/v1", + "source_evidence_refs": [ + { + "ref_id": "evidence-record.cyberbattlesim.evaluator-summary.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "ref_kind": "evidence-record", + "ref_version": "1.0.0" + } + ], + "uncertainty": "No statistical uncertainty is estimated from this single run.", + "value": 6036.0, + "value_status": "reported" + } +] diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/diagnostics.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/diagnostics.json new file mode 100644 index 0000000..a0d2e58 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/diagnostics.json @@ -0,0 +1,30 @@ +[ + { + "address": "/participant/behavior/red", + "code": "cyberbattlesim.seed.applied", + "domain": "participant", + "message": "The adapter bound a selected random stream; binding is not a deterministic-replay claim.", + "severity": "info" + }, + { + "address": "/participant/behavior/red", + "code": "cyberbattlesim.seed.applied", + "domain": "participant", + "message": "The adapter bound a selected random stream; binding is not a deterministic-replay claim.", + "severity": "info" + }, + { + "address": "/participant/behavior/red", + "code": "cyberbattlesim.seed.unbound", + "domain": "participant", + "message": "A selected random stream remains unbound this reset.", + "severity": "warning" + }, + { + "address": "/participant/behavior/red", + "code": "cyberbattlesim.seed.unbound", + "domain": "participant", + "message": "A selected random stream remains unbound this reset.", + "severity": "warning" + } +] diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/evidence-records.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/evidence-records.json new file mode 100644 index 0000000..01268cd --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/evidence-records.json @@ -0,0 +1,59 @@ +[ + { + "apparatus_context_ref": null, + "capture_requirement_ref": "cyberbattlesim-evaluator-summary.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "capture_spec_ref": { + "ref_id": "cyberbattlesim-evaluator-capture.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "ref_kind": "capture-spec", + "ref_version": "1.0.0" + }, + "capture_window_ref": "cyberbattlesim-selected-episode.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "captured_at": "2026-08-10T03:58:50.048204Z", + "evidence_kind": "telemetry", + "evidence_record_id": "evidence-record.cyberbattlesim.evaluator-summary.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d", + "provenance_refs": [ + { + "ref_digest": null, + "ref_id": "qualification.cyberbattlesim.selected-source", + "ref_kind": "other", + "ref_path": null, + "ref_version": "854d6966607fb68645651f55b0f97221bd293e0d" + } + ], + "raw_content": { + "artifact_ref": null, + "content_checksum": { + "algorithm": "sha256", + "value": "0d56feb988390d49b2505d47b492f327f96e1f67ffb7a1900822983712cf54f0" + }, + "content_uri": "urn:raes:evidence-record.cyberbattlesim.evaluator-summary.d60d9f9c96354972ada424f62e23546de444a921962010632149728df7f4977d:payload-summary", + "loss_disclosure": "Source-native observations, action availability, credentials, reward components, hidden state, and info are withheld.", + "payload_summary": "Sanitized evaluator summary: 381 source transitions and cumulative reward 6036; terminated=True truncated=False terminal_cause=source-terminated." + }, + "record_version": "1.0.0", + "redaction_state": "redacted", + "run_ref": { + "ref_digest": null, + "ref_id": "driver.reset.1", + "ref_kind": "run", + "ref_path": null, + "ref_version": "1.0.0" + }, + "schema_version": "experiment-evidence-record/v1", + "sensitivity": "redacted", + "source_refs": [ + { + "ref_digest": null, + "ref_id": "cyberbattlesim-chain-public", + "ref_kind": "protocol", + "ref_path": null, + "ref_version": "854d6966607fb68645651f55b0f97221bd293e0d" + } + ], + "task_ref": { + "ref_id": "cyberbattlesim-chain-task", + "ref_kind": "task", + "ref_version": "1.0.0" + } + } +] diff --git a/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/participant-provenance.json b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/participant-provenance.json new file mode 100644 index 0000000..b75ebe2 --- /dev/null +++ b/packages/cyberbattlesim_adapter/reproduction/825dde3b4cd66f228e0f93157a2add35e3c9a822a7adac1d8ffd322b32116232/mediated/runs/cbs-mediated-01/portable/runs/cbs-mediated-01-1/participant-provenance.json @@ -0,0 +1,55 @@ +{ + "backend_manifest_ref": "manifest.cyberbattlesim-chain", + "metadata": { + "selection_source": "admitted-experiment-artifact" + }, + "participant_implementations": [ + { + "configuration_digest": "sha256:2254dad60b577628a134a55484d36487ead453f9033313150eb684060b6e1b07", + "configuration_ref": "participant/cyberbattlesim-red-credential-cache.configuration.json", + "exposure_policy": { + "constraints": {}, + "disclosed_refs": [ + "participant.observation-boundary.attacker-view" + ], + "exposure_policy_kinds": [ + "hidden-truth", + "observation-stream" + ], + "policy_digest": null, + "policy_id": "cyberbattlesim-red-observation-boundary", + "policy_version": null, + "tool_affordance_refs": [], + "visibility_scope_refs": [ + "participant.behavior.red" + ], + "withheld_refs": [ + "action_mask", + "credential_cache_matrix", + "credential_cache_length", + "nodes_privilegelevel", + "discovered_nodes_properties", + "native-action-coordinate", + "reward-vector", + "