flags.rs

 1use crate::FeatureFlag;
 2
 3pub struct NotebookFeatureFlag;
 4
 5impl FeatureFlag for NotebookFeatureFlag {
 6    const NAME: &'static str = "notebooks";
 7}
 8
 9pub struct PanicFeatureFlag;
10
11impl FeatureFlag for PanicFeatureFlag {
12    const NAME: &'static str = "panic";
13}
14
15pub struct AgentV2FeatureFlag;
16
17impl FeatureFlag for AgentV2FeatureFlag {
18    const NAME: &'static str = "agent-v2";
19
20    fn enabled_for_staff() -> bool {
21        true
22    }
23}
24
25/// A feature flag for granting access to beta ACP features.
26///
27/// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.
28pub struct AcpBetaFeatureFlag;
29
30impl FeatureFlag for AcpBetaFeatureFlag {
31    const NAME: &'static str = "acp-beta";
32}
33
34pub struct AgentSharingFeatureFlag;
35
36impl FeatureFlag for AgentSharingFeatureFlag {
37    const NAME: &'static str = "agent-sharing";
38}
39
40pub struct SubagentsFeatureFlag;
41
42impl FeatureFlag for SubagentsFeatureFlag {
43    const NAME: &'static str = "subagents";
44
45    fn enabled_for_staff() -> bool {
46        true
47    }
48}
49
50pub struct DiffReviewFeatureFlag;
51
52impl FeatureFlag for DiffReviewFeatureFlag {
53    const NAME: &'static str = "diff-review";
54
55    fn enabled_for_staff() -> bool {
56        false
57    }
58}
59
60pub struct GitGraphFeatureFlag;
61
62impl FeatureFlag for GitGraphFeatureFlag {
63    const NAME: &'static str = "git-graph";
64}
65
66pub struct StreamingEditFileToolFeatureFlag;
67
68impl FeatureFlag for StreamingEditFileToolFeatureFlag {
69    const NAME: &'static str = "streaming-edit-file-tool";
70
71    fn enabled_for_staff() -> bool {
72        false
73    }
74}