1use crate::HelpTopic;
4
5#[must_use]
7pub const fn help_text(topic: HelpTopic) -> &'static str {
8 match topic {
9 HelpTopic::Root => ROOT_HELP,
10 HelpTopic::Login => LOGIN_HELP,
11 HelpTopic::Logout => LOGOUT_HELP,
12 HelpTopic::Setup => SETUP_HELP,
13 HelpTopic::Status => STATUS_HELP,
14 HelpTopic::Version => VERSION_HELP,
15 HelpTopic::Auth => AUTH_HELP,
16 HelpTopic::Json => JSON_HELP,
17 HelpTopic::Read => READ_HELP,
18 HelpTopic::ReadLogs => READ_LOGS_HELP,
19 HelpTopic::ReadIssues => READ_ISSUES_HELP,
20 HelpTopic::ReadActions => READ_ACTIONS_HELP,
21 HelpTopic::ReadReleases => READ_RELEASES_HELP,
22 HelpTopic::ReadTrace => READ_TRACE_HELP,
23 HelpTopic::ReadIssue => READ_ISSUE_HELP,
24 HelpTopic::Watch => WATCH_HELP,
25 HelpTopic::Explain => EXPLAIN_HELP,
26 HelpTopic::Set => SET_HELP,
27 }
28}
29
30const ROOT_HELP: &str = "\
32LogBrew CLI
33
34Usage:
35 logbrew login [--no-open] [--json]
36 logbrew logout [--json]
37 logbrew setup [--auto] [--yes] [--json]
38 logbrew status [--json]
39 logbrew health [--json]
40 logbrew doctor [--json]
41 logbrew whoami [--json]
42 logbrew me [--json]
43 logbrew version [--json]
44 logbrew read logs [--severity error] [--search checkout] [--release <release>] [--environment \
45 production] [--since 24h] [--json]
46 logbrew logs checkout failed [--severity error] [--release <release>] [--environment \
47 production] [--json]
48 logbrew logs error checkout failed [--release <release>] [--environment production] [--json]
49 logbrew search checkout [--release <release>] [--environment production] [--json]
50 logbrew find checkout [--release <release>] [--environment production] [--json]
51 logbrew grep checkout [--release <release>] [--environment production] [--json]
52 logbrew show logs [--release <release>] [--environment production] [--json]
53 logbrew latest logs [--limit 20] [--json]
54 logbrew last 10 logs [--json]
55 logbrew last 5 open issues [--json]
56 logbrew list issues [--status unresolved] [--json]
57 logbrew issues open [--release <release>] [--environment production] [--json]
58 logbrew issue open [--release <release>] [--environment production] [--json]
59 logbrew open issues [--release <release>] [--environment production] [--json]
60 logbrew open issue [--release <release>] [--environment production] [--json]
61 logbrew errors closed [--release <release>] [--environment production] [--json]
62 logbrew get issue <issue_id> [--json]
63 logbrew read issues [--release <release>] [--environment production] [--status unresolved] \
64 [--json]
65 logbrew read actions [--release <release>] [--environment production] [--name checkout_failed] \
66 [--json]
67 logbrew events checkout_failed [--release <release>] [--environment production] [--json]
68 logbrew read releases [--environment production] [--json]
69 logbrew read trace <trace_id> [--release <release>] [--environment production] [--json]
70 logbrew trace <trace_id> [--release <release>] [--environment production] [--json]
71 logbrew issue <issue_id> [--json]
72 logbrew issue <issue_id> explain [--json]
73 logbrew trace <trace_id> explain [--json]
74 logbrew explain issue <issue_id> [--json]
75 logbrew explain trace <trace_id> [--json]
76 logbrew explain <issue_id_or_trace_id> [--json]
77 logbrew <issue_id_or_trace_id> explain [--json]
78 logbrew set issue <issue_id> resolved [--json]
79 logbrew resolve <issue_id> [--json]
80 logbrew close <issue_id> [--json]
81 logbrew ignore <issue_id> [--json]
82 logbrew reopen <issue_id> [--json]
83
84Popular terms: auth, status, health, logs, issues, errors, traces, spans, actions, events, \
85 releases, environments.
86Health aliases: logbrew status, logbrew health, logbrew ping, logbrew doctor.
87Setup aliases (non-mutating plan): logbrew init, logbrew install, logbrew configure, logbrew sdk.
88Shortcuts: logbrew auth, logbrew whoami, logbrew me, logbrew log, logbrew logs, logbrew issues, \
89 logbrew logs checkout failed, logbrew logs error checkout, logbrew \
90 search checkout, logbrew find checkout, logbrew grep checkout, logbrew \
91 errors, logbrew actions, logbrew events, logbrew events checkout_failed, \
92 logbrew release, logbrew releases, logbrew trace <id>, logbrew issue \
93 <id>, logbrew resolve <id>, logbrew close <id>, logbrew ignore <id>, \
94 logbrew reopen <id>.
95Read verbs: logbrew show logs, logbrew latest logs, logbrew last 10 logs, logbrew recent issues, \
96 logbrew list issues, logbrew get issue <id>.
97Singular read aliases: logbrew read log, read release, show log, list issue, get release.
98Pasted IDs: logbrew issue_123 or logbrew <trace_id>.
99Topic help: logbrew logs --help, logbrew help logs, logbrew help read logs, or logbrew help json.
100JSON mode: logbrew --json status and logbrew status --json both work.
101Use --json for stable machine-readable output.";
102
103const LOGIN_HELP: &str = "\
105Usage:
106 logbrew login [--no-open] [--json]
107
108Starts browser login for the native CLI. Use --no-open to print the URL without opening a browser.
109--json prints the auth handoff without opening a browser.";
110
111const LOGOUT_HELP: &str = "\
113Usage:
114 logbrew logout [--json]
115
116Removes the local CLI token. If LOGBREW_TOKEN is set, unset it to fully log out.";
117
118const SETUP_HELP: &str = "\
120Usage:
121 logbrew setup [--auto] [--yes] [--json]
122
123Detects supported project manifests and prints a non-mutating SDK setup plan.
124No files are changed. Install: not ready.
125Aliases (same non-mutating plan): logbrew init, logbrew install, logbrew configure, logbrew sdk.
126Options: --auto records automatic detection preference; --yes records confirmation preference; \
127 --json prints stable setup JSON.
128Supported manifests: package.json, pyproject.toml, Pipfile, Cargo.toml, Package.swift, \
129 project.yml, project.yaml, .xcodeproj, .xcworkspace, go.mod, \
130 composer.json.
131Package managers: npm, pnpm, yarn, bun, pip, uv, poetry, pipenv, cargo, SwiftPM, XcodeGen, Go, \
132 Composer.";
133
134const STATUS_HELP: &str = "\
136Usage:
137 logbrew status [--json]
138 logbrew health [--json]
139 logbrew ping [--json]
140 logbrew doctor [--json]
141 logbrew whoami [--json]
142 logbrew me [--json]
143 logbrew auth status [--json]
144
145Checks local auth and API reachability.
146Identity aliases: logbrew whoami, logbrew me, logbrew auth status.";
147
148const VERSION_HELP: &str = "\
150Usage:
151 logbrew version [--json]
152 logbrew --version [--json]
153
154Prints the installed CLI version.
155The CLI is a native Rust binary.";
156
157const AUTH_HELP: &str = "\
159Usage:
160 logbrew login [--no-open] [--json]
161 logbrew auth login [--no-open] [--json]
162 logbrew status [--json]
163 logbrew auth status [--json]
164 logbrew auth whoami [--json]
165 logbrew auth me [--json]
166 logbrew whoami [--json]
167 logbrew me [--json]
168 logbrew logout [--json]
169 logbrew auth logout [--json]
170
171Use login once, status/whoami/me to verify API/auth state, and logout to remove the local token.
172Use --json for agent-readable auth checks.";
173
174const JSON_HELP: &str = "\
176Usage:
177 logbrew --json status
178 logbrew status --json
179 logbrew logs --json
180 logbrew help json --json
181
182Use --json before or after commands for stable machine-readable output.
183Stable JSON keeps server response shapes for reads and mutations.
184Errors include ok, error, message, and next.";
185
186const READ_HELP: &str = "\
188Usage:
189 logbrew read logs [filters] [--json]
190 logbrew read log [filters] [--json]
191 logbrew show logs [filters] [--json]
192 logbrew list issues [filters] [--json]
193 logbrew get issue <issue_id> [--json]
194 logbrew read issues [filters] [--json]
195 logbrew read actions [filters] [--json]
196 logbrew read releases [filters] [--json]
197 logbrew read release [filters] [--json]
198 logbrew read trace <trace_id> [--json]
199 logbrew read issue <issue_id> [--json]
200
201Reads historical observability data for agents and developers.
202Singular read aliases: logbrew read log, read release, show log, list issue, get release.
203Recency counts are limit shortcuts: logbrew last 10 logs or logbrew recent 5 issues.
204Use --environment <environment> with logs, issues, actions, releases, or traces.
205Filter aliases: --env, --project-id, --trace-id, and --distinct-id.";
206
207const READ_LOGS_HELP: &str = "\
209Usage:
210 logbrew read logs [--severity error] [--search checkout] [--release <release>] [--environment \
211 production] [--since 24h] [--trace <trace_id>] [--project \
212 <project_id>] [--limit 100] [--json]
213 logbrew logs checkout failed [--severity error] [--release <release>] [--environment \
214 production] [--json]
215 logbrew logs error checkout failed [--release <release>] [--environment production] [--json]
216
217Reads structured logs. Severity values are info, warning, error, and critical.
218Aliases: trace, debug, and information map to info; warn maps to warning; err maps to error; \
219 fatal maps to critical.
220Severity matching is case-insensitive. --level is accepted as a compatibility alias for \
221 --severity.
222The logs shortcut accepts obvious multi-word search text, such as logbrew logs checkout failed.
223Shortcut levels can include search text, such as logbrew logs error checkout failed.
224Recency counts are limit shortcuts, such as logbrew last 10 logs.
225Explicit filters accept unquoted search text too, such as logbrew logs --severity warning checkout \
226 failed, logbrew logs --level error checkout failed, or logbrew logs \
227 --search checkout failed.
228Use -- before literal flag-looking search text, such as logbrew logs -- --timeout --json.
229Filter by severity, message search, release, or trace_id to correlate logs with spans.
230Limit must be a positive whole number.";
231
232const READ_ISSUES_HELP: &str = "\
234Usage:
235 logbrew read issues [--release <release>] [--environment production] [--status unresolved] \
236 [--project <project_id>] [--limit 100] [--json]
237 logbrew issues open [--release <release>] [--environment production] [--json]
238 logbrew issue open [--release <release>] [--environment production] [--json]
239 logbrew open issues [--release <release>] [--environment production] [--json]
240 logbrew open issue [--release <release>] [--environment production] [--json]
241 logbrew last 5 open issues [--json]
242 logbrew errors closed [--release <release>] [--environment production] [--json]
243
244Reads grouped issues across releases and environments.
245Status accepts unresolved/open, resolved/closed, or ignored, case-insensitively.
246Issue shortcuts accept status words, such as logbrew issues open, logbrew issue open, logbrew open \
247 issues, logbrew open issue, or logbrew errors closed.
248Recency issue shortcuts can include status and count, such as logbrew last 5 open issues.
249Limit must be a positive whole number.";
250
251const READ_ACTIONS_HELP: &str = "\
253Usage:
254 logbrew read actions [--release <release>] [--environment production] [--name checkout_failed] \
255 [--user <distinct_id>] [--since 24h] [--project <project_id>] \
256 [--limit 100] [--json]
257 logbrew events checkout_failed [--release <release>] [--environment production] [--json]
258
259Reads product actions. Use distinct_id to follow one actor or session.
260Action/event aliases accept one positional name as the same filter as --name.
261Limit must be a positive whole number.";
262
263const READ_RELEASES_HELP: &str = "\
265Usage:
266 logbrew read releases [--release <release>] [--environment production] [--project <project_id>] \
267 [--limit 100] [--json]
268
269Reads release summaries with counts for issues, logs, trace spans, and actions.
270Limit must be a positive whole number.";
271
272const READ_TRACE_HELP: &str = "\
274Usage:
275 logbrew read trace <trace_id> [--release <release>] [--environment production] [--project \
276 <project_id>] [--json]
277
278Reads spans for one distributed trace.";
279
280const READ_ISSUE_HELP: &str = "\
282Usage:
283 logbrew read issue <issue_id> [--json]
284
285Reads one grouped issue with status, release, environment, and occurrence counts.";
286
287const WATCH_HELP: &str = "\
289Usage:
290 logbrew watch logs [--json]
291 logbrew watch actions [--json]
292 logbrew watch action [--json]
293 logbrew watch events [--json]
294
295Aliases: tail, follow, and stream use the same reserved watch flow.
296watch is reserved for the live stream transport.
297Use logbrew logs or logbrew actions for historical data until then.";
298
299const EXPLAIN_HELP: &str = "\
301Usage:
302 logbrew explain issue <issue_id> [--json]
303 logbrew explain trace <trace_id> [--json]
304 logbrew explain <issue_id_or_trace_id> [--json]
305 logbrew issue <issue_id> explain [--json]
306 logbrew trace <trace_id> explain [--json]
307 logbrew <issue_id_or_trace_id> explain [--json]
308
309Fetches enough context for an AI agent to explain what happened.
310Pasted UUID/issue_* values are treated as issues; 32-hex/trace_* values are treated as traces.";
311
312const SET_HELP: &str = "\
314Usage:
315 logbrew set issue <issue_id> unresolved [--json]
316 logbrew set issue <issue_id> resolved [--json]
317 logbrew set issue <issue_id> ignored [--json]
318 logbrew resolve <issue_id> [--json]
319 logbrew close <issue_id> [--json]
320 logbrew ignore <issue_id> [--json]
321 logbrew reopen <issue_id> [--json]
322 logbrew issue <issue_id> resolve [--json]
323 logbrew issue <issue_id> close [--json]
324 logbrew issue <issue_id> ignore [--json]
325 logbrew issue <issue_id> reopen [--json]
326 logbrew <issue_id> resolve [--json]
327 logbrew resolved <issue_id> [--json]
328 logbrew closed <issue_id> [--json]
329 logbrew ignored <issue_id> [--json]
330 logbrew open <issue_id> [--json]
331 logbrew unresolved <issue_id> [--json]
332
333Updates grouped issue status. Resolve/close map to resolved; ignore maps to ignored; reopen maps \
334 to unresolved.
335Close is an alias for resolved.
336Issue-first, pasted-ID, and status-first aliases are useful after reading issue detail.
337Status values are case-insensitive.";