// compute_pipeline — Pure TQL pipeline: chains N stages to produce a final StageOutput.
// Part of issue 0081-B: promoted from primitives_gallery playground to registry.
// Depends on compute_stage.h. No ImGui, no I/O.
#pragma once

#include "core/compute_stage.h"
#include "core/data_table_types.h"
#include <string>
#include <vector>

namespace data_table {

// compute_pipeline — Pure: applies stages[0..N-1] in sequence.
// Each stage receives the StageOutput of the previous one as input.
// If stages is empty, returns a passthrough StageOutput wrapping in_cells.
StageOutput compute_pipeline(const char* const* in_cells, int in_rows, int in_cols,
                             const std::vector<std::string>& in_headers,
                             const std::vector<ColumnType>&  in_types,
                             const std::vector<Stage>&       stages);

} // namespace data_table
