MCPcopy
hub / github.com/codeaashu/claude-code / buildInheritedCliFlags

Function buildInheritedCliFlags

src/utils/swarm/spawnUtils.ts:38–89  ·  view source on GitHub ↗
(options?: {
  planModeRequired?: boolean
  permissionMode?: PermissionMode
})

Source from the content-addressed store, hash-verified

36 * @param options.permissionMode - Permission mode to propagate
37 */
38export function buildInheritedCliFlags(options?: {
39 planModeRequired?: boolean
40 permissionMode?: PermissionMode
41}): string {
42 const flags: string[] = []
43 const { planModeRequired, permissionMode } = options || {}
44
45 // Propagate permission mode to teammates, but NOT if plan mode is required
46 // Plan mode takes precedence over bypass permissions for safety
47 if (planModeRequired) {
48 // Don't inherit bypass permissions when plan mode is required
49 } else if (
50 permissionMode === 'bypassPermissions' ||
51 getSessionBypassPermissionsMode()
52 ) {
53 flags.push('--dangerously-skip-permissions')
54 } else if (permissionMode === 'acceptEdits') {
55 flags.push('--permission-mode acceptEdits')
56 }
57
58 // Propagate --model if explicitly set via CLI
59 const modelOverride = getMainLoopModelOverride()
60 if (modelOverride) {
61 flags.push(`--model ${quote([modelOverride])}`)
62 }
63
64 // Propagate --settings if set via CLI
65 const settingsPath = getFlagSettingsPath()
66 if (settingsPath) {
67 flags.push(`--settings ${quote([settingsPath])}`)
68 }
69
70 // Propagate --plugin-dir for each inline plugin
71 const inlinePlugins = getInlinePlugins()
72 for (const pluginDir of inlinePlugins) {
73 flags.push(`--plugin-dir ${quote([pluginDir])}`)
74 }
75
76 // Propagate --teammate-mode so tmux teammates use the same mode as leader
77 const sessionMode = getTeammateModeFromSnapshot()
78 flags.push(`--teammate-mode ${sessionMode}`)
79
80 // Propagate --chrome / --no-chrome if explicitly set on the CLI
81 const chromeFlagOverride = getChromeFlagOverride()
82 if (chromeFlagOverride === true) {
83 flags.push('--chrome')
84 } else if (chromeFlagOverride === false) {
85 flags.push('--no-chrome')
86 }
87
88 return flags.join(' ')
89}
90
91/**
92 * Environment variables that must be explicitly forwarded to tmux-spawned

Callers 1

spawnMethod · 0.50

Calls 8

getMainLoopModelOverrideFunction · 0.85
quoteFunction · 0.85
getFlagSettingsPathFunction · 0.85
getInlinePluginsFunction · 0.85
getChromeFlagOverrideFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected