The empirical sandbox turns a staged lab session into notebook-style cells. It is a research handoff surface, not a separate model engine. The cells record the same choices the guided empirical workflow sees: data source, selected series, transforms, model posture, evaluation settings, and the latest run state when one exists.
Export Bundle
The sandbox can export a reproducibility bundle with these files:
notebook.ipynb- a Jupyter-compatible notebook with markdown notes and Python code cells.run.py- the same cells flattened into a Python script.manifest.json- session, model, evaluation, notebook digest, and runtime-policy metadata.runtime-policy.json- package, network, filesystem, CPU, memory, time, and output limits.requirements.txt- the packages detected from the current code, limited to the supported package policy.session.json- the lab session snapshot used to build the notebook.
The export is meant for review and replay outside the browser. It does not prove that the code was executed on Macro by Mark unless hosted execution accepted and returned a run result.
Package Policy
The Python package policy is intentionally narrow and focused on common scientific Python workflows. The export builder scans imports and records requested packages in the runtime policy. The execution route rejects imports outside the supported policy before execution.
Execution Status
Hosted execution is gated. The server route exists, but it only runs notebooks when the current environment is configured for hosted execution. Otherwise, the route returns an unavailable status.
This design is deliberate. Executing user-edited code requires more than a notebook editor. The runtime must isolate code, cap CPU and memory, limit wall time, block network access, keep writes in a temporary filesystem, record output, and avoid exposing secrets.
What The Route Checks
Before dispatching a notebook run, the server route:
- requires a signed-in user;
- applies route rate limits;
- accepts Python only;
- caps request size;
- rebuilds the runtime policy server-side;
- rejects unsupported imports;
- keeps infrastructure details out of browser responses;
- runs code only when hosted execution is available.
What Is Not Claimed
The current sandbox does not claim:
- executed Jupyter notebooks in production;
- arbitrary package installation;
- network access from notebook code;
- persistent filesystem state between runs;
- R or Matlab export;
- external data ingestion beyond the staged lab session.
Those features need separate implementation and review before they can be documented as available.
Relation To The Guided Lab
The notebook export is useful when a researcher wants to inspect assumptions outside the step-by-step UI. The guided lab remains the source for supported forecast execution. The notebook should be read as a reproducible draft and audit artifact until hosted execution returns a verified run result.