chore: initialize recovered claude workspace
This commit is contained in:
44
src/utils/agentSwarmsEnabled.ts
Normal file
44
src/utils/agentSwarmsEnabled.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { getFeatureValue_CACHED_MAY_BE_STALE } from '../services/analytics/growthbook.js'
|
||||
import { isEnvTruthy } from './envUtils.js'
|
||||
|
||||
/**
|
||||
* Check if --agent-teams flag is provided via CLI.
|
||||
* Checks process.argv directly to avoid import cycles with bootstrap/state.
|
||||
* Note: The flag is only shown in help for ant users, but if external users
|
||||
* pass it anyway, it will work (subject to the killswitch).
|
||||
*/
|
||||
function isAgentTeamsFlagSet(): boolean {
|
||||
return process.argv.includes('--agent-teams')
|
||||
}
|
||||
|
||||
/**
|
||||
* Centralized runtime check for agent teams/teammate features.
|
||||
* This is the single gate that should be checked everywhere teammates
|
||||
* are referenced (prompts, code, tools isEnabled, UI, etc.).
|
||||
*
|
||||
* Ant builds: always enabled.
|
||||
* External builds require both:
|
||||
* 1. Opt-in via CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS env var OR --agent-teams flag
|
||||
* 2. GrowthBook gate 'tengu_amber_flint' enabled (killswitch)
|
||||
*/
|
||||
export function isAgentSwarmsEnabled(): boolean {
|
||||
// Ant: always on
|
||||
if (process.env.USER_TYPE === 'ant') {
|
||||
return true
|
||||
}
|
||||
|
||||
// External: require opt-in via env var or --agent-teams flag
|
||||
if (
|
||||
!isEnvTruthy(process.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS) &&
|
||||
!isAgentTeamsFlagSet()
|
||||
) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Killswitch — always respected for external users
|
||||
if (!getFeatureValue_CACHED_MAY_BE_STALE('tengu_amber_flint', true)) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user