Dashboard › cli › Distillation
8a9e47b9-99b5-4535-a49a-67dbf1041597["lore_tm_v1_TdBnPLOIUkJXDqucoSlw8JoLZBQmQk-9aLklhesnJuI"]
packages/cli/src/commands/agent-conversation/list.ts now imports getPositionalString from ../../lib/introspect.js, extracts its optional org tuple definition into POSITIONAL, and derives USAGE_HINT as sentry ${COMMAND_NAME} ${getPositionalString(POSITIONAL)}; unresolved organizations now use this generated usage hint in ContextError.getPositionalString(POSITIONAL) renders the optional organization positional as [<org>], making the agent-conversation list usage hint sentry agent-conversation list [<org>].packages/cli/src/commands/agent-conversation/list.ts moved examples from prose in docs.fullDescription into structured docs.examples; fullDescription now states that the organization is auto-detected when omitted.packages/cli/src/lib/command.ts introduces exported type CommandExample with readonly description and command strings; command is a complete command line including the sentry executable.CommandDocumentation in packages/cli/src/lib/command.ts now extends native Stricli docs with optional readonly examples?: readonly CommandExample[]; when customUsage exists, its first line is the canonical signature suffix and later lines may document equivalent forms.prepareNativeDocs(docs) in packages/cli/src/lib/command.ts removes structured examples before passing docs to Stricli and appends native help text in the format Examples:\n <command> # <description>; when there are no examples, it returns native docs unchanged.buildCommand() runs prepareNativeDocs(builderArgs.docs) before enrichDocsWithSchema(...), preserving JSON field documentation at the end of native help.attachDocumentationMetadata(command, docs) in packages/cli/src/lib/command.ts preserves the first customUsage entry as __primaryUsage and structured examples as __examples; it replaces the prior inline __primaryUsage attachment logic.packages/cli/src/lib/command.ts, --fields is always injected when output: { human: ... } is configured, even if the command already defines its own json flag.packages/cli/src/lib/command.ts, flags listed in ALWAYS_STRIP are always stripped, so the command function never sees them; ALWAYS_STRIP currently contains LOG_LEVEL_KEY.mergeGlobalFlags() initializes stripKeys from ALWAYS_STRIP; global flags absent from the command are injected and added to stripKeys, while command-owned global flags are retained.cleanRawFlags() strips every key in stripKeys before invoking the original command function and pre-parses a string-valued fields flag with parseFieldsList() whenever outputConfig exists.packages/cli/src/lib/command.ts states that hints live exclusively on the generator return value (CommandReturn), never on individual yields.CommandOutput<T> and may return { hint }; 2. streaming commands render each yield immediately, but commands needing one parseable JSON document must yield one aggregate value because chunks are pretty-printed rather than JSONL; 3. void commands return without yielding for early exits such as --web./; [<org>/]<conversation-id> consequently supports at most one slash.packages/cli/src/lib/introspect.ts now imports CommandExample; its simplified Command type includes optional __examples?: readonly CommandExample[].getPositionalString(params) in packages/cli/src/lib/introspect.ts now wraps optional tuple positionals in square brackets, rendering an optional positional as [<placeholder>] instead of <placeholder>; required tuple and variadic-array rendering remain unchanged.buildCommandInfo(cmd, path, examples) in packages/cli/src/lib/introspect.ts now prefers command-owned cmd.__examples over externally supplied documentation examples. Each structured example is rendered exactly as # <description>\n<command>; the passed examples array remains the fallback.