120 lines · 3.0 KB · Rust
RawDownload
use crate::{EnumFeatureFlag, FeatureFlag, PresenceFlag, register_feature_flag}; pub struct NotebookFeatureFlag; impl FeatureFlag for NotebookFeatureFlag {    const NAME: &'static str = "notebooks";    type Value = PresenceFlag;}register_feature_flag!(NotebookFeatureFlag); pub struct PanicFeatureFlag; impl FeatureFlag for PanicFeatureFlag {    const NAME: &'static str = "panic";    type Value = PresenceFlag;}register_feature_flag!(PanicFeatureFlag); /// A feature flag for granting access to beta ACP features.////// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.pub struct AcpBetaFeatureFlag; impl FeatureFlag for AcpBetaFeatureFlag {    const NAME: &'static str = "acp-beta";    type Value = PresenceFlag;}register_feature_flag!(AcpBetaFeatureFlag); pub struct DiffReviewFeatureFlag; impl FeatureFlag for DiffReviewFeatureFlag {    const NAME: &'static str = "diff-review";    type Value = PresenceFlag;     fn enabled_for_staff() -> bool {        false    }}register_feature_flag!(DiffReviewFeatureFlag); /// Gates the `create_thread` and `list_agents_and_models` tools, which let/// the agent spawn independent sibling threads that show up in the agent/// panel sidebar.pub struct CreateThreadToolFeatureFlag; impl FeatureFlag for CreateThreadToolFeatureFlag {    const NAME: &'static str = "create-thread-tool";    type Value = PresenceFlag;     fn enabled_for_staff() -> bool {        true    }}register_feature_flag!(CreateThreadToolFeatureFlag); pub struct LspToolFeatureFlag; impl FeatureFlag for LspToolFeatureFlag {    const NAME: &'static str = "lsp-tool";    type Value = PresenceFlag;     fn enabled_for_staff() -> bool {        false    }}register_feature_flag!(LspToolFeatureFlag); pub struct RenameToolFeatureFlag; impl FeatureFlag for RenameToolFeatureFlag {    const NAME: &'static str = "rename-tool";    type Value = PresenceFlag;     fn enabled_for_staff() -> bool {        true    }}register_feature_flag!(RenameToolFeatureFlag); pub struct ProjectPanelUndoRedoFeatureFlag; impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag {    const NAME: &'static str = "project-panel-undo-redo";    type Value = PresenceFlag;     fn enabled_for_staff() -> bool {        true    }}register_feature_flag!(ProjectPanelUndoRedoFeatureFlag); /// Controls how agent thread worktree chips are labeled in the sidebar.#[derive(Clone, Copy, PartialEq, Eq, Debug, EnumFeatureFlag)]pub enum AgentThreadWorktreeLabel {    #[default]    Both,    Worktree,    Branch,} pub struct AgentThreadWorktreeLabelFlag; impl FeatureFlag for AgentThreadWorktreeLabelFlag {    const NAME: &'static str = "agent-thread-worktree-label";    type Value = AgentThreadWorktreeLabel;     fn enabled_for_staff() -> bool {        false    }}register_feature_flag!(AgentThreadWorktreeLabelFlag); pub struct AutoWatchFeatureFlag; impl FeatureFlag for AutoWatchFeatureFlag {    const NAME: &'static str = "auto-watch-screens";    type Value = PresenceFlag;}register_feature_flag!(AutoWatchFeatureFlag);