package cli import ( "github.com/spf13/cobra" "gitea.maximumdirect.net/eric/seriatim/internal/config" "gitea.maximumdirect.net/eric/seriatim/internal/normalize" ) func newNormalizeCommand() *cobra.Command { var opts config.NormalizeOptions cmd := &cobra.Command{ Use: "normalize", Short: "Normalize a transcript artifact into a standard seriatim output shape", RunE: func(cmd *cobra.Command, args []string) error { normalizeOpts := opts if !cmd.Flags().Changed("output-schema") { normalizeOpts.OutputSchema = "" } cfg, err := config.NewNormalizeConfig(normalizeOpts) if err != nil { return err } return normalize.Run(cmd.Context(), cfg) }, } flags := cmd.Flags() flags.StringVar(&opts.InputFile, "input-file", "", "input transcript JSON file") flags.StringVar(&opts.OutputFile, "output-file", "", "output transcript JSON file") flags.StringVar(&opts.ReportFile, "report-file", "", "optional report JSON file") flags.StringVar(&opts.OutputSchema, "output-schema", config.DefaultOutputSchema, "output JSON schema: seriatim-minimal, seriatim-intermediate, or seriatim-full") flags.StringVar(&opts.OutputModules, "output-modules", config.DefaultOutputModules, "comma-separated output modules") return cmd }