Add 'entire scout --list' to list configured profiles · Entire
Add 'entire scout --list' to list configured profiles
23f389e→main·
dipree·1mo ago·2 files·+60 added/-1 removed
Prints each configured scout profile with its workers (agent · model) and master, marking the default. No review run needed. Fills the gap where profiles were only visible via the non-interactive --configure discovery view.
Sessions
811f804b5518View transcript
[?
List me all the potential command combinations for review.Pi·Opus 4.8·2 steps](/content/gh/entireio/cli/session/019e9fb5-004d-7145-8f48-db6a240d0ab3#timeline-811f804b5518/index.html)
Changes
2
cmd/entire/cli/review
Mcmd.go+59
Mcmd_test.go+1/-1
76 unmodified lines
77
78
79
80
81
82
83
34 unmodified lines
118
119
120
121
122
123
124
32 unmodified lines
157
158
159
160
161
162
163
164
165
40 unmodified lines
206
207
208
209
210
211
212
136 unmodified lines
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
76 unmodified lines
var findings bool
var listModels bool
var listAgents bool
var listProfiles bool
var setAgents []string
var setMaster string
var setTask string
34 unmodified lines
--edit re-open the advanced profile skill picker
--findings browse local findings
--agent NAME run only one worker from the selected profile
--list list configured scout profiles (their workers and master)
--agents list the worker agents you can pass to --agent for the profile
--model NAME override the model for the --agent worker (requires --agent)
--models list the models each agent advertises (optionally --agent NAME)
32 unmodified lines
}
return runReviewListAgents(ctx, cmd, listProfile, deps)
}
if listProfiles {
return runReviewListProfiles(ctx, cmd, deps)
}
modes := 0
for _, enabled := range []bool{configure, edit, findings} {
40 unmodified lines
cmd.Flags().BoolVar(&findings, "findings", false, "browse local review findings")
cmd.Flags().BoolVar(&listAgents, "agents", false, "list the worker agents you can pass to --agent for the selected profile")
cmd.Flags().BoolVar(&listModels, "models", false, "list the models each review agent advertises (optionally filtered by --agent)")
cmd.Flags().BoolVar(&listProfiles, "list", false, "list configured scout profiles (workers and master)")
cmd.Flags().StringVar(&agentOverride, "agent", "", "run one configured worker from the selected profile")
cmd.Flags().StringVar(&modelOverride, "model", "", "override the model for the --agent worker (requires --agent)")
cmd.Flags().StringVar(&profileOverride, "profile", "", "review profile to run (default: review_default_profile or general)")
136 unmodified lines
return nil
}
// runReviewListProfiles prints the configured scout profiles with their workers
// and master, marking the default. Needs settings but no review run.
func runReviewListProfiles(ctx context.Context, cmd *cobra.Command, deps Deps) error {
out := cmd.OutOrStdout()
s, err := settings.Load(ctx)
if err != nil {
cmd.SilenceUsage = true
fmt.Fprintf(cmd.ErrOrStderr(), "Failed to load settings: %v\n", err)
return deps.NewSilentError(err)
}
if s == nil {
s = &settings.EntireSettings{}
}
profiles := nonZeroProfiles(s.ReviewProfiles)
if len(profiles) == 0 {
fmt.Fprintln(out, "No scout profiles configured. Create one with `entire scout --configure`.")
return nil
}
defaultName := strings.TrimSpace(s.ReviewDefaultProfile)
fmt.Fprintln(out, "Profiles:")
for _, name := range sortedProfileNames(profiles) {
p := profiles[name]
p.Agents = nonZeroAgentConfigs(p.Agents)
marker := ""
if name == defaultName {
marker = " (default)"
}
fmt.Fprintf(out, " %s%s\n", name, marker)
workers := make([]string, 0, len(p.Agents))
for _, w := range sortedProfileAgentNames(p) {
cfg := p.Agents[w]
model := strings.TrimSpace(cfg.Model)
if model == "" {
model = "default"
}
workers = append(workers, reviewAgentName(w, cfg)+" · "+model)
}
fmt.Fprintf(out, " workers: %s\n", strings.Join(workers, ", "))
if masterAgent, masterModel, ok := profileMasterIdentity(p); ok {
label := masterAgent
if strings.TrimSpace(masterModel) != "" {
label += " · " + masterModel
}
fmt.Fprintf(out, " master: %s\n", label)
}
}
fmt.Fprintln(out)
fmt.Fprintln(out, "Run one with `entire scout <name>`.")
return nil
}
const reviewHooksInstalledStatus = "hooks installed"
// runReviewListAgents lists the worker agents valid for `--agent` in the