CliConfig.java
package org.egothor.methodatlas;
import java.nio.file.Path;
import java.util.List;
import java.util.Set;
import org.egothor.methodatlas.ai.AiOptions;
/**
* Parsed command-line configuration used to drive a single application run.
*
* <p>
* Instances are created by {@link CliArgs#parse(String...)} and consumed by
* {@link MethodAtlasApp#run(String[], java.io.PrintWriter)}.
* </p>
*
* @param outputMode selected output mode
* @param aiOptions AI configuration controlling provider selection, taxonomy,
* limits, and timeouts
* @param paths root paths to scan; when empty, the current working
* directory is scanned
* @param fileSuffixes one or more filename suffixes used to select source
* files for scanning; a file is included if its name
* ends with any of the listed suffixes
* @param testAnnotations set of annotation simple names used to identify test
* methods; defaults to
* {@link AnnotationInspector#DEFAULT_TEST_ANNOTATIONS}
* @param emitMetadata whether to emit {@code # key: value} metadata comment
* lines before the CSV header
* @param manualMode manual AI workflow mode, or {@code null} when using
* automated providers
* @param applyTags when {@code true}, AI-generated {@code @DisplayName}
* and {@code @Tag} annotations are written back to the
* source files instead of producing a CSV/SARIF report
* @param contentHash when {@code true}, a SHA-256 fingerprint of each
* class source is included as a {@code content_hash}
* column in CSV/plain output and as a SARIF property
*/
record CliConfig(OutputMode outputMode, AiOptions aiOptions, List<Path> paths, List<String> fileSuffixes,
Set<String> testAnnotations, boolean emitMetadata, ManualMode manualMode, boolean applyTags,
boolean contentHash) {
}