Dashboard › cli › Distillation
f4849193-fd12-480e-b63e-f58ea27b5fa2["lore_tm_v1_SQjIcNFklwwyG8IU-qpxCU2eAyUKEcFZWnnfyCA6RWw","lore_tm_v1_mF1L9cV57Ll5Q8gk6cu938xrZV3E3WVJz3yzoDsgE6A","lore_tm_v1_R3e7s7fE9L78HX0KuKPcniwKCxgS_voORtCNaWorSMU","lore_tm_v1_EEj2c2FAWGke3H55ARr86iHzMhVHRoqZu2mdfrPoIic","lore_tm_v1_tpG6bpuXrlqYwn29m1Gc-3RTdm45Gb9dkqDmz_A_QTY","lore_tm_v1_gvEHpUqRIDp7vAZ3RqcQ2fTAPPRzLlNugwEkdbDa0G4","lore_tm_v1_35ZMkMAZIQIw-K8lt15MOJqEqdW9goysw3FUKZ5MkM4","lore_tm_v1_LgJ6z_8R-_7TysOdSXCdOBw_jqREy6mHqy-Lh_IEsIg","lore_tm_v1_OWAMz5AKyVF9wHrOKGbalqJhIkawxKLCfeaRAPfolv0","lore_tm_v1_mAucbGaoQb3Qz0msJFXzlyhwUUAFehLPIi4x6iR6DzE","lore_tm_v1_f7y_Jzgfdn1l93iV_bhcyXqTvGQZQeo7SYGq3HySA7Q","lore_tm_v1_5wF3fhxRCtXC1ZbBxw8aAUUQOnytX_SP0-z8JDOTPmQ"]
packages/cli/src/lib/introspect.ts found custom introspection types for Stricli’s route tree: RouteMapEntry, RouteTarget, RouteMap, Command, PositionalParams, PositionalParam, PositionalInfo, FlagDef, CommandInfo, FlagInfo, RouteInfo, ResolvedPath, and UnresolvedPath; Command retains non-standard metadata through __jsonSchema, __primaryUsage, and __examples.packages/cli/src/lib/introspect.ts defines getPositionalString(): tuple parameters render as required <placeholder> or optional [<placeholder>], with fallback names arg0, arg1, etc.; array parameters render as <placeholder...>, defaulting to <args...>.extractPositionals() in packages/cli/src/lib/introspect.ts returns structured placeholder, brief, and optional metadata; tuple entries default to arg${i}, empty brief, and optional: false, while array positionals append ... and are always reported as optional: true.buildCommandInfo() in packages/cli/src/lib/introspect.ts prefers cmd.__primaryUsage over inferred getPositionalString(), converts each canonical cmd.__examples entry into # ${description}\n${command}, extracts flags and aliases, and includes jsonFields only when extractSchemaFields(cmd.__jsonSchema) returns a non-empty list.packages/cli/src/lib/introspect.ts recursively traverses nested visible route maps, excludes entries with hidden: true, and emits command paths prefixed with sentry; resolveCommandPath() returns command/group metadata, null for empty or non-navigable paths, or UnresolvedPath with up to MAX_SUGGESTIONS = 3 results from fuzzyMatch().packages/cli/src/lib/help.ts found full-tree HelpJsonResult output contains routes, top-level envVars, and common flags; command-specific output is CommandInfo, RouteInfo, or { error: string; suggestions?: string[] }.renderJsonHelp() in packages/cli/src/lib/help.ts returns undefined without --json, preserving Stricli’s built-in text help; with --json, it combines prefix.slice(1) with unresolved non-flag extraPath, calls introspectAllCommands() or introspectCommand(), optionally applies filterFields(), serializes through formatJson(), and appends a trailing newline.customUsage declarations under packages/cli/src/commands: packages/cli/src/commands/project/create.ts uses ["[<org>/]<name>:<platform>..."], and packages/cli/src/commands/agent-conversation/view.ts uses [USAGE].packages/cli/src/commands/project/create.ts found createCommand documents usage sentry project create [<org>/]<name>:<platform>...; accepts one or more name:platform positional values; supports optional --team/-t and --dry-run; requires all batch projects to share one organization; and documents these examples in order: 1. sentry project create my-app:node, 2. sentry project create acme-corp/my-app:javascript-nextjs, 3. sentry project create web:javascript api:python-django worker:node, 4. sentry project create my-app:python-django --team backend, 5. sentry project create my-app:go --json.packages/cli/src/commands/project/create.ts excludes slugDiverged, expectedSlug, teamSource, and requestedPlatform from JSON output while retaining human formatting through formatProjectCreateOutput.--dry-run project-creation preview never actually creates the team.packages/cli/src/commands/project/create.ts derives teamAutoCreateSlug by slugifying every parsed project name and selecting the first non-empty slug, rather than only using parsed[0]; this prevents punctuation-only or non-ASCII names that slugify to "" from disabling auto-creation for all later projects, because createOneProject’s ?? fallback treats "" as present.@stricli/core@1.2.8 at node_modules/.pnpm/@stricli+core@1.2.8_patch_hash=892258f886d48063b409e0ac6141260023c396d1ed4f915231701f6a34edffcc/node_modules/@stricli/core/dist/index.js found generateCommandHelpLines() renders every docs.customUsage string as ${prefix} ${usage}; object-form usage entries render ${prefix} ${usage.input} plus an indented brief; inferred parameter usage is used only when customUsage is absent.buildCommand() exposes getters for brief and fullDescription, plus parameters, formatUsageLine, formatHelp, and usesFlag, but does not expose docs.customUsage on the built command; this explains why the CLI’s buildCommand wrapper must retain primary usage separately as __primaryUsage for introspection.