1pub(crate) mod agents_conformance;
2pub(crate) mod bench;
3pub(crate) mod check;
4pub(crate) mod config_cmd;
5pub(crate) mod connect;
6pub(crate) mod connector;
7pub(crate) mod contracts;
8pub(crate) mod counterfactual;
9pub(crate) mod crystallize;
10pub mod demo;
11pub(crate) mod dev;
12pub(crate) mod diagnostics_catalog;
13pub(crate) mod doctor;
14pub(crate) mod dump_highlight_keywords;
15pub(crate) mod dump_protocol_artifacts;
16pub(crate) mod dump_trigger_quickref;
17pub mod eval_coding_agent;
18pub(crate) mod eval_coding_agent_preset;
19pub mod eval_context;
20pub(crate) mod eval_model_selector;
21pub mod eval_prompt;
22pub(crate) mod eval_prompt_context;
23pub(crate) mod eval_scope_triage;
24pub(crate) mod eval_tool_calls;
25pub(crate) mod explain;
26pub(crate) mod fix;
27pub mod flow;
28pub(crate) mod graph;
29pub(crate) mod hardware;
30pub(crate) mod init;
31pub(crate) mod json_schemas;
32pub(crate) mod local;
33pub(crate) mod local_readiness;
34pub(crate) mod mcp;
35pub(crate) mod merge_captain;
36pub(crate) mod merge_captain_mock;
37pub(crate) mod models;
38pub mod orchestrator;
39pub mod pack;
40pub(crate) mod package_scaffold;
41pub(crate) mod parse_tokens;
42pub mod persona;
43pub mod persona_doctor;
44pub mod persona_scaffold;
45pub mod persona_supervision;
46pub(crate) mod pg_codegen;
47pub mod playground;
48pub(crate) mod portal;
49pub mod precompile;
50pub(crate) mod protocol_conformance;
51pub(crate) mod provider;
52pub(crate) mod provider_capabilities;
53pub(crate) mod provider_support;
54pub(crate) mod providers;
55pub(crate) mod quickstart;
56pub(crate) mod repl;
57pub(crate) mod replay;
58pub(crate) mod routes;
59pub mod run;
60pub(crate) mod scaffold_common;
61pub(crate) mod serve;
62pub(crate) mod session;
63pub(crate) mod skill;
64pub(crate) mod skills;
65pub(crate) mod supervisor;
66pub(crate) mod test;
67pub mod test_bench;
68pub mod time;
69pub(crate) mod tool;
70pub(crate) mod tool_mode_parity;
71pub(crate) mod trace;
72pub mod trigger;
73pub(crate) mod trust;
74pub(crate) mod try_cmd;
75pub(crate) mod upgrade;
76pub(crate) mod viz;
77pub(crate) mod workflow;
78
79use std::path::{Path, PathBuf};
80
81pub(crate) fn collect_harn_files(dir: &Path, out: &mut Vec<PathBuf>) {
86 if let Ok(entries) = std::fs::read_dir(dir) {
87 let mut entries: Vec<_> = entries.filter_map(|e| e.ok()).collect();
88 entries.sort_by_key(|e| e.path());
89 for entry in entries {
90 let path = entry.path();
91 if path.is_dir() {
92 collect_harn_files(&path, out);
93 } else if path.extension().is_some_and(|ext| ext == "harn") {
94 let skip_marker = path.with_extension("conformance-skip");
95 if skip_marker.exists() {
96 continue;
97 }
98 out.push(path);
99 }
100 }
101 }
102}