Dashboard › cli › Distillation
92296893-d544-4f05-b6e7-53f263610950["lore_tm_v1_6OLjHc1F-n7N-OFGmR7o09FrHX5lHaWXVfdA9EDyxAc","lore_tm_v1_kqwY5Fp9uu3AGjuPqWwdzwxGN2P8ZgaS35FC4a6h48U","lore_tm_v1_xf7kt3aIIVUUvy3Oej7BDkANfWPQ7dUNkvIFWJ26ybo","lore_tm_v1_rwyhKNluBoKXqpws0GuaqOP6wHnjyksCluaI7kPn1nY","lore_tm_v1_egoBWU9GmRkQOLaobbq8OoW1umkYiNzr_psLlCGn9DE"]
packages/cli/install to be fire-and-forget: it runs in a background subshell and never blocks installation or propagates failures.report_error() uses set +e, and die() uses wait 2>/dev/null || true before exiting.packages/cli/install sends error telemetry directly through Sentryβs envelope API using a public write-only DSN, collects no PII, and honors opt-out via SENTRY_CLI_NO_TELEMETRY=1.packages/cli/install generates event UUIDs in this order: 1. /proc/sys/kernel/random/uuid, 2. uuidgen lowercased, 3. an awk fallback generating 32 hexadecimal characters.packages/cli/install configures telemetry curl with -sf --max-time 2; events include OS, architecture, libc, channel, step, install version, Bash runtime version, and UTC timestamp.packages/cli/install traps unexpected set -e/pipefail failures with trap 'die "Unexpected failure at line $LINENO" "trap"' ERR.packages/cli/install supports -h/--help, -v/--version <version>, --no-modify-path, --no-completions, and --no-agent-skills; environment variables include SENTRY_INSTALL_DIR, SENTRY_VERSION, and SENTRY_INIT.packages/cli/install supports darwin, linux, and windows; architectures map x86_64 β x64 and aarch64|arm64 β arm64, while Windows supports only windows-x64.packages/cli/install checks first for /lib/ld-musl-${musl_arch}.so.1, then whether ldd --version contains musl.packages/cli/install checks for libstdc++; on Alpine as root it runs apk add --no-cache libstdc++ libgcc, while non-root users receive manual installation instructions and installation terminates.packages/cli/install first attempts ${url}.gz piped through gunzip, described as approximately 60% smaller (~37 MB versus ~99 MB), then falls back to the raw binary at $url.packages/cli/install retrieves an anonymous GHCR pull token, fetches the :nightly OCI manifest, extracts its version annotation and platform .gz layer digest with awk, obtains a redirect URL, and downloads/decompresses the blob without forwarding authorization to the redirect target.packages/cli/install delegates final installation to "$tmp_binary" cli setup with --install --method curl --channel $channel; optional setup flags propagate --no-modify-path, --no-completions, and --no-agent-skills.SENTRY_INIT=1, packages/cli/install searches for the installed binary in this order: 1. ${SENTRY_INSTALL_DIR:-}, 2. $HOME/.local/bin, 3. $HOME/bin, 4. $HOME/.sentry/bin; it requires /dev/tty and executes sentry init </dev/tty.package.json for the latest scripts before running project commands.packages/cli to be placed in devDependencies, never dependencies, because everything is bundled at build time with esbuild; CI enforces this through pnpm run check:deps.pnpm add -D <package> with the -D flag.packages/cli/AGENTS.md states the project uses Node.js and must use node:* standard-library APIs; the project was migrated from Bun, so Bun.* globals, bun:test, and bun CLI commands must not be reintroduced.@sentry/api provides API response types, user requires importing those types directly rather than creating redundant Zod schemas in src/types/sentry.ts.buildCommand from ../../lib/command.js, never directly from @stricli/core; the wrapper adds telemetry, injects --json/--fields, and handles output rendering.async *func() generators, yield new CommandOutput(data), and return { hint }; commands must not add their own json flag, branch on flags.json, or write output with stdout.write().buildRouteMap from ../../lib/route-map.js, never directly from @stricli/core; its standard aliases are list β ls, view β show, delete β remove/rm, and create β new.src/lib/formatters/<domain>.ts, and command files over approximately 400 lines should have formatting helpers extracted.parseSlashSeparatedArg from src/lib/arg-parsing.ts for the standard [<org>/<project>/]<id> pattern; required identifiers such as trace IDs and span IDs should be positional arguments rather than flags.