Dashboard › cli › Distillation
8ebac455-b1ce-4682-bcaa-77c9d29310ba["lore_tm_v1__7USVXIhyvtMqyhE5OaiDl-edzEhmeUcjruHyW7-Uhw","lore_tm_v1_OfoE8btnb8AVAJYl2xI7rKUQL6tQ0VpY2e-wxRzS_7k","lore_tm_v1_KN9umrwuMSrwyprBEVd3ol9-5of9HtozHJDhfZz50Zk","lore_tm_v1_F0gskb_PjDO9BXqdRRAhSjmRM8B0I3Wkii1tCfMsePw","lore_tm_v1_B6rjPnT8cMPJNYJSEaX5OYH_ML41OR8y-ym8iNj9jng","lore_tm_v1_EC8Y6icE5fwdoicRfF5tvWKD3JT6ydRt9aDSjCNJ7Bg","lore_tm_v1_5qoXGk27qVai_sTt6nPl_UpGT50I1_z8a5hPFsTu_cw"]
packages/cli/package.json identifies package "sentry" version "0.40.0-dev.0", with "type": "module", Node engine ">=18.0", development runtime Node ">=22.15", and package manager "pnpm@10.11.0".packages/cli/package.json exposes the sentry executable through "./dist/bin.cjs"; package entry points are ./dist/index.mjs for ESM and ./dist/index.cjs for CommonJS, with types in ./dist/index.d.mts and ./dist/index.d.cts.packages/cli/package.json package files are: dist/bin.cjs, dist/index.cjs, dist/index.mjs, dist/index.d.cts, dist/index.d.mts, dist/ink-app.js, dist/node-sqlite3-wasm.wasm, dist/vendor/symbolic_bg.wasm, LICENSE.md, and README.md.packages/cli/package.json scripts include: dev, build, build:all, bundle, typecheck, lint, lint:fix, test, test:unit, test:changed, test:e2e, test:init-eval, generate:parser, generate:sdk, generate:skill, generate:banner, generate:docs, generate:docs-sections, generate:schema, generate:command-docs, eval:skill, bench, bench:save, bench:compare, bench:sweep, check:fragments, check:deps, check:errors, check:patches, check:docs-sections, and check:stale-refs.packages/cli/package.json has no runtime dependencies section and contains 57 devDependencies; relevant tooling versions include @biomejs/biome@2.3.8, esbuild@^0.28.1, fast-check@^4.8.0, fossilize@^0.10.1, tsx@^4.22.4, typescript@^5.9.3, vitest@^4.1.9, and zod@^3.25.76..lore.md as modified.package.json for the latest scripts; commands should run from packages/cli, or from the repository root via pnpm --filter sentry run <script>.devDependencies, never dependencies, because everything is bundled by esbuild and CI enforces the rule with pnpm run check:deps.pnpm add -D <package>, explicitly preserving the -D flag..cursor/rules/ultracite.mdc before working in this codebase.node:* APIs and prohibits reintroducing Bun.* globals, bun:test, or bun CLI commands because the project migrated from Bun to Node.readFile()/writeFile() from node:fs/promises, existsSync() and permission-aware mkdirSync() from node:fs, spawn()/execFile()/execSync() from node:child_process, the which helper in src/lib/which.ts, scanner utilities in src/lib/scan/, setTimeout() from node:timers/promises, and JSON.parse(await readFile(path, "utf-8")) for JSON files.execFileSync with array arguments over execSync with a string when passing user-controlled values, to avoid shell injection.buildCommand from ../../lib/command.js, never directly from @stricli/core; the wrapper supplies telemetry, --json/--fields, and output rendering.async *func() generators, yield new CommandOutput(data), and may return { hint }; output.human must consume the same data object serialized to JSON.json flag, branch on flags.json, or call stdout.write(); the command wrapper handles JSON and output rendering.src/lib/formatters/<domain>.ts, and files exceeding approximately 400 lines should have formatting helpers extracted.stderr.write() is banned in command files by a GritQL rule; diagnostics should use logger, while data output should use CommandOutput.buildRouteMap from ../../lib/route-map.js, never directly from @stricli/core; standard auto-aliases are list β ls, view β show, delete β remove, rm, and create β new, and these should not be manually duplicated.[<org>/<project>/]<id> form should use parseSlashSeparatedArg from src/lib/arg-parsing.ts.mdKvTable(), colorTag(), escapeMarkdownCell(), and renderMarkdown(); raw muted()/chalk must not be embedded in output strings.isPlainOutput() precedence is SENTRY_PLAIN_OUTPUT > NO_COLOR > FORCE_COLOR when attached to a TTY > !isTTY; it lives in src/lib/formatters/plain-detect.ts and is re-exported from markdown.ts.buildDeleteCommand() rather than buildCommand(); it injects --yes/-y, --force/-f, and --dry-run/-n, applies a non-interactive TTY safety guard, and supports noForceFlag, noDryRunFlag, and noNonInteractiveGuard.@sentry/api provides API-response types, user requires importing those types directly instead of creating redundant Zod schemas in src/types/sentry.ts.packages/cli/src/lib/version-check.ts, packages/cli/src/lib/upgrade.ts, packages/cli/src/lib/binary.ts, packages/cli/src/lib/release-notes.ts, packages/cli/src/lib/ghcr.ts, packages/cli/src/lib/delta-upgrade.ts, packages/cli/src/lib/telemetry.ts, packages/cli/src/lib/scan/walker.ts, packages/cli/src/lib/scan/index.ts, and packages/cli/src/commands/cli/index.ts.packages/cli/test/lib/version-check.test.ts, packages/cli/test/lib/upgrade.test.ts, packages/cli/test/lib/scan/binary.test.ts, packages/cli/test/lib/scan/binary.property.test.ts, packages/cli/test/lib/release-notes.test.ts, packages/cli/test/lib/release-notes.property.test.ts, packages/cli/test/lib/patch-cache.test.ts, packages/cli/test/lib/install-script.test.ts, packages/cli/test/lib/ghcr.test.ts, packages/cli/test/lib/delta-upgrade.test.ts, packages/cli/test/lib/delta-upgrade.mocked.test.ts, packages/cli/test/lib/db/install-info.test.ts, packages/cli/test/lib/binary.test.ts, packages/cli/test/lib/binary.mocked.test.ts, packages/cli/test/e2e/delta-upgrade.test.ts, packages/cli/test/commands/cli/upgrade.test.ts, and packages/cli/test/commands/cli/uninstall.test.ts.