Title: 10kV Feeder Reliability Indices
Domain: engineering — Energy, Power & Nuclear Engineering

Summary: Compute IEEE/IEC supply reliability indices for a 10kV distribution feeder from staged CIM/RDF XML, SVG topology, and parameter data, then write the structured JSON result to the canonical output path.

Task prompt:
You are computing IEEE/IEC supply reliability indices for a 10kV distribution feeder.

## Your Task
Read the staged feeder model, the SVG topology drawing, and the reliability parameters.
Compute the feeder reliability indices and the section-level contribution tables.

## Visible Inputs
- CIM/RDF XML: `base/input/gis.null.xml`
- SVG topology: `base/input/gis.null.svg`
- Reliability parameters: `base/input/params.json`
- Agent-facing dependency manifests: `base/input/pyproject.toml` and `base/input/uv.lock`

## Software
- Use the staged Python environment manifests under `input/` if you need packages.
- Do not preinstall task-specific Python packages system-wide.
- The benchmark runtime should stay isolated from any global package state.

## Conventions
- For this task, `N_T` is the number of `PowerTransformer` objects assigned to the current feeder; each counts as one equally weighted load point. Do not use the `EnergyConsumer` count for `N_T`.
- Use these exact row fields:
  - `fault_rows`: `section, name, length_km, lambda_i, perm_users, t_iso_h, r_i_h, lambda_N, lambda_N_r`
  - `device_fault_rows`: `type, section, name, device_count, lambda_per_device, affected_users, t_repair_h, lambda_N, lambda_N_r`
  - `scheduled_rows`: `section, name, length_km, users, lambda_N, lambda_N_r`
- `section` may be any locally unique identifier. Its literal value and row ordering are not significant.

## What You Must Do
1. Produce one JSON file exactly at `base/output/reliability_indices.json`.
2. The JSON must include the feeder-level totals and the section-level breakdown tables.
3. Keep the answer schema consistent with the staged reliability reference data.
4. Write `ASAI` as a fraction between 0 and 1.

## Output Requirements
- Required top-level keys:
  `feeder, N_T, SAIFI_F, SAIDI_F_h, SAIDI_F_min, SAIFI_D, SAIDI_D_h, SAIDI_D_min, SAIFI_S, SAIDI_S_h, SAIDI_S_min, SAIFI, SAIDI_h, SAIDI_min, CAIDI_h, CAIDI_min, ASAI, fault_rows, device_fault_rows, scheduled_rows`
- Keep the section tables in the JSON output.
- Do not write any extra files into `base/output`.

## Practical Note
The task is designed for Python-based network analysis and data processing. If you need additional Python packages, install them from the staged manifests under `input/` using `uv`.


The agent must:
Parse the staged CIM/RDF XML, SVG topology, and parameter JSON.
Build a section-level feeder model and compute the required reliability indices.
Write the structured result to `output/reliability_indices.json`.
Preserve the staged input.

Software: Python 3.12
pandas
openpyxl

Input files:
name: gis.null.xml
format: XML
path: input/gis.null.xml
description: CIM/RDF feeder model.
name: gis.null.svg
format: SVG
path: input/gis.null.svg
description: Single-line topology drawing.
name: params.json
format: JSON
path: input/params.json
description: Regional reliability parameters.
name: pyproject.toml
format: TOML
path: input/pyproject.toml
description: Agent-facing dependency manifest staged for uv.
name: uv.lock
format: TOML lockfile
path: input/uv.lock
description: Locked agent-facing dependency set staged for uv.