codedna 0.3.3__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codedna-0.3.3 → codedna-0.3.4}/CHANGELOG.md +11 -0
- {codedna-0.3.3 → codedna-0.3.4}/PKG-INFO +1 -1
- {codedna-0.3.3 → codedna-0.3.4}/codedna/__init__.py +1 -1
- {codedna-0.3.3 → codedna-0.3.4}/codedna/cli.py +182 -152
- {codedna-0.3.3 → codedna-0.3.4}/pyproject.toml +1 -1
- {codedna-0.3.3 → codedna-0.3.4}/.env.example +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/CODEOWNERS +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/dependabot.yml +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/workflows/codedna.yml +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/workflows/codeql.yml +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.github/workflows/test.yml +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.gitignore +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/.python-version +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/CONTRIBUTING.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/LICENSE +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/SECURITY.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/ai.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/ai_box.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/ai_fingerprint.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/analyzer.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/api.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/auth.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/bus_factor.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/db.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/git_hook.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/integrations/__init__.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/integrations/github_bot.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/integrations/jira.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/integrations/lemonsqueezy.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/interview.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/onboarding.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/plan.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/protection.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/rate_limit.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/scorer.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/sprint_health.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/survey.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/codedna/tech_debt.py +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/.env.local.example +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/.gitignore +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/ai-compare/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/api/auth/login/route.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/api/auth/logout/route.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/api/auth/me/route.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/api/auth/register/route.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/api/billing/checkout/route.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/billing/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/bus-factor/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/commits/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/debt/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/favicon.ico +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/files/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/fonts/GeistVF.woff +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/globals.css +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/interview/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/layout.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/login/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/onboarding/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/pricing/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/protected/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/register/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/settings/integrations/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/app/sprints/page.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/AuthProvider.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/ClientProviders.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/CommitTable.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/CostInfoTooltip.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/ErrorBanner.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/FeatureGate.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/FileHeatmap.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/LanguageSwitcher.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/NavClient.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/OverviewTitles.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/QuickInsights.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/RiskBadge.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/SummaryCards.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/UnderstandingChart.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/components/UpgradeBanner.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/api.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/auth.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/i18n/en.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/i18n/index.tsx +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/i18n/tr.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/lib/plan.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/next-env.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/next.config.mjs +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/package-lock.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/postcss.config.mjs +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/tailwind.config.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/dashboard/tsconfig.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/hooks/post-commit +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/uv.lock +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/.bin/tsc +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/.bin/tsserver +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/.package-lock.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/typescript/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/README.md +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/out/apiClient.js.map +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/out/decorations.js.map +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/out/extension.js.map +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/out/statusBar.js.map +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/package-lock.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/package.json +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/src/apiClient.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/src/decorations.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/src/extension.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/src/statusBar.ts +0 -0
- {codedna-0.3.3 → codedna-0.3.4}/vscode-extension/tsconfig.json +0 -0
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.4] - 2026-06-24 — "Doctor Redesign"
|
|
4
|
+
|
|
5
|
+
### 🎨 Redesigned
|
|
6
|
+
- **`codedna doctor` — rich Table + Panel layout** matching the legacy CodeDNA CLI style
|
|
7
|
+
- Header Panel with version + plan info (`border_style="cyan"`)
|
|
8
|
+
- Animated spinner during checks (`console.status`, dots spinner)
|
|
9
|
+
- Rich Table with `show_lines=True`, header_style cyan
|
|
10
|
+
- Color-coded status column: ✓ green, ⚠ yellow, ✗ red, – dim
|
|
11
|
+
- Summary Panel with color-coded border (green / yellow / red)
|
|
12
|
+
- 9 categories, 19 individual checks
|
|
13
|
+
|
|
3
14
|
## [0.3.3] - 2026-06-24 — "One-Command Update"
|
|
4
15
|
|
|
5
16
|
### ✨ Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codedna
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: AI Code Transparency Tool - detect AI-written code and measure developer understanding
|
|
5
5
|
Project-URL: Homepage, https://codedna.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/natureco-official/codedna
|
|
@@ -1710,178 +1710,208 @@ def doctor(
|
|
|
1710
1710
|
) -> None:
|
|
1711
1711
|
"""Run a system health check (Python, Git, tree-sitter, DB, hook, API, network)."""
|
|
1712
1712
|
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
console.print(Panel.fit("🧬 CodeDNA — System Health Check", style="bold cyan"))
|
|
1713
|
+
console.print()
|
|
1714
|
+
console.print(
|
|
1715
|
+
Panel.fit(
|
|
1716
|
+
"[bold cyan]🧬 CodeDNA — System Health Check[/bold cyan]\n"
|
|
1717
|
+
f"[dim]Version: {__version__} · Plan: detecting...[/dim]",
|
|
1718
|
+
border_style="cyan",
|
|
1719
|
+
padding=(1, 4),
|
|
1720
|
+
)
|
|
1721
|
+
)
|
|
1723
1722
|
console.print()
|
|
1724
1723
|
|
|
1725
1724
|
issues: list[str] = []
|
|
1726
1725
|
warnings: list[str] = []
|
|
1726
|
+
checks: list[tuple[str, str, str]] = [] # (category, status, message)
|
|
1727
1727
|
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
issues.append("python_version")
|
|
1736
|
-
|
|
1737
|
-
# 2. CodeDNA installation
|
|
1738
|
-
try:
|
|
1739
|
-
import codedna
|
|
1740
|
-
_ok(f"CodeDNA {codedna.__version__} installed at {Path(codedna.__file__).parent}")
|
|
1741
|
-
except Exception as e:
|
|
1742
|
-
_fail(f"CodeDNA import failed: {e}")
|
|
1743
|
-
issues.append("codedna_import")
|
|
1728
|
+
def _record(category: str, status: str, message: str) -> None:
|
|
1729
|
+
"""status: 'ok' | 'warn' | 'fail'"""
|
|
1730
|
+
checks.append((category, status, message))
|
|
1731
|
+
if status == "fail":
|
|
1732
|
+
issues.append(f"{category}: {message}")
|
|
1733
|
+
elif status == "warn":
|
|
1734
|
+
warnings.append(f"{category}: {message}")
|
|
1744
1735
|
|
|
1745
|
-
|
|
1746
|
-
console.print()
|
|
1747
|
-
console.print("[bold]2. Git Integration[/bold]")
|
|
1748
|
-
try:
|
|
1736
|
+
with console.status("[bold cyan]🔍 Running health checks...[/bold cyan]", spinner="dots"):
|
|
1749
1737
|
import subprocess
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1738
|
+
|
|
1739
|
+
# 1. Python Environment
|
|
1740
|
+
py_ver = sys.version_info
|
|
1741
|
+
if py_ver >= (3, 10):
|
|
1742
|
+
_record("Python", "ok", f"{py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 required)")
|
|
1753
1743
|
else:
|
|
1754
|
-
|
|
1755
|
-
issues.append("git")
|
|
1756
|
-
except FileNotFoundError:
|
|
1757
|
-
_fail("Git not found on PATH")
|
|
1758
|
-
issues.append("git")
|
|
1759
|
-
except Exception as e:
|
|
1760
|
-
_warn(f"Git check failed: {e}")
|
|
1761
|
-
warnings.append("git_check")
|
|
1744
|
+
_record("Python", "fail", f"{py_ver.major}.{py_ver.minor}.{py_ver.micro} — 3.10+ required")
|
|
1762
1745
|
|
|
1763
|
-
|
|
1764
|
-
console.print()
|
|
1765
|
-
console.print("[bold]3. Tree-sitter Parsers[/bold]")
|
|
1766
|
-
parsers = [
|
|
1767
|
-
("tree_sitter", "tree-sitter"),
|
|
1768
|
-
("tree_sitter_python", "tree-sitter-python"),
|
|
1769
|
-
("tree_sitter_javascript", "tree-sitter-javascript"),
|
|
1770
|
-
("tree_sitter_typescript", "tree-sitter-typescript"),
|
|
1771
|
-
]
|
|
1772
|
-
for mod_name, pkg_name in parsers:
|
|
1746
|
+
# 2. CodeDNA installation
|
|
1773
1747
|
try:
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
except
|
|
1777
|
-
|
|
1778
|
-
issues.append(f"missing:{pkg_name}")
|
|
1748
|
+
import codedna
|
|
1749
|
+
_record("CodeDNA", "ok", f"v{codedna.__version__} at {Path(codedna.__file__).parent}")
|
|
1750
|
+
except Exception as e:
|
|
1751
|
+
_record("CodeDNA", "fail", f"import failed: {e}")
|
|
1779
1752
|
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1753
|
+
# 3. Git
|
|
1754
|
+
try:
|
|
1755
|
+
result = subprocess.run(["git", "--version"], capture_output=True, text=True, timeout=5)
|
|
1756
|
+
if result.returncode == 0:
|
|
1757
|
+
_record("Git", "ok", result.stdout.strip())
|
|
1758
|
+
else:
|
|
1759
|
+
_record("Git", "fail", "git command returned non-zero")
|
|
1760
|
+
except FileNotFoundError:
|
|
1761
|
+
_record("Git", "fail", "git not found on PATH")
|
|
1762
|
+
except Exception as e:
|
|
1763
|
+
_record("Git", "warn", f"check failed: {e}")
|
|
1764
|
+
|
|
1765
|
+
# 4. Tree-sitter parsers
|
|
1766
|
+
parsers = [
|
|
1767
|
+
("tree_sitter", "tree-sitter"),
|
|
1768
|
+
("tree_sitter_python", "tree-sitter-python"),
|
|
1769
|
+
("tree_sitter_javascript", "tree-sitter-javascript"),
|
|
1770
|
+
("tree_sitter_typescript", "tree-sitter-typescript"),
|
|
1771
|
+
]
|
|
1772
|
+
for mod_name, pkg_name in parsers:
|
|
1773
|
+
try:
|
|
1774
|
+
__import__(mod_name)
|
|
1775
|
+
_record("Tree-sitter", "ok", pkg_name)
|
|
1776
|
+
except ImportError:
|
|
1777
|
+
_record("Tree-sitter", "fail", f"{pkg_name} not installed")
|
|
1778
|
+
|
|
1779
|
+
# 5. Database
|
|
1780
|
+
db_status = "skip"
|
|
1781
|
+
db_msg = "Not in a git repo"
|
|
1782
|
+
db_path: Optional[Path] = None
|
|
1783
|
+
try:
|
|
1784
|
+
root = repo or find_git_root()
|
|
1785
|
+
db_path = get_db_path(root)
|
|
1786
|
+
if db_path.exists():
|
|
1787
|
+
size_kb = db_path.stat().st_size / 1024
|
|
1788
|
+
_record("Database", "ok", f"{db_path} ({size_kb:.1f} KB)")
|
|
1789
|
+
db_status = "ok"
|
|
1790
|
+
db_msg = f"{db_path} ({size_kb:.1f} KB)"
|
|
1791
|
+
else:
|
|
1792
|
+
_record("Database", "warn", f"no database at {db_path}")
|
|
1793
|
+
db_status = "warn"
|
|
1794
|
+
db_msg = "not initialized"
|
|
1795
|
+
if fix:
|
|
1796
|
+
try:
|
|
1797
|
+
init_db(db_path)
|
|
1798
|
+
_record("Database", "ok", "initialized (auto-fixed)")
|
|
1799
|
+
db_status = "ok"
|
|
1800
|
+
db_msg = "auto-fixed"
|
|
1801
|
+
except Exception as e:
|
|
1802
|
+
_record("Database", "fail", f"auto-init failed: {e}")
|
|
1803
|
+
except Exception:
|
|
1804
|
+
_record("Database", "warn", "skipped (not in a git repo)")
|
|
1801
1805
|
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1806
|
+
# 6. Git hook
|
|
1807
|
+
try:
|
|
1808
|
+
root = repo or find_git_root()
|
|
1809
|
+
if is_hook_installed(root):
|
|
1810
|
+
_record("Hook", "ok", "post-commit hook installed")
|
|
1811
|
+
else:
|
|
1812
|
+
_record("Hook", "warn", "post-commit hook not installed")
|
|
1813
|
+
if fix:
|
|
1814
|
+
try:
|
|
1815
|
+
install_hook(root)
|
|
1816
|
+
_record("Hook", "ok", "installed (auto-fixed)")
|
|
1817
|
+
except Exception as e:
|
|
1818
|
+
_record("Hook", "fail", f"auto-install failed: {e}")
|
|
1819
|
+
except Exception:
|
|
1820
|
+
_record("Hook", "warn", "skipped (not in a git repo)")
|
|
1821
|
+
|
|
1822
|
+
# 7. Core dependencies
|
|
1823
|
+
deps = [
|
|
1824
|
+
("typer", "CLI framework"),
|
|
1825
|
+
("rich", "Terminal UI"),
|
|
1826
|
+
("gitpython", "Git integration"),
|
|
1827
|
+
("fastapi", "REST API"),
|
|
1828
|
+
("uvicorn", "ASGI server"),
|
|
1829
|
+
("pydantic", "Data validation"),
|
|
1830
|
+
("pyjwt", "JWT auth"),
|
|
1831
|
+
("bcrypt", "Password hashing"),
|
|
1832
|
+
]
|
|
1833
|
+
for mod_name, desc in deps:
|
|
1834
|
+
try:
|
|
1835
|
+
m = __import__(mod_name)
|
|
1836
|
+
ver = getattr(m, "__version__", "?")
|
|
1837
|
+
_record("Dependencies", "ok", f"{mod_name} {ver} — {desc}")
|
|
1838
|
+
except ImportError:
|
|
1839
|
+
_record("Dependencies", "fail", f"{mod_name} not installed — {desc}")
|
|
1840
|
+
|
|
1841
|
+
# 8. License & Plan
|
|
1842
|
+
license_path = Path.home() / ".codedna" / "license.json"
|
|
1843
|
+
if license_path.exists():
|
|
1844
|
+
try:
|
|
1845
|
+
import json
|
|
1846
|
+
with open(license_path) as f:
|
|
1847
|
+
lic = json.load(f)
|
|
1848
|
+
plan = lic.get("plan", "free")
|
|
1849
|
+
_record("License", "ok", f"plan = {plan.upper()}")
|
|
1850
|
+
except Exception as e:
|
|
1851
|
+
_record("License", "warn", f"file unreadable: {e}")
|
|
1809
1852
|
else:
|
|
1810
|
-
|
|
1811
|
-
warnings.append("no_hook")
|
|
1812
|
-
if fix:
|
|
1813
|
-
try:
|
|
1814
|
-
install_hook(root)
|
|
1815
|
-
_ok("Hook installed")
|
|
1816
|
-
except Exception as e:
|
|
1817
|
-
_fail(f"Could not install hook: {e}")
|
|
1818
|
-
issues.append("hook_install_failed")
|
|
1819
|
-
except Exception:
|
|
1820
|
-
_warn("Not in a git repo — hook check skipped")
|
|
1853
|
+
_record("License", "warn", f"no license at {license_path} (FREE plan)")
|
|
1821
1854
|
|
|
1822
|
-
|
|
1823
|
-
console.print()
|
|
1824
|
-
console.print("[bold]6. Core Dependencies[/bold]")
|
|
1825
|
-
deps = [
|
|
1826
|
-
("typer", "CLI framework"),
|
|
1827
|
-
("rich", "Terminal UI"),
|
|
1828
|
-
("gitpython", "Git integration"),
|
|
1829
|
-
("fastapi", "REST API"),
|
|
1830
|
-
("uvicorn", "ASGI server"),
|
|
1831
|
-
("pydantic", "Data validation"),
|
|
1832
|
-
("pyjwt", "JWT auth"),
|
|
1833
|
-
("bcrypt", "Password hashing"),
|
|
1834
|
-
]
|
|
1835
|
-
for mod_name, desc in deps:
|
|
1836
|
-
try:
|
|
1837
|
-
m = __import__(mod_name)
|
|
1838
|
-
ver = getattr(m, "__version__", "?")
|
|
1839
|
-
_ok(f"{mod_name} {ver} ({desc})")
|
|
1840
|
-
except ImportError:
|
|
1841
|
-
_fail(f"{mod_name} — not installed ({desc})")
|
|
1842
|
-
issues.append(f"missing:{mod_name}")
|
|
1843
|
-
|
|
1844
|
-
# 8. License / plan
|
|
1845
|
-
console.print()
|
|
1846
|
-
console.print("[bold]7. License & Plan[/bold]")
|
|
1847
|
-
license_path = Path.home() / ".codedna" / "license.json"
|
|
1848
|
-
if license_path.exists():
|
|
1855
|
+
# 9. Network
|
|
1849
1856
|
try:
|
|
1850
|
-
import
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
plan = lic.get("plan", "free")
|
|
1854
|
-
_ok(f"Active plan: {plan.upper()}")
|
|
1857
|
+
import urllib.request
|
|
1858
|
+
urllib.request.urlopen("https://pypi.org/pypi/codedna/json", timeout=5)
|
|
1859
|
+
_record("Network", "ok", "PyPI reachable")
|
|
1855
1860
|
except Exception as e:
|
|
1856
|
-
|
|
1857
|
-
warnings.append("license_unreadable")
|
|
1858
|
-
else:
|
|
1859
|
-
_warn(f"No license at {license_path} (running on FREE plan)")
|
|
1861
|
+
_record("Network", "warn", f"PyPI unreachable: {type(e).__name__}")
|
|
1860
1862
|
|
|
1861
|
-
#
|
|
1862
|
-
|
|
1863
|
-
console.print("[bold]8. Network[/bold]")
|
|
1864
|
-
try:
|
|
1865
|
-
import urllib.request
|
|
1866
|
-
urllib.request.urlopen("https://pypi.org/pypi/codedna/json", timeout=5)
|
|
1867
|
-
_ok("PyPI reachable")
|
|
1868
|
-
except Exception as e:
|
|
1869
|
-
_warn(f"PyPI unreachable: {type(e).__name__}")
|
|
1870
|
-
warnings.append("no_network")
|
|
1863
|
+
# ─── Render results as a beautiful table ────────────────────────────
|
|
1864
|
+
status_emoji = {"ok": "[green]✓[/green]", "warn": "[yellow]⚠[/yellow]", "fail": "[red]✗[/red]", "skip": "[dim]–[/dim]"}
|
|
1871
1865
|
|
|
1872
|
-
|
|
1866
|
+
table = Table(
|
|
1867
|
+
border_style="dim",
|
|
1868
|
+
show_lines=True,
|
|
1869
|
+
header_style="bold cyan",
|
|
1870
|
+
title="[bold]Health Check Results[/bold]",
|
|
1871
|
+
title_style="bold white",
|
|
1872
|
+
)
|
|
1873
|
+
table.add_column("Category", style="bold white", min_width=14)
|
|
1874
|
+
table.add_column("Status", justify="center", min_width=7)
|
|
1875
|
+
table.add_column("Details", style="white")
|
|
1876
|
+
|
|
1877
|
+
current_cat = None
|
|
1878
|
+
for cat, status, msg in checks:
|
|
1879
|
+
emoji = status_emoji.get(status, "[dim]?[/dim]")
|
|
1880
|
+
table.add_row(cat, emoji, msg)
|
|
1881
|
+
current_cat = cat
|
|
1882
|
+
|
|
1883
|
+
console.print(table)
|
|
1873
1884
|
console.print()
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1885
|
+
|
|
1886
|
+
# ─── Summary panel ──────────────────────────────────────────────────
|
|
1887
|
+
n_ok = sum(1 for _, s, _ in checks if s == "ok")
|
|
1888
|
+
n_warn = sum(1 for _, s, _ in checks if s == "warn")
|
|
1889
|
+
n_fail = sum(1 for _, s, _ in checks if s == "fail")
|
|
1890
|
+
total = len(checks)
|
|
1891
|
+
|
|
1892
|
+
if n_fail == 0 and n_warn == 0:
|
|
1893
|
+
border = "green"
|
|
1894
|
+
title = "[bold green]✓ All checks passed — system healthy[/bold green]"
|
|
1895
|
+
body = f"[green]{n_ok}/{total} checks passed. CodeDNA is ready to use.[/green]\n\n[dim]Run [bold]codedna scan[/bold] in a git repo to get started.[/dim]"
|
|
1896
|
+
elif n_fail == 0:
|
|
1897
|
+
border = "yellow"
|
|
1898
|
+
title = f"[bold yellow]⚠ {n_warn} warning(s) — system functional with caveats[/bold yellow]"
|
|
1899
|
+
body = f"[yellow]{n_ok}/{total} checks passed, {n_warn} warning(s).[/yellow]\n\n[dim]Run [bold]codedna doctor --fix[/bold] to attempt auto-fixes.[/dim]"
|
|
1881
1900
|
else:
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1901
|
+
border = "red"
|
|
1902
|
+
title = f"[bold red]✗ {n_fail} critical issue(s) — fix required[/bold red]"
|
|
1903
|
+
body = f"[red]{n_fail} critical, {n_warn} warning, {n_ok} passed (out of {total}).[/red]\n\n[dim]Re-run [bold]codedna doctor --fix[/bold] or install missing dependencies.[/dim]"
|
|
1904
|
+
|
|
1905
|
+
console.print(
|
|
1906
|
+
Panel(
|
|
1907
|
+
body,
|
|
1908
|
+
title=title,
|
|
1909
|
+
border_style=border,
|
|
1910
|
+
padding=(1, 2),
|
|
1911
|
+
)
|
|
1912
|
+
)
|
|
1913
|
+
|
|
1914
|
+
if n_fail > 0:
|
|
1885
1915
|
raise typer.Exit(1)
|
|
1886
1916
|
|
|
1887
1917
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|