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::Examples => EXAMPLES_HELP,
18 HelpTopic::Projects => PROJECTS_HELP,
19 HelpTopic::Usage => USAGE_HELP,
20 HelpTopic::Read => READ_HELP,
21 HelpTopic::ReadLogs => READ_LOGS_HELP,
22 HelpTopic::ReadIssues => READ_ISSUES_HELP,
23 HelpTopic::ReadActions => READ_ACTIONS_HELP,
24 HelpTopic::ReadReleases => READ_RELEASES_HELP,
25 HelpTopic::ReadTraces => READ_TRACES_HELP,
26 HelpTopic::ReadTrace => READ_TRACE_HELP,
27 HelpTopic::ReadIssue => READ_ISSUE_HELP,
28 HelpTopic::Watch => WATCH_HELP,
29 HelpTopic::Explain => EXPLAIN_HELP,
30 HelpTopic::Investigate => INVESTIGATE_HELP,
31 HelpTopic::NativeDebugArtifacts => NATIVE_DEBUG_ARTIFACTS_HELP,
32 HelpTopic::Set => SET_HELP,
33 HelpTopic::Support => SUPPORT_HELP,
34 }
35}
36
37const ROOT_HELP: &str = "\
39LogBrew CLI
40
41Usage:
42 logbrew login [--provider github|gitlab|bitbucket] [--no-open] [--json]
43 logbrew logout [--json]
44 logbrew setup [--auto] [--yes] [--json]
45 logbrew projects [--json]
46 logbrew projects create <name> --ingest-key-file <path> [--runtime <runtime>] \
47 [--environment <environment>] [--json]
48 logbrew usage [--json]
49 logbrew status [--json]
50 logbrew health [--json]
51 logbrew doctor [--json]
52 logbrew doctor --project <project_id> [--json]
53 logbrew whoami [--json]
54 logbrew me [--json]
55 logbrew version [--json]
56 logbrew support create --category <category> --title <title> --description <description> [--json]
57 logbrew support list [--status <status>] [--category <category>] [--json]
58 logbrew support show <ticket_id> [--json]
59 logbrew support context <ticket_id> [--json]
60 logbrew support reply <ticket_id> --context <text> --retry-key <key> [--diagnostics] [--json]
61 logbrew support close <ticket_id> [--json]
62 logbrew support reopen <ticket_id> [--json]
63 logbrew read logs [--severity error] [--search checkout] [--release <release>] [--environment \
64 production] [--since 24h] [--json]
65 logbrew logs checkout failed [--severity error] [--release <release>] [--environment \
66 production] [--json]
67 logbrew logs error checkout failed [--release <release>] [--environment production] [--json]
68 logbrew search checkout [--release <release>] [--environment production] [--json]
69 logbrew find checkout [--release <release>] [--environment production] [--json]
70 logbrew grep checkout [--release <release>] [--environment production] [--json]
71 logbrew show logs [--release <release>] [--environment production] [--json]
72 logbrew latest logs [--limit 20] [--json]
73 logbrew last 10 logs [--json]
74 logbrew last 5 open issues [--json]
75 logbrew list issues [--status unresolved] [--json]
76 logbrew issues open [--release <release>] [--environment production] [--json]
77 logbrew issue open [--release <release>] [--environment production] [--json]
78 logbrew open issues [--release <release>] [--environment production] [--json]
79 logbrew open issue [--release <release>] [--environment production] [--json]
80 logbrew errors closed [--release <release>] [--environment production] [--json]
81 logbrew get issue <issue_id> [--json]
82 logbrew read issues [--release <release>] [--environment production] [--status unresolved] \
83 [--json]
84 logbrew read actions [--release <release>] [--environment production] [--name checkout_failed] \
85 [--json]
86 logbrew events checkout_failed [--release <release>] [--environment production] [--json]
87 logbrew read releases [--environment production] [--json]
88 logbrew traces [--service <service_name>] [--status error] [--since 24h] [--json]
89 logbrew read trace <trace_id> [--release <release>] [--environment production] [--json]
90 logbrew trace <trace_id> [--release <release>] [--environment production] [--json]
91 logbrew issue <issue_id> [--json]
92 logbrew issue <issue_id> explain [--json]
93 logbrew trace <trace_id> explain [--json]
94 logbrew explain issue <issue_id> [--json]
95 logbrew explain trace <trace_id> [--json]
96 logbrew explain <issue_id_or_trace_id> [--json]
97 logbrew investigate issue <issue_id> [--json]
98 logbrew debug-artifacts upload <path> --project <project_id> --release <release> --environment \
99 <environment> --service <service> [--expect-image-uuid <uuid>]... \
100 [--dry-run] [--json]
101 logbrew debug-artifacts lookup --project <project_id> --release <release> --environment \
102 <environment> --service <service> --image-uuid <uuid> --architecture \
103 <architecture> [--json]
104 logbrew <issue_id_or_trace_id> explain [--json]
105 logbrew set issue <issue_id> resolved [--json]
106 logbrew resolve <issue_id> [--json]
107 logbrew close <issue_id> [--json]
108 logbrew ignore <issue_id> [--json]
109 logbrew reopen <issue_id> [--json]
110
111Popular terms: auth, status, health, setup, projects, usage, logs, issues, errors, traces, spans, \
112 actions, events, releases, environments, support.
113Health aliases: logbrew status, logbrew health, logbrew ping, logbrew doctor.
114Setup aliases (non-mutating plan): logbrew init, logbrew install, logbrew configure, logbrew sdk.
115Authenticated project creation: logbrew projects create <name> --ingest-key-file <path>.
116After CLI authentication, project creation requires no dashboard sign-in; the one-time ingest key \
117is stored in the chosen owner-only file and never printed.
118Shortcuts: logbrew auth, logbrew whoami, logbrew me, logbrew log, logbrew logs, logbrew issues, \
119 logbrew logs checkout failed, logbrew logs error checkout, logbrew \
120 search checkout, logbrew find checkout, logbrew grep checkout, logbrew \
121 errors, logbrew actions, logbrew events, logbrew events checkout_failed, \
122 logbrew release, logbrew releases, logbrew trace <id>, logbrew issue \
123 <id>, logbrew resolve <id>, logbrew close <id>, logbrew ignore <id>, \
124 logbrew reopen <id>.
125Read verbs: logbrew show logs, logbrew latest logs, logbrew last 10 logs, logbrew recent issues, \
126 logbrew list issues, logbrew get issue <id>.
127Singular read aliases: logbrew read log, read release, show log, list issue, get release.
128Pasted IDs: logbrew issue_123 or logbrew <trace_id>.
129Examples: logbrew examples.
130Topic help: logbrew logs --help, logbrew help logs, logbrew help read logs, or logbrew help json.
131JSON mode: logbrew --json status and logbrew status --json both work.
132Use --json for stable machine-readable output.";
133
134const LOGIN_HELP: &str = "\
136Usage:
137 logbrew login [--provider github|gitlab|bitbucket] [--no-open] [--json]
138
139Starts browser login for the native CLI and stores a private local access/refresh pair.
140Authenticated commands refresh local auth once after an expired-token response.
141Use --provider github|gitlab|bitbucket to choose the account provider (default: github).
142Use --no-open to print the URL without opening a browser.
143--json prints the auth handoff without opening a browser.";
144
145const LOGOUT_HELP: &str = "\
147Usage:
148 logbrew logout [--json]
149
150Attempts to revoke the stored server session, then always removes both local CLI credentials.
151If LOGBREW_TOKEN is set, unset it separately to fully log out.";
152
153const SETUP_HELP: &str = "\
155Usage:
156 logbrew setup [--auto] [--yes] [--json]
157
158Detects supported project manifests and prints a non-mutating SDK setup plan.
159No files are changed. SwiftPM planning uses compatible releases from 0.1.6 for detected SwiftPM \
160or XcodeGen projects.
161Python planning detects Django, Flask, and FastAPI from bounded local project metadata. It emits \
162the public core and framework packages, the detected pip, uv, poetry, or pipenv command, and \
163explicit Python/framework compatibility requirements.
164Authenticated project creation (no dashboard sign-in):
165 logbrew projects create <name> --ingest-key-file <path> [--runtime <runtime>] \
166 [--environment <environment>] [--json]
167Run that command after logbrew login. It stores the one-time ingest key in the chosen owner-only \
168file and never prints the key or its path.
169logbrew setup --create-project shows secure project-creation help and does not create a project.
170Package: https://github.com/LogBrewCo/sdk.git
171Product: LogBrew
172Dependency: .package(url: \"https://github.com/LogBrewCo/sdk.git\", from: \"0.1.6\")
173Python packages: logbrew-sdk, logbrew-django, logbrew-flask, logbrew-fastapi.
174Other detected runtimes use released SDK guidance until a structured CLI install plan is enabled.
175Aliases (same non-mutating plan): logbrew init, logbrew install, logbrew configure, logbrew sdk.
176Options: --auto records automatic detection preference; --yes records confirmation preference; \
177 --json prints stable setup JSON.
178Supported manifests: package.json, pyproject.toml, Pipfile, Cargo.toml, Package.swift, \
179 project.yml, project.yaml, .xcodeproj, .xcworkspace, go.mod, \
180 composer.json.
181Package managers: npm, pnpm, yarn, bun, pip, uv, poetry, pipenv, cargo, SwiftPM, XcodeGen, Go, \
182 Composer.";
183
184const STATUS_HELP: &str = "\
186Usage:
187 logbrew status [--json]
188 logbrew health [--json]
189 logbrew ping [--json]
190 logbrew doctor [--json]
191 logbrew doctor --project <project_id> [--json]
192 logbrew whoami [--json]
193 logbrew me [--json]
194 logbrew auth status [--json]
195
196Status checks API reachability and authentication.
197Whoami/me return the authenticated account identity.";
198
199const VERSION_HELP: &str = "\
201Usage:
202 logbrew version [--json]
203 logbrew --version [--json]
204
205Prints the installed CLI version.
206The CLI is a native Rust binary.";
207
208const AUTH_HELP: &str = "\
210Usage:
211 logbrew login [--provider github|gitlab|bitbucket] [--no-open] [--json]
212 logbrew auth login [--provider github|gitlab|bitbucket] [--no-open] [--json]
213 logbrew status [--json]
214 logbrew auth status [--json]
215 logbrew auth whoami [--json]
216 logbrew auth me [--json]
217 logbrew whoami [--json]
218 logbrew me [--json]
219 logbrew logout [--json]
220 logbrew auth logout [--json]
221
222Use login once, status to verify API/auth state, whoami/me to inspect the authenticated account,
223and logout to revoke the stored server session when possible and always remove local credentials.
224Use --json for agent-readable auth checks.";
225
226const JSON_HELP: &str = "\
228Usage:
229 logbrew --json status
230 logbrew status --json
231 logbrew logs --json
232 logbrew help json --json
233
234Use --json before or after commands for stable machine-readable output.
235Stable JSON keeps server response shapes for reads and mutations.
236Errors include ok, error, message, and next.";
237
238const EXAMPLES_HELP: &str = "\
240Usage:
241 logbrew examples
242 logbrew help examples
243
244First run:
245 logbrew status
246 logbrew login
247 logbrew setup
248
249Troubleshoot:
250 logbrew logs error checkout failed --release checkout@1 --environment production
251 logbrew issues open --release checkout@1 --environment production
252 logbrew issue issue_123
253 logbrew explain issue issue_123
254 logbrew trace <trace_id>
255
256Live:
257 logbrew watch --json
258 logbrew watch --severity error,critical --json
259
260Agent JSON:
261 logbrew --json status
262 logbrew logs checkout failed --json
263 logbrew explain trace <trace_id> --json
264
265More help:
266 logbrew help logs
267 logbrew help issues
268 logbrew help watch
269 logbrew help json";
270
271const PROJECTS_HELP: &str = "\
273Usage:
274 logbrew projects [--json]
275 logbrew project [--json]
276 logbrew projects create <name> --ingest-key-file <path> [--runtime <runtime>] \
277 [--environment <environment>] [--abandon-retry] [--json]
278 logbrew setup --create-project [--json]
279 logbrew projects setup <project_id> [--runtime <runtime>] [--source api|cli|sdk] \
280[--environment <environment>] [--json]
281
282Reads the authenticated active project catalog without mutating project state.
283Human output is bounded to project identity, setup status, and latest activity. JSON preserves the \
284exact validated bare array.
285Project creation, setup status, and project-scoped ingest credentials are backend-owned.
286An authenticated CLI can create a project without dashboard sign-in or additional browser auth.
287logbrew setup --create-project shows this help and never creates a project.
288Project creation stores the one-time ingest key in a new owner-only file before reporting success;
289it never prints the one-time ingest key or its file path. An ambiguous attempt reuses the pending retry key only for the exact same request; --abandon-retry starts a new explicit attempt.
290Builds that cannot prove owner-only file permissions fail before sending the create request.
291No local install, quota, or usage state is created.
292Project setup uses POST /api/projects/{project_id}/setup/seen and preserves backend setup status JSON.
293Project-scoped SDK/ingest credentials are shown only when backend returns one-time credentials.
294Never use an account bearer token as SDK or ingest configuration.
295Next: run logbrew setup for the current non-mutating local plan.";
296
297const USAGE_HELP: &str = "\
299Usage:
300 logbrew usage [--json]
301 logbrew account usage [--json]
302
303Reads authenticated account usage, configured limits, quota state, and reset dates without mutating \
304account or billing state.
305Human output is bounded to plan, state, totals, limits, the driving limit, and one next step. JSON \
306preserves the exact validated account-usage object for agents.
307The CLI does not calculate or persist usage/quota state from local files.
308Next: run logbrew usage to inspect current account usage.";
309
310const READ_HELP: &str = "\
312Usage:
313 logbrew read logs [filters] [--json]
314 logbrew read log [filters] [--json]
315 logbrew show logs [filters] [--json]
316 logbrew list issues [filters] [--json]
317 logbrew get issue <issue_id> [--json]
318 logbrew read issues [filters] [--json]
319 logbrew read actions [filters] [--json]
320 logbrew read releases [filters] [--json]
321 logbrew read release [filters] [--json]
322 logbrew read traces [filters] [--json]
323 logbrew read trace <trace_id> [--json]
324 logbrew read issue <issue_id> [--json]
325
326Reads historical observability data for agents and developers.
327Singular read aliases: logbrew read log, read release, show log, list issue, get release.
328Recency counts are limit shortcuts: logbrew last 10 logs or logbrew recent 5 issues.
329Use --environment <environment> with logs, issues, actions, releases, or traces.
330Use --service <service_name> with logs, issues, actions, or releases.
331Filter aliases: --service-name, --env, --project-id, --trace-id, and --distinct-id.";
332
333const READ_LOGS_HELP: &str = "\
335Usage:
336 logbrew read logs [--severity error] [--search checkout] [--release <release>] [--environment \
337 production] [--service <service_name>] [--since 24h] [--trace \
338 <trace_id>] [--project <project_id>] [--pagination cursor] [--limit \
339 100] [--json]
340 logbrew read logs [filters] --pagination cursor --cursor-time <RFC3339> --cursor-id <uuid> \
341 [--limit 100] [--json]
342 logbrew logs checkout failed [--severity error] [--release <release>] [--environment \
343 production] [--json]
344 logbrew logs error checkout failed [--release <release>] [--environment production] [--json]
345
346Reads structured logs. Severity values are info, warning, error, and critical.
347Legacy severity aliases are accepted on input and normalized.
348Severity matching is case-insensitive. --level is accepted as a compatibility alias for \
349 --severity.
350The logs shortcut accepts obvious multi-word search text, such as logbrew logs checkout failed.
351Shortcut levels can include search text, such as logbrew logs error checkout failed.
352Recency counts are limit shortcuts, such as logbrew last 10 logs.
353Explicit filters accept unquoted search text too, such as logbrew logs --severity warning checkout \
354 failed or logbrew logs --search checkout failed.
355Use -- before literal flag-looking search text, such as logbrew logs -- --timeout --json.
356Filter by severity, message search, release, or trace_id to correlate logs with spans.
357--service-name <service_name> is accepted as an alias for --service <service_name>.
358Cursor pagination preserves JSON as {logs,next_cursor}; next_cursor is either {time,id} or null.
359Use --pagination cursor alone for the first page. Continue with --cursor-time and --cursor-id from \
360 next_cursor.
361Keep the same active filters and pagination limit on every continuation page.
362Limit must be a positive whole number.";
363
364const READ_ISSUES_HELP: &str = "\
366Usage:
367 logbrew read issues [--release <release>] [--environment production] [--status unresolved] \
368 [--service <service_name>] [--since <24h|7d|RFC3339>] [--project \
369 <project_id>] [--pagination cursor] [--limit 100] [--json]
370 logbrew read issues [filters] --pagination cursor --cursor-time <RFC3339> --cursor-id <uuid> \
371 [--limit 100] [--json]
372 logbrew issues open [--release <release>] [--environment production] [--json]
373 logbrew issue open [--release <release>] [--environment production] [--json]
374 logbrew open issues [--release <release>] [--environment production] [--json]
375 logbrew open issue [--release <release>] [--environment production] [--json]
376 logbrew last 5 open issues [--json]
377 logbrew errors closed [--release <release>] [--environment production] [--json]
378
379Reads grouped issues across releases and environments.
380Status accepts unresolved/open, resolved/closed, or ignored, case-insensitively.
381Issue shortcuts accept status words, such as logbrew issues open, logbrew issue open, logbrew open \
382 issues, logbrew open issue, or logbrew errors closed.
383Recency issue shortcuts can include status and count, such as logbrew last 5 open issues.
384--service-name <service_name> is accepted as an alias for --service <service_name>.
385Since accepts positive compact durations such as 24h or 7d, or an RFC3339 timestamp such as \
386 2026-05-01T00:00:00Z.
387Cursor pagination preserves JSON as {issues,next_cursor}; next_cursor is either {time,id} or null.
388Use --pagination cursor alone for the first page. Continue with --cursor-time and --cursor-id from \
389 next_cursor.
390Keep the same active filters and pagination limit on every continuation page.
391Limit must be a positive whole number.";
392
393const READ_ACTIONS_HELP: &str = "\
395Usage:
396 logbrew read actions [--release <release>] [--environment production] [--name checkout_failed] \
397 [--user <distinct_id>] [--service <service_name>] [--since 24h] \
398 [--project <project_id>] [--pagination cursor] [--limit 100] \
399 [--json]
400 logbrew read actions [filters] --pagination cursor --cursor-time <RFC3339> --cursor-id <uuid> \
401 [--limit 100] [--json]
402 logbrew events checkout_failed [--release <release>] [--environment production] [--json]
403
404Reads product actions. Use distinct_id to follow one actor or session.
405Action/event aliases accept one positional name as the same filter as --name.
406--service-name <service_name> is accepted as an alias for --service <service_name>.
407Cursor pagination preserves JSON as {actions,next_cursor}; next_cursor is either {time,id} or null.
408Use --pagination cursor alone for the first page. Continue with --cursor-time and --cursor-id from \
409 next_cursor.
410Keep the same active filters and pagination limit on every continuation page.
411Limit must be a positive whole number.";
412
413const READ_RELEASES_HELP: &str = "\
415Usage:
416 logbrew read releases [--release <release>] [--environment production] [--service \
417 <service_name>] [--since <24h|7d|RFC3339>] [--project \
418 <project_id>] [--limit 100] [--json]
419
420Reads release summaries with counts for issues, logs, trace spans, and actions.
421--service-name <service_name> is accepted as an alias for --service <service_name>.
422Since accepts positive compact durations such as 24h or 7d, or an RFC3339 timestamp such as \
423 2026-05-01T00:00:00Z.
424Limit must be a positive whole number.";
425
426const READ_TRACES_HELP: &str = "\
428Usage:
429 logbrew traces [--project <project_id>] [--service <service_name>] [--release <release>] \
430 [--environment <environment>] [--status <error|ok>] \
431 [--since <24h|7d|RFC3339>] \
432 [--min-duration-ms <milliseconds>] [--limit 100] [--json]
433 logbrew spans [filters] [--json]
434 logbrew latest traces [--limit 100] [--json]
435
436Lists recent distributed traces for incident investigation. JSON preserves the backend bare array.
437Status accepts error or ok, case-insensitively. Minimum duration is a non-negative whole number.
438Since accepts positive compact durations such as 24h or 7d, or an RFC3339 timestamp such as \
439 2026-05-01T00:00:00Z.
440The backend defaults limit to 100 and clamps it to 1..500.
441CLI aliases --project-id, --service-name, and --env still serialize only canonical API query keys.
442Next: run logbrew trace <trace_id> or logbrew explain trace <trace_id>.";
443
444const READ_TRACE_HELP: &str = "\
446Usage:
447 logbrew read trace <trace_id> [--release <release>] [--environment production] [--project \
448 <project_id>] [--json]
449 logbrew trace <trace_id> [--release <release>] [--environment production] [--project \
450 <project_id>] [--json]
451
452Reads spans for one distributed trace.";
453
454const READ_ISSUE_HELP: &str = "\
456Usage:
457 logbrew read issue <issue_id> [--json]
458
459Reads one grouped issue with status, release, environment, and occurrence counts.";
460
461const WATCH_HELP: &str = "\
463Usage:
464 logbrew watch --json
465 logbrew watch logs [--json]
466 logbrew watch issues [--json]
467 logbrew watch actions [--json]
468 logbrew watch --severity error,critical --json
469
470Aliases: tail, follow, and stream use the same live watch flow.
471Live watch uses a short-lived feed ticket and WebSocket stream.
472Transient disconnects reconnect with a fresh ticket and backoff.
473Server-side live filters are not sent yet; severity filtering is applied client-side.";
474
475const EXPLAIN_HELP: &str = "\
477Usage:
478 logbrew explain issue <issue_id> [--json]
479 logbrew explain trace <trace_id> [--json]
480 logbrew explain <issue_id_or_trace_id> [--json]
481 logbrew issue <issue_id> explain [--json]
482 logbrew trace <trace_id> explain [--json]
483 logbrew <issue_id_or_trace_id> explain [--json]
484
485Fetches enough context for an AI agent to explain what happened.
486Pasted UUID/issue_* values are treated as issues; 32-hex/trace_* values are treated as traces.";
487
488const INVESTIGATE_HELP: &str = "\
490Usage:
491 logbrew investigate issue <issue_id> [--json]
492
493Reads the issue first, then follows only its public trace-summary or related-log next action.
494The command is read-only and preserves issue scope in the directed request.
495JSON preserves the issue and exactly one directed result in a stable four-key envelope.";
496
497const NATIVE_DEBUG_ARTIFACTS_HELP: &str = "\
499Usage:
500 logbrew debug-artifacts upload <path> --project <project_id> --release <release> \
501 --environment <environment> --service <service> \
502 [--expect-image-uuid <uuid>]... [--dry-run] [--json]
503 logbrew debug-artifacts lookup --project <project_id> --release <release> \
504 --environment <environment> --service <service> --image-uuid <uuid> \
505 --architecture <arm64|arm64e|x86_64> [--json]
506
507Discovers and validates Apple dSYM, ZIP, or Mach-O debug objects locally, uploads every supported \
508exact identity, and verifies each identity with an authenticated lookup. Optional repeated \
509--expect-image-uuid values require an exact discovered UUID set for release automation. --dry-run \
510performs the same local validation without authentication or network access. Local paths and \
511filenames are never included in output or API metadata.";
512
513const SET_HELP: &str = "\
515Usage:
516 logbrew set issue <issue_id> unresolved [--json]
517 logbrew set issue <issue_id> resolved [--json]
518 logbrew set issue <issue_id> ignored [--json]
519 logbrew resolve <issue_id> [--json]
520 logbrew close <issue_id> [--json]
521 logbrew ignore <issue_id> [--json]
522 logbrew reopen <issue_id> [--json]
523 logbrew issue <issue_id> resolve [--json]
524 logbrew issue <issue_id> close [--json]
525 logbrew issue <issue_id> ignore [--json]
526 logbrew issue <issue_id> reopen [--json]
527 logbrew <issue_id> resolve [--json]
528 logbrew resolved <issue_id> [--json]
529 logbrew closed <issue_id> [--json]
530 logbrew ignored <issue_id> [--json]
531 logbrew open <issue_id> [--json]
532 logbrew unresolved <issue_id> [--json]
533
534Updates grouped issue status. Resolve/close map to resolved; ignore maps to ignored; reopen maps \
535 to unresolved.
536Close is an alias for resolved.
537Issue-first, pasted-ID, and status-first aliases are useful after reading issue detail.
538Status values are case-insensitive.";
539
540const SUPPORT_HELP: &str = "\
542Usage:
543 logbrew support create --category <category> --title <title> --description <description> \
544 [--project <project_id>] [--environment <environment>] \
545 [--runtime <runtime>] [--framework <framework>] \
546 [--sdk-package <package>] [--sdk-version <version>] \
547 [--release <release>] [--trace-id <trace_id>] [--event-id <event_id>] \
548 [--diagnostics] [--json]
549 logbrew support list [--project <project_id>] [--status <status>] [--source <source>] \
550 [--category <category>] [--release <release>] [--limit 100] \
551 [--pagination cursor] [--json]
552 logbrew support list [filters] --pagination cursor --cursor-time <RFC3339> \
553 --cursor-id <ticket_id> [--json]
554 logbrew support show <ticket_id> [--json]
555 logbrew support context <ticket_id> [--json]
556 logbrew support reply <ticket_id> --context <text> --retry-key <key> [--diagnostics] [--json]
557 logbrew support close <ticket_id> [--json]
558 logbrew support reopen <ticket_id> [--json]
559
560Creates, reads, adds requested context to, closes, and reopens authenticated account support \
561 tickets. Creation source is \
562 always cli.
563Categories: sdk_install_failure, ingest_failure, auth_failure, project_setup, dashboard_issue, \
564 docs_confusion, cli_issue, mobile_issue, billing_question, other.
565--diagnostics adds only binary, CLI version, operating system, and architecture. It never reads \
566 arbitrary environment variables or files.
567Cursor continuations repeat --pagination cursor, all active filters, and the paired cursor from \
568 next_cursor. JSON preserves the server response exactly.
569Context replies require a retry key. Reuse the key only when retrying the exact same context. \
570 Chat, messages, and internal notes are not part of this command.";