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}