Dashboard › cli › Distillation
56f3dcc1-2434-4eb0-8e9a-e375ed824c30["lore_tm_v1_8_IQ2zoifd2xzC2kIRZ85KytordLIU2_DIqAaWxZkpw","lore_tm_v1_wBR5JxfU9mPd5y3J2pnaSXWO_v2rD_ZiHnjoXgxZ1pw","lore_tm_v1_tdvw3VjxdxeY83tcuiXqB1x3mS-eGIukO3ICKHODq2M"]
package.json for the latest scripts; commands run from packages/cli or via pnpm --filter sentry run <script> from the repository root.devDependencies, never dependencies, because everything is bundled at build time via esbuild; CI enforces this with pnpm run check:deps.pnpm add -D <package> using the -D flag.per_page value larger than API_MAX_PER_PAGE to the API because the server silently caps it, causing the command to return fewer items than requested.myFunction(a, b) === myFunction(b, a)) and round-trip behavior (decode(encode(input)) equals input), both run with { numRuns: DEFAULT_NUM_RUNS }."org-all" override manually uses resolveCursor, advancePaginationState, and paginationHint; dispatchOrgScopedList with overrides handles most other project/issue list modes automatically.ContextError class.ValidationError.upsert() helper from src/lib/db/utils.ts.1x authentication, 2x input/configuration, 3x API/network, 4x feature/billing, 5x operations, and 6x command-specific; the full definitions are in EXIT in src/lib/errors.ts and at https://cli.sentry.dev/exit-codes/.list → ls; view → show; delete → remove, rm; create → new.await readFile(path, "utf-8") from node:fs/promises; write with await writeFile(path, content) from node:fs/promises; existence checks with existsSync(path) from node:fs; process spawning with spawn() / execFile() from node:child_process; shell commands with execSync() from node:child_process; executable lookup with the which helper in src/lib/which.ts; globbing with the scanner in src/lib/scan/; sleeping with await setTimeout(ms) from node:timers/promises; JSON parsing with JSON.parse(await readFile(path, "utf-8")).packages/cli/.cursor/rules/ultracite.mdc: format with npx ultracite fix, check with npx ultracite check, diagnose with npx ultracite doctor, and run npx ultracite fix before committing.unknown over any; use as const for immutable/literal values; prefer type narrowing over assertions; replace magic numbers with descriptive constants; use arrow functions for callbacks/short functions; prefer for...of over .forEach() and indexed loops; use optional chaining and nullish coalescing; prefer template literals and destructuring; use const by default, let only for reassignment, and never var.await promises in async functions and use their return values; prefer async/await over promise chains; handle errors appropriately with meaningful try-catch; never use async Promise executors; remove console.log, debugger, and alert from production; throw descriptive Error objects rather than strings; do not catch merely to rethrow; prefer early returns for error cases.rel="noopener" for links using target="_blank"; avoid dangerouslySetInnerHTML unless essential; never use eval() or direct document.cookie assignment; validate/sanitize input; avoid spread accumulators in loops; use top-level regex literals; prefer specific imports; avoid barrel files; and prefer framework image components such as Next.js <Image> over <img>.it() or test() blocks; async tests should use async/await, not done callbacks; committed code must not contain .only or .skip; and test suites should remain reasonably flat without excessive describe nesting.packages/cli/package.json metadata: package name sentry; version 0.45.0-dev.0; ESM package with "type": "module"; Node engine >=20.0; development runtime Node >=22.15; package manager pnpm@10.11.0; binary sentry points to ./dist/bin.cjs.packages/cli/package.json scripts: typecheck runs pnpm run generate:docs && pnpm run generate:sdk && tsc --noEmit; lint runs biome check --no-errors-on-unmatched --error-on-warnings --max-diagnostics=none ./; lint:fix runs biome check --write --no-errors-on-unmatched --max-diagnostics=none ./; test delegates to pnpm run test:unit; test:unit runs generated docs/SDK then vitest run test/lib test/commands test/types test/script --coverage; test:changed uses vitest run --changed; test:e2e runs vitest run test/e2e; test:init-eval uses --testTimeout 600000.packages/cli/package.json: generate:parser, generate:sdk, generate:skill, generate:banner, generate:docs, generate:docs-sections, generate:schema, generate:command-docs, check:fragments, check:deps, check:errors, check:patches, check:docs-sections, check:env-coverage, and check:stale-refs; their implementations are under script/, including script/generate-parser.ts, script/generate-sdk.ts, script/generate-skill.ts, script/generate-banner-sixel.ts, script/generate-docs-sections.ts, script/generate-api-schema.ts, script/generate-command-docs.ts, script/check-fragments.ts, script/check-no-deps.ts, script/check-error-patterns.ts, script/check-patches.ts, script/check-env-coverage.ts, and script/check-stale-references.ts.packages/cli/package.json: @biomejs/biome 2.3.8, esbuild ^0.28.1, fast-check ^4.8.0, tsx ^4.22.4, typescript ^5.9.3, ultracite 6.3.10, valibot ^1.4.2, and vitest ^4.1.9; all appear under devDependencies.