MCPcopy
hub / github.com/davepoon/buildwithclaude / interactiveAddSubagent

Function interactiveAddSubagent

packages/bwc-cli/src/commands/add.ts:290–344  ·  view source on GitHub ↗
(
  configManager: ConfigManager, 
  registryClient: RegistryClient,
  forceUserLevel: boolean = false,
  forceProjectLevel: boolean = false
)

Source from the content-addressed store, hash-verified

288}
289
290async function interactiveAddSubagent(
291 configManager: ConfigManager,
292 registryClient: RegistryClient,
293 forceUserLevel: boolean = false,
294 forceProjectLevel: boolean = false
295): Promise<void> {
296 const subagents = await registryClient.getSubagents()
297
298 const categories = [...new Set(subagents.map(s => s.category))].sort()
299
300 const { category } = await inquirer.prompt([
301 {
302 type: 'list',
303 name: 'category',
304 message: 'Select a category:',
305 choices: ['All', ...categories]
306 }
307 ])
308
309 const filteredSubagents = category === 'All'
310 ? subagents
311 : subagents.filter(s => s.category === category)
312
313 logger.info('Use SPACE to select/deselect, ENTER to confirm')
314
315 const { selected } = await inquirer.prompt([
316 {
317 type: 'checkbox',
318 name: 'selected',
319 message: 'Select subagents to install:',
320 choices: filteredSubagents.map(s => ({
321 name: `${s.name} - ${s.description}`,
322 value: s.name,
323 short: s.name
324 })),
325 validate: (answer: string[]) => {
326 if (answer.length < 1) {
327 return 'You must select at least one subagent!'
328 }
329 return true
330 }
331 }
332 ])
333
334 if (!selected || selected.length === 0) {
335 logger.warn('No subagents selected')
336 return
337 }
338
339 logger.info(`Installing ${selected.length} subagent(s)...`)
340
341 for (const name of selected) {
342 await addSubagent(name, configManager, registryClient, forceUserLevel, forceProjectLevel)
343 }
344}
345
346async function interactiveAddCommand(
347 configManager: ConfigManager,

Callers 1

interactiveAddFunction · 0.85

Calls 2

addSubagentFunction · 0.85
getSubagentsMethod · 0.80

Tested by

no test coverage detected