From e11da2e85ab6d9542010dd4b1ca019432621da50 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 15 Jul 2026 14:47:56 +0000 Subject: [PATCH 1/3] chore: pre-shape repo into pnpm-workspace monorepo layout Reshape the CLI repo into a pnpm workspace so it can be cleanly git-subtree-imported into the future getsentry/toolkit monorepo (getsentry/cli#1238, part of getsentry/cli#1248). Layout: - Move the CLI package into packages/cli/ (src, test, script, patches, plugins, install, configs, package.json). - Move docs/ into apps/cli-docs/. - Keep GitHub/Craft-read files at the repo root (.github/, .craft.yml, LICENSE, CHANGELOG, .gitignore, .nojekyll) so the repo stays fully operational (releases + nightlies) through and after the merge. - Add pnpm-workspace.yaml (packages/* + apps/*) and a thin delegating root package.json that forwards scripts to the sentry package and hoists the pnpm block (patchedDependencies now reference packages/cli/patches/**). - Add a minimal root README; the CLI README moves to packages/cli/. Internal path fixes: - Shared script/paths.ts (DOCS_ROOT etc.) for cross-package doc paths; generate/check scripts updated to use it. - Re-point apps/cli-docs public symlinks (install, skill files) to the new packages/cli/ locations. - build.ts / bundle.ts resolve @sentry/symbolic WASM via module resolution and invoke fossilize via `pnpm exec` (both hoist to the workspace root now). - biome.jsonc + packages/cli/.gitignore so Biome finds an ignore file. - .gitignore path-anchored entries updated to the nested layout. Workflows / release (kept root-relative where GitHub/Craft require it): - ci.yml, docs-preview.yml, eval-skill-fork.yml: paths-filter globs, node_modules cache paths, patches hashFiles glob, artifact paths (packages/cli/dist-bin, apps/cli-docs/dist), docs working-directory, package.json version reads, npm pack dir. - .craft.yml pre/post release commands cd into packages/cli. node-linker=isolated (was hoisted): under the workspace, hoisted mode let an unpatched transitive @sentry/core@10.65.0 (via @spotlightjs/spotlight -> @sentry/node) win the flat hoist over the patched direct @sentry/core@10.63.0, so the CLI bundled the unpatched copy (masked only by esbuild tree-shaking). isolated mode keeps per-package variants so the patched copy is used. check-patches.ts now reads patchedDependencies from the workspace root and resolves the package copy the CLI actually links via require.resolve. Verified: typecheck, lint, all check:* scripts, build (+ binary smoke, patched bundle), and the full unit suite (399 files, 8474 passed). --- .craft.yml | 4 +- .github/workflows/ci.yml | 126 +- .github/workflows/docs-preview.yml | 39 +- .github/workflows/eval-skill-fork.yml | 7 +- .gitignore | 24 +- .npmrc | 2 +- README.md | 175 +- {docs => apps/cli-docs}/astro.config.mjs | 0 {docs => apps/cli-docs}/package.json | 7 - .../.well-known/skills/sentry-cli/SKILL.md | 1 + .../.well-known/skills/sentry-cli/references | 1 + {docs => apps/cli-docs}/public/CNAME | 0 {docs => apps/cli-docs}/public/favicon.png | Bin {docs => apps/cli-docs}/public/favicon.svg | 0 {docs => apps/cli-docs}/public/glyph.svg | 0 apps/cli-docs/public/install | 1 + .../cli-docs}/public/og-image-twitter.png | Bin {docs => apps/cli-docs}/public/og-image.png | Bin .../cli-docs}/public/wordmark-light.svg | 0 {docs => apps/cli-docs}/public/wordmark.svg | 0 .../cli-docs}/sentry.client.config.js | 0 .../cli-docs}/sentry.server.config.js | 0 {docs => apps/cli-docs}/src/assets/bg.png | Bin {docs => apps/cli-docs}/src/assets/logo.svg | 0 .../cli-docs}/src/assets/section-bg-1.png | Bin .../cli-docs}/src/assets/section-bg-2.png | Bin .../cli-docs}/src/assets/section-bg-3.png | Bin .../src/components/FeatureTerminal.astro | 0 .../src/components/FeatureVisual.astro | 0 .../cli-docs}/src/components/Header.astro | 0 .../src/components/InstallSelector.astro | 0 .../src/components/PackageManagerCode.astro | 0 .../cli-docs}/src/components/PageTitle.astro | 0 .../cli-docs}/src/components/Terminal.astro | 0 {docs => apps/cli-docs}/src/content.config.ts | 0 .../src/content/docs/agent-guidance.md | 0 .../src/content/docs/agentic-usage.md | 0 .../src/content/docs/contributing.md | 0 .../cli-docs}/src/content/docs/exit-codes.md | 0 .../cli-docs}/src/content/docs/features.md | 0 .../src/content/docs/getting-started.mdx | 0 .../cli-docs}/src/content/docs/index.mdx | 0 .../src/content/docs/library-usage.md | 0 .../src/content/docs/migrating-from-v3.md | 0 .../cli-docs}/src/content/docs/self-hosted.md | 0 .../src/fonts/dammit-sans-v0.3-bold.otf | Bin .../cli-docs}/src/fragments/commands/alert.md | 0 .../cli-docs}/src/fragments/commands/api.md | 0 .../cli-docs}/src/fragments/commands/auth.md | 0 .../cli-docs}/src/fragments/commands/build.md | 0 .../cli-docs}/src/fragments/commands/cli.md | 0 .../src/fragments/commands/code-mappings.md | 0 .../src/fragments/commands/dart-symbol-map.md | 0 .../src/fragments/commands/dashboard.md | 0 .../src/fragments/commands/debug-files.md | 0 .../cli-docs}/src/fragments/commands/event.md | 0 .../src/fragments/commands/explore.md | 0 .../cli-docs}/src/fragments/commands/index.md | 0 .../cli-docs}/src/fragments/commands/info.md | 0 .../cli-docs}/src/fragments/commands/init.md | 0 .../cli-docs}/src/fragments/commands/issue.md | 0 .../cli-docs}/src/fragments/commands/local.md | 0 .../cli-docs}/src/fragments/commands/log.md | 0 .../src/fragments/commands/monitor.md | 0 .../cli-docs}/src/fragments/commands/org.md | 0 .../src/fragments/commands/proguard.md | 0 .../src/fragments/commands/project.md | 0 .../src/fragments/commands/react-native.md | 0 .../src/fragments/commands/release.md | 0 .../src/fragments/commands/replay.md | 0 .../cli-docs}/src/fragments/commands/repo.md | 0 .../src/fragments/commands/schema.md | 0 .../src/fragments/commands/snapshots.md | 0 .../src/fragments/commands/sourcemap.md | 0 .../cli-docs}/src/fragments/commands/span.md | 0 .../cli-docs}/src/fragments/commands/team.md | 0 .../cli-docs}/src/fragments/commands/trace.md | 0 .../cli-docs}/src/fragments/commands/trial.md | 0 .../cli-docs}/src/fragments/configuration.md | 0 {docs => apps/cli-docs}/src/styles/cli.css | 0 {docs => apps/cli-docs}/tsconfig.json | 0 docs/pnpm-lock.yaml | 5241 ----------------- .../.well-known/skills/sentry-cli/SKILL.md | 1 - .../.well-known/skills/sentry-cli/references | 1 - docs/public/install | 1 - package.json | 173 +- .../cli/.claude-plugin}/marketplace.json | 0 {.cursor => packages/cli/.cursor}/hooks.json | 0 .../cli/.cursor}/rules/ultracite.mdc | 0 .../cli/.cursor}/skills/sentry-cli/SKILL.md | 0 .../cli/.cursor}/skills/sentry-cli/references | 0 .env.example => packages/cli/.env.example | 0 packages/cli/.gitignore | 36 + .../cli/.vscode}/settings.json | 0 AGENTS.md => packages/cli/AGENTS.md | 0 .../cli/CONTRIBUTING.md | 0 DEVELOPMENT.md => packages/cli/DEVELOPMENT.md | 0 packages/cli/README.md | 166 + .../cli/assets}/banner-mask.png | Bin biome.jsonc => packages/cli/biome.jsonc | 8 + codecov.yml => packages/cli/codecov.yml | 0 install => packages/cli/install | 0 .../lint-rules}/no-args-join-in-release.grit | 0 .../lint-rules}/no-inline-touch-cache.grit | 0 .../lint-rules}/no-manual-transactions.grit | 0 .../no-process-stdout-in-commands.grit | 0 .../lint-rules}/no-raw-metadata-queries.grit | 0 .../no-stderr-write-in-commands.grit | 0 .../no-stdout-write-in-commands.grit | 0 packages/cli/package.json | 126 + .../cli/patches}/@sentry%2Fcore@10.63.0.patch | 0 .../@sentry%2Fnode-core@10.63.0.patch | 0 .../cli/patches}/@stricli%2Fcore@1.2.8.patch | 0 {plugins => packages/cli/plugins}/README.md | 0 .../sentry-cli/.claude-plugin/plugin.json | 0 .../sentry-cli/skills/sentry-cli/SKILL.md | 0 .../skills/sentry-cli/references/alert.md | 0 .../skills/sentry-cli/references/api.md | 0 .../skills/sentry-cli/references/auth.md | 0 .../skills/sentry-cli/references/build.md | 0 .../skills/sentry-cli/references/cli.md | 0 .../sentry-cli/references/code-mappings.md | 0 .../sentry-cli/references/dart-symbol-map.md | 0 .../skills/sentry-cli/references/dashboard.md | 0 .../sentry-cli/references/debug-files.md | 0 .../skills/sentry-cli/references/event.md | 0 .../skills/sentry-cli/references/explore.md | 0 .../skills/sentry-cli/references/info.md | 0 .../skills/sentry-cli/references/init.md | 0 .../skills/sentry-cli/references/issue.md | 0 .../skills/sentry-cli/references/local.md | 0 .../skills/sentry-cli/references/log.md | 0 .../skills/sentry-cli/references/monitor.md | 0 .../skills/sentry-cli/references/org.md | 0 .../skills/sentry-cli/references/proguard.md | 0 .../skills/sentry-cli/references/project.md | 0 .../sentry-cli/references/react-native.md | 0 .../skills/sentry-cli/references/release.md | 0 .../skills/sentry-cli/references/replay.md | 0 .../skills/sentry-cli/references/repo.md | 0 .../skills/sentry-cli/references/schema.md | 0 .../skills/sentry-cli/references/snapshots.md | 0 .../skills/sentry-cli/references/sourcemap.md | 0 .../skills/sentry-cli/references/span.md | 0 .../skills/sentry-cli/references/team.md | 0 .../skills/sentry-cli/references/trace.md | 0 .../skills/sentry-cli/references/trial.md | 0 .../cli/script}/bench-sweep.ts | 0 {script => packages/cli/script}/bench.ts | 0 {script => packages/cli/script}/build.ts | 23 +- .../cli/script}/bump-version.ts | 0 {script => packages/cli/script}/bundle.ts | 5 +- .../cli/script}/check-error-patterns.ts | 0 .../cli/script}/check-fragments.ts | 5 +- .../cli/script}/check-no-deps.ts | 0 .../cli/script}/check-patches.ts | 76 +- .../cli/script}/check-stale-references.ts | 5 +- {script => packages/cli/script}/debug-id.ts | 0 {script => packages/cli/script}/eval-skill.ts | 0 .../cli/script}/generate-api-schema.ts | 0 .../cli/script}/generate-banner-sixel.ts | 0 .../cli/script}/generate-command-docs.ts | 9 +- .../cli/script}/generate-docs-sections.ts | 13 +- .../cli/script}/generate-parser.ts | 0 .../cli/script}/generate-sdk.ts | 0 .../cli/script}/generate-skill.ts | 5 +- .../cli/script}/import-meta-url.js | 0 .../cli/script}/node-polyfills.ts | 0 packages/cli/script/paths.ts | 18 + .../cli/script}/require-shim.mjs | 0 .../cli/script}/search-query.pegjs | 0 .../cli/script}/text-import-plugin.ts | 0 {src => packages/cli/src}/app.ts | 0 {src => packages/cli/src}/bin.ts | 0 {src => packages/cli/src}/cli.ts | 0 .../cli/src}/commands/alert/index.ts | 0 .../cli/src}/commands/alert/issues/create.ts | 0 .../cli/src}/commands/alert/issues/delete.ts | 0 .../cli/src}/commands/alert/issues/edit.ts | 0 .../cli/src}/commands/alert/issues/index.ts | 0 .../cli/src}/commands/alert/issues/list.ts | 0 .../commands/alert/issues/rule-resolve.ts | 0 .../cli/src}/commands/alert/issues/view.ts | 0 .../cli/src}/commands/alert/list-utils.ts | 0 .../cli/src}/commands/alert/metrics/create.ts | 0 .../cli/src}/commands/alert/metrics/delete.ts | 0 .../cli/src}/commands/alert/metrics/edit.ts | 0 .../cli/src}/commands/alert/metrics/index.ts | 0 .../cli/src}/commands/alert/metrics/list.ts | 0 .../commands/alert/metrics/rule-resolve.ts | 0 .../cli/src}/commands/alert/metrics/status.ts | 0 .../cli/src}/commands/alert/metrics/view.ts | 0 .../cli/src}/commands/alert/mutation-utils.ts | 0 {src => packages/cli/src}/commands/api.ts | 0 .../cli/src}/commands/auth/index.ts | 0 .../cli/src}/commands/auth/login.ts | 0 .../cli/src}/commands/auth/logout.ts | 0 .../cli/src}/commands/auth/refresh.ts | 0 .../cli/src}/commands/auth/status.ts | 0 .../cli/src}/commands/auth/token.ts | 0 .../cli/src}/commands/auth/whoami.ts | 0 .../cli/src}/commands/bash-hook.ts | 0 .../cli/src}/commands/build/download.ts | 0 .../cli/src}/commands/build/index.ts | 0 .../cli/src}/commands/build/upload.ts | 0 .../cli/src}/commands/cli/defaults.ts | 0 .../cli/src}/commands/cli/feedback.ts | 0 {src => packages/cli/src}/commands/cli/fix.ts | 0 .../cli/src}/commands/cli/import.ts | 0 .../cli/src}/commands/cli/index.ts | 0 .../cli/src}/commands/cli/setup.ts | 0 .../cli/src}/commands/cli/uninstall.ts | 0 .../cli/src}/commands/cli/upgrade.ts | 0 .../cli/src}/commands/code-mappings/index.ts | 0 .../cli/src}/commands/code-mappings/upload.ts | 0 .../src}/commands/dart-symbol-map/index.ts | 0 .../src}/commands/dart-symbol-map/upload.ts | 0 .../cli/src}/commands/dashboard/create.ts | 0 .../cli/src}/commands/dashboard/index.ts | 0 .../cli/src}/commands/dashboard/list.ts | 0 .../cli/src}/commands/dashboard/resolve.ts | 0 .../cli/src}/commands/dashboard/restore.ts | 0 .../cli/src}/commands/dashboard/revisions.ts | 0 .../cli/src}/commands/dashboard/view.ts | 0 .../cli/src}/commands/dashboard/widget/add.ts | 0 .../src}/commands/dashboard/widget/delete.ts | 0 .../src}/commands/dashboard/widget/edit.ts | 0 .../src}/commands/dashboard/widget/index.ts | 0 .../src}/commands/debug-files/bundle-jvm.ts | 0 .../commands/debug-files/bundle-sources.ts | 0 .../cli/src}/commands/debug-files/check.ts | 0 .../cli/src}/commands/debug-files/find.ts | 0 .../cli/src}/commands/debug-files/index.ts | 0 .../commands/debug-files/print-sources.ts | 0 .../src}/commands/debug-files/read-file.ts | 0 .../cli/src}/commands/debug-files/upload.ts | 0 .../cli/src}/commands/event/index.ts | 0 .../cli/src}/commands/event/list.ts | 0 .../cli/src}/commands/event/send.ts | 0 .../cli/src}/commands/event/shared-events.ts | 0 .../cli/src}/commands/event/view.ts | 0 {src => packages/cli/src}/commands/explore.ts | 0 {src => packages/cli/src}/commands/help.ts | 0 {src => packages/cli/src}/commands/info.ts | 0 {src => packages/cli/src}/commands/init.ts | 0 .../cli/src}/commands/issue/archive.ts | 0 .../cli/src}/commands/issue/events.ts | 0 .../cli/src}/commands/issue/explain.ts | 0 .../cli/src}/commands/issue/index.ts | 0 .../cli/src}/commands/issue/list.ts | 0 .../cli/src}/commands/issue/merge.ts | 0 .../cli/src}/commands/issue/plan.ts | 0 .../commands/issue/resolve-commit-spec.ts | 0 .../cli/src}/commands/issue/resolve.ts | 0 .../cli/src}/commands/issue/unresolve.ts | 0 .../cli/src}/commands/issue/utils.ts | 0 .../cli/src}/commands/issue/view.ts | 0 .../cli/src}/commands/local/index.ts | 0 .../cli/src}/commands/local/run.ts | 0 .../cli/src}/commands/local/server.ts | 0 .../cli/src}/commands/log/index.ts | 0 .../cli/src}/commands/log/list.ts | 0 .../cli/src}/commands/log/view.ts | 0 .../cli/src}/commands/monitor/index.ts | 0 .../cli/src}/commands/monitor/list.ts | 0 .../cli/src}/commands/monitor/run.ts | 0 .../cli/src}/commands/org/index.ts | 0 .../cli/src}/commands/org/list.ts | 0 .../cli/src}/commands/org/view.ts | 0 .../cli/src}/commands/proguard/index.ts | 0 .../cli/src}/commands/proguard/upload.ts | 0 .../cli/src}/commands/proguard/uuid.ts | 0 .../cli/src}/commands/project/create.ts | 0 .../cli/src}/commands/project/delete.ts | 0 .../cli/src}/commands/project/index.ts | 0 .../cli/src}/commands/project/list.ts | 0 .../cli/src}/commands/project/view.ts | 0 .../cli/src}/commands/react-native/gradle.ts | 0 .../cli/src}/commands/react-native/index.ts | 0 .../cli/src}/commands/react-native/xcode.ts | 0 .../cli/src}/commands/release/archive.ts | 0 .../cli/src}/commands/release/create.ts | 0 .../cli/src}/commands/release/delete.ts | 0 .../cli/src}/commands/release/deploy.ts | 0 .../cli/src}/commands/release/deploys.ts | 0 .../cli/src}/commands/release/finalize.ts | 0 .../cli/src}/commands/release/index.ts | 0 .../cli/src}/commands/release/list.ts | 0 .../cli/src}/commands/release/parse.ts | 0 .../src}/commands/release/propose-version.ts | 0 .../cli/src}/commands/release/restore.ts | 0 .../cli/src}/commands/release/set-commits.ts | 0 .../cli/src}/commands/release/view.ts | 0 .../cli/src}/commands/replay/index.ts | 0 .../cli/src}/commands/replay/list.ts | 0 .../cli/src}/commands/replay/view.ts | 0 .../cli/src}/commands/repo/index.ts | 0 .../cli/src}/commands/repo/list.ts | 0 {src => packages/cli/src}/commands/schema.ts | 0 .../cli/src}/commands/send-envelope.ts | 0 .../cli/src}/commands/send-event.ts | 0 .../cli/src}/commands/snapshots/diff.ts | 0 .../cli/src}/commands/snapshots/download.ts | 0 .../cli/src}/commands/snapshots/index.ts | 0 .../cli/src}/commands/snapshots/upload.ts | 0 .../cli/src}/commands/sourcemap/index.ts | 0 .../cli/src}/commands/sourcemap/inject.ts | 0 .../cli/src}/commands/sourcemap/resolve.ts | 0 .../cli/src}/commands/sourcemap/upload.ts | 0 .../cli/src}/commands/span/index.ts | 0 .../cli/src}/commands/span/list.ts | 0 .../cli/src}/commands/span/view.ts | 0 .../cli/src}/commands/team/index.ts | 0 .../cli/src}/commands/team/list.ts | 0 .../cli/src}/commands/trace/index.ts | 0 .../cli/src}/commands/trace/list.ts | 0 .../cli/src}/commands/trace/logs.ts | 0 .../cli/src}/commands/trace/view.ts | 0 .../cli/src}/commands/trial/index.ts | 0 .../cli/src}/commands/trial/list.ts | 0 .../cli/src}/commands/trial/start.ts | 0 {src => packages/cli/src}/context.ts | 0 .../cli/src}/generated/banner-sixel.ts | 0 {src => packages/cli/src}/global.d.ts | 0 {src => packages/cli/src}/index.ts | 0 {src => packages/cli/src}/lib/agent-skills.ts | 0 {src => packages/cli/src}/lib/alias.ts | 0 {src => packages/cli/src}/lib/api-client.ts | 0 {src => packages/cli/src}/lib/api-schema.ts | 0 {src => packages/cli/src}/lib/api-scope.ts | 0 {src => packages/cli/src}/lib/api/alerts.ts | 0 .../cli/src}/lib/api/chunk-upload.ts | 0 .../cli/src}/lib/api/code-mappings.ts | 0 .../cli/src}/lib/api/dart-symbols.ts | 0 .../cli/src}/lib/api/dashboards.ts | 0 .../cli/src}/lib/api/debug-files.ts | 0 {src => packages/cli/src}/lib/api/discover.ts | 0 .../cli/src}/lib/api/error-guards.ts | 0 {src => packages/cli/src}/lib/api/events.ts | 0 .../cli/src}/lib/api/infrastructure.ts | 0 {src => packages/cli/src}/lib/api/issues.ts | 0 {src => packages/cli/src}/lib/api/logs.ts | 0 {src => packages/cli/src}/lib/api/monitors.ts | 0 .../cli/src}/lib/api/organizations.ts | 0 .../cli/src}/lib/api/preprod-artifacts.ts | 0 {src => packages/cli/src}/lib/api/proguard.ts | 0 {src => packages/cli/src}/lib/api/projects.ts | 0 {src => packages/cli/src}/lib/api/releases.ts | 0 {src => packages/cli/src}/lib/api/replays.ts | 0 .../cli/src}/lib/api/repositories.ts | 0 {src => packages/cli/src}/lib/api/seer.ts | 0 .../cli/src}/lib/api/sourcemaps.ts | 0 {src => packages/cli/src}/lib/api/teams.ts | 0 {src => packages/cli/src}/lib/api/traces.ts | 0 {src => packages/cli/src}/lib/api/trials.ts | 0 {src => packages/cli/src}/lib/api/users.ts | 0 {src => packages/cli/src}/lib/arg-parsing.ts | 0 {src => packages/cli/src}/lib/argv-hoist.ts | 0 .../cli/src}/lib/async-channel.ts | 0 {src => packages/cli/src}/lib/auth-hint.ts | 0 {src => packages/cli/src}/lib/auto-auth.ts | 0 {src => packages/cli/src}/lib/banner.ts | 0 .../cli/src}/lib/bash-hook/traceback.ts | 0 {src => packages/cli/src}/lib/binary.ts | 0 {src => packages/cli/src}/lib/browser.ts | 0 {src => packages/cli/src}/lib/bspatch.ts | 0 {src => packages/cli/src}/lib/build/index.ts | 0 {src => packages/cli/src}/lib/build/vcs.ts | 0 {src => packages/cli/src}/lib/cache-hint.ts | 0 {src => packages/cli/src}/lib/cache-keys.ts | 0 {src => packages/cli/src}/lib/clipboard.ts | 0 .../cli/src}/lib/command-suggestions.ts | 0 {src => packages/cli/src}/lib/command.ts | 0 {src => packages/cli/src}/lib/complete.ts | 0 {src => packages/cli/src}/lib/completions.ts | 0 {src => packages/cli/src}/lib/constants.ts | 0 {src => packages/cli/src}/lib/custom-ca.ts | 0 .../cli/src}/lib/custom-headers.ts | 0 {src => packages/cli/src}/lib/db/auth.ts | 0 .../cli/src}/lib/db/completion-telemetry.ts | 0 {src => packages/cli/src}/lib/db/defaults.ts | 0 {src => packages/cli/src}/lib/db/dsn-cache.ts | 0 {src => packages/cli/src}/lib/db/index.ts | 0 .../cli/src}/lib/db/install-info.ts | 0 {src => packages/cli/src}/lib/db/instance.ts | 0 .../cli/src}/lib/db/issue-org-cache.ts | 0 {src => packages/cli/src}/lib/db/json.ts | 0 {src => packages/cli/src}/lib/db/migration.ts | 0 .../cli/src}/lib/db/pagination.ts | 0 .../cli/src}/lib/db/project-aliases.ts | 0 .../cli/src}/lib/db/project-cache.ts | 0 .../cli/src}/lib/db/project-root-cache.ts | 0 {src => packages/cli/src}/lib/db/regions.ts | 0 .../cli/src}/lib/db/release-channel.ts | 0 .../cli/src}/lib/db/repo-cache.ts | 0 {src => packages/cli/src}/lib/db/schema.ts | 0 {src => packages/cli/src}/lib/db/sqlite.ts | 0 {src => packages/cli/src}/lib/db/user.ts | 0 {src => packages/cli/src}/lib/db/utils.ts | 0 .../cli/src}/lib/db/version-check.ts | 0 .../cli/src}/lib/delta-upgrade.ts | 0 {src => packages/cli/src}/lib/detect-agent.ts | 0 {src => packages/cli/src}/lib/dev-script.ts | 0 {src => packages/cli/src}/lib/dif/find.ts | 0 {src => packages/cli/src}/lib/dif/index.ts | 0 {src => packages/cli/src}/lib/dif/scan.ts | 0 {src => packages/cli/src}/lib/dif/zip.ts | 0 .../cli/src}/lib/dsn/ARCHITECTURE.md | 0 .../cli/src}/lib/dsn/code-scanner.ts | 0 {src => packages/cli/src}/lib/dsn/detector.ts | 0 {src => packages/cli/src}/lib/dsn/env-file.ts | 0 {src => packages/cli/src}/lib/dsn/env.ts | 0 {src => packages/cli/src}/lib/dsn/errors.ts | 0 {src => packages/cli/src}/lib/dsn/fs-utils.ts | 0 {src => packages/cli/src}/lib/dsn/index.ts | 0 {src => packages/cli/src}/lib/dsn/parser.ts | 0 .../cli/src}/lib/dsn/project-root.ts | 0 {src => packages/cli/src}/lib/dsn/resolver.ts | 0 .../cli/src}/lib/dsn/scan-options.ts | 0 {src => packages/cli/src}/lib/dsn/scanner.ts | 0 {src => packages/cli/src}/lib/dsn/types.ts | 0 {src => packages/cli/src}/lib/env-registry.ts | 0 .../cli/src}/lib/env-token-host.ts | 0 {src => packages/cli/src}/lib/env.ts | 0 .../cli/src}/lib/envelope/checkin-builder.ts | 0 .../cli/src}/lib/envelope/event-builder.ts | 0 .../cli/src}/lib/envelope/transport.ts | 0 .../cli/src}/lib/error-reporting.ts | 0 {src => packages/cli/src}/lib/errors.ts | 0 .../cli/src}/lib/formatters/border.ts | 0 .../cli/src}/lib/formatters/colors.ts | 0 .../cli/src}/lib/formatters/dashboard.ts | 0 .../cli/src}/lib/formatters/human.ts | 0 .../cli/src}/lib/formatters/index.ts | 0 .../cli/src}/lib/formatters/json.ts | 0 .../cli/src}/lib/formatters/local.ts | 0 .../cli/src}/lib/formatters/log.ts | 0 .../cli/src}/lib/formatters/markdown.ts | 0 .../cli/src}/lib/formatters/meta-table.ts | 0 .../cli/src}/lib/formatters/numbers.ts | 0 .../cli/src}/lib/formatters/output.ts | 0 .../cli/src}/lib/formatters/plain-detect.ts | 0 .../cli/src}/lib/formatters/replay.ts | 0 .../cli/src}/lib/formatters/seer.ts | 0 .../src}/lib/formatters/semantic-display.ts | 0 .../cli/src}/lib/formatters/sparkline.ts | 0 .../cli/src}/lib/formatters/sql.ts | 0 .../cli/src}/lib/formatters/table.ts | 0 .../cli/src}/lib/formatters/text-table.ts | 0 .../cli/src}/lib/formatters/time-utils.ts | 0 .../cli/src}/lib/formatters/trace.ts | 0 {src => packages/cli/src}/lib/fuzzy.ts | 0 {src => packages/cli/src}/lib/ghcr.ts | 0 {src => packages/cli/src}/lib/git.ts | 0 {src => packages/cli/src}/lib/global-flags.ts | 0 {src => packages/cli/src}/lib/help.ts | 0 .../cli/src}/lib/hex-id-recovery.ts | 0 {src => packages/cli/src}/lib/hex-id.ts | 0 {src => packages/cli/src}/lib/ini.ts | 0 .../cli/src}/lib/init/clack-plain.ts | 0 .../cli/src}/lib/init/clack-utils.ts | 0 .../cli/src}/lib/init/constants.ts | 0 .../cli/src}/lib/init/existing-project.ts | 0 .../cli/src}/lib/init/feedback.ts | 0 .../cli/src}/lib/init/formatters.ts | 0 {src => packages/cli/src}/lib/init/git.ts | 0 .../cli/src}/lib/init/init-service-auth.ts | 0 .../cli/src}/lib/init/interactive.ts | 0 .../cli/src}/lib/init/org-prefetch.ts | 0 .../cli/src}/lib/init/preflight.ts | 0 .../src}/lib/init/project-creation-errors.ts | 0 .../cli/src}/lib/init/readiness.ts | 0 .../cli/src}/lib/init/replacers.ts | 0 {src => packages/cli/src}/lib/init/spinner.ts | 0 .../cli/src}/lib/init/stdin-reopen.ts | 0 .../cli/src}/lib/init/tools/apply-patchset.ts | 0 .../cli/src}/lib/init/tools/command-utils.ts | 0 .../lib/init/tools/create-sentry-project.ts | 0 .../cli/src}/lib/init/tools/detect-sentry.ts | 0 .../src}/lib/init/tools/file-exists-batch.ts | 0 .../cli/src}/lib/init/tools/glob.ts | 0 .../cli/src}/lib/init/tools/grep.ts | 0 .../cli/src}/lib/init/tools/list-dir.ts | 0 .../cli/src}/lib/init/tools/read-files.ts | 0 .../cli/src}/lib/init/tools/registry.ts | 0 .../cli/src}/lib/init/tools/run-commands.ts | 0 .../cli/src}/lib/init/tools/shared.ts | 0 .../cli/src}/lib/init/tools/types.ts | 0 {src => packages/cli/src}/lib/init/types.ts | 0 .../cli/src}/lib/init/ui/factory.ts | 0 .../cli/src}/lib/init/ui/file-tree.ts | 0 .../cli/src}/lib/init/ui/ink-app.tsx | 0 .../cli/src}/lib/init/ui/ink-frame.tsx | 0 .../cli/src}/lib/init/ui/ink-report.ts | 0 .../cli/src}/lib/init/ui/ink-shortcuts.tsx | 0 .../cli/src}/lib/init/ui/ink-ui.ts | 0 .../cli/src}/lib/init/ui/learn-content.ts | 0 .../cli/src}/lib/init/ui/logging-ui.ts | 0 .../cli/src}/lib/init/ui/sentry-tips.ts | 0 .../cli/src}/lib/init/ui/types.ts | 0 .../cli/src}/lib/init/ui/wizard-store.ts | 0 .../cli/src}/lib/init/verify-setup.ts | 0 .../cli/src}/lib/init/wizard-runner.ts | 0 .../cli/src}/lib/init/workflow-inputs.ts | 0 .../cli/src}/lib/input-validation.ts | 0 .../cli/src}/lib/interactive-login.ts | 0 .../cli/src}/lib/interactive-prompts.ts | 0 {src => packages/cli/src}/lib/introspect.ts | 0 {src => packages/cli/src}/lib/issue-id.ts | 0 {src => packages/cli/src}/lib/jvm-bundle.ts | 0 {src => packages/cli/src}/lib/list-command.ts | 0 {src => packages/cli/src}/lib/logger.ts | 0 .../cli/src}/lib/login-host-guard.ts | 0 .../cli/src}/lib/metrics-transform.ts | 0 .../cli/src}/lib/mutate-command.ts | 0 {src => packages/cli/src}/lib/oauth.ts | 0 {src => packages/cli/src}/lib/objectstore.ts | 0 {src => packages/cli/src}/lib/org-list.ts | 0 {src => packages/cli/src}/lib/parse-bool.ts | 0 {src => packages/cli/src}/lib/patch-cache.ts | 0 {src => packages/cli/src}/lib/platforms.ts | 0 {src => packages/cli/src}/lib/polling.ts | 0 {src => packages/cli/src}/lib/proguard.ts | 0 {src => packages/cli/src}/lib/promises.ts | 0 {src => packages/cli/src}/lib/qrcode.ts | 0 .../cli/src}/lib/react-native/wrap-call.ts | 0 .../cli/src}/lib/react-native/xcode-env.ts | 0 {src => packages/cli/src}/lib/region.ts | 0 .../cli/src}/lib/release-notes.ts | 0 .../cli/src}/lib/replay-search.ts | 0 .../cli/src}/lib/resolve-issue.ts | 0 .../cli/src}/lib/resolve-target.ts | 0 {src => packages/cli/src}/lib/resolve-team.ts | 0 .../cli/src}/lib/response-cache.ts | 0 {src => packages/cli/src}/lib/retention.ts | 0 {src => packages/cli/src}/lib/route-map.ts | 0 {src => packages/cli/src}/lib/safe-read.ts | 0 {src => packages/cli/src}/lib/scan/binary.ts | 0 .../cli/src}/lib/scan/concurrent.ts | 0 .../cli/src}/lib/scan/constants.ts | 0 {src => packages/cli/src}/lib/scan/glob.ts | 0 .../cli/src}/lib/scan/grep-worker-source.ts | 0 .../cli/src}/lib/scan/grep-worker.js | 0 {src => packages/cli/src}/lib/scan/grep.ts | 0 {src => packages/cli/src}/lib/scan/ignore.ts | 0 {src => packages/cli/src}/lib/scan/index.ts | 0 .../cli/src}/lib/scan/literal-extract.ts | 0 .../cli/src}/lib/scan/path-utils.ts | 0 {src => packages/cli/src}/lib/scan/regex.ts | 0 {src => packages/cli/src}/lib/scan/types.ts | 0 {src => packages/cli/src}/lib/scan/walker.ts | 0 .../cli/src}/lib/scan/worker-pool.ts | 0 {src => packages/cli/src}/lib/sdk-invoke.ts | 0 {src => packages/cli/src}/lib/sdk-types.ts | 0 {src => packages/cli/src}/lib/search-query.ts | 0 {src => packages/cli/src}/lib/seer-trial.ts | 0 .../cli/src}/lib/sentry-client.ts | 0 .../cli/src}/lib/sentry-url-parser.ts | 0 {src => packages/cli/src}/lib/sentry-urls.ts | 0 .../cli/src}/lib/sentryclirc-import.ts | 0 {src => packages/cli/src}/lib/sentryclirc.ts | 0 {src => packages/cli/src}/lib/shell.ts | 0 {src => packages/cli/src}/lib/sixel.ts | 0 .../cli/src}/lib/snapshots/archive.ts | 0 .../cli/src}/lib/snapshots/diff.ts | 0 .../cli/src}/lib/snapshots/images.ts | 0 .../cli/src}/lib/sourcemap/debug-id.ts | 0 .../cli/src}/lib/sourcemap/inject.ts | 0 .../src}/lib/sourcemap/inline-sourcemap.ts | 0 .../cli/src}/lib/sourcemap/zip.ts | 0 {src => packages/cli/src}/lib/span-tree.ts | 0 {src => packages/cli/src}/lib/telemetry.ts | 0 .../cli/src}/lib/telemetry/zstd-transport.ts | 0 {src => packages/cli/src}/lib/time-range.ts | 0 {src => packages/cli/src}/lib/token-claims.ts | 0 {src => packages/cli/src}/lib/token-host.ts | 0 {src => packages/cli/src}/lib/token-type.ts | 0 {src => packages/cli/src}/lib/trace-id.ts | 0 {src => packages/cli/src}/lib/trace-target.ts | 0 {src => packages/cli/src}/lib/trials.ts | 0 {src => packages/cli/src}/lib/upgrade.ts | 0 {src => packages/cli/src}/lib/utils.ts | 0 .../cli/src}/lib/version-check.ts | 0 {src => packages/cli/src}/lib/walk-up.ts | 0 {src => packages/cli/src}/lib/which.ts | 0 {src => packages/cli/src}/types/config.ts | 0 {src => packages/cli/src}/types/dashboard.ts | 0 {src => packages/cli/src}/types/index.ts | 0 {src => packages/cli/src}/types/oauth.ts | 0 {src => packages/cli/src}/types/replay.ts | 0 {src => packages/cli/src}/types/seer.ts | 0 {src => packages/cli/src}/types/sentry.ts | 0 .../commands/alert/issues/create.test.ts | 0 .../commands/alert/issues/delete.test.ts | 0 .../test}/commands/alert/issues/edit.test.ts | 0 .../test}/commands/alert/issues/list.test.ts | 0 .../test}/commands/alert/issues/view.test.ts | 0 .../commands/alert/metrics/create.test.ts | 0 .../commands/alert/metrics/delete.test.ts | 0 .../test}/commands/alert/metrics/edit.test.ts | 0 .../test}/commands/alert/metrics/list.test.ts | 0 .../test}/commands/alert/metrics/view.test.ts | 0 .../commands/alert/mutation-utils.test.ts | 0 .../test}/commands/alert/rule-resolve.test.ts | 0 .../cli/test}/commands/api.property.test.ts | 0 .../cli/test}/commands/api.test.ts | 0 .../cli/test}/commands/auth/login.test.ts | 0 .../cli/test}/commands/auth/logout.test.ts | 0 .../cli/test}/commands/auth/refresh.test.ts | 0 .../cli/test}/commands/auth/status.test.ts | 0 .../cli/test}/commands/auth/whoami.test.ts | 0 .../cli/test}/commands/bash-hook.test.ts | 0 .../cli/test}/commands/build/download.test.ts | 0 .../cli/test}/commands/build/upload.test.ts | 0 .../cli/test}/commands/cli.test.ts | 0 .../cli/test}/commands/cli/defaults.test.ts | 0 .../cli/test}/commands/cli/fix.test.ts | 0 .../cli/test}/commands/cli/setup.test.ts | 0 .../cli/test}/commands/cli/uninstall.test.ts | 0 .../cli/test}/commands/cli/upgrade.test.ts | 0 .../commands/code-mappings/upload.test.ts | 0 .../commands/dart-symbol-map/upload.test.ts | 0 .../test}/commands/dashboard/create.test.ts | 0 .../cli/test}/commands/dashboard/list.test.ts | 0 .../test}/commands/dashboard/resolve.test.ts | 0 .../test}/commands/dashboard/restore.test.ts | 0 .../commands/dashboard/revisions.test.ts | 0 .../commands/dashboard/widget/add.test.ts | 0 .../commands/dashboard/widget/delete.test.ts | 0 .../commands/dashboard/widget/edit.test.ts | 0 .../commands/debug-files/bundle-jvm.test.ts | 0 .../debug-files/bundle-sources.test.ts | 0 .../test}/commands/debug-files/check.test.ts | 0 .../test}/commands/debug-files/find.test.ts | 0 .../debug-files/print-sources.test.ts | 0 .../test}/commands/debug-files/upload.test.ts | 0 .../test}/commands/event/list.func.test.ts | 0 .../cli/test}/commands/event/send.test.ts | 0 .../cli/test}/commands/event/view.test.ts | 0 .../cli/test}/commands/explore.test.ts | 0 .../cli/test}/commands/help.test.ts | 0 .../cli/test}/commands/info.test.ts | 0 .../cli/test}/commands/init.test.ts | 0 .../test}/commands/issue/archive.func.test.ts | 0 .../test}/commands/issue/events.func.test.ts | 0 .../commands/issue/list.property.test.ts | 0 .../cli/test}/commands/issue/list.test.ts | 0 .../test}/commands/issue/merge.func.test.ts | 0 .../issue/resolve-commit-spec.test.ts | 0 .../test}/commands/issue/resolve.func.test.ts | 0 .../cli/test}/commands/issue/utils.test.ts | 0 .../test}/commands/issue/view.func.test.ts | 0 .../cli/test}/commands/local/run.test.ts | 0 .../cli/test}/commands/local/server.test.ts | 0 .../cli/test}/commands/log/list.test.ts | 0 .../cli/test}/commands/log/view.func.test.ts | 0 .../test}/commands/log/view.property.test.ts | 0 .../cli/test}/commands/log/view.test.ts | 0 .../cli/test}/commands/monitor/run.test.ts | 0 .../test}/commands/proguard/upload.test.ts | 0 .../cli/test}/commands/project/create.test.ts | 0 .../cli/test}/commands/project/delete.test.ts | 0 .../cli/test}/commands/project/list.test.ts | 0 .../test}/commands/project/view.func.test.ts | 0 .../commands/react-native/gradle.test.ts | 0 .../test}/commands/react-native/xcode.test.ts | 0 .../test}/commands/release/archive.test.ts | 0 .../cli/test}/commands/release/create.test.ts | 0 .../cli/test}/commands/release/delete.test.ts | 0 .../cli/test}/commands/release/deploy.test.ts | 0 .../test}/commands/release/finalize.test.ts | 0 .../commands/release/propose-version.test.ts | 0 .../commands/release/set-commits.test.ts | 0 .../cli/test}/commands/release/view.test.ts | 0 .../cli/test}/commands/replay/list.test.ts | 0 .../cli/test}/commands/replay/view.test.ts | 0 .../cli/test}/commands/repo/list.test.ts | 0 .../cli/test}/commands/send-envelope.test.ts | 0 .../cli/test}/commands/snapshots/diff.test.ts | 0 .../test}/commands/snapshots/download.test.ts | 0 .../test}/commands/snapshots/upload.test.ts | 0 .../test}/commands/sourcemap/upload.test.ts | 0 .../cli/test}/commands/span/list.test.ts | 0 .../cli/test}/commands/span/view.test.ts | 0 .../cli/test}/commands/team/list.test.ts | 0 .../cli/test}/commands/trace/list.test.ts | 0 .../cli/test}/commands/trace/logs.test.ts | 0 .../test}/commands/trace/view.func.test.ts | 0 .../commands/trace/view.property.test.ts | 0 .../cli/test}/commands/trace/view.test.ts | 0 .../cli/test}/commands/trial/list.test.ts | 0 .../cli/test}/commands/trial/start.test.ts | 0 {test => packages/cli/test}/constants.ts | 0 {test => packages/cli/test}/e2e/api.test.ts | 0 {test => packages/cli/test}/e2e/auth.test.ts | 0 .../cli/test}/e2e/bundle-setup.ts | 0 .../cli/test}/e2e/bundle.test.ts | 0 .../cli/test}/e2e/completion.test.ts | 0 .../cli/test}/e2e/delta-upgrade.test.ts | 0 {test => packages/cli/test}/e2e/event.test.ts | 0 {test => packages/cli/test}/e2e/issue.test.ts | 0 .../cli/test}/e2e/library.test.ts | 0 {test => packages/cli/test}/e2e/log.test.ts | 0 .../cli/test}/e2e/multiregion.test.ts | 0 .../cli/test}/e2e/project.test.ts | 0 .../cli/test}/e2e/skill-eval.test.ts | 0 .../cli/test}/e2e/telemetry-exit.test.ts | 0 {test => packages/cli/test}/e2e/trace.test.ts | 0 {test => packages/cli/test}/fixture.ts | 0 .../cli/test}/fixtures/bench/generate.ts | 0 .../cli/test}/fixtures/bench/helpers.ts | 0 .../cli/test}/fixtures/bench/presets.ts | 0 .../cli/test}/fixtures/dif/embedded-ppdb.dll | Bin .../cli/test}/fixtures/dif/pe-no-ppdb.dll | Bin .../fixtures/errors/method-not-allowed.json | 0 .../cli/test}/fixtures/errors/not-found.json | 0 .../test}/fixtures/errors/unauthorized.json | 0 .../cli/test}/fixtures/event.json | 0 .../cli/test}/fixtures/issue.json | 0 .../cli/test}/fixtures/issues.json | 0 .../cli/test}/fixtures/log-detail.json | 0 .../cli/test}/fixtures/logs.json | 0 .../cli/test}/fixtures/organization.json | 0 .../cli/test}/fixtures/organizations.json | 0 .../cli/test}/fixtures/patches/large-new.bin | Bin .../cli/test}/fixtures/patches/large-old.bin | Bin .../cli/test}/fixtures/patches/large.trdiff10 | Bin .../cli/test}/fixtures/patches/small-new.bin | 0 .../cli/test}/fixtures/patches/small-old.bin | 0 .../cli/test}/fixtures/patches/small.trdiff10 | Bin .../cli/test}/fixtures/project.json | 0 .../cli/test}/fixtures/projects.json | 0 .../cli/test}/fixtures/regions/eu/issues.json | 0 .../fixtures/regions/eu/organizations.json | 0 .../test}/fixtures/regions/eu/projects.json | 0 .../cli/test}/fixtures/regions/us/issues.json | 0 .../fixtures/regions/us/organizations.json | 0 .../test}/fixtures/regions/us/projects.json | 0 .../cli/test}/fixtures/trace-spans.json | 0 .../cli/test}/fixtures/transactions.json | 0 .../cli/test}/fixtures/user.json | 0 {test => packages/cli/test}/helpers.ts | 0 .../cli/test}/init-eval/express.eval.test.ts | 0 .../cli/test}/init-eval/feature-docs.json | 0 .../cli/test}/init-eval/helpers/assertions.ts | 0 .../init-eval/helpers/create-eval-suite.ts | 0 .../test}/init-eval/helpers/docs-fetcher.ts | 0 .../cli/test}/init-eval/helpers/judge.ts | 0 .../cli/test}/init-eval/helpers/platforms.ts | 0 .../cli/test}/init-eval/helpers/run-wizard.ts | 0 .../cli/test}/init-eval/helpers/test-env.ts | 0 .../cli/test}/init-eval/nextjs.eval.test.ts | 0 .../init-eval/python-fastapi.eval.test.ts | 0 .../test}/init-eval/python-flask.eval.test.ts | 0 .../test}/init-eval/react-vite.eval.test.ts | 0 .../test}/init-eval/sveltekit.eval.test.ts | 0 .../templates/express-app/.gitignore | 0 .../templates/express-app/package.json | 0 .../templates/express-app/src/index.ts | 0 .../templates/express-app/tsconfig.json | 0 .../init-eval/templates/nextjs-app/.gitignore | 0 .../templates/nextjs-app/next.config.ts | 0 .../templates/nextjs-app/package.json | 0 .../templates/nextjs-app/src/app/layout.tsx | 0 .../templates/nextjs-app/src/app/page.tsx | 0 .../templates/nextjs-app/tsconfig.json | 0 .../templates/python-fastapi-app/.gitignore | 0 .../templates/python-fastapi-app/main.py | 0 .../python-fastapi-app/requirements.txt | 0 .../templates/python-flask-app/.gitignore | 0 .../templates/python-flask-app/app.py | 0 .../python-flask-app/requirements.txt | 0 .../templates/react-vite-app/.gitignore | 0 .../templates/react-vite-app/index.html | 0 .../templates/react-vite-app/package.json | 0 .../templates/react-vite-app/src/app.tsx | 0 .../templates/react-vite-app/src/main.tsx | 0 .../templates/react-vite-app/tsconfig.json | 0 .../templates/react-vite-app/vite.config.ts | 0 .../templates/sveltekit-app/.gitignore | 0 .../templates/sveltekit-app/package.json | 0 .../templates/sveltekit-app/src/app.d.ts | 0 .../templates/sveltekit-app/src/app.html | 0 .../sveltekit-app/src/routes/+page.svelte | 0 .../templates/sveltekit-app/svelte.config.js | 0 .../templates/sveltekit-app/tsconfig.json | 0 .../templates/sveltekit-app/vite.config.ts | 0 .../cli/test}/lib/agent-skills.test.ts | 0 .../cli/test}/lib/alias.property.test.ts | 0 {test => packages/cli/test}/lib/alias.test.ts | 0 .../cli/test}/lib/api-client.coverage.test.ts | 0 .../test}/lib/api-client.multiregion.test.ts | 0 .../api-client.normalize-trace-span.test.ts | 0 .../cli/test}/lib/api-client.property.test.ts | 0 .../test}/lib/api-client.seer-trial.test.ts | 0 .../cli/test}/lib/api-client.seer.test.ts | 0 .../cli/test}/lib/api-client.test.ts | 0 .../cli/test}/lib/api-schema.test.ts | 0 .../cli/test}/lib/api-scope.test.ts | 0 .../cli/test}/lib/api/alerts.test.ts | 0 .../cli/test}/lib/api/chunk-upload.test.ts | 0 .../cli/test}/lib/api/dashboards.test.ts | 0 .../cli/test}/lib/api/debug-files.test.ts | 0 .../cli/test}/lib/api/discover.test.ts | 0 .../test}/lib/api/events-overshoot.test.ts | 0 .../cli/test}/lib/api/infrastructure.test.ts | 0 .../cli/test}/lib/api/issues.test.ts | 0 .../cli/test}/lib/api/logs.test.ts | 0 .../cli/test}/lib/api/monitors.test.ts | 0 .../cli/test}/lib/api/organizations.test.ts | 0 .../test}/lib/api/preprod-artifacts.test.ts | 0 .../cli/test}/lib/api/proguard.test.ts | 0 .../cli/test}/lib/api/projects.test.ts | 0 .../cli/test}/lib/api/releases.test.ts | 0 .../cli/test}/lib/api/replays.test.ts | 0 .../cli/test}/lib/api/repositories.test.ts | 0 .../cli/test}/lib/api/sourcemaps.test.ts | 0 .../cli/test}/lib/api/traces.test.ts | 0 .../test}/lib/arg-parsing.property.test.ts | 0 .../cli/test}/lib/arg-parsing.test.ts | 0 .../cli/test}/lib/argv-hoist.property.test.ts | 0 .../cli/test}/lib/argv-hoist.test.ts | 0 .../cli/test}/lib/async-channel.test.ts | 0 .../cli/test}/lib/auth-hint.test.ts | 0 .../cli/test}/lib/auto-auth.test.ts | 0 .../test}/lib/auto-paginate.property.test.ts | 0 .../cli/test}/lib/bash-hook/traceback.test.ts | 0 .../cli/test}/lib/bench/generate.test.ts | 0 .../cli/test}/lib/bench/helpers.test.ts | 0 .../cli/test}/lib/binary.mocked.test.ts | 0 .../cli/test}/lib/binary.test.ts | 0 .../cli/test}/lib/bspatch.property.test.ts | 0 .../cli/test}/lib/bspatch.test.ts | 0 .../cli/test}/lib/build/index.test.ts | 0 .../cli/test}/lib/build/vcs.test.ts | 0 .../cli/test}/lib/cache-hint.test.ts | 0 .../cli/test}/lib/cache-keys.test.ts | 0 .../lib/checkin-builder.property.test.ts | 0 .../cli/test}/lib/command-suggestions.test.ts | 0 .../cli/test}/lib/command.test.ts | 0 .../cli/test}/lib/complete.test.ts | 0 .../test}/lib/completions.property.test.ts | 0 .../cli/test}/lib/completions.test.ts | 0 .../cli/test}/lib/config.test.ts | 0 .../cli/test}/lib/constants.property.test.ts | 0 .../cli/test}/lib/constants.test.ts | 0 .../cli/test}/lib/custom-ca.test.ts | 0 .../test}/lib/custom-headers.property.test.ts | 0 .../cli/test}/lib/custom-headers.test.ts | 0 .../cli/test}/lib/db/auth.host.test.ts | 0 .../cli/test}/lib/db/auth.property.test.ts | 0 .../cli/test}/lib/db/auth.test.ts | 0 .../cli/test}/lib/db/cache-corruption.test.ts | 0 .../cli/test}/lib/db/concurrent-worker.ts | 0 .../cli/test}/lib/db/concurrent.test.ts | 0 .../lib/db/dsn-cache.model-based.test.ts | 0 .../cli/test}/lib/db/dsn-cache.test.ts | 0 .../cli/test}/lib/db/install-info.test.ts | 0 .../cli/test}/lib/db/issue-org-cache.test.ts | 0 .../cli/test}/lib/db/json.test.ts | 0 .../cli/test}/lib/db/model-based.test.ts | 0 .../lib/db/pagination.model-based.test.ts | 0 .../cli/test}/lib/db/pagination.test.ts | 0 .../cli/test}/lib/db/project-cache.test.ts | 0 .../test}/lib/db/project-root-cache.test.ts | 0 .../cli/test}/lib/db/release-channel.test.ts | 0 .../cli/test}/lib/db/repo-cache.test.ts | 0 .../cli/test}/lib/db/schema.test.ts | 0 .../cli/test}/lib/db/user.test.ts | 0 .../cli/test}/lib/db/utils.test.ts | 0 .../test}/lib/delta-upgrade.mocked.test.ts | 0 .../cli/test}/lib/delta-upgrade.test.ts | 0 .../test}/lib/detect-agent.property.test.ts | 0 .../cli/test}/lib/detect-agent.test.ts | 0 .../cli/test}/lib/dev-script.property.test.ts | 0 .../cli/test}/lib/dev-script.test.ts | 0 .../cli/test}/lib/dif/embedded-ppdb.test.ts | 0 .../cli/test}/lib/dif/find.test.ts | 0 .../cli/test}/lib/dif/il2cpp.test.ts | 0 .../cli/test}/lib/dif/index.test.ts | 0 .../cli/test}/lib/dif/scan.property.test.ts | 0 .../cli/test}/lib/dif/scan.test.ts | 0 .../cli/test}/lib/dif/zip.test.ts | 0 .../cli/test}/lib/dsn.property.test.ts | 0 {test => packages/cli/test}/lib/dsn.test.ts | 0 .../cli/test}/lib/dsn/cache.test.ts | 0 .../lib/dsn/code-scanner.property.test.ts | 0 .../cli/test}/lib/dsn/code-scanner.test.ts | 0 .../cli/test}/lib/dsn/detector.test.ts | 0 .../cli/test}/lib/dsn/env-file.test.ts | 0 .../cli/test}/lib/dsn/env.test.ts | 0 .../cli/test}/lib/dsn/errors.test.ts | 0 .../cli/test}/lib/dsn/fifo-safety.test.ts | 0 .../cli/test}/lib/dsn/fs-utils.test.ts | 0 .../cli/test}/lib/dsn/project-root.test.ts | 0 .../cli/test}/lib/dsn/resolver.test.ts | 0 .../cli/test}/lib/dsn/scan-options.test.ts | 0 .../cli/test}/lib/env-token-host.test.ts | 0 {test => packages/cli/test}/lib/env.test.ts | 0 .../test}/lib/envelope/event-builder.test.ts | 0 .../cli/test}/lib/envelope/transport.test.ts | 0 .../lib/error-reporting.property.test.ts | 0 .../cli/test}/lib/error-reporting.test.ts | 0 .../cli/test}/lib/errors.test.ts | 0 .../formatters/auto-compact.property.test.ts | 0 .../cli/test}/lib/formatters/colors.test.ts | 0 .../test}/lib/formatters/dashboard.test.ts | 0 .../lib/formatters/human.details.test.ts | 0 .../lib/formatters/human.property.test.ts | 0 .../cli/test}/lib/formatters/human.test.ts | 0 .../test}/lib/formatters/human.utils.test.ts | 0 .../lib/formatters/json.property.test.ts | 0 .../cli/test}/lib/formatters/json.test.ts | 0 .../lib/formatters/local.property.test.ts | 0 .../cli/test}/lib/formatters/local.test.ts | 0 .../test}/lib/formatters/log.property.test.ts | 0 .../cli/test}/lib/formatters/log.test.ts | 0 .../cli/test}/lib/formatters/markdown.test.ts | 0 .../cli/test}/lib/formatters/output.test.ts | 0 .../cli/test}/lib/formatters/seer.test.ts | 0 .../lib/formatters/semantic-display.test.ts | 0 .../test}/lib/formatters/span-tree.test.ts | 0 .../lib/formatters/sparkline.property.test.ts | 0 .../test}/lib/formatters/sql.property.test.ts | 0 .../cli/test}/lib/formatters/sql.test.ts | 0 .../cli/test}/lib/formatters/table.test.ts | 0 .../test}/lib/formatters/text-table.test.ts | 0 .../lib/formatters/trace.property.test.ts | 0 .../cli/test}/lib/formatters/trace.test.ts | 0 {test => packages/cli/test}/lib/fuzzy.test.ts | 0 {test => packages/cli/test}/lib/ghcr.test.ts | 0 .../cli/test}/lib/git-commit-log.test.ts | 0 .../cli/test}/lib/git.property.test.ts | 0 .../cli/test}/lib/help-positional.test.ts | 0 {test => packages/cli/test}/lib/help.test.ts | 0 .../lib/hex-id-recovery.adapters.test.ts | 0 .../lib/hex-id-recovery.property.test.ts | 0 .../cli/test}/lib/hex-id-recovery.test.ts | 0 .../cli/test}/lib/hex-id.test.ts | 0 {test => packages/cli/test}/lib/index.test.ts | 0 .../cli/test}/lib/ini.property.test.ts | 0 {test => packages/cli/test}/lib/ini.test.ts | 0 .../cli/test}/lib/init/clack-plain.test.ts | 0 .../cli/test}/lib/init/clack-utils.test.ts | 0 .../cli/test}/lib/init/feedback.test.ts | 0 .../cli/test}/lib/init/formatters.test.ts | 0 .../cli/test}/lib/init/git.test.ts | 0 .../cli/test}/lib/init/interactive.test.ts | 0 .../cli/test}/lib/init/preflight.test.ts | 0 .../cli/test}/lib/init/readiness.test.ts | 0 .../cli/test}/lib/init/replacers.test.ts | 0 .../cli/test}/lib/init/spinner.test.ts | 0 .../cli/test}/lib/init/stdin-reopen.test.ts | 0 .../init/tools/create-sentry-project.test.ts | 0 .../lib/init/tools/filesystem-tools.test.ts | 0 .../cli/test}/lib/init/tools/list-dir.test.ts | 0 .../cli/test}/lib/init/tools/registry.test.ts | 0 .../tools/run-commands-spawn.mocked.test.ts | 0 .../test}/lib/init/tools/run-commands.test.ts | 0 .../test}/lib/init/tools/search-tools.test.ts | 0 .../cli/test}/lib/init/ui/factory.test.ts | 0 .../cli/test}/lib/init/ui/file-tree.test.ts | 0 .../lib/init/ui/ink-app.snapshot.test.tsx | 0 .../cli/test}/lib/init/ui/ink-frame.test.ts | 0 .../cli/test}/lib/init/ui/ink-report.test.ts | 0 .../test}/lib/init/ui/ink-shortcuts.test.ts | 0 .../cli/test}/lib/init/ui/logging-ui.test.ts | 0 .../cli/test}/lib/init/ui/mock-ui.ts | 0 .../cli/test}/lib/init/ui/types.test.ts | 0 .../test}/lib/init/ui/wizard-store.test.ts | 0 .../cli/test}/lib/init/wizard-runner.test.ts | 0 .../lib/input-validation.property.test.ts | 0 .../cli/test}/lib/install-script.test.ts | 0 .../cli/test}/lib/interactive-login.test.ts | 0 .../cli/test}/lib/interactive-prompts.test.ts | 0 .../cli/test}/lib/introspect.property.test.ts | 0 .../cli/test}/lib/introspect.test.ts | 0 .../test}/lib/issue-collapse.property.test.ts | 0 .../cli/test}/lib/issue-id.property.test.ts | 0 .../cli/test}/lib/issue-id.test.ts | 0 .../cli/test}/lib/jvm-bundle.test.ts | 0 .../cli/test}/lib/list-command.test.ts | 0 .../cli/test}/lib/logger.test.ts | 0 .../cli/test}/lib/metrics-transform.test.ts | 0 .../cli/test}/lib/mutate-command.test.ts | 0 .../lib/node-polyfills-file-stat.test.ts | 0 {test => packages/cli/test}/lib/oauth.test.ts | 0 .../cli/test}/lib/objectstore.test.ts | 0 .../cli/test}/lib/org-list.test.ts | 0 .../cli/test}/lib/parse-bool.property.test.ts | 0 .../cli/test}/lib/patch-cache.test.ts | 0 .../cli/test}/lib/platforms.test.ts | 0 .../cli/test}/lib/polling.property.test.ts | 0 .../cli/test}/lib/proguard.property.test.ts | 0 .../cli/test}/lib/promises.property.test.ts | 0 .../cli/test}/lib/promises.test.ts | 0 .../test}/lib/react-native/wrap-call.test.ts | 0 .../test}/lib/react-native/xcode-env.test.ts | 0 .../cli/test}/lib/region.test.ts | 0 .../test}/lib/release-notes.property.test.ts | 0 .../cli/test}/lib/release-notes.test.ts | 0 .../test}/lib/release-parse.property.test.ts | 0 .../cli/test}/lib/replay-duration.test.ts | 0 .../cli/test}/lib/replay-search.test.ts | 0 .../test}/lib/resolve-effective-org.test.ts | 0 .../test}/lib/resolve-target-listing.test.ts | 0 .../test}/lib/resolve-target.mocked.test.ts | 0 .../cli/test}/lib/resolve-target.test.ts | 0 .../cli/test}/lib/resolve-team.test.ts | 0 .../test}/lib/response-cache.property.test.ts | 0 .../cli/test}/lib/response-cache.test.ts | 0 .../cli/test}/lib/route-subcommands.test.ts | 0 .../cli/test}/lib/run-commands.mocked.test.ts | 0 .../cli/test}/lib/safe-read.test.ts | 0 .../test}/lib/scan/binary.property.test.ts | 0 .../cli/test}/lib/scan/binary.test.ts | 0 .../cli/test}/lib/scan/concurrent.test.ts | 0 .../test}/lib/scan/constants.property.test.ts | 0 .../cli/test}/lib/scan/glob.test.ts | 0 .../cli/test}/lib/scan/grep.property.test.ts | 0 .../cli/test}/lib/scan/grep.test.ts | 0 .../test}/lib/scan/ignore.property.test.ts | 0 .../cli/test}/lib/scan/ignore.test.ts | 0 .../test}/lib/scan/literal-extract.test.ts | 0 .../cli/test}/lib/scan/regex.test.ts | 0 .../test}/lib/scan/walker.property.test.ts | 0 .../cli/test}/lib/scan/walker.test.ts | 0 .../cli/test}/lib/sdk-invoke.test.ts | 0 .../test}/lib/search-query.property.test.ts | 0 .../cli/test}/lib/search-query.test.ts | 0 .../security/auto-login-host-guard.test.ts | 0 .../lib/security/custom-headers-leak.test.ts | 0 .../lib/security/fetch-layer-guard.test.ts | 0 .../security/login-token-rc-poison.test.ts | 0 .../lib/security/refresh-token-poison.test.ts | 0 .../security/sentryclirc-url-poison.test.ts | 0 .../security/sntrys-claim-mismatch.test.ts | 0 .../test}/lib/security/url-arg-poison.test.ts | 0 .../cli/test}/lib/seer-trial.test.ts | 0 .../lib/sentry-client.invalidation.test.ts | 0 .../cli/test}/lib/sentry-client.test.ts | 0 .../lib/sentry-url-parser.property.test.ts | 0 .../cli/test}/lib/sentry-url-parser.test.ts | 0 .../test}/lib/sentry-urls.property.test.ts | 0 .../lib/sentryclirc-import.property.test.ts | 0 .../cli/test}/lib/sentryclirc-import.test.ts | 0 .../test}/lib/sentryclirc.property.test.ts | 0 .../cli/test}/lib/sentryclirc.test.ts | 0 .../cli/test}/lib/shell.property.test.ts | 0 {test => packages/cli/test}/lib/shell.test.ts | 0 {test => packages/cli/test}/lib/sixel.test.ts | 0 .../cli/test}/lib/snapshots/archive.test.ts | 0 .../cli/test}/lib/snapshots/diff.test.ts | 0 .../cli/test}/lib/snapshots/images.test.ts | 0 .../cli/test}/lib/sourcemap/directive.test.ts | 0 .../cli/test}/lib/sourcemap/inject.test.ts | 0 .../lib/sourcemap/inline-sourcemap.test.ts | 0 .../cli/test}/lib/sourcemap/resolve.test.ts | 0 .../cli/test}/lib/sourcemap/zip.test.ts | 0 .../cli/test}/lib/telemetry-session.test.ts | 0 .../cli/test}/lib/telemetry.test.ts | 0 .../lib/telemetry/zstd-transport.e2e.test.ts | 0 .../telemetry/zstd-transport.property.test.ts | 0 .../lib/telemetry/zstd-transport.test.ts | 0 .../cli/test}/lib/time-range.property.test.ts | 0 .../cli/test}/lib/time-range.test.ts | 0 .../test}/lib/token-claims.property.test.ts | 0 .../cli/test}/lib/token-claims.test.ts | 0 .../cli/test}/lib/token-host.property.test.ts | 0 .../cli/test}/lib/token-host.test.ts | 0 .../cli/test}/lib/token-type.property.test.ts | 0 .../cli/test}/lib/trace-id.test.ts | 0 .../lib/trace-log-schema.property.test.ts | 0 .../cli/test}/lib/trace-target.test.ts | 0 .../cli/test}/lib/trials.test.ts | 0 .../cli/test}/lib/upgrade.test.ts | 0 .../cli/test}/lib/utils.property.test.ts | 0 {test => packages/cli/test}/lib/utils.test.ts | 0 .../cli/test}/lib/version-check.test.ts | 0 ...-runner-handle-final-result.mocked.test.ts | 0 .../test}/lib/word-boundary.property.test.ts | 0 .../cli/test}/mocks/multiregion.ts | 0 {test => packages/cli/test}/mocks/routes.ts | 0 {test => packages/cli/test}/mocks/server.ts | 0 .../cli/test}/model-based/helpers.ts | 0 {test => packages/cli/test}/package.test.ts | 0 {test => packages/cli/test}/preload.ts | 0 .../cli/test}/script/debug-id.test.ts | 0 .../cli/test}/script/node-polyfills.test.ts | 0 .../test}/script/text-import-plugin.test.ts | 0 .../cli/test}/skill-eval/cases.json | 0 .../cli/test}/skill-eval/helpers/judge.ts | 0 .../test}/skill-eval/helpers/llm-client.ts | 0 .../cli/test}/skill-eval/helpers/planner.ts | 0 .../cli/test}/skill-eval/helpers/report.ts | 0 .../cli/test}/skill-eval/helpers/types.ts | 0 .../cli/test}/skill-eval/helpers/verify.ts | 0 .../test}/types/dashboard.property.test.ts | 0 .../cli/test}/types/dashboard.test.ts | 0 .../cli/test}/types/oauth.test.ts | 0 .../cli/test}/types/seer.test.ts | 0 {test => packages/cli/test}/vitest.d.ts | 0 tsconfig.json => packages/cli/tsconfig.json | 0 .../cli/vitest.config.ts | 0 warden.toml => packages/cli/warden.toml | 0 pnpm-lock.yaml | 4424 ++++++++++++-- pnpm-workspace.yaml | 3 + 1107 files changed, 4633 insertions(+), 6093 deletions(-) rename {docs => apps/cli-docs}/astro.config.mjs (100%) rename {docs => apps/cli-docs}/package.json (71%) create mode 120000 apps/cli-docs/public/.well-known/skills/sentry-cli/SKILL.md create mode 120000 apps/cli-docs/public/.well-known/skills/sentry-cli/references rename {docs => apps/cli-docs}/public/CNAME (100%) rename {docs => apps/cli-docs}/public/favicon.png (100%) rename {docs => apps/cli-docs}/public/favicon.svg (100%) rename {docs => apps/cli-docs}/public/glyph.svg (100%) create mode 120000 apps/cli-docs/public/install rename {docs => apps/cli-docs}/public/og-image-twitter.png (100%) rename {docs => apps/cli-docs}/public/og-image.png (100%) rename {docs => apps/cli-docs}/public/wordmark-light.svg (100%) rename {docs => apps/cli-docs}/public/wordmark.svg (100%) rename {docs => apps/cli-docs}/sentry.client.config.js (100%) rename {docs => apps/cli-docs}/sentry.server.config.js (100%) rename {docs => apps/cli-docs}/src/assets/bg.png (100%) rename {docs => apps/cli-docs}/src/assets/logo.svg (100%) rename {docs => apps/cli-docs}/src/assets/section-bg-1.png (100%) rename {docs => apps/cli-docs}/src/assets/section-bg-2.png (100%) rename {docs => apps/cli-docs}/src/assets/section-bg-3.png (100%) rename {docs => apps/cli-docs}/src/components/FeatureTerminal.astro (100%) rename {docs => apps/cli-docs}/src/components/FeatureVisual.astro (100%) rename {docs => apps/cli-docs}/src/components/Header.astro (100%) rename {docs => apps/cli-docs}/src/components/InstallSelector.astro (100%) rename {docs => apps/cli-docs}/src/components/PackageManagerCode.astro (100%) rename {docs => apps/cli-docs}/src/components/PageTitle.astro (100%) rename {docs => apps/cli-docs}/src/components/Terminal.astro (100%) rename {docs => apps/cli-docs}/src/content.config.ts (100%) rename {docs => apps/cli-docs}/src/content/docs/agent-guidance.md (100%) rename {docs => apps/cli-docs}/src/content/docs/agentic-usage.md (100%) rename {docs => apps/cli-docs}/src/content/docs/contributing.md (100%) rename {docs => apps/cli-docs}/src/content/docs/exit-codes.md (100%) rename {docs => apps/cli-docs}/src/content/docs/features.md (100%) rename {docs => apps/cli-docs}/src/content/docs/getting-started.mdx (100%) rename {docs => apps/cli-docs}/src/content/docs/index.mdx (100%) rename {docs => apps/cli-docs}/src/content/docs/library-usage.md (100%) rename {docs => apps/cli-docs}/src/content/docs/migrating-from-v3.md (100%) rename {docs => apps/cli-docs}/src/content/docs/self-hosted.md (100%) rename {docs => apps/cli-docs}/src/fonts/dammit-sans-v0.3-bold.otf (100%) rename {docs => apps/cli-docs}/src/fragments/commands/alert.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/api.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/auth.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/build.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/cli.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/code-mappings.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/dart-symbol-map.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/dashboard.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/debug-files.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/event.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/explore.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/index.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/info.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/init.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/issue.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/local.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/log.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/monitor.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/org.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/proguard.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/project.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/react-native.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/release.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/replay.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/repo.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/schema.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/snapshots.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/sourcemap.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/span.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/team.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/trace.md (100%) rename {docs => apps/cli-docs}/src/fragments/commands/trial.md (100%) rename {docs => apps/cli-docs}/src/fragments/configuration.md (100%) rename {docs => apps/cli-docs}/src/styles/cli.css (100%) rename {docs => apps/cli-docs}/tsconfig.json (100%) delete mode 100644 docs/pnpm-lock.yaml delete mode 120000 docs/public/.well-known/skills/sentry-cli/SKILL.md delete mode 120000 docs/public/.well-known/skills/sentry-cli/references delete mode 120000 docs/public/install rename {.claude-plugin => packages/cli/.claude-plugin}/marketplace.json (100%) rename {.cursor => packages/cli/.cursor}/hooks.json (100%) rename {.cursor => packages/cli/.cursor}/rules/ultracite.mdc (100%) rename {.cursor => packages/cli/.cursor}/skills/sentry-cli/SKILL.md (100%) rename {.cursor => packages/cli/.cursor}/skills/sentry-cli/references (100%) rename .env.example => packages/cli/.env.example (100%) create mode 100644 packages/cli/.gitignore rename {.vscode => packages/cli/.vscode}/settings.json (100%) rename AGENTS.md => packages/cli/AGENTS.md (100%) rename CONTRIBUTING.md => packages/cli/CONTRIBUTING.md (100%) rename DEVELOPMENT.md => packages/cli/DEVELOPMENT.md (100%) create mode 100644 packages/cli/README.md rename {assets => packages/cli/assets}/banner-mask.png (100%) rename biome.jsonc => packages/cli/biome.jsonc (95%) rename codecov.yml => packages/cli/codecov.yml (100%) rename install => packages/cli/install (100%) rename {lint-rules => packages/cli/lint-rules}/no-args-join-in-release.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-inline-touch-cache.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-manual-transactions.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-process-stdout-in-commands.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-raw-metadata-queries.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-stderr-write-in-commands.grit (100%) rename {lint-rules => packages/cli/lint-rules}/no-stdout-write-in-commands.grit (100%) create mode 100644 packages/cli/package.json rename {patches => packages/cli/patches}/@sentry%2Fcore@10.63.0.patch (100%) rename {patches => packages/cli/patches}/@sentry%2Fnode-core@10.63.0.patch (100%) rename {patches => packages/cli/patches}/@stricli%2Fcore@1.2.8.patch (100%) rename {plugins => packages/cli/plugins}/README.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/.claude-plugin/plugin.json (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/SKILL.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/alert.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/api.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/auth.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/build.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/cli.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/code-mappings.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/dart-symbol-map.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/dashboard.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/debug-files.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/event.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/explore.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/info.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/init.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/issue.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/local.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/log.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/monitor.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/org.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/proguard.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/project.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/react-native.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/release.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/replay.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/repo.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/schema.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/snapshots.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/sourcemap.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/span.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/team.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/trace.md (100%) rename {plugins => packages/cli/plugins}/sentry-cli/skills/sentry-cli/references/trial.md (100%) rename {script => packages/cli/script}/bench-sweep.ts (100%) rename {script => packages/cli/script}/bench.ts (100%) rename {script => packages/cli/script}/build.ts (95%) rename {script => packages/cli/script}/bump-version.ts (100%) rename {script => packages/cli/script}/bundle.ts (97%) rename {script => packages/cli/script}/check-error-patterns.ts (100%) rename {script => packages/cli/script}/check-fragments.ts (98%) rename {script => packages/cli/script}/check-no-deps.ts (100%) rename {script => packages/cli/script}/check-patches.ts (74%) rename {script => packages/cli/script}/check-stale-references.ts (98%) rename {script => packages/cli/script}/debug-id.ts (100%) rename {script => packages/cli/script}/eval-skill.ts (100%) rename {script => packages/cli/script}/generate-api-schema.ts (100%) rename {script => packages/cli/script}/generate-banner-sixel.ts (100%) rename {script => packages/cli/script}/generate-command-docs.ts (98%) rename {script => packages/cli/script}/generate-docs-sections.ts (98%) rename {script => packages/cli/script}/generate-parser.ts (100%) rename {script => packages/cli/script}/generate-sdk.ts (100%) rename {script => packages/cli/script}/generate-skill.ts (99%) rename {script => packages/cli/script}/import-meta-url.js (100%) rename {script => packages/cli/script}/node-polyfills.ts (100%) create mode 100644 packages/cli/script/paths.ts rename {script => packages/cli/script}/require-shim.mjs (100%) rename {script => packages/cli/script}/search-query.pegjs (100%) rename {script => packages/cli/script}/text-import-plugin.ts (100%) rename {src => packages/cli/src}/app.ts (100%) rename {src => packages/cli/src}/bin.ts (100%) rename {src => packages/cli/src}/cli.ts (100%) rename {src => packages/cli/src}/commands/alert/index.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/create.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/delete.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/edit.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/index.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/list.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/rule-resolve.ts (100%) rename {src => packages/cli/src}/commands/alert/issues/view.ts (100%) rename {src => packages/cli/src}/commands/alert/list-utils.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/create.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/delete.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/edit.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/index.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/list.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/rule-resolve.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/status.ts (100%) rename {src => packages/cli/src}/commands/alert/metrics/view.ts (100%) rename {src => packages/cli/src}/commands/alert/mutation-utils.ts (100%) rename {src => packages/cli/src}/commands/api.ts (100%) rename {src => packages/cli/src}/commands/auth/index.ts (100%) rename {src => packages/cli/src}/commands/auth/login.ts (100%) rename {src => packages/cli/src}/commands/auth/logout.ts (100%) rename {src => packages/cli/src}/commands/auth/refresh.ts (100%) rename {src => packages/cli/src}/commands/auth/status.ts (100%) rename {src => packages/cli/src}/commands/auth/token.ts (100%) rename {src => packages/cli/src}/commands/auth/whoami.ts (100%) rename {src => packages/cli/src}/commands/bash-hook.ts (100%) rename {src => packages/cli/src}/commands/build/download.ts (100%) rename {src => packages/cli/src}/commands/build/index.ts (100%) rename {src => packages/cli/src}/commands/build/upload.ts (100%) rename {src => packages/cli/src}/commands/cli/defaults.ts (100%) rename {src => packages/cli/src}/commands/cli/feedback.ts (100%) rename {src => packages/cli/src}/commands/cli/fix.ts (100%) rename {src => packages/cli/src}/commands/cli/import.ts (100%) rename {src => packages/cli/src}/commands/cli/index.ts (100%) rename {src => packages/cli/src}/commands/cli/setup.ts (100%) rename {src => packages/cli/src}/commands/cli/uninstall.ts (100%) rename {src => packages/cli/src}/commands/cli/upgrade.ts (100%) rename {src => packages/cli/src}/commands/code-mappings/index.ts (100%) rename {src => packages/cli/src}/commands/code-mappings/upload.ts (100%) rename {src => packages/cli/src}/commands/dart-symbol-map/index.ts (100%) rename {src => packages/cli/src}/commands/dart-symbol-map/upload.ts (100%) rename {src => packages/cli/src}/commands/dashboard/create.ts (100%) rename {src => packages/cli/src}/commands/dashboard/index.ts (100%) rename {src => packages/cli/src}/commands/dashboard/list.ts (100%) rename {src => packages/cli/src}/commands/dashboard/resolve.ts (100%) rename {src => packages/cli/src}/commands/dashboard/restore.ts (100%) rename {src => packages/cli/src}/commands/dashboard/revisions.ts (100%) rename {src => packages/cli/src}/commands/dashboard/view.ts (100%) rename {src => packages/cli/src}/commands/dashboard/widget/add.ts (100%) rename {src => packages/cli/src}/commands/dashboard/widget/delete.ts (100%) rename {src => packages/cli/src}/commands/dashboard/widget/edit.ts (100%) rename {src => packages/cli/src}/commands/dashboard/widget/index.ts (100%) rename {src => packages/cli/src}/commands/debug-files/bundle-jvm.ts (100%) rename {src => packages/cli/src}/commands/debug-files/bundle-sources.ts (100%) rename {src => packages/cli/src}/commands/debug-files/check.ts (100%) rename {src => packages/cli/src}/commands/debug-files/find.ts (100%) rename {src => packages/cli/src}/commands/debug-files/index.ts (100%) rename {src => packages/cli/src}/commands/debug-files/print-sources.ts (100%) rename {src => packages/cli/src}/commands/debug-files/read-file.ts (100%) rename {src => packages/cli/src}/commands/debug-files/upload.ts (100%) rename {src => packages/cli/src}/commands/event/index.ts (100%) rename {src => packages/cli/src}/commands/event/list.ts (100%) rename {src => packages/cli/src}/commands/event/send.ts (100%) rename {src => packages/cli/src}/commands/event/shared-events.ts (100%) rename {src => packages/cli/src}/commands/event/view.ts (100%) rename {src => packages/cli/src}/commands/explore.ts (100%) rename {src => packages/cli/src}/commands/help.ts (100%) rename {src => packages/cli/src}/commands/info.ts (100%) rename {src => packages/cli/src}/commands/init.ts (100%) rename {src => packages/cli/src}/commands/issue/archive.ts (100%) rename {src => packages/cli/src}/commands/issue/events.ts (100%) rename {src => packages/cli/src}/commands/issue/explain.ts (100%) rename {src => packages/cli/src}/commands/issue/index.ts (100%) rename {src => packages/cli/src}/commands/issue/list.ts (100%) rename {src => packages/cli/src}/commands/issue/merge.ts (100%) rename {src => packages/cli/src}/commands/issue/plan.ts (100%) rename {src => packages/cli/src}/commands/issue/resolve-commit-spec.ts (100%) rename {src => packages/cli/src}/commands/issue/resolve.ts (100%) rename {src => packages/cli/src}/commands/issue/unresolve.ts (100%) rename {src => packages/cli/src}/commands/issue/utils.ts (100%) rename {src => packages/cli/src}/commands/issue/view.ts (100%) rename {src => packages/cli/src}/commands/local/index.ts (100%) rename {src => packages/cli/src}/commands/local/run.ts (100%) rename {src => packages/cli/src}/commands/local/server.ts (100%) rename {src => packages/cli/src}/commands/log/index.ts (100%) rename {src => packages/cli/src}/commands/log/list.ts (100%) rename {src => packages/cli/src}/commands/log/view.ts (100%) rename {src => packages/cli/src}/commands/monitor/index.ts (100%) rename {src => packages/cli/src}/commands/monitor/list.ts (100%) rename {src => packages/cli/src}/commands/monitor/run.ts (100%) rename {src => packages/cli/src}/commands/org/index.ts (100%) rename {src => packages/cli/src}/commands/org/list.ts (100%) rename {src => packages/cli/src}/commands/org/view.ts (100%) rename {src => packages/cli/src}/commands/proguard/index.ts (100%) rename {src => packages/cli/src}/commands/proguard/upload.ts (100%) rename {src => packages/cli/src}/commands/proguard/uuid.ts (100%) rename {src => packages/cli/src}/commands/project/create.ts (100%) rename {src => packages/cli/src}/commands/project/delete.ts (100%) rename {src => packages/cli/src}/commands/project/index.ts (100%) rename {src => packages/cli/src}/commands/project/list.ts (100%) rename {src => packages/cli/src}/commands/project/view.ts (100%) rename {src => packages/cli/src}/commands/react-native/gradle.ts (100%) rename {src => packages/cli/src}/commands/react-native/index.ts (100%) rename {src => packages/cli/src}/commands/react-native/xcode.ts (100%) rename {src => packages/cli/src}/commands/release/archive.ts (100%) rename {src => packages/cli/src}/commands/release/create.ts (100%) rename {src => packages/cli/src}/commands/release/delete.ts (100%) rename {src => packages/cli/src}/commands/release/deploy.ts (100%) rename {src => packages/cli/src}/commands/release/deploys.ts (100%) rename {src => packages/cli/src}/commands/release/finalize.ts (100%) rename {src => packages/cli/src}/commands/release/index.ts (100%) rename {src => packages/cli/src}/commands/release/list.ts (100%) rename {src => packages/cli/src}/commands/release/parse.ts (100%) rename {src => packages/cli/src}/commands/release/propose-version.ts (100%) rename {src => packages/cli/src}/commands/release/restore.ts (100%) rename {src => packages/cli/src}/commands/release/set-commits.ts (100%) rename {src => packages/cli/src}/commands/release/view.ts (100%) rename {src => packages/cli/src}/commands/replay/index.ts (100%) rename {src => packages/cli/src}/commands/replay/list.ts (100%) rename {src => packages/cli/src}/commands/replay/view.ts (100%) rename {src => packages/cli/src}/commands/repo/index.ts (100%) rename {src => packages/cli/src}/commands/repo/list.ts (100%) rename {src => packages/cli/src}/commands/schema.ts (100%) rename {src => packages/cli/src}/commands/send-envelope.ts (100%) rename {src => packages/cli/src}/commands/send-event.ts (100%) rename {src => packages/cli/src}/commands/snapshots/diff.ts (100%) rename {src => packages/cli/src}/commands/snapshots/download.ts (100%) rename {src => packages/cli/src}/commands/snapshots/index.ts (100%) rename {src => packages/cli/src}/commands/snapshots/upload.ts (100%) rename {src => packages/cli/src}/commands/sourcemap/index.ts (100%) rename {src => packages/cli/src}/commands/sourcemap/inject.ts (100%) rename {src => packages/cli/src}/commands/sourcemap/resolve.ts (100%) rename {src => packages/cli/src}/commands/sourcemap/upload.ts (100%) rename {src => packages/cli/src}/commands/span/index.ts (100%) rename {src => packages/cli/src}/commands/span/list.ts (100%) rename {src => packages/cli/src}/commands/span/view.ts (100%) rename {src => packages/cli/src}/commands/team/index.ts (100%) rename {src => packages/cli/src}/commands/team/list.ts (100%) rename {src => packages/cli/src}/commands/trace/index.ts (100%) rename {src => packages/cli/src}/commands/trace/list.ts (100%) rename {src => packages/cli/src}/commands/trace/logs.ts (100%) rename {src => packages/cli/src}/commands/trace/view.ts (100%) rename {src => packages/cli/src}/commands/trial/index.ts (100%) rename {src => packages/cli/src}/commands/trial/list.ts (100%) rename {src => packages/cli/src}/commands/trial/start.ts (100%) rename {src => packages/cli/src}/context.ts (100%) rename {src => packages/cli/src}/generated/banner-sixel.ts (100%) rename {src => packages/cli/src}/global.d.ts (100%) rename {src => packages/cli/src}/index.ts (100%) rename {src => packages/cli/src}/lib/agent-skills.ts (100%) rename {src => packages/cli/src}/lib/alias.ts (100%) rename {src => packages/cli/src}/lib/api-client.ts (100%) rename {src => packages/cli/src}/lib/api-schema.ts (100%) rename {src => packages/cli/src}/lib/api-scope.ts (100%) rename {src => packages/cli/src}/lib/api/alerts.ts (100%) rename {src => packages/cli/src}/lib/api/chunk-upload.ts (100%) rename {src => packages/cli/src}/lib/api/code-mappings.ts (100%) rename {src => packages/cli/src}/lib/api/dart-symbols.ts (100%) rename {src => packages/cli/src}/lib/api/dashboards.ts (100%) rename {src => packages/cli/src}/lib/api/debug-files.ts (100%) rename {src => packages/cli/src}/lib/api/discover.ts (100%) rename {src => packages/cli/src}/lib/api/error-guards.ts (100%) rename {src => packages/cli/src}/lib/api/events.ts (100%) rename {src => packages/cli/src}/lib/api/infrastructure.ts (100%) rename {src => packages/cli/src}/lib/api/issues.ts (100%) rename {src => packages/cli/src}/lib/api/logs.ts (100%) rename {src => packages/cli/src}/lib/api/monitors.ts (100%) rename {src => packages/cli/src}/lib/api/organizations.ts (100%) rename {src => packages/cli/src}/lib/api/preprod-artifacts.ts (100%) rename {src => packages/cli/src}/lib/api/proguard.ts (100%) rename {src => packages/cli/src}/lib/api/projects.ts (100%) rename {src => packages/cli/src}/lib/api/releases.ts (100%) rename {src => packages/cli/src}/lib/api/replays.ts (100%) rename {src => packages/cli/src}/lib/api/repositories.ts (100%) rename {src => packages/cli/src}/lib/api/seer.ts (100%) rename {src => packages/cli/src}/lib/api/sourcemaps.ts (100%) rename {src => packages/cli/src}/lib/api/teams.ts (100%) rename {src => packages/cli/src}/lib/api/traces.ts (100%) rename {src => packages/cli/src}/lib/api/trials.ts (100%) rename {src => packages/cli/src}/lib/api/users.ts (100%) rename {src => packages/cli/src}/lib/arg-parsing.ts (100%) rename {src => packages/cli/src}/lib/argv-hoist.ts (100%) rename {src => packages/cli/src}/lib/async-channel.ts (100%) rename {src => packages/cli/src}/lib/auth-hint.ts (100%) rename {src => packages/cli/src}/lib/auto-auth.ts (100%) rename {src => packages/cli/src}/lib/banner.ts (100%) rename {src => packages/cli/src}/lib/bash-hook/traceback.ts (100%) rename {src => packages/cli/src}/lib/binary.ts (100%) rename {src => packages/cli/src}/lib/browser.ts (100%) rename {src => packages/cli/src}/lib/bspatch.ts (100%) rename {src => packages/cli/src}/lib/build/index.ts (100%) rename {src => packages/cli/src}/lib/build/vcs.ts (100%) rename {src => packages/cli/src}/lib/cache-hint.ts (100%) rename {src => packages/cli/src}/lib/cache-keys.ts (100%) rename {src => packages/cli/src}/lib/clipboard.ts (100%) rename {src => packages/cli/src}/lib/command-suggestions.ts (100%) rename {src => packages/cli/src}/lib/command.ts (100%) rename {src => packages/cli/src}/lib/complete.ts (100%) rename {src => packages/cli/src}/lib/completions.ts (100%) rename {src => packages/cli/src}/lib/constants.ts (100%) rename {src => packages/cli/src}/lib/custom-ca.ts (100%) rename {src => packages/cli/src}/lib/custom-headers.ts (100%) rename {src => packages/cli/src}/lib/db/auth.ts (100%) rename {src => packages/cli/src}/lib/db/completion-telemetry.ts (100%) rename {src => packages/cli/src}/lib/db/defaults.ts (100%) rename {src => packages/cli/src}/lib/db/dsn-cache.ts (100%) rename {src => packages/cli/src}/lib/db/index.ts (100%) rename {src => packages/cli/src}/lib/db/install-info.ts (100%) rename {src => packages/cli/src}/lib/db/instance.ts (100%) rename {src => packages/cli/src}/lib/db/issue-org-cache.ts (100%) rename {src => packages/cli/src}/lib/db/json.ts (100%) rename {src => packages/cli/src}/lib/db/migration.ts (100%) rename {src => packages/cli/src}/lib/db/pagination.ts (100%) rename {src => packages/cli/src}/lib/db/project-aliases.ts (100%) rename {src => packages/cli/src}/lib/db/project-cache.ts (100%) rename {src => packages/cli/src}/lib/db/project-root-cache.ts (100%) rename {src => packages/cli/src}/lib/db/regions.ts (100%) rename {src => packages/cli/src}/lib/db/release-channel.ts (100%) rename {src => packages/cli/src}/lib/db/repo-cache.ts (100%) rename {src => packages/cli/src}/lib/db/schema.ts (100%) rename {src => packages/cli/src}/lib/db/sqlite.ts (100%) rename {src => packages/cli/src}/lib/db/user.ts (100%) rename {src => packages/cli/src}/lib/db/utils.ts (100%) rename {src => packages/cli/src}/lib/db/version-check.ts (100%) rename {src => packages/cli/src}/lib/delta-upgrade.ts (100%) rename {src => packages/cli/src}/lib/detect-agent.ts (100%) rename {src => packages/cli/src}/lib/dev-script.ts (100%) rename {src => packages/cli/src}/lib/dif/find.ts (100%) rename {src => packages/cli/src}/lib/dif/index.ts (100%) rename {src => packages/cli/src}/lib/dif/scan.ts (100%) rename {src => packages/cli/src}/lib/dif/zip.ts (100%) rename {src => packages/cli/src}/lib/dsn/ARCHITECTURE.md (100%) rename {src => packages/cli/src}/lib/dsn/code-scanner.ts (100%) rename {src => packages/cli/src}/lib/dsn/detector.ts (100%) rename {src => packages/cli/src}/lib/dsn/env-file.ts (100%) rename {src => packages/cli/src}/lib/dsn/env.ts (100%) rename {src => packages/cli/src}/lib/dsn/errors.ts (100%) rename {src => packages/cli/src}/lib/dsn/fs-utils.ts (100%) rename {src => packages/cli/src}/lib/dsn/index.ts (100%) rename {src => packages/cli/src}/lib/dsn/parser.ts (100%) rename {src => packages/cli/src}/lib/dsn/project-root.ts (100%) rename {src => packages/cli/src}/lib/dsn/resolver.ts (100%) rename {src => packages/cli/src}/lib/dsn/scan-options.ts (100%) rename {src => packages/cli/src}/lib/dsn/scanner.ts (100%) rename {src => packages/cli/src}/lib/dsn/types.ts (100%) rename {src => packages/cli/src}/lib/env-registry.ts (100%) rename {src => packages/cli/src}/lib/env-token-host.ts (100%) rename {src => packages/cli/src}/lib/env.ts (100%) rename {src => packages/cli/src}/lib/envelope/checkin-builder.ts (100%) rename {src => packages/cli/src}/lib/envelope/event-builder.ts (100%) rename {src => packages/cli/src}/lib/envelope/transport.ts (100%) rename {src => packages/cli/src}/lib/error-reporting.ts (100%) rename {src => packages/cli/src}/lib/errors.ts (100%) rename {src => packages/cli/src}/lib/formatters/border.ts (100%) rename {src => packages/cli/src}/lib/formatters/colors.ts (100%) rename {src => packages/cli/src}/lib/formatters/dashboard.ts (100%) rename {src => packages/cli/src}/lib/formatters/human.ts (100%) rename {src => packages/cli/src}/lib/formatters/index.ts (100%) rename {src => packages/cli/src}/lib/formatters/json.ts (100%) rename {src => packages/cli/src}/lib/formatters/local.ts (100%) rename {src => packages/cli/src}/lib/formatters/log.ts (100%) rename {src => packages/cli/src}/lib/formatters/markdown.ts (100%) rename {src => packages/cli/src}/lib/formatters/meta-table.ts (100%) rename {src => packages/cli/src}/lib/formatters/numbers.ts (100%) rename {src => packages/cli/src}/lib/formatters/output.ts (100%) rename {src => packages/cli/src}/lib/formatters/plain-detect.ts (100%) rename {src => packages/cli/src}/lib/formatters/replay.ts (100%) rename {src => packages/cli/src}/lib/formatters/seer.ts (100%) rename {src => packages/cli/src}/lib/formatters/semantic-display.ts (100%) rename {src => packages/cli/src}/lib/formatters/sparkline.ts (100%) rename {src => packages/cli/src}/lib/formatters/sql.ts (100%) rename {src => packages/cli/src}/lib/formatters/table.ts (100%) rename {src => packages/cli/src}/lib/formatters/text-table.ts (100%) rename {src => packages/cli/src}/lib/formatters/time-utils.ts (100%) rename {src => packages/cli/src}/lib/formatters/trace.ts (100%) rename {src => packages/cli/src}/lib/fuzzy.ts (100%) rename {src => packages/cli/src}/lib/ghcr.ts (100%) rename {src => packages/cli/src}/lib/git.ts (100%) rename {src => packages/cli/src}/lib/global-flags.ts (100%) rename {src => packages/cli/src}/lib/help.ts (100%) rename {src => packages/cli/src}/lib/hex-id-recovery.ts (100%) rename {src => packages/cli/src}/lib/hex-id.ts (100%) rename {src => packages/cli/src}/lib/ini.ts (100%) rename {src => packages/cli/src}/lib/init/clack-plain.ts (100%) rename {src => packages/cli/src}/lib/init/clack-utils.ts (100%) rename {src => packages/cli/src}/lib/init/constants.ts (100%) rename {src => packages/cli/src}/lib/init/existing-project.ts (100%) rename {src => packages/cli/src}/lib/init/feedback.ts (100%) rename {src => packages/cli/src}/lib/init/formatters.ts (100%) rename {src => packages/cli/src}/lib/init/git.ts (100%) rename {src => packages/cli/src}/lib/init/init-service-auth.ts (100%) rename {src => packages/cli/src}/lib/init/interactive.ts (100%) rename {src => packages/cli/src}/lib/init/org-prefetch.ts (100%) rename {src => packages/cli/src}/lib/init/preflight.ts (100%) rename {src => packages/cli/src}/lib/init/project-creation-errors.ts (100%) rename {src => packages/cli/src}/lib/init/readiness.ts (100%) rename {src => packages/cli/src}/lib/init/replacers.ts (100%) rename {src => packages/cli/src}/lib/init/spinner.ts (100%) rename {src => packages/cli/src}/lib/init/stdin-reopen.ts (100%) rename {src => packages/cli/src}/lib/init/tools/apply-patchset.ts (100%) rename {src => packages/cli/src}/lib/init/tools/command-utils.ts (100%) rename {src => packages/cli/src}/lib/init/tools/create-sentry-project.ts (100%) rename {src => packages/cli/src}/lib/init/tools/detect-sentry.ts (100%) rename {src => packages/cli/src}/lib/init/tools/file-exists-batch.ts (100%) rename {src => packages/cli/src}/lib/init/tools/glob.ts (100%) rename {src => packages/cli/src}/lib/init/tools/grep.ts (100%) rename {src => packages/cli/src}/lib/init/tools/list-dir.ts (100%) rename {src => packages/cli/src}/lib/init/tools/read-files.ts (100%) rename {src => packages/cli/src}/lib/init/tools/registry.ts (100%) rename {src => packages/cli/src}/lib/init/tools/run-commands.ts (100%) rename {src => packages/cli/src}/lib/init/tools/shared.ts (100%) rename {src => packages/cli/src}/lib/init/tools/types.ts (100%) rename {src => packages/cli/src}/lib/init/types.ts (100%) rename {src => packages/cli/src}/lib/init/ui/factory.ts (100%) rename {src => packages/cli/src}/lib/init/ui/file-tree.ts (100%) rename {src => packages/cli/src}/lib/init/ui/ink-app.tsx (100%) rename {src => packages/cli/src}/lib/init/ui/ink-frame.tsx (100%) rename {src => packages/cli/src}/lib/init/ui/ink-report.ts (100%) rename {src => packages/cli/src}/lib/init/ui/ink-shortcuts.tsx (100%) rename {src => packages/cli/src}/lib/init/ui/ink-ui.ts (100%) rename {src => packages/cli/src}/lib/init/ui/learn-content.ts (100%) rename {src => packages/cli/src}/lib/init/ui/logging-ui.ts (100%) rename {src => packages/cli/src}/lib/init/ui/sentry-tips.ts (100%) rename {src => packages/cli/src}/lib/init/ui/types.ts (100%) rename {src => packages/cli/src}/lib/init/ui/wizard-store.ts (100%) rename {src => packages/cli/src}/lib/init/verify-setup.ts (100%) rename {src => packages/cli/src}/lib/init/wizard-runner.ts (100%) rename {src => packages/cli/src}/lib/init/workflow-inputs.ts (100%) rename {src => packages/cli/src}/lib/input-validation.ts (100%) rename {src => packages/cli/src}/lib/interactive-login.ts (100%) rename {src => packages/cli/src}/lib/interactive-prompts.ts (100%) rename {src => packages/cli/src}/lib/introspect.ts (100%) rename {src => packages/cli/src}/lib/issue-id.ts (100%) rename {src => packages/cli/src}/lib/jvm-bundle.ts (100%) rename {src => packages/cli/src}/lib/list-command.ts (100%) rename {src => packages/cli/src}/lib/logger.ts (100%) rename {src => packages/cli/src}/lib/login-host-guard.ts (100%) rename {src => packages/cli/src}/lib/metrics-transform.ts (100%) rename {src => packages/cli/src}/lib/mutate-command.ts (100%) rename {src => packages/cli/src}/lib/oauth.ts (100%) rename {src => packages/cli/src}/lib/objectstore.ts (100%) rename {src => packages/cli/src}/lib/org-list.ts (100%) rename {src => packages/cli/src}/lib/parse-bool.ts (100%) rename {src => packages/cli/src}/lib/patch-cache.ts (100%) rename {src => packages/cli/src}/lib/platforms.ts (100%) rename {src => packages/cli/src}/lib/polling.ts (100%) rename {src => packages/cli/src}/lib/proguard.ts (100%) rename {src => packages/cli/src}/lib/promises.ts (100%) rename {src => packages/cli/src}/lib/qrcode.ts (100%) rename {src => packages/cli/src}/lib/react-native/wrap-call.ts (100%) rename {src => packages/cli/src}/lib/react-native/xcode-env.ts (100%) rename {src => packages/cli/src}/lib/region.ts (100%) rename {src => packages/cli/src}/lib/release-notes.ts (100%) rename {src => packages/cli/src}/lib/replay-search.ts (100%) rename {src => packages/cli/src}/lib/resolve-issue.ts (100%) rename {src => packages/cli/src}/lib/resolve-target.ts (100%) rename {src => packages/cli/src}/lib/resolve-team.ts (100%) rename {src => packages/cli/src}/lib/response-cache.ts (100%) rename {src => packages/cli/src}/lib/retention.ts (100%) rename {src => packages/cli/src}/lib/route-map.ts (100%) rename {src => packages/cli/src}/lib/safe-read.ts (100%) rename {src => packages/cli/src}/lib/scan/binary.ts (100%) rename {src => packages/cli/src}/lib/scan/concurrent.ts (100%) rename {src => packages/cli/src}/lib/scan/constants.ts (100%) rename {src => packages/cli/src}/lib/scan/glob.ts (100%) rename {src => packages/cli/src}/lib/scan/grep-worker-source.ts (100%) rename {src => packages/cli/src}/lib/scan/grep-worker.js (100%) rename {src => packages/cli/src}/lib/scan/grep.ts (100%) rename {src => packages/cli/src}/lib/scan/ignore.ts (100%) rename {src => packages/cli/src}/lib/scan/index.ts (100%) rename {src => packages/cli/src}/lib/scan/literal-extract.ts (100%) rename {src => packages/cli/src}/lib/scan/path-utils.ts (100%) rename {src => packages/cli/src}/lib/scan/regex.ts (100%) rename {src => packages/cli/src}/lib/scan/types.ts (100%) rename {src => packages/cli/src}/lib/scan/walker.ts (100%) rename {src => packages/cli/src}/lib/scan/worker-pool.ts (100%) rename {src => packages/cli/src}/lib/sdk-invoke.ts (100%) rename {src => packages/cli/src}/lib/sdk-types.ts (100%) rename {src => packages/cli/src}/lib/search-query.ts (100%) rename {src => packages/cli/src}/lib/seer-trial.ts (100%) rename {src => packages/cli/src}/lib/sentry-client.ts (100%) rename {src => packages/cli/src}/lib/sentry-url-parser.ts (100%) rename {src => packages/cli/src}/lib/sentry-urls.ts (100%) rename {src => packages/cli/src}/lib/sentryclirc-import.ts (100%) rename {src => packages/cli/src}/lib/sentryclirc.ts (100%) rename {src => packages/cli/src}/lib/shell.ts (100%) rename {src => packages/cli/src}/lib/sixel.ts (100%) rename {src => packages/cli/src}/lib/snapshots/archive.ts (100%) rename {src => packages/cli/src}/lib/snapshots/diff.ts (100%) rename {src => packages/cli/src}/lib/snapshots/images.ts (100%) rename {src => packages/cli/src}/lib/sourcemap/debug-id.ts (100%) rename {src => packages/cli/src}/lib/sourcemap/inject.ts (100%) rename {src => packages/cli/src}/lib/sourcemap/inline-sourcemap.ts (100%) rename {src => packages/cli/src}/lib/sourcemap/zip.ts (100%) rename {src => packages/cli/src}/lib/span-tree.ts (100%) rename {src => packages/cli/src}/lib/telemetry.ts (100%) rename {src => packages/cli/src}/lib/telemetry/zstd-transport.ts (100%) rename {src => packages/cli/src}/lib/time-range.ts (100%) rename {src => packages/cli/src}/lib/token-claims.ts (100%) rename {src => packages/cli/src}/lib/token-host.ts (100%) rename {src => packages/cli/src}/lib/token-type.ts (100%) rename {src => packages/cli/src}/lib/trace-id.ts (100%) rename {src => packages/cli/src}/lib/trace-target.ts (100%) rename {src => packages/cli/src}/lib/trials.ts (100%) rename {src => packages/cli/src}/lib/upgrade.ts (100%) rename {src => packages/cli/src}/lib/utils.ts (100%) rename {src => packages/cli/src}/lib/version-check.ts (100%) rename {src => packages/cli/src}/lib/walk-up.ts (100%) rename {src => packages/cli/src}/lib/which.ts (100%) rename {src => packages/cli/src}/types/config.ts (100%) rename {src => packages/cli/src}/types/dashboard.ts (100%) rename {src => packages/cli/src}/types/index.ts (100%) rename {src => packages/cli/src}/types/oauth.ts (100%) rename {src => packages/cli/src}/types/replay.ts (100%) rename {src => packages/cli/src}/types/seer.ts (100%) rename {src => packages/cli/src}/types/sentry.ts (100%) rename {test => packages/cli/test}/commands/alert/issues/create.test.ts (100%) rename {test => packages/cli/test}/commands/alert/issues/delete.test.ts (100%) rename {test => packages/cli/test}/commands/alert/issues/edit.test.ts (100%) rename {test => packages/cli/test}/commands/alert/issues/list.test.ts (100%) rename {test => packages/cli/test}/commands/alert/issues/view.test.ts (100%) rename {test => packages/cli/test}/commands/alert/metrics/create.test.ts (100%) rename {test => packages/cli/test}/commands/alert/metrics/delete.test.ts (100%) rename {test => packages/cli/test}/commands/alert/metrics/edit.test.ts (100%) rename {test => packages/cli/test}/commands/alert/metrics/list.test.ts (100%) rename {test => packages/cli/test}/commands/alert/metrics/view.test.ts (100%) rename {test => packages/cli/test}/commands/alert/mutation-utils.test.ts (100%) rename {test => packages/cli/test}/commands/alert/rule-resolve.test.ts (100%) rename {test => packages/cli/test}/commands/api.property.test.ts (100%) rename {test => packages/cli/test}/commands/api.test.ts (100%) rename {test => packages/cli/test}/commands/auth/login.test.ts (100%) rename {test => packages/cli/test}/commands/auth/logout.test.ts (100%) rename {test => packages/cli/test}/commands/auth/refresh.test.ts (100%) rename {test => packages/cli/test}/commands/auth/status.test.ts (100%) rename {test => packages/cli/test}/commands/auth/whoami.test.ts (100%) rename {test => packages/cli/test}/commands/bash-hook.test.ts (100%) rename {test => packages/cli/test}/commands/build/download.test.ts (100%) rename {test => packages/cli/test}/commands/build/upload.test.ts (100%) rename {test => packages/cli/test}/commands/cli.test.ts (100%) rename {test => packages/cli/test}/commands/cli/defaults.test.ts (100%) rename {test => packages/cli/test}/commands/cli/fix.test.ts (100%) rename {test => packages/cli/test}/commands/cli/setup.test.ts (100%) rename {test => packages/cli/test}/commands/cli/uninstall.test.ts (100%) rename {test => packages/cli/test}/commands/cli/upgrade.test.ts (100%) rename {test => packages/cli/test}/commands/code-mappings/upload.test.ts (100%) rename {test => packages/cli/test}/commands/dart-symbol-map/upload.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/create.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/list.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/resolve.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/restore.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/revisions.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/widget/add.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/widget/delete.test.ts (100%) rename {test => packages/cli/test}/commands/dashboard/widget/edit.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/bundle-jvm.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/bundle-sources.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/check.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/find.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/print-sources.test.ts (100%) rename {test => packages/cli/test}/commands/debug-files/upload.test.ts (100%) rename {test => packages/cli/test}/commands/event/list.func.test.ts (100%) rename {test => packages/cli/test}/commands/event/send.test.ts (100%) rename {test => packages/cli/test}/commands/event/view.test.ts (100%) rename {test => packages/cli/test}/commands/explore.test.ts (100%) rename {test => packages/cli/test}/commands/help.test.ts (100%) rename {test => packages/cli/test}/commands/info.test.ts (100%) rename {test => packages/cli/test}/commands/init.test.ts (100%) rename {test => packages/cli/test}/commands/issue/archive.func.test.ts (100%) rename {test => packages/cli/test}/commands/issue/events.func.test.ts (100%) rename {test => packages/cli/test}/commands/issue/list.property.test.ts (100%) rename {test => packages/cli/test}/commands/issue/list.test.ts (100%) rename {test => packages/cli/test}/commands/issue/merge.func.test.ts (100%) rename {test => packages/cli/test}/commands/issue/resolve-commit-spec.test.ts (100%) rename {test => packages/cli/test}/commands/issue/resolve.func.test.ts (100%) rename {test => packages/cli/test}/commands/issue/utils.test.ts (100%) rename {test => packages/cli/test}/commands/issue/view.func.test.ts (100%) rename {test => packages/cli/test}/commands/local/run.test.ts (100%) rename {test => packages/cli/test}/commands/local/server.test.ts (100%) rename {test => packages/cli/test}/commands/log/list.test.ts (100%) rename {test => packages/cli/test}/commands/log/view.func.test.ts (100%) rename {test => packages/cli/test}/commands/log/view.property.test.ts (100%) rename {test => packages/cli/test}/commands/log/view.test.ts (100%) rename {test => packages/cli/test}/commands/monitor/run.test.ts (100%) rename {test => packages/cli/test}/commands/proguard/upload.test.ts (100%) rename {test => packages/cli/test}/commands/project/create.test.ts (100%) rename {test => packages/cli/test}/commands/project/delete.test.ts (100%) rename {test => packages/cli/test}/commands/project/list.test.ts (100%) rename {test => packages/cli/test}/commands/project/view.func.test.ts (100%) rename {test => packages/cli/test}/commands/react-native/gradle.test.ts (100%) rename {test => packages/cli/test}/commands/react-native/xcode.test.ts (100%) rename {test => packages/cli/test}/commands/release/archive.test.ts (100%) rename {test => packages/cli/test}/commands/release/create.test.ts (100%) rename {test => packages/cli/test}/commands/release/delete.test.ts (100%) rename {test => packages/cli/test}/commands/release/deploy.test.ts (100%) rename {test => packages/cli/test}/commands/release/finalize.test.ts (100%) rename {test => packages/cli/test}/commands/release/propose-version.test.ts (100%) rename {test => packages/cli/test}/commands/release/set-commits.test.ts (100%) rename {test => packages/cli/test}/commands/release/view.test.ts (100%) rename {test => packages/cli/test}/commands/replay/list.test.ts (100%) rename {test => packages/cli/test}/commands/replay/view.test.ts (100%) rename {test => packages/cli/test}/commands/repo/list.test.ts (100%) rename {test => packages/cli/test}/commands/send-envelope.test.ts (100%) rename {test => packages/cli/test}/commands/snapshots/diff.test.ts (100%) rename {test => packages/cli/test}/commands/snapshots/download.test.ts (100%) rename {test => packages/cli/test}/commands/snapshots/upload.test.ts (100%) rename {test => packages/cli/test}/commands/sourcemap/upload.test.ts (100%) rename {test => packages/cli/test}/commands/span/list.test.ts (100%) rename {test => packages/cli/test}/commands/span/view.test.ts (100%) rename {test => packages/cli/test}/commands/team/list.test.ts (100%) rename {test => packages/cli/test}/commands/trace/list.test.ts (100%) rename {test => packages/cli/test}/commands/trace/logs.test.ts (100%) rename {test => packages/cli/test}/commands/trace/view.func.test.ts (100%) rename {test => packages/cli/test}/commands/trace/view.property.test.ts (100%) rename {test => packages/cli/test}/commands/trace/view.test.ts (100%) rename {test => packages/cli/test}/commands/trial/list.test.ts (100%) rename {test => packages/cli/test}/commands/trial/start.test.ts (100%) rename {test => packages/cli/test}/constants.ts (100%) rename {test => packages/cli/test}/e2e/api.test.ts (100%) rename {test => packages/cli/test}/e2e/auth.test.ts (100%) rename {test => packages/cli/test}/e2e/bundle-setup.ts (100%) rename {test => packages/cli/test}/e2e/bundle.test.ts (100%) rename {test => packages/cli/test}/e2e/completion.test.ts (100%) rename {test => packages/cli/test}/e2e/delta-upgrade.test.ts (100%) rename {test => packages/cli/test}/e2e/event.test.ts (100%) rename {test => packages/cli/test}/e2e/issue.test.ts (100%) rename {test => packages/cli/test}/e2e/library.test.ts (100%) rename {test => packages/cli/test}/e2e/log.test.ts (100%) rename {test => packages/cli/test}/e2e/multiregion.test.ts (100%) rename {test => packages/cli/test}/e2e/project.test.ts (100%) rename {test => packages/cli/test}/e2e/skill-eval.test.ts (100%) rename {test => packages/cli/test}/e2e/telemetry-exit.test.ts (100%) rename {test => packages/cli/test}/e2e/trace.test.ts (100%) rename {test => packages/cli/test}/fixture.ts (100%) rename {test => packages/cli/test}/fixtures/bench/generate.ts (100%) rename {test => packages/cli/test}/fixtures/bench/helpers.ts (100%) rename {test => packages/cli/test}/fixtures/bench/presets.ts (100%) rename {test => packages/cli/test}/fixtures/dif/embedded-ppdb.dll (100%) rename {test => packages/cli/test}/fixtures/dif/pe-no-ppdb.dll (100%) rename {test => packages/cli/test}/fixtures/errors/method-not-allowed.json (100%) rename {test => packages/cli/test}/fixtures/errors/not-found.json (100%) rename {test => packages/cli/test}/fixtures/errors/unauthorized.json (100%) rename {test => packages/cli/test}/fixtures/event.json (100%) rename {test => packages/cli/test}/fixtures/issue.json (100%) rename {test => packages/cli/test}/fixtures/issues.json (100%) rename {test => packages/cli/test}/fixtures/log-detail.json (100%) rename {test => packages/cli/test}/fixtures/logs.json (100%) rename {test => packages/cli/test}/fixtures/organization.json (100%) rename {test => packages/cli/test}/fixtures/organizations.json (100%) rename {test => packages/cli/test}/fixtures/patches/large-new.bin (100%) rename {test => packages/cli/test}/fixtures/patches/large-old.bin (100%) rename {test => packages/cli/test}/fixtures/patches/large.trdiff10 (100%) rename {test => packages/cli/test}/fixtures/patches/small-new.bin (100%) rename {test => packages/cli/test}/fixtures/patches/small-old.bin (100%) rename {test => packages/cli/test}/fixtures/patches/small.trdiff10 (100%) rename {test => packages/cli/test}/fixtures/project.json (100%) rename {test => packages/cli/test}/fixtures/projects.json (100%) rename {test => packages/cli/test}/fixtures/regions/eu/issues.json (100%) rename {test => packages/cli/test}/fixtures/regions/eu/organizations.json (100%) rename {test => packages/cli/test}/fixtures/regions/eu/projects.json (100%) rename {test => packages/cli/test}/fixtures/regions/us/issues.json (100%) rename {test => packages/cli/test}/fixtures/regions/us/organizations.json (100%) rename {test => packages/cli/test}/fixtures/regions/us/projects.json (100%) rename {test => packages/cli/test}/fixtures/trace-spans.json (100%) rename {test => packages/cli/test}/fixtures/transactions.json (100%) rename {test => packages/cli/test}/fixtures/user.json (100%) rename {test => packages/cli/test}/helpers.ts (100%) rename {test => packages/cli/test}/init-eval/express.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/feature-docs.json (100%) rename {test => packages/cli/test}/init-eval/helpers/assertions.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/create-eval-suite.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/docs-fetcher.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/judge.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/platforms.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/run-wizard.ts (100%) rename {test => packages/cli/test}/init-eval/helpers/test-env.ts (100%) rename {test => packages/cli/test}/init-eval/nextjs.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/python-fastapi.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/python-flask.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/react-vite.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/sveltekit.eval.test.ts (100%) rename {test => packages/cli/test}/init-eval/templates/express-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/express-app/package.json (100%) rename {test => packages/cli/test}/init-eval/templates/express-app/src/index.ts (100%) rename {test => packages/cli/test}/init-eval/templates/express-app/tsconfig.json (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/next.config.ts (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/package.json (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/src/app/layout.tsx (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/src/app/page.tsx (100%) rename {test => packages/cli/test}/init-eval/templates/nextjs-app/tsconfig.json (100%) rename {test => packages/cli/test}/init-eval/templates/python-fastapi-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/python-fastapi-app/main.py (100%) rename {test => packages/cli/test}/init-eval/templates/python-fastapi-app/requirements.txt (100%) rename {test => packages/cli/test}/init-eval/templates/python-flask-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/python-flask-app/app.py (100%) rename {test => packages/cli/test}/init-eval/templates/python-flask-app/requirements.txt (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/index.html (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/package.json (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/src/app.tsx (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/src/main.tsx (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/tsconfig.json (100%) rename {test => packages/cli/test}/init-eval/templates/react-vite-app/vite.config.ts (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/.gitignore (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/package.json (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/src/app.d.ts (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/src/app.html (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/src/routes/+page.svelte (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/svelte.config.js (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/tsconfig.json (100%) rename {test => packages/cli/test}/init-eval/templates/sveltekit-app/vite.config.ts (100%) rename {test => packages/cli/test}/lib/agent-skills.test.ts (100%) rename {test => packages/cli/test}/lib/alias.property.test.ts (100%) rename {test => packages/cli/test}/lib/alias.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.coverage.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.multiregion.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.normalize-trace-span.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.property.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.seer-trial.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.seer.test.ts (100%) rename {test => packages/cli/test}/lib/api-client.test.ts (100%) rename {test => packages/cli/test}/lib/api-schema.test.ts (100%) rename {test => packages/cli/test}/lib/api-scope.test.ts (100%) rename {test => packages/cli/test}/lib/api/alerts.test.ts (100%) rename {test => packages/cli/test}/lib/api/chunk-upload.test.ts (100%) rename {test => packages/cli/test}/lib/api/dashboards.test.ts (100%) rename {test => packages/cli/test}/lib/api/debug-files.test.ts (100%) rename {test => packages/cli/test}/lib/api/discover.test.ts (100%) rename {test => packages/cli/test}/lib/api/events-overshoot.test.ts (100%) rename {test => packages/cli/test}/lib/api/infrastructure.test.ts (100%) rename {test => packages/cli/test}/lib/api/issues.test.ts (100%) rename {test => packages/cli/test}/lib/api/logs.test.ts (100%) rename {test => packages/cli/test}/lib/api/monitors.test.ts (100%) rename {test => packages/cli/test}/lib/api/organizations.test.ts (100%) rename {test => packages/cli/test}/lib/api/preprod-artifacts.test.ts (100%) rename {test => packages/cli/test}/lib/api/proguard.test.ts (100%) rename {test => packages/cli/test}/lib/api/projects.test.ts (100%) rename {test => packages/cli/test}/lib/api/releases.test.ts (100%) rename {test => packages/cli/test}/lib/api/replays.test.ts (100%) rename {test => packages/cli/test}/lib/api/repositories.test.ts (100%) rename {test => packages/cli/test}/lib/api/sourcemaps.test.ts (100%) rename {test => packages/cli/test}/lib/api/traces.test.ts (100%) rename {test => packages/cli/test}/lib/arg-parsing.property.test.ts (100%) rename {test => packages/cli/test}/lib/arg-parsing.test.ts (100%) rename {test => packages/cli/test}/lib/argv-hoist.property.test.ts (100%) rename {test => packages/cli/test}/lib/argv-hoist.test.ts (100%) rename {test => packages/cli/test}/lib/async-channel.test.ts (100%) rename {test => packages/cli/test}/lib/auth-hint.test.ts (100%) rename {test => packages/cli/test}/lib/auto-auth.test.ts (100%) rename {test => packages/cli/test}/lib/auto-paginate.property.test.ts (100%) rename {test => packages/cli/test}/lib/bash-hook/traceback.test.ts (100%) rename {test => packages/cli/test}/lib/bench/generate.test.ts (100%) rename {test => packages/cli/test}/lib/bench/helpers.test.ts (100%) rename {test => packages/cli/test}/lib/binary.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/binary.test.ts (100%) rename {test => packages/cli/test}/lib/bspatch.property.test.ts (100%) rename {test => packages/cli/test}/lib/bspatch.test.ts (100%) rename {test => packages/cli/test}/lib/build/index.test.ts (100%) rename {test => packages/cli/test}/lib/build/vcs.test.ts (100%) rename {test => packages/cli/test}/lib/cache-hint.test.ts (100%) rename {test => packages/cli/test}/lib/cache-keys.test.ts (100%) rename {test => packages/cli/test}/lib/checkin-builder.property.test.ts (100%) rename {test => packages/cli/test}/lib/command-suggestions.test.ts (100%) rename {test => packages/cli/test}/lib/command.test.ts (100%) rename {test => packages/cli/test}/lib/complete.test.ts (100%) rename {test => packages/cli/test}/lib/completions.property.test.ts (100%) rename {test => packages/cli/test}/lib/completions.test.ts (100%) rename {test => packages/cli/test}/lib/config.test.ts (100%) rename {test => packages/cli/test}/lib/constants.property.test.ts (100%) rename {test => packages/cli/test}/lib/constants.test.ts (100%) rename {test => packages/cli/test}/lib/custom-ca.test.ts (100%) rename {test => packages/cli/test}/lib/custom-headers.property.test.ts (100%) rename {test => packages/cli/test}/lib/custom-headers.test.ts (100%) rename {test => packages/cli/test}/lib/db/auth.host.test.ts (100%) rename {test => packages/cli/test}/lib/db/auth.property.test.ts (100%) rename {test => packages/cli/test}/lib/db/auth.test.ts (100%) rename {test => packages/cli/test}/lib/db/cache-corruption.test.ts (100%) rename {test => packages/cli/test}/lib/db/concurrent-worker.ts (100%) rename {test => packages/cli/test}/lib/db/concurrent.test.ts (100%) rename {test => packages/cli/test}/lib/db/dsn-cache.model-based.test.ts (100%) rename {test => packages/cli/test}/lib/db/dsn-cache.test.ts (100%) rename {test => packages/cli/test}/lib/db/install-info.test.ts (100%) rename {test => packages/cli/test}/lib/db/issue-org-cache.test.ts (100%) rename {test => packages/cli/test}/lib/db/json.test.ts (100%) rename {test => packages/cli/test}/lib/db/model-based.test.ts (100%) rename {test => packages/cli/test}/lib/db/pagination.model-based.test.ts (100%) rename {test => packages/cli/test}/lib/db/pagination.test.ts (100%) rename {test => packages/cli/test}/lib/db/project-cache.test.ts (100%) rename {test => packages/cli/test}/lib/db/project-root-cache.test.ts (100%) rename {test => packages/cli/test}/lib/db/release-channel.test.ts (100%) rename {test => packages/cli/test}/lib/db/repo-cache.test.ts (100%) rename {test => packages/cli/test}/lib/db/schema.test.ts (100%) rename {test => packages/cli/test}/lib/db/user.test.ts (100%) rename {test => packages/cli/test}/lib/db/utils.test.ts (100%) rename {test => packages/cli/test}/lib/delta-upgrade.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/delta-upgrade.test.ts (100%) rename {test => packages/cli/test}/lib/detect-agent.property.test.ts (100%) rename {test => packages/cli/test}/lib/detect-agent.test.ts (100%) rename {test => packages/cli/test}/lib/dev-script.property.test.ts (100%) rename {test => packages/cli/test}/lib/dev-script.test.ts (100%) rename {test => packages/cli/test}/lib/dif/embedded-ppdb.test.ts (100%) rename {test => packages/cli/test}/lib/dif/find.test.ts (100%) rename {test => packages/cli/test}/lib/dif/il2cpp.test.ts (100%) rename {test => packages/cli/test}/lib/dif/index.test.ts (100%) rename {test => packages/cli/test}/lib/dif/scan.property.test.ts (100%) rename {test => packages/cli/test}/lib/dif/scan.test.ts (100%) rename {test => packages/cli/test}/lib/dif/zip.test.ts (100%) rename {test => packages/cli/test}/lib/dsn.property.test.ts (100%) rename {test => packages/cli/test}/lib/dsn.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/cache.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/code-scanner.property.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/code-scanner.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/detector.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/env-file.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/env.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/errors.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/fifo-safety.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/fs-utils.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/project-root.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/resolver.test.ts (100%) rename {test => packages/cli/test}/lib/dsn/scan-options.test.ts (100%) rename {test => packages/cli/test}/lib/env-token-host.test.ts (100%) rename {test => packages/cli/test}/lib/env.test.ts (100%) rename {test => packages/cli/test}/lib/envelope/event-builder.test.ts (100%) rename {test => packages/cli/test}/lib/envelope/transport.test.ts (100%) rename {test => packages/cli/test}/lib/error-reporting.property.test.ts (100%) rename {test => packages/cli/test}/lib/error-reporting.test.ts (100%) rename {test => packages/cli/test}/lib/errors.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/auto-compact.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/colors.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/dashboard.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/human.details.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/human.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/human.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/human.utils.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/json.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/json.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/local.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/local.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/log.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/log.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/markdown.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/output.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/seer.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/semantic-display.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/span-tree.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/sparkline.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/sql.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/sql.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/table.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/text-table.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/trace.property.test.ts (100%) rename {test => packages/cli/test}/lib/formatters/trace.test.ts (100%) rename {test => packages/cli/test}/lib/fuzzy.test.ts (100%) rename {test => packages/cli/test}/lib/ghcr.test.ts (100%) rename {test => packages/cli/test}/lib/git-commit-log.test.ts (100%) rename {test => packages/cli/test}/lib/git.property.test.ts (100%) rename {test => packages/cli/test}/lib/help-positional.test.ts (100%) rename {test => packages/cli/test}/lib/help.test.ts (100%) rename {test => packages/cli/test}/lib/hex-id-recovery.adapters.test.ts (100%) rename {test => packages/cli/test}/lib/hex-id-recovery.property.test.ts (100%) rename {test => packages/cli/test}/lib/hex-id-recovery.test.ts (100%) rename {test => packages/cli/test}/lib/hex-id.test.ts (100%) rename {test => packages/cli/test}/lib/index.test.ts (100%) rename {test => packages/cli/test}/lib/ini.property.test.ts (100%) rename {test => packages/cli/test}/lib/ini.test.ts (100%) rename {test => packages/cli/test}/lib/init/clack-plain.test.ts (100%) rename {test => packages/cli/test}/lib/init/clack-utils.test.ts (100%) rename {test => packages/cli/test}/lib/init/feedback.test.ts (100%) rename {test => packages/cli/test}/lib/init/formatters.test.ts (100%) rename {test => packages/cli/test}/lib/init/git.test.ts (100%) rename {test => packages/cli/test}/lib/init/interactive.test.ts (100%) rename {test => packages/cli/test}/lib/init/preflight.test.ts (100%) rename {test => packages/cli/test}/lib/init/readiness.test.ts (100%) rename {test => packages/cli/test}/lib/init/replacers.test.ts (100%) rename {test => packages/cli/test}/lib/init/spinner.test.ts (100%) rename {test => packages/cli/test}/lib/init/stdin-reopen.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/create-sentry-project.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/filesystem-tools.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/list-dir.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/registry.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/run-commands-spawn.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/run-commands.test.ts (100%) rename {test => packages/cli/test}/lib/init/tools/search-tools.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/factory.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/file-tree.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/ink-app.snapshot.test.tsx (100%) rename {test => packages/cli/test}/lib/init/ui/ink-frame.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/ink-report.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/ink-shortcuts.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/logging-ui.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/mock-ui.ts (100%) rename {test => packages/cli/test}/lib/init/ui/types.test.ts (100%) rename {test => packages/cli/test}/lib/init/ui/wizard-store.test.ts (100%) rename {test => packages/cli/test}/lib/init/wizard-runner.test.ts (100%) rename {test => packages/cli/test}/lib/input-validation.property.test.ts (100%) rename {test => packages/cli/test}/lib/install-script.test.ts (100%) rename {test => packages/cli/test}/lib/interactive-login.test.ts (100%) rename {test => packages/cli/test}/lib/interactive-prompts.test.ts (100%) rename {test => packages/cli/test}/lib/introspect.property.test.ts (100%) rename {test => packages/cli/test}/lib/introspect.test.ts (100%) rename {test => packages/cli/test}/lib/issue-collapse.property.test.ts (100%) rename {test => packages/cli/test}/lib/issue-id.property.test.ts (100%) rename {test => packages/cli/test}/lib/issue-id.test.ts (100%) rename {test => packages/cli/test}/lib/jvm-bundle.test.ts (100%) rename {test => packages/cli/test}/lib/list-command.test.ts (100%) rename {test => packages/cli/test}/lib/logger.test.ts (100%) rename {test => packages/cli/test}/lib/metrics-transform.test.ts (100%) rename {test => packages/cli/test}/lib/mutate-command.test.ts (100%) rename {test => packages/cli/test}/lib/node-polyfills-file-stat.test.ts (100%) rename {test => packages/cli/test}/lib/oauth.test.ts (100%) rename {test => packages/cli/test}/lib/objectstore.test.ts (100%) rename {test => packages/cli/test}/lib/org-list.test.ts (100%) rename {test => packages/cli/test}/lib/parse-bool.property.test.ts (100%) rename {test => packages/cli/test}/lib/patch-cache.test.ts (100%) rename {test => packages/cli/test}/lib/platforms.test.ts (100%) rename {test => packages/cli/test}/lib/polling.property.test.ts (100%) rename {test => packages/cli/test}/lib/proguard.property.test.ts (100%) rename {test => packages/cli/test}/lib/promises.property.test.ts (100%) rename {test => packages/cli/test}/lib/promises.test.ts (100%) rename {test => packages/cli/test}/lib/react-native/wrap-call.test.ts (100%) rename {test => packages/cli/test}/lib/react-native/xcode-env.test.ts (100%) rename {test => packages/cli/test}/lib/region.test.ts (100%) rename {test => packages/cli/test}/lib/release-notes.property.test.ts (100%) rename {test => packages/cli/test}/lib/release-notes.test.ts (100%) rename {test => packages/cli/test}/lib/release-parse.property.test.ts (100%) rename {test => packages/cli/test}/lib/replay-duration.test.ts (100%) rename {test => packages/cli/test}/lib/replay-search.test.ts (100%) rename {test => packages/cli/test}/lib/resolve-effective-org.test.ts (100%) rename {test => packages/cli/test}/lib/resolve-target-listing.test.ts (100%) rename {test => packages/cli/test}/lib/resolve-target.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/resolve-target.test.ts (100%) rename {test => packages/cli/test}/lib/resolve-team.test.ts (100%) rename {test => packages/cli/test}/lib/response-cache.property.test.ts (100%) rename {test => packages/cli/test}/lib/response-cache.test.ts (100%) rename {test => packages/cli/test}/lib/route-subcommands.test.ts (100%) rename {test => packages/cli/test}/lib/run-commands.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/safe-read.test.ts (100%) rename {test => packages/cli/test}/lib/scan/binary.property.test.ts (100%) rename {test => packages/cli/test}/lib/scan/binary.test.ts (100%) rename {test => packages/cli/test}/lib/scan/concurrent.test.ts (100%) rename {test => packages/cli/test}/lib/scan/constants.property.test.ts (100%) rename {test => packages/cli/test}/lib/scan/glob.test.ts (100%) rename {test => packages/cli/test}/lib/scan/grep.property.test.ts (100%) rename {test => packages/cli/test}/lib/scan/grep.test.ts (100%) rename {test => packages/cli/test}/lib/scan/ignore.property.test.ts (100%) rename {test => packages/cli/test}/lib/scan/ignore.test.ts (100%) rename {test => packages/cli/test}/lib/scan/literal-extract.test.ts (100%) rename {test => packages/cli/test}/lib/scan/regex.test.ts (100%) rename {test => packages/cli/test}/lib/scan/walker.property.test.ts (100%) rename {test => packages/cli/test}/lib/scan/walker.test.ts (100%) rename {test => packages/cli/test}/lib/sdk-invoke.test.ts (100%) rename {test => packages/cli/test}/lib/search-query.property.test.ts (100%) rename {test => packages/cli/test}/lib/search-query.test.ts (100%) rename {test => packages/cli/test}/lib/security/auto-login-host-guard.test.ts (100%) rename {test => packages/cli/test}/lib/security/custom-headers-leak.test.ts (100%) rename {test => packages/cli/test}/lib/security/fetch-layer-guard.test.ts (100%) rename {test => packages/cli/test}/lib/security/login-token-rc-poison.test.ts (100%) rename {test => packages/cli/test}/lib/security/refresh-token-poison.test.ts (100%) rename {test => packages/cli/test}/lib/security/sentryclirc-url-poison.test.ts (100%) rename {test => packages/cli/test}/lib/security/sntrys-claim-mismatch.test.ts (100%) rename {test => packages/cli/test}/lib/security/url-arg-poison.test.ts (100%) rename {test => packages/cli/test}/lib/seer-trial.test.ts (100%) rename {test => packages/cli/test}/lib/sentry-client.invalidation.test.ts (100%) rename {test => packages/cli/test}/lib/sentry-client.test.ts (100%) rename {test => packages/cli/test}/lib/sentry-url-parser.property.test.ts (100%) rename {test => packages/cli/test}/lib/sentry-url-parser.test.ts (100%) rename {test => packages/cli/test}/lib/sentry-urls.property.test.ts (100%) rename {test => packages/cli/test}/lib/sentryclirc-import.property.test.ts (100%) rename {test => packages/cli/test}/lib/sentryclirc-import.test.ts (100%) rename {test => packages/cli/test}/lib/sentryclirc.property.test.ts (100%) rename {test => packages/cli/test}/lib/sentryclirc.test.ts (100%) rename {test => packages/cli/test}/lib/shell.property.test.ts (100%) rename {test => packages/cli/test}/lib/shell.test.ts (100%) rename {test => packages/cli/test}/lib/sixel.test.ts (100%) rename {test => packages/cli/test}/lib/snapshots/archive.test.ts (100%) rename {test => packages/cli/test}/lib/snapshots/diff.test.ts (100%) rename {test => packages/cli/test}/lib/snapshots/images.test.ts (100%) rename {test => packages/cli/test}/lib/sourcemap/directive.test.ts (100%) rename {test => packages/cli/test}/lib/sourcemap/inject.test.ts (100%) rename {test => packages/cli/test}/lib/sourcemap/inline-sourcemap.test.ts (100%) rename {test => packages/cli/test}/lib/sourcemap/resolve.test.ts (100%) rename {test => packages/cli/test}/lib/sourcemap/zip.test.ts (100%) rename {test => packages/cli/test}/lib/telemetry-session.test.ts (100%) rename {test => packages/cli/test}/lib/telemetry.test.ts (100%) rename {test => packages/cli/test}/lib/telemetry/zstd-transport.e2e.test.ts (100%) rename {test => packages/cli/test}/lib/telemetry/zstd-transport.property.test.ts (100%) rename {test => packages/cli/test}/lib/telemetry/zstd-transport.test.ts (100%) rename {test => packages/cli/test}/lib/time-range.property.test.ts (100%) rename {test => packages/cli/test}/lib/time-range.test.ts (100%) rename {test => packages/cli/test}/lib/token-claims.property.test.ts (100%) rename {test => packages/cli/test}/lib/token-claims.test.ts (100%) rename {test => packages/cli/test}/lib/token-host.property.test.ts (100%) rename {test => packages/cli/test}/lib/token-host.test.ts (100%) rename {test => packages/cli/test}/lib/token-type.property.test.ts (100%) rename {test => packages/cli/test}/lib/trace-id.test.ts (100%) rename {test => packages/cli/test}/lib/trace-log-schema.property.test.ts (100%) rename {test => packages/cli/test}/lib/trace-target.test.ts (100%) rename {test => packages/cli/test}/lib/trials.test.ts (100%) rename {test => packages/cli/test}/lib/upgrade.test.ts (100%) rename {test => packages/cli/test}/lib/utils.property.test.ts (100%) rename {test => packages/cli/test}/lib/utils.test.ts (100%) rename {test => packages/cli/test}/lib/version-check.test.ts (100%) rename {test => packages/cli/test}/lib/wizard-runner-handle-final-result.mocked.test.ts (100%) rename {test => packages/cli/test}/lib/word-boundary.property.test.ts (100%) rename {test => packages/cli/test}/mocks/multiregion.ts (100%) rename {test => packages/cli/test}/mocks/routes.ts (100%) rename {test => packages/cli/test}/mocks/server.ts (100%) rename {test => packages/cli/test}/model-based/helpers.ts (100%) rename {test => packages/cli/test}/package.test.ts (100%) rename {test => packages/cli/test}/preload.ts (100%) rename {test => packages/cli/test}/script/debug-id.test.ts (100%) rename {test => packages/cli/test}/script/node-polyfills.test.ts (100%) rename {test => packages/cli/test}/script/text-import-plugin.test.ts (100%) rename {test => packages/cli/test}/skill-eval/cases.json (100%) rename {test => packages/cli/test}/skill-eval/helpers/judge.ts (100%) rename {test => packages/cli/test}/skill-eval/helpers/llm-client.ts (100%) rename {test => packages/cli/test}/skill-eval/helpers/planner.ts (100%) rename {test => packages/cli/test}/skill-eval/helpers/report.ts (100%) rename {test => packages/cli/test}/skill-eval/helpers/types.ts (100%) rename {test => packages/cli/test}/skill-eval/helpers/verify.ts (100%) rename {test => packages/cli/test}/types/dashboard.property.test.ts (100%) rename {test => packages/cli/test}/types/dashboard.test.ts (100%) rename {test => packages/cli/test}/types/oauth.test.ts (100%) rename {test => packages/cli/test}/types/seer.test.ts (100%) rename {test => packages/cli/test}/vitest.d.ts (100%) rename tsconfig.json => packages/cli/tsconfig.json (100%) rename vitest.config.ts => packages/cli/vitest.config.ts (100%) rename warden.toml => packages/cli/warden.toml (100%) create mode 100644 pnpm-workspace.yaml diff --git a/.craft.yml b/.craft.yml index ffac3629a8..692ccd3bba 100644 --- a/.craft.yml +++ b/.craft.yml @@ -3,8 +3,8 @@ changelog: policy: auto versioning: policy: auto -preReleaseCommand: node --experimental-strip-types script/bump-version.ts --pre -postReleaseCommand: node --experimental-strip-types script/bump-version.ts --post +preReleaseCommand: bash -c 'cd packages/cli && node --experimental-strip-types script/bump-version.ts --pre' +postReleaseCommand: bash -c 'cd packages/cli && node --experimental-strip-types script/bump-version.ts --post' artifactProvider: name: github config: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c2a3520547..43f1ef61b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,24 +61,24 @@ jobs: with: filters: | skill: - - 'src/**' - - 'docs/**' - - 'package.json' - - 'README.md' - - 'DEVELOPMENT.md' - - 'script/generate-skill.ts' - - 'script/generate-command-docs.ts' - - 'script/generate-docs-sections.ts' - - 'script/eval-skill.ts' - - 'test/skill-eval/**' + - 'packages/cli/src/**' + - 'apps/cli-docs/**' + - 'packages/cli/package.json' + - 'packages/cli/README.md' + - 'packages/cli/DEVELOPMENT.md' + - 'packages/cli/script/generate-skill.ts' + - 'packages/cli/script/generate-command-docs.ts' + - 'packages/cli/script/generate-docs-sections.ts' + - 'packages/cli/script/eval-skill.ts' + - 'packages/cli/test/skill-eval/**' code: - - 'src/**' - - 'test/**' - - 'script/**' - - 'patches/**' - - 'docs/**' - - 'plugins/**' - - 'package.json' + - 'packages/cli/src/**' + - 'packages/cli/test/**' + - 'packages/cli/script/**' + - 'packages/cli/patches/**' + - 'apps/cli-docs/**' + - 'packages/cli/plugins/**' + - 'packages/cli/package.json' - 'pnpm-lock.yaml' - '.github/workflows/ci.yml' codemod: @@ -113,7 +113,7 @@ jobs: if: github.ref == 'refs/heads/main' && github.event_name == 'push' run: | TS=$(date -d "$COMMIT_TIMESTAMP" +%s) - CURRENT=$(jq -r .version package.json) + CURRENT=$(jq -r .version packages/cli/package.json) VERSION=$(echo "$CURRENT" | sed "s/-dev\.[0-9]*$/-dev.${TS}/") echo "version=${VERSION}" >> "$GITHUB_OUTPUT" echo "Nightly version: ${VERSION}" @@ -163,8 +163,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - name: Generate API Schema @@ -218,8 +221,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - run: pnpm run generate:schema @@ -249,8 +255,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - name: Generate API Schema @@ -284,8 +293,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ matrix.os }}-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ matrix.os }}-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' shell: bash @@ -331,8 +343,8 @@ jobs: if: needs.changes.outputs.nightly-version != '' shell: bash run: | - jq --arg v "${{ needs.changes.outputs.nightly-version }}" '.version = $v' package.json > package.json.tmp - mv package.json.tmp package.json + jq --arg v "${{ needs.changes.outputs.nightly-version }}" '.version = $v' packages/cli/package.json > packages/cli/package.json.tmp + mv packages/cli/package.json.tmp packages/cli/package.json - name: Build env: # Environment-scoped (production) β€” must be set at step level to @@ -351,9 +363,9 @@ jobs: shell: bash run: | if [[ "${{ matrix.target }}" == "windows-x64" ]]; then - ./dist-bin/sentry-windows-x64.exe --help + ./packages/cli/dist-bin/sentry-windows-x64.exe --help else - ./dist-bin/sentry-${{ matrix.target }} --help + ./packages/cli/dist-bin/sentry-${{ matrix.target }} --help fi - name: Smoke test (deep β€” SQLite, telemetry, auth DB) if: matrix.can-test @@ -363,9 +375,9 @@ jobs: SENTRY_TOKEN: "" run: | if [[ "${{ matrix.target }}" == "windows-x64" ]]; then - BIN=./dist-bin/sentry-windows-x64.exe + BIN=./packages/cli/dist-bin/sentry-windows-x64.exe else - BIN=./dist-bin/sentry-${{ matrix.target }} + BIN=./packages/cli/dist-bin/sentry-${{ matrix.target }} fi # auth status without a token exercises SQLite init, schema # migrations, telemetry lazy import, and the CJS require chain. @@ -391,7 +403,7 @@ jobs: (github.ref_name == 'main' || startsWith(github.ref_name, 'release/')) shell: bash run: | - BIN=./dist-bin/sentry-${{ matrix.target }} + BIN=./packages/cli/dist-bin/sentry-${{ matrix.target }} echo "Verifying code signature on $BIN..." rcodesign verify "$BIN" - name: Upload binary artifact @@ -399,15 +411,15 @@ jobs: with: name: sentry-${{ matrix.target }} path: | - dist-bin/sentry-* - !dist-bin/*.gz + packages/cli/dist-bin/sentry-* + !packages/cli/dist-bin/*.gz - name: Upload compressed artifact if: github.event_name != 'pull_request' uses: actions/upload-artifact@v7 with: name: sentry-${{ matrix.target }}-gz - path: dist-bin/*.gz + path: packages/cli/dist-bin/*.gz generate-patches: name: Generate Delta Patches @@ -748,8 +760,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - name: Download Linux binary @@ -790,8 +805,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - name: Bundle @@ -800,7 +818,7 @@ jobs: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} run: pnpm run bundle - name: Smoke test (Node.js) - run: node dist/bin.cjs --help + run: node packages/cli/dist/bin.cjs --help - name: Smoke test (Node.js β€” deep) shell: bash env: @@ -810,7 +828,7 @@ jobs: # auth status without a token exercises SQLite init, schema # migrations, telemetry lazy import, and the CJS require chain. # Expected: exit 10 (AUTH_NOT_AUTHENTICATED), NOT a crash/syntax error. - OUTPUT=$(node dist/bin.cjs auth status 2>&1) && EXIT_CODE=$? || EXIT_CODE=$? + OUTPUT=$(node packages/cli/dist/bin.cjs auth status 2>&1) && EXIT_CODE=$? || EXIT_CODE=$? if [[ $EXIT_CODE -ne 10 ]]; then echo "::error::Expected exit code 10 (not authenticated), got $EXIT_CODE" echo "$OUTPUT" @@ -822,12 +840,13 @@ jobs: exit 1 fi - run: npm pack + working-directory: packages/cli - name: Upload artifact if: matrix.node == '22' uses: actions/upload-artifact@v7 with: name: npm-package - path: "*.tgz" + path: "packages/cli/*.tgz" build-docs: name: Build Docs @@ -853,13 +872,16 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile - name: Get CLI version id: version - run: echo "version=$(node -p 'require("./package.json").version')" >> "$GITHUB_OUTPUT" + run: echo "version=$(node -p 'require("./packages/cli/package.json").version')" >> "$GITHUB_OUTPUT" - name: Download compiled CLI binary uses: actions/download-artifact@v8 with: @@ -870,7 +892,7 @@ jobs: - name: Generate docs content run: pnpm run generate:schema && pnpm run generate:docs - name: Build Docs - working-directory: docs + working-directory: apps/cli-docs env: PUBLIC_SENTRY_ENVIRONMENT: production SENTRY_RELEASE: ${{ steps.version.outputs.version }} @@ -887,18 +909,18 @@ jobs: SENTRY_ORG: sentry SENTRY_PROJECT: cli-website run: | - ./dist-bin/sentry-linux-x64 sourcemap inject docs/dist/ - ./dist-bin/sentry-linux-x64 sourcemap upload docs/dist/ \ + ./dist-bin/sentry-linux-x64 sourcemap inject apps/cli-docs/dist/ + ./dist-bin/sentry-linux-x64 sourcemap upload apps/cli-docs/dist/ \ --release "${{ steps.version.outputs.version }}" \ --url-prefix "~/" # Remove .map files β€” they were uploaded to Sentry but shouldn't # be deployed to production. - name: Remove sourcemaps from output - run: find docs/dist -name '*.map' -delete + run: find apps/cli-docs/dist -name '*.map' -delete - name: Package Docs run: | - cp .nojekyll docs/dist/ - cd docs/dist && zip -r ../../gh-pages.zip . + cp .nojekyll apps/cli-docs/dist/ + cd apps/cli-docs/dist && zip -r "$GITHUB_WORKSPACE/gh-pages.zip" . - name: Upload docs artifact uses: actions/upload-artifact@v7 with: diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml index 5df7f0cb36..cf8313474d 100644 --- a/.github/workflows/docs-preview.yml +++ b/.github/workflows/docs-preview.yml @@ -4,11 +4,11 @@ on: push: branches: [main] paths: - - 'docs/**' - - 'src/**' - - 'script/generate-command-docs.ts' - - 'script/generate-skill.ts' - - 'install' + - 'apps/cli-docs/**' + - 'packages/cli/src/**' + - 'packages/cli/script/generate-command-docs.ts' + - 'packages/cli/script/generate-skill.ts' + - 'packages/cli/install' - '.github/workflows/docs-preview.yml' pull_request: # No paths filter here: the 'closed' event must ALWAYS fire so @@ -48,11 +48,11 @@ jobs: with: filters: | docs: - - 'docs/**' - - 'src/**' - - 'script/generate-command-docs.ts' - - 'script/generate-skill.ts' - - 'install' + - 'apps/cli-docs/**' + - 'packages/cli/src/**' + - 'packages/cli/script/generate-command-docs.ts' + - 'packages/cli/script/generate-skill.ts' + - 'packages/cli/install' - '.github/workflows/docs-preview.yml' # Central gate. `build` = produce the site (push, or a docs PR being @@ -93,8 +93,11 @@ jobs: id: cache if: steps.gate.outputs.build == 'true' with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.gate.outputs.build == 'true' && steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile @@ -102,7 +105,7 @@ jobs: - name: Get CLI version id: version if: steps.gate.outputs.build == 'true' - run: echo "version=$(node -p 'require("./package.json").version')" >> "$GITHUB_OUTPUT" + run: echo "version=$(node -p 'require("./packages/cli/package.json").version')" >> "$GITHUB_OUTPUT" - name: Generate docs content if: steps.gate.outputs.build == 'true' @@ -110,7 +113,7 @@ jobs: - name: Build Docs for Preview if: steps.gate.outputs.build == 'true' - working-directory: docs + working-directory: apps/cli-docs env: DOCS_BASE_PATH: ${{ github.event_name == 'push' && '/_preview/pr-main' @@ -129,15 +132,15 @@ jobs: SENTRY_ORG: sentry SENTRY_PROJECT: cli-website run: | - pnpm run cli sourcemap inject docs/dist/ - pnpm run cli sourcemap upload docs/dist/ \ + pnpm run cli sourcemap inject "$GITHUB_WORKSPACE/apps/cli-docs/dist/" + pnpm run cli sourcemap upload "$GITHUB_WORKSPACE/apps/cli-docs/dist/" \ --release "${{ steps.version.outputs.version }}" \ --url-prefix "~/" # Remove .map files β€” uploaded to Sentry but shouldn't be deployed. - name: Remove sourcemaps from output if: steps.gate.outputs.build == 'true' - run: find docs/dist -name '*.map' -delete + run: find apps/cli-docs/dist -name '*.map' -delete - name: Ensure .nojekyll at gh-pages root # Runs whenever we deploy (build or a 'closed' cleanup), but never for @@ -180,7 +183,7 @@ jobs: if: steps.gate.outputs.deploy == 'true' uses: rossjrw/pr-preview-action@v1 with: - source-dir: docs/dist/ + source-dir: apps/cli-docs/dist/ preview-branch: gh-pages umbrella-dir: _preview pages-base-url: cli.sentry.dev diff --git a/.github/workflows/eval-skill-fork.yml b/.github/workflows/eval-skill-fork.yml index 7edffa694c..60718b94c5 100644 --- a/.github/workflows/eval-skill-fork.yml +++ b/.github/workflows/eval-skill-fork.yml @@ -54,8 +54,11 @@ jobs: - uses: actions/cache@v5 id: cache with: - path: node_modules - key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'patches/**') }} + path: | + node_modules + packages/*/node_modules + apps/*/node_modules + key: node-modules-${{ hashFiles('pnpm-lock.yaml', '.npmrc', 'packages/cli/patches/**') }} - if: steps.cache.outputs.cache-hit != 'true' run: pnpm install --frozen-lockfile diff --git a/.gitignore b/.gitignore index 858ee3ec52..3f638f09d4 100644 --- a/.gitignore +++ b/.gitignore @@ -43,10 +43,10 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json .turbo .mastra -# docs -docs/dist -docs/node_modules -docs/.astro +# docs (now under apps/cli-docs) +apps/cli-docs/dist +apps/cli-docs/node_modules +apps/cli-docs/.astro # local planning notes (not for version control) .plans @@ -58,20 +58,20 @@ docs/.astro .DS_Store # Generated files (rebuilt at build time) -src/generated/ -src/sdk.generated.ts -src/sdk.generated.d.cts +packages/cli/src/generated/ +packages/cli/src/sdk.generated.ts +packages/cli/src/sdk.generated.d.cts # ...except the sixel banner: it's small, deterministic (baked from the committed # assets/banner-mask.png), and statically imported by src/lib/sixel.ts, so it must # exist on a fresh checkout before any build step regenerates it. -!src/generated/banner-sixel.ts +!packages/cli/src/generated/banner-sixel.ts # Generated docs pages (rebuilt from fragments + CLI introspection / env registry) -docs/src/content/docs/commands/ -docs/src/content/docs/configuration.md +apps/cli-docs/src/content/docs/commands/ +apps/cli-docs/src/content/docs/configuration.md # Generated discovery manifest (rebuilt by generate:skill, served via symlinked skill files) -docs/public/.well-known/skills/index.json +apps/cli-docs/public/.well-known/skills/index.json # OpenCode .opencode/ @@ -79,7 +79,7 @@ opencode.json* # Throwaway documentation audit reports (bot-generated, not real docs) DOCUMENTATION_GAPS.md -docs/DOCUMENTATION_GAPS.md +apps/cli-docs/DOCUMENTATION_GAPS.md DOCUMENTATION_GAP_REPORT.md # Throwaway planning / migration notes (agent- or human-authored scratch docs, diff --git a/.npmrc b/.npmrc index d67f374883..1aa498c4e2 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -node-linker=hoisted +node-linker=isolated diff --git a/README.md b/README.md index 3118cfc309..a201255c5b 100644 --- a/README.md +++ b/README.md @@ -1,166 +1,27 @@ -

- Sentry CLI -

+# Sentry Toolkit (pre-shape) -

- The command-line interface for Sentry. Built for developers and AI agents. -

+This repository is being reshaped into a pnpm-workspace monorepo ahead of merging +the Sentry CLI and Sentry MCP server into a single `getsentry/toolkit` monorepo. -

- Documentation | - Getting Started | - Commands -

+## Workspace layout ---- - -## Installation - -### Install Script (Recommended) - -```bash -curl https://cli.sentry.dev/install -fsS | bash -``` - -### Homebrew - -```bash -brew install getsentry/tools/sentry -``` - -### Package Managers - -```bash -npm install -g sentry -pnpm add -g sentry -yarn global add sentry -bun add -g sentry -``` - -> The npm/pnpm/yarn packages require Node.js 22.15+. - -### Run Without Installing - -```bash -npx sentry@latest -pnpm dlx sentry --help -yarn dlx sentry --help -bunx sentry --help -``` - -## Quick Start - -```bash -# Authenticate with Sentry -sentry auth login - -# List issues (auto-detects project from your codebase) -sentry issue list - -# Get AI-powered root cause analysis -sentry issue explain PROJ-ABC - -# Generate a fix plan -sentry issue plan PROJ-ABC -``` - -## Features - -- **DSN Auto-Detection** - Automatically detects your project from `.env` files or source code. No flags needed. -- **Seer AI Integration** - Get root cause analysis and fix plans directly in your terminal. -- **Monorepo Support** - Works with multiple projects, generates short aliases for easy navigation. -- **JSON Output** - All commands support `--json` for scripting and pipelines. -- **Open in Browser** - Use `-w` flag to open any resource in your browser. - -## Commands - -Run `sentry --help` to see all available commands, or browse the [command reference](https://cli.sentry.dev/commands/). - -## Configuration - -Credentials are stored in `~/.sentry/` with restricted permissions (mode 600). - -## Library Usage - - -Use Sentry CLI programmatically in Node.js (β‰₯22.15) without spawning a subprocess: - - -```typescript -import createSentrySDK from "sentry"; - -const sdk = createSentrySDK({ token: "sntrys_..." }); - -// Typed methods for every CLI command -const orgs = await sdk.org.list(); -const issues = await sdk.issue.list({ orgProject: "acme/frontend", limit: 5 }); -const issue = await sdk.issue.view({ issue: "ACME-123" }); - -// Nested commands -await sdk.dashboard.widget.add({ display: "line", query: "count" }, "my-org/my-dashboard"); - -// Escape hatch for any CLI command -const version = await sdk.run("--version"); -const text = await sdk.run("issue", "list", "-l", "5"); -``` - -Options (all optional): -- `token` β€” Auth token. Falls back to `SENTRY_AUTH_TOKEN` / `SENTRY_TOKEN` env vars. -- `url` β€” Sentry instance URL for self-hosted (e.g., `"sentry.example.com"`). -- `org` β€” Default organization slug (avoids passing it on every call). -- `project` β€” Default project slug. -- `text` β€” Return human-readable string instead of parsed JSON (affects `run()` only). -- `cwd` β€” Working directory for DSN auto-detection. Defaults to `process.cwd()`. -- `signal` β€” `AbortSignal` to cancel streaming commands (`--follow`, `--refresh`). - -Streaming commands return `AsyncIterable` β€” use `for await...of` and `break` to stop. - -Errors are thrown as `SentryError` with `.exitCode` and `.stderr`. - ---- +- [`packages/cli/`](./packages/cli) β€” the Sentry CLI (npm package `sentry`, + binary `sentry`). See [packages/cli/README.md](./packages/cli/README.md). +- [`apps/cli-docs/`](./apps/cli-docs) β€” the CLI documentation site + (Astro + Starlight, published to `cli.sentry.dev`). ## Development -### Prerequisites - - -- [Node.js](https://nodejs.org) v22.15+ and [pnpm](https://pnpm.io) v10.11+ - - -### Setup - -```bash -git clone https://github.com/getsentry/cli.git -cd cli -pnpm install -``` - -### Running Locally +This is a [pnpm workspace](https://pnpm.io/workspaces). Common tasks are exposed +as delegating scripts at the root and forwarded to the relevant package: -```bash -# Run CLI in development mode -pnpm run cli -- --help - -# With environment variables (create .env.local first, see DEVELOPMENT.md) -pnpm run cli -- --help -``` - -### Scripts - - -```bash -pnpm run build # Build for current platform -pnpm run typecheck # Type checking -pnpm run lint # Check for issues -pnpm run lint:fix # Auto-fix issues -pnpm run test:unit # Run unit tests -pnpm run test:e2e # Run end-to-end tests -pnpm run generate:docs # Regenerate command docs and skills +```sh +pnpm install # install all workspace packages +pnpm run build # build the CLI package +pnpm run typecheck # typecheck the CLI package +pnpm run lint # lint +pnpm run test # run the CLI unit tests ``` - - -See [DEVELOPMENT.md](DEVELOPMENT.md) for detailed setup and [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. - -## License -[FSL-1.1-Apache-2.0](LICENSE.md) +To work directly within a package, use pnpm filters, e.g. +`pnpm --filter sentry run