Dashboard › cli › Distillation
d16375c1-81a4-4306-90a3-b1d41fdd9f54["lore_tm_v1_XEtpoiDTkef1vxpKt5D8izVFy1lqOsgFnWMkGQVpFTo","lore_tm_v1_V9lE3YxFI1PCjoRxUhOHy5gHwbdkIaSINvkn9Uj-r4k","lore_tm_v1_6pzmq4Hke1nIQV_3MxM7AQiCZrmlYyzKWyvEA07E7Ic","lore_tm_v1_4fXLAqEfXV4GWxgNP-OkkYeUZXkUu4IrWFVpzOuUvbM","lore_tm_v1_o6pDZfo_W_eOK5puhsZHJDhG51zr-TAqqRZjrjjNUQ4","lore_tm_v1_S5BLlI6Qx_l_Np1anyB6ewKW8ICCM1j8iXuMPLB_MmA","lore_tm_v1_3wbyXHIAf7MeA04Hp-zXOXILBgTftldHGgoaZXpvkiQ","lore_tm_v1_QpQDSwJ4Ht4xMM56qJN7kFqkZlyOS-dTVG1Esl8AHWE","lore_tm_v1_u7HMIRE15qIHVUXRVHcfsBijd2ygU8gngu0hwlUF6CU","lore_tm_v1_I-_h67ovfoX8UodMFF3rgJR36cSOeDo-WrF3j7XKfzA","lore_tm_v1_lec-NTNwIAs_DKu1P_diDnrC8YyHIhcIQxAfb1tLHiI"]
Date: Sep 9, 2026
packages/cli/src/commands/init.ts defines 2 optional tuple positionals: 1. target — brief "<org>/<project>, <org>/, <project>, or a directory path"; 2. directory — brief "Project directory (default: current directory)".sentry init documentation says path-like arguments beginning with ., /, or ~ are treated as the directory and everything else as the target; examples are sentry init, sentry init acme/, sentry init acme/my-app, sentry init my-app, sentry init acme/my-app ./my-project, and sentry init ./my-project.packages/cli/src/commands/init.ts flags include --yes with brief "Accept non-interactive defaults (requires --features outside a TTY)", --dry-run, variadic optional --features accepting errors,tracing,logs,replay,profiling,crons,agent-tracing,mcp-observability, optional --team, optional --app, and boolean --tui defaulting to true; aliases include DRY_RUN_ALIASES, YES_ALIASES, and -t → team.No files found.packages/cli/test/lib/introspect.test.ts tests getPositionalString() outputs: undefined → ""; required tuple placeholders → "<org> <project>"; optional tuple placeholder → "<required> [<optional>]"; unnamed tuple parameters → "<arg0> <arg1>"; array placeholder → "<command...>"; unnamed array → "<args...>".packages/cli/test/lib/introspect.test.ts tests extractFlags() for undefined input → []; boolean json with default: false, optional: true, variadic: false, and hidden: false; parsed limit with default: 25, optional: false, variadic: false, and hidden: false; and hidden boolean verbose.buildCommandInfo() tests verify path, brief, full description, positional syntax, flags, aliases, and examples; __primaryUsage: "<name>:<kind>..." overrides inferred positional syntax, while structured __examples override legacy examples and render as # Use automatic organization detection\nsentry thing list and # Select an organization explicitly\nsentry thing list my-org.packages/cli/package.json identifies package sentry version 0.45.0-dev.0, requires Node >=20.0, declares development runtime Node >=22.15, and uses pnpm@10.11.0.@stricli/core 1.2.8, @stricli/auto-complete ^1.2.8, TypeScript ^5.9.3, Vitest ^4.1.9, @vitest/coverage-v8 ^4.1.9, tsx ^4.22.4, Biome 2.3.8, React ^19.2.7, Ink ^7.1.0, and Valibot ^1.4.2.packages/cli/package.json: test runs pnpm run test:unit; test:unit generates docs and SDK then runs vitest run test/lib test/commands test/types test/script --coverage; test:changed runs generated docs/SDK then vitest run --changed; test:e2e runs generated docs/SDK then vitest run test/e2e; test:init-eval runs vitest run test/init-eval --testTimeout 600000.generate:banner, generate:parser, generate:command-docs, generate:skill, and generate:docs-sections; the corresponding scripts invoke script/generate-banner-sixel.ts, script/generate-parser.ts, script/generate-command-docs.ts, script/generate-skill.ts, and script/generate-docs-sections.ts.No files found..github/workflows/pr-risk.yml; apps/cli-docs/src/fragments/commands/agent-conversation.md; packages/cli/plugins/sentry-cli/skills/sentry-cli/SKILL.md; reference files agent-conversation.md, alert.md, cli.md, explore.md, feedback.md, init.md, issue.md, monitor.md, org.md, project.md, release.md, replay.md, repo.md, team.md, trace.md, and trial.md; scripts check-fragments.ts, generate-command-docs.ts, generate-skill-markdown.ts, and generate-skill.ts; commands src/commands/agent-conversation/list.ts and view.ts; libraries src/lib/command.ts, introspect.ts, list-command.ts, and mutate-command.ts; and tests test/commands/agent-conversation/list.test.ts, view.test.ts, test/lib/command.test.ts, introspect.property.test.ts, introspect.test.ts, and test/script/generate-skill-markdown.test.ts.packages/cli/src/lib/command.ts, stricliCommand() merges command-local parameters with global flags and short aliases; a global alias is injected only when its long name is not command-owned and its short key is not already present in aliases.handleYieldedValue() defers a ClearScreen token until the next render unless output is plain or JSON; renderCommandOutput() then receives json, parsed fields, and clearPrefix: "\x1b[H\x1b[J" when a clear is pending.cleanRawFlags() removes every key in stripKeys and converts a string fields value with parseFieldsList() when an output configuration exists.writeFinalization() emits nothing in JSON mode; otherwise it writes renderer.finalize(hint) when available and nonempty, or falls back to writeFooter(stdout, hint).prepareNativeDocs() renders each structured example exactly as ${command} # ${description}, joins examples with newlines, and appends them under Examples: after fullDescription or brief.ALWAYS_STRIP are always stripped, so the command never sees them; ALWAYS_STRIP currently contains LOG_LEVEL_KEY.enrichDocsWithSchema() leaves documentation unchanged without a nonempty output schema; otherwise it appends formatSchemaForHelp(extractSchemaFields(outputConfig.schema)) to docs.fullDescription ?? docs.brief with two newlines.:; there is no space-separated fallback, and this applies with or without an explicit organization prefix.parsePairedProjectSpec() uses rawSpec.lastIndexOf(":"), making the final colon the separator so project names may contain earlier colons; missing : raises ValidationError("Project '${rawSpec}' must use <name>:<platform> syntax.", "project").parseProjectName() rejects empty names and whitespace; explicit and project-search results preserve organization and project/name data with the platform, org-all raises a ContextError saying the value looks like an org rather than a project name, and auto-detect raises "Project name cannot be empty.".parseProjectPlatform() trims and normalizes the platform, rejects an empty platform, and validates it with isValidPlatform(), raising a ValidationError on invalid input.No files found.