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