Single entry point for which JSONL or structured logs exist, where they are emitted, and how to enable them. This map is documentation-only: it does not change runtime behavior.
AINL is not SOC 2 certified. SOC 2 is an organizational attestation. In-repo materials such as ../enterprise/SOC2_CHECKLIST.md and AINL_SOC2_CONTROL_MAPPING.md help operators map controls to shipped behaviors (logs, strict compile, policy). They are not legal advice and do not imply certification.
| You need… | Use this surface | Primary doc / code |
|---|---|---|
Structured events for /run / /enqueue on the HTTP runner service (ainl-runner-service) |
Runner JSON audit (ainl.runner logger) |
AUDIT_LOGGING.md · scripts/runtime_runner_service.py |
Per-step execution JSONL from ainl run / RuntimeEngine (CLI, tests, MCP host) |
CLI trajectory JSONL | ../trajectory.md · cli/main.py → trajectory_log_path |
| App-authored append-only events from inside a graph | audit_trail adapter |
../tutorials/production_with_estimates_and_audit.md · adapters/audit_trail.py |
| Counters / metrics (Prometheus collector + optional JSONL lines) | Runtime observability | runtime/observability.py · env AINL_OBSERVABILITY, AINL_OBSERVABILITY_JSONL |
These surfaces use different schemas and different enablement paths. Do not assume one replaces another.
RuntimeEngine accepts a single trajectory log path. The CLI sets it from either:
ainl run … --trace-jsonl PATH— write JSONL toPATH, or-for stdout.ainl run … --log-trajectoryorAINL_LOG_TRAJECTORY=1(etc.) — write to<source-stem>.trajectory.jsonlnext to the.ainlsource file.
If both are applicable, --trace-jsonl wins (see cli/main.py). Semantics and line shape are the trajectory format documented in ../trajectory.md—not the HTTP runner audit schema in AUDIT_LOGGING.md.
- Runner service: emits structured JSON events (
run_start,adapter_call,run_complete,run_failed,policy_rejected) on theainl.runnerlogger. SeeAUDIT_LOGGING.md. - Embedded
RuntimeEngine(CLIainl run, MCPainl_run, tests): does not emit that schema unless you wrap execution with a layer that forwards or re-emits runner-style events.
The following are listed under aspirational_not_built in STATUS.yaml (honesty contract for the repo):
validation_saas_dashboard— cloud-hosted validation with compliance reports (not deployed as a product).hosted_runtime_saas— managed execution environment (design only).- Related marketplace / token-gating entries — see
STATUS.yamlfor current keys.
Local ainl serve validation/compile/run endpoints exist; they are not the same as a hosted compliance dashboard.
For JSONL files containing audit_trail adapter lines (event_hash per record):
ainl audit verify-jsonl path/to/audit.jsonlOther JSON objects on the same stream (e.g. trajectory lines) are skipped. See ../enterprise/EVIDENCE_BUNDLE_RECIPE.md.
- Runner audit schema:
AUDIT_LOGGING.md - CLI trajectory:
../trajectory.md - Cost estimates +
audit_trailadapter:../tutorials/production_with_estimates_and_audit.md - Operator SOC 2 checklist:
../enterprise/SOC2_CHECKLIST.md - TSC-style shared responsibility mapping:
AINL_SOC2_CONTROL_MAPPING.md - Repo reality vs design:
../../STATUS.yaml - RFC (design only): optional runner-shaped audit from embedded runs —
EMBEDDED_RUNNER_AUDIT_BRIDGE.md
flowchart LR
subgraph httpRunner [HTTP_runner_service]
R_audit[ainl_runner_JSON_events]
end
subgraph cliPaths [CLI_RuntimeEngine_MCP]
Traj[trajectory_JSONL]
Obs[observability_metric_JSONL]
AT[audit_trail_adapter]
end
httpRunner -.->|"different_schema"| cliPaths