MCPcopy Create free account
hub / github.com/compozy/agh / newLogsCommand

Function newLogsCommand

internal/cli/logs.go:35–89  ·  view source on GitHub ↗
(deps commandDeps)

Source from the content-addressed store, hash-verified

33}
34
35func newLogsCommand(deps commandDeps) *cobra.Command {
36 var opts logsCommandOptions
37
38 cmd := &cobra.Command{
39 Use: logsLogsKey,
40 Short: "Read cross-session runtime logs",
41 RunE: func(cmd *cobra.Command, _ []string) error {
42 client, err := clientFromDeps(deps)
43 if err != nil {
44 return err
45 }
46 workspace, err := resolveCLIWorkspaceRouteRef(cmd.Context(), deps, client, opts.workspaceRef)
47 if err != nil {
48 return err
49 }
50
51 sinceTime, err := parseSinceFlag(opts.since, deps.now)
52 if err != nil {
53 return err
54 }
55 actorKind, actorID, err := parseLogsActor(opts.actor)
56 if err != nil {
57 return err
58 }
59 query := LogsListQuery{
60 WorkspaceRef: workspace,
61 SessionID: opts.session,
62 AgentName: opts.agent,
63 Type: opts.typ,
64 RunID: opts.runID,
65 ActorKind: actorKind,
66 ActorID: actorID,
67 Provider: opts.provider,
68 Outcome: opts.outcome,
69 Component: opts.component,
70 ErrorOnly: opts.errorOnly,
71 AfterSequence: opts.afterSequence,
72 Since: sinceTime,
73 Last: opts.last,
74 }
75
76 if opts.follow {
77 return streamLogs(cmd, client, query)
78 }
79
80 events, err := client.ListLogs(cmd.Context(), query)
81 if err != nil {
82 return err
83 }
84 return writeLogsOutput(cmd, events)
85 },
86 }
87 registerLogsFlags(cmd, &opts)
88 return cmd
89}
90
91func registerLogsFlags(cmd *cobra.Command, opts *logsCommandOptions) {
92 cmd.Flags().StringVar(&opts.session, "session", "", "Filter by session id")

Callers 1

newRootCommandFunction · 0.85

Calls 8

clientFromDepsFunction · 0.85
parseSinceFlagFunction · 0.85
parseLogsActorFunction · 0.85
streamLogsFunction · 0.85
writeLogsOutputFunction · 0.85
registerLogsFlagsFunction · 0.85
ListLogsMethod · 0.65

Tested by

no test coverage detected