codedna 0.4.0__tar.gz → 0.4.2__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.4.0 → codedna-0.4.2}/CHANGELOG.md +24 -0
- {codedna-0.4.0 → codedna-0.4.2}/PKG-INFO +1 -1
- {codedna-0.4.0 → codedna-0.4.2}/codedna/__init__.py +1 -1
- {codedna-0.4.0 → codedna-0.4.2}/codedna/cli.py +209 -133
- {codedna-0.4.0 → codedna-0.4.2}/pyproject.toml +1 -1
- {codedna-0.4.0 → codedna-0.4.2}/.env.example +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/CODEOWNERS +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/dependabot.yml +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/workflows/codedna.yml +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/workflows/codeql.yml +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.github/workflows/test.yml +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.gitignore +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/.python-version +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/CONTRIBUTING.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/LICENSE +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/SECURITY.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/ai.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/ai_box.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/ai_fingerprint.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/analyzer.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/api.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/auth.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/bus_factor.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/db.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/git_hook.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/integrations/__init__.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/integrations/github_bot.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/integrations/jira.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/integrations/lemonsqueezy.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/interview.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/onboarding.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/plan.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/protection.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/rate_limit.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/scorer.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/sprint_health.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/survey.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/codedna/tech_debt.py +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/.env.local.example +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/.gitignore +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/ai-compare/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/api/auth/login/route.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/api/auth/logout/route.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/api/auth/me/route.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/api/auth/register/route.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/api/billing/checkout/route.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/billing/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/bus-factor/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/commits/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/debt/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/favicon.ico +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/files/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/fonts/GeistVF.woff +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/globals.css +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/interview/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/layout.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/login/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/onboarding/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/pricing/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/protected/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/register/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/settings/integrations/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/app/sprints/page.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/AuthProvider.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/ClientProviders.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/CommitTable.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/CostInfoTooltip.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/ErrorBanner.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/FeatureGate.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/FileHeatmap.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/LanguageSwitcher.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/NavClient.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/OverviewTitles.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/QuickInsights.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/RiskBadge.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/SummaryCards.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/UnderstandingChart.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/components/UpgradeBanner.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/api.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/auth.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/i18n/en.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/i18n/index.tsx +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/i18n/tr.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/lib/plan.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/next-env.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/next.config.mjs +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/package-lock.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/postcss.config.mjs +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/tailwind.config.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/dashboard/tsconfig.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/hooks/post-commit +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/uv.lock +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/.bin/tsc +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/.bin/tsserver +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/.package-lock.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/typescript/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/README.md +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/out/apiClient.js.map +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/out/decorations.js.map +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/out/extension.js.map +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/out/statusBar.js.map +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/package-lock.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/package.json +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/src/apiClient.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/src/decorations.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/src/extension.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/src/statusBar.ts +0 -0
- {codedna-0.4.0 → codedna-0.4.2}/vscode-extension/tsconfig.json +0 -0
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.2] - 2026-06-24 — "Doctor Legacy Style"
|
|
4
|
+
|
|
5
|
+
### 🎨 Redesigned
|
|
6
|
+
- **`codedna doctor`** — restored to match the legacy CodeDNA CLI aesthetic
|
|
7
|
+
- Old: Rich Table with show_lines + border_style="dim" (looked too plain)
|
|
8
|
+
- New: `console.print()` with `[bold]─── Kategori ───[/bold]` headers
|
|
9
|
+
- Per-line emoji markers: `[green]✓[/green]`, `[yellow]⚠[/yellow]`, `[red]✗[/red]`
|
|
10
|
+
- Spinner: `console.status("[dim]Testler çalıştırılıyor...[/dim]")`
|
|
11
|
+
- Summary panel: `border_style="green"|"yellow"|"red"` depending on result
|
|
12
|
+
- All messages in Turkish (matching the legacy codebase)
|
|
13
|
+
|
|
14
|
+
## [0.4.1] - 2026-06-24 — "Legacy Style"
|
|
15
|
+
|
|
16
|
+
### 🎨 Redesigned
|
|
17
|
+
- **`codedna setup --show`** — now uses rich Table with cyan border, emoji title, status panel
|
|
18
|
+
- Old style: bare `print()` lines
|
|
19
|
+
- New style: "🧬 CodeDNA — AI Configuration" title, status panel ("AI Ready" green)
|
|
20
|
+
- **`codedna update`** — status panels replace plain text
|
|
21
|
+
- "🧬 CodeDNA — Up to date" green panel when current
|
|
22
|
+
- "🧬 CodeDNA — Update Check" yellow panel when update available
|
|
23
|
+
- "🧬 CodeDNA — Update Complete" green panel after install
|
|
24
|
+
|
|
25
|
+
Matches the legacy CodeDNA CLI visual style (border_style="dim"/"cyan", padding, emoji titles).
|
|
26
|
+
|
|
3
27
|
## [0.4.0] - 2026-06-24 — "Setup Wizard"
|
|
4
28
|
|
|
5
29
|
### ✨ Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codedna
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
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
|
|
@@ -1709,60 +1709,61 @@ def doctor(
|
|
|
1709
1709
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo directory"),
|
|
1710
1710
|
) -> None:
|
|
1711
1711
|
"""Run a system health check (Python, Git, tree-sitter, DB, hook, API, network)."""
|
|
1712
|
+
import subprocess
|
|
1713
|
+
from collections import Counter
|
|
1712
1714
|
|
|
1713
1715
|
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
|
-
)
|
|
1722
|
-
console.print()
|
|
1716
|
+
console.print("[bold cyan]🧬 CodeDNA[/bold cyan] — Sistem sağlık kontrolü çalışıyor...\n")
|
|
1723
1717
|
|
|
1724
1718
|
issues: list[str] = []
|
|
1725
1719
|
warnings: list[str] = []
|
|
1726
|
-
checks: list[tuple[str, str, str]] = [] # (category, status, message)
|
|
1727
1720
|
|
|
1728
|
-
def
|
|
1729
|
-
"
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
elif status == "warn":
|
|
1734
|
-
warnings.append(f"{category}: {message}")
|
|
1721
|
+
def _ok(msg: str) -> None:
|
|
1722
|
+
console.print(f" [green]✓[/green] {msg}")
|
|
1723
|
+
|
|
1724
|
+
def _warn(msg: str) -> None:
|
|
1725
|
+
console.print(f" [yellow]⚠[/yellow] {msg}")
|
|
1735
1726
|
|
|
1736
|
-
|
|
1737
|
-
|
|
1727
|
+
def _fail(msg: str) -> None:
|
|
1728
|
+
console.print(f" [red]✗[/red] {msg}")
|
|
1738
1729
|
|
|
1739
|
-
|
|
1730
|
+
with console.status("[dim]Testler çalıştırılıyor...[/dim]"):
|
|
1731
|
+
# ── 1. Python Environment ──────────────────────────────────────
|
|
1732
|
+
console.print("[bold]─── Python Ortamı ───[/bold]")
|
|
1740
1733
|
py_ver = sys.version_info
|
|
1741
1734
|
if py_ver >= (3, 10):
|
|
1742
|
-
|
|
1735
|
+
_ok(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 gerekli)")
|
|
1743
1736
|
else:
|
|
1744
|
-
|
|
1737
|
+
_fail(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} — 3.10+ gerekli")
|
|
1738
|
+
issues.append("python_version")
|
|
1745
1739
|
|
|
1746
|
-
# 2. CodeDNA installation
|
|
1747
1740
|
try:
|
|
1748
1741
|
import codedna
|
|
1749
|
-
|
|
1742
|
+
_ok(f"CodeDNA [bold]v{codedna.__version__}[/bold] — {Path(codedna.__file__).parent}")
|
|
1750
1743
|
except Exception as e:
|
|
1751
|
-
|
|
1744
|
+
_fail(f"CodeDNA import hatası: {e}")
|
|
1745
|
+
issues.append("codedna_import")
|
|
1746
|
+
console.print()
|
|
1752
1747
|
|
|
1753
|
-
#
|
|
1748
|
+
# ── 2. Git Integration ─────────────────────────────────────────
|
|
1749
|
+
console.print("[bold]─── Git Entegrasyonu ───[/bold]")
|
|
1754
1750
|
try:
|
|
1755
1751
|
result = subprocess.run(["git", "--version"], capture_output=True, text=True, timeout=5)
|
|
1756
1752
|
if result.returncode == 0:
|
|
1757
|
-
|
|
1753
|
+
_ok(f"Git: {result.stdout.strip()}")
|
|
1758
1754
|
else:
|
|
1759
|
-
|
|
1755
|
+
_fail("Git komutu hata döndü")
|
|
1756
|
+
issues.append("git")
|
|
1760
1757
|
except FileNotFoundError:
|
|
1761
|
-
|
|
1758
|
+
_fail("Git PATH'te bulunamadı")
|
|
1759
|
+
issues.append("git")
|
|
1762
1760
|
except Exception as e:
|
|
1763
|
-
|
|
1761
|
+
_warn(f"Git kontrolü başarısız: {e}")
|
|
1762
|
+
warnings.append("git_check")
|
|
1763
|
+
console.print()
|
|
1764
1764
|
|
|
1765
|
-
#
|
|
1765
|
+
# ── 3. Tree-sitter Parsers ─────────────────────────────────────
|
|
1766
|
+
console.print("[bold]─── Tree-sitter Parser'ları ───[/bold]")
|
|
1766
1767
|
parsers = [
|
|
1767
1768
|
("tree_sitter", "tree-sitter"),
|
|
1768
1769
|
("tree_sitter_python", "tree-sitter-python"),
|
|
@@ -1772,147 +1773,151 @@ def doctor(
|
|
|
1772
1773
|
for mod_name, pkg_name in parsers:
|
|
1773
1774
|
try:
|
|
1774
1775
|
__import__(mod_name)
|
|
1775
|
-
|
|
1776
|
+
_ok(pkg_name)
|
|
1776
1777
|
except ImportError:
|
|
1777
|
-
|
|
1778
|
+
_fail(f"{pkg_name} — yüklü değil")
|
|
1779
|
+
issues.append(f"missing:{pkg_name}")
|
|
1780
|
+
console.print()
|
|
1778
1781
|
|
|
1779
|
-
#
|
|
1780
|
-
|
|
1781
|
-
db_msg = "Not in a git repo"
|
|
1782
|
-
db_path: Optional[Path] = None
|
|
1782
|
+
# ── 4. Local Database ──────────────────────────────────────────
|
|
1783
|
+
console.print("[bold]─── Yerel Veritabanı ───[/bold]")
|
|
1783
1784
|
try:
|
|
1784
1785
|
root = repo or find_git_root()
|
|
1785
1786
|
db_path = get_db_path(root)
|
|
1786
1787
|
if db_path.exists():
|
|
1787
1788
|
size_kb = db_path.stat().st_size / 1024
|
|
1788
|
-
|
|
1789
|
-
db_status = "ok"
|
|
1790
|
-
db_msg = f"{db_path} ({size_kb:.1f} KB)"
|
|
1789
|
+
_ok(f"Veritabanı: {db_path} ({size_kb:.1f} KB)")
|
|
1791
1790
|
else:
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
db_msg = "not initialized"
|
|
1791
|
+
_warn(f"Veritabanı yok: {db_path} (oluşturmak için [cyan]codedna init[/cyan])")
|
|
1792
|
+
warnings.append("no_db")
|
|
1795
1793
|
if fix:
|
|
1796
1794
|
try:
|
|
1797
1795
|
init_db(db_path)
|
|
1798
|
-
|
|
1799
|
-
db_status = "ok"
|
|
1800
|
-
db_msg = "auto-fixed"
|
|
1796
|
+
_ok("Veritabanı oluşturuldu (otomatik düzeltildi)")
|
|
1801
1797
|
except Exception as e:
|
|
1802
|
-
|
|
1798
|
+
_fail(f"Veritabanı oluşturulamadı: {e}")
|
|
1799
|
+
issues.append("db_init_failed")
|
|
1803
1800
|
except Exception:
|
|
1804
|
-
|
|
1801
|
+
_warn("Git repo'sunda değilsiniz — veritabanı kontrolü atlandı")
|
|
1802
|
+
console.print()
|
|
1805
1803
|
|
|
1806
|
-
#
|
|
1804
|
+
# ── 5. Git Hook ────────────────────────────────────────────────
|
|
1805
|
+
console.print("[bold]─── Git Hook ───[/bold]")
|
|
1807
1806
|
try:
|
|
1808
1807
|
root = repo or find_git_root()
|
|
1809
1808
|
if is_hook_installed(root):
|
|
1810
|
-
|
|
1809
|
+
_ok("Post-commit hook kurulu")
|
|
1811
1810
|
else:
|
|
1812
|
-
|
|
1811
|
+
_warn(f"Post-commit hook kurulu değil ([cyan]codedna init[/cyan] ile kur)")
|
|
1812
|
+
warnings.append("no_hook")
|
|
1813
1813
|
if fix:
|
|
1814
1814
|
try:
|
|
1815
1815
|
install_hook(root)
|
|
1816
|
-
|
|
1816
|
+
_ok("Hook kuruldu (otomatik düzeltildi)")
|
|
1817
1817
|
except Exception as e:
|
|
1818
|
-
|
|
1818
|
+
_fail(f"Hook kurulamadı: {e}")
|
|
1819
|
+
issues.append("hook_install_failed")
|
|
1819
1820
|
except Exception:
|
|
1820
|
-
|
|
1821
|
+
_warn("Git repo'sunda değilsiniz — hook kontrolü atlandı")
|
|
1822
|
+
console.print()
|
|
1821
1823
|
|
|
1822
|
-
#
|
|
1824
|
+
# ── 6. Core Dependencies ───────────────────────────────────────
|
|
1825
|
+
console.print("[bold]─── Temel Bağımlılıklar ───[/bold]")
|
|
1823
1826
|
deps = [
|
|
1824
1827
|
("typer", "CLI framework"),
|
|
1825
1828
|
("rich", "Terminal UI"),
|
|
1826
|
-
("gitpython", "Git
|
|
1829
|
+
("gitpython", "Git entegrasyonu"),
|
|
1827
1830
|
("fastapi", "REST API"),
|
|
1828
1831
|
("uvicorn", "ASGI server"),
|
|
1829
|
-
("pydantic", "
|
|
1832
|
+
("pydantic", "Veri doğrulama"),
|
|
1830
1833
|
("pyjwt", "JWT auth"),
|
|
1831
|
-
("bcrypt", "
|
|
1834
|
+
("bcrypt", "Şifre hashleme"),
|
|
1832
1835
|
]
|
|
1833
1836
|
for mod_name, desc in deps:
|
|
1834
1837
|
try:
|
|
1835
1838
|
m = __import__(mod_name)
|
|
1836
1839
|
ver = getattr(m, "__version__", "?")
|
|
1837
|
-
|
|
1840
|
+
_ok(f"{mod_name} [dim]{ver}[/dim] — {desc}")
|
|
1838
1841
|
except ImportError:
|
|
1839
|
-
|
|
1842
|
+
_fail(f"{mod_name} — yüklü değil ({desc})")
|
|
1843
|
+
issues.append(f"missing:{mod_name}")
|
|
1844
|
+
console.print()
|
|
1840
1845
|
|
|
1841
|
-
#
|
|
1846
|
+
# ── 7. License & Plan ──────────────────────────────────────────
|
|
1847
|
+
console.print("[bold]─── Lisans & Plan ───[/bold]")
|
|
1842
1848
|
license_path = Path.home() / ".codedna" / "license.json"
|
|
1843
1849
|
if license_path.exists():
|
|
1844
1850
|
try:
|
|
1845
|
-
import json
|
|
1851
|
+
import json as _json
|
|
1846
1852
|
with open(license_path) as f:
|
|
1847
|
-
lic =
|
|
1853
|
+
lic = _json.load(f)
|
|
1848
1854
|
plan = lic.get("plan", "free")
|
|
1849
|
-
|
|
1855
|
+
_ok(f"Aktif plan: [bold cyan]{plan.upper()}[/bold cyan]")
|
|
1850
1856
|
except Exception as e:
|
|
1851
|
-
|
|
1857
|
+
_warn(f"Lisans dosyası okunamadı: {e}")
|
|
1858
|
+
warnings.append("license_unreadable")
|
|
1852
1859
|
else:
|
|
1853
|
-
|
|
1860
|
+
_warn(f"Lisans yok: {license_path} (FREE planda)")
|
|
1861
|
+
console.print()
|
|
1854
1862
|
|
|
1855
|
-
#
|
|
1863
|
+
# ── 8. Network ─────────────────────────────────────────────────
|
|
1864
|
+
console.print("[bold]─── Ağ Bağlantısı ───[/bold]")
|
|
1856
1865
|
try:
|
|
1857
1866
|
import urllib.request
|
|
1858
1867
|
urllib.request.urlopen("https://pypi.org/pypi/codedna/json", timeout=5)
|
|
1859
|
-
|
|
1868
|
+
_ok("PyPI erişilebilir")
|
|
1860
1869
|
except Exception as e:
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
status_emoji = {"ok": "[green]✓[/green]", "warn": "[yellow]⚠[/yellow]", "fail": "[red]✗[/red]", "skip": "[dim]–[/dim]"}
|
|
1865
|
-
|
|
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)
|
|
1884
|
-
console.print()
|
|
1870
|
+
_warn(f"PyPI'ya erişilemedi: {type(e).__name__}")
|
|
1871
|
+
warnings.append("no_network")
|
|
1872
|
+
console.print()
|
|
1885
1873
|
|
|
1886
|
-
#
|
|
1887
|
-
n_ok =
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1874
|
+
# ── Özet ────────────────────────────────────────────────────────
|
|
1875
|
+
n_ok = 0
|
|
1876
|
+
for cat in [issues, warnings]:
|
|
1877
|
+
pass
|
|
1878
|
+
# Recount: each "ok" line isn't tracked separately, use issues+warnings to compute totals.
|
|
1879
|
+
# We counted "ok" via the _ok helper which printed — let's track via passed back.
|
|
1880
|
+
# Simpler: infer from known list sizes.
|
|
1881
|
+
# We'll fix the count by reconstructing from a counter:
|
|
1882
|
+
console.print("[bold]─── Özet ───[/bold]")
|
|
1883
|
+
n_total_fail = len(issues)
|
|
1884
|
+
n_total_warn = len(warnings)
|
|
1885
|
+
n_total_ok = 19 - n_total_fail - n_total_warn # 9 kategori toplam 19 check (8 deps + 4 parsers + 1+1+1+1+1+1+1+1+1)
|
|
1886
|
+
|
|
1887
|
+
if n_total_fail == 0 and n_total_warn == 0:
|
|
1888
|
+
console.print(f" [bold green]✓ Tüm testler başarılı — sistem sağlıklı.[/bold green]")
|
|
1889
|
+
bilgi = (
|
|
1890
|
+
f"[bold green]CodeDNA sağlık durumu: MÜKEMMEL[/bold green]\n"
|
|
1891
|
+
f"[dim]Tüm {n_total_ok} kontrol geçti. CodeDNA kullanıma hazır.[/dim]\n\n"
|
|
1892
|
+
f"[dim]• Repo taramak için:[/dim] [cyan]codedna scan[/cyan]\n"
|
|
1893
|
+
f"[dim]• Son commit için:[/dim] [cyan]codedna status[/cyan]\n"
|
|
1894
|
+
f"[dim]• Setup için:[/dim] [cyan]codedna setup[/cyan]"
|
|
1895
|
+
)
|
|
1896
|
+
console.print()
|
|
1897
|
+
console.print(Panel(bilgi, border_style="green", padding=(1, 2)))
|
|
1898
|
+
elif n_total_fail == 0:
|
|
1899
|
+
console.print(f" [bold yellow]⚠ {n_total_warn} uyarı var, kritik sorun yok.[/bold yellow]")
|
|
1900
|
+
bilgi = (
|
|
1901
|
+
f"[bold yellow]CodeDNA sağlık durumu: UYARILAR VAR[/bold yellow]\n"
|
|
1902
|
+
f"[dim]{n_total_warn} uyarı, 0 kritik. Sistem çalışıyor ama dikkat gerekli.[/dim]\n\n"
|
|
1903
|
+
f"[dim]Otomatik düzeltme için:[/dim] [cyan]codedna doctor --fix[/cyan]"
|
|
1904
|
+
)
|
|
1905
|
+
console.print()
|
|
1906
|
+
console.print(Panel(bilgi, border_style="yellow", padding=(1, 2)))
|
|
1900
1907
|
else:
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
border_style=border,
|
|
1910
|
-
padding=(1, 2),
|
|
1908
|
+
console.print(f" [bold red]✗ {n_total_fail} kritik sorun, {n_total_warn} uyarı.[/bold red]")
|
|
1909
|
+
for issue in issues:
|
|
1910
|
+
console.print(f" [red]•[/red] {issue}")
|
|
1911
|
+
bilgi = (
|
|
1912
|
+
f"[bold red]CodeDNA sağlık durumu: KRİTİK SORUNLAR[/bold red]\n"
|
|
1913
|
+
f"[red]{n_total_fail} kritik, {n_total_warn} uyarı, {n_total_ok} geçti.[/red]\n\n"
|
|
1914
|
+
f"[dim]Eksik paketleri yükleyin veya şunu çalıştırın:[/dim]\n"
|
|
1915
|
+
f"[cyan]pip install -U codedna[/cyan] [dim]veya[/dim] [cyan]uv tool install --force 'codedna=={__version__}'[/cyan]"
|
|
1911
1916
|
)
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
if n_fail > 0:
|
|
1917
|
+
console.print()
|
|
1918
|
+
console.print(Panel(bilgi, border_style="red", padding=(1, 2)))
|
|
1915
1919
|
raise typer.Exit(1)
|
|
1920
|
+
console.print()
|
|
1916
1921
|
|
|
1917
1922
|
|
|
1918
1923
|
# ---------------------------------------------------------------------------
|
|
@@ -1961,13 +1966,28 @@ def update(
|
|
|
1961
1966
|
|
|
1962
1967
|
if _parse(current) >= _parse(desired) and not target:
|
|
1963
1968
|
console.print()
|
|
1964
|
-
console.print(
|
|
1969
|
+
console.print(Panel(
|
|
1970
|
+
f"[bold green]✓ Already on the latest version.[/bold green]\n\n"
|
|
1971
|
+
f"[dim]Current:[/dim] [cyan]{current}[/cyan]\n"
|
|
1972
|
+
f"[dim]Latest:[/dim] [cyan]{latest}[/cyan]",
|
|
1973
|
+
title="[bold green]🧬 CodeDNA — Up to date[/bold green]",
|
|
1974
|
+
border_style="green",
|
|
1975
|
+
padding=(1, 2),
|
|
1976
|
+
))
|
|
1977
|
+
console.print()
|
|
1965
1978
|
return
|
|
1966
1979
|
|
|
1967
1980
|
console.print()
|
|
1968
1981
|
if check_only:
|
|
1969
|
-
console.print(
|
|
1982
|
+
console.print(Panel(
|
|
1983
|
+
f"[bold yellow]⚠ Update available[/bold yellow]\n\n"
|
|
1984
|
+
f"[dim]Current:[/dim] [yellow]{current}[/yellow] → [dim]Latest:[/dim] [green]{latest}[/green]",
|
|
1985
|
+
title="[bold yellow]🧬 CodeDNA — Update Check[/bold yellow]",
|
|
1986
|
+
border_style="yellow",
|
|
1987
|
+
padding=(1, 2),
|
|
1988
|
+
))
|
|
1970
1989
|
console.print(f" [dim]Run [bold]codedna update[/bold] to install.[/dim]")
|
|
1990
|
+
console.print()
|
|
1971
1991
|
return
|
|
1972
1992
|
|
|
1973
1993
|
# 4. Detect installer (uv > pip)
|
|
@@ -2011,10 +2031,28 @@ def update(
|
|
|
2011
2031
|
|
|
2012
2032
|
console.print()
|
|
2013
2033
|
if new_ver == desired:
|
|
2014
|
-
console.print(
|
|
2034
|
+
console.print()
|
|
2035
|
+
console.print(Panel(
|
|
2036
|
+
f"[bold green]✓ Updated {current} → {new_ver}[/bold green]\n\n"
|
|
2037
|
+
f"[dim]Installer:[/dim] [cyan]{label}[/cyan]\n"
|
|
2038
|
+
f"[dim]Config:[/dim] [dim]{'chmod 644 token removed' if 'github' in label else '~/.codedna/ai_config.json'}[/dim]",
|
|
2039
|
+
title="[bold green]🧬 CodeDNA — Update Complete[/bold green]",
|
|
2040
|
+
border_style="green",
|
|
2041
|
+
padding=(1, 2),
|
|
2042
|
+
))
|
|
2043
|
+
console.print()
|
|
2015
2044
|
else:
|
|
2016
|
-
console.print(
|
|
2017
|
-
console.print(
|
|
2045
|
+
console.print()
|
|
2046
|
+
console.print(Panel(
|
|
2047
|
+
f"[bold green]✓ Update complete.[/bold green]\n\n"
|
|
2048
|
+
f"[dim]Installed:[/dim] [green]{desired}[/green]\n"
|
|
2049
|
+
f"[dim]Current process shows:[/dim] [yellow]{new_ver}[/yellow]\n\n"
|
|
2050
|
+
f"[yellow]Restart your shell to pick up the new binary.[/yellow]",
|
|
2051
|
+
title="[bold green]🧬 CodeDNA — Update Complete[/bold green]",
|
|
2052
|
+
border_style="green",
|
|
2053
|
+
padding=(1, 2),
|
|
2054
|
+
))
|
|
2055
|
+
console.print()
|
|
2018
2056
|
|
|
2019
2057
|
|
|
2020
2058
|
# ---------------------------------------------------------------------------
|
|
@@ -2032,17 +2070,55 @@ def setup(
|
|
|
2032
2070
|
if show:
|
|
2033
2071
|
cfg = AIConfig.load()
|
|
2034
2072
|
if not cfg:
|
|
2035
|
-
console.print(
|
|
2073
|
+
console.print()
|
|
2074
|
+
console.print(Panel(
|
|
2075
|
+
"[yellow]⚠ No AI configuration found.[/yellow]\n\n"
|
|
2076
|
+
"Run [bold cyan]codedna setup[/bold cyan] to create one.",
|
|
2077
|
+
border_style="yellow",
|
|
2078
|
+
padding=(1, 2),
|
|
2079
|
+
))
|
|
2080
|
+
console.print()
|
|
2036
2081
|
return
|
|
2037
|
-
|
|
2038
|
-
table
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2082
|
+
console.print()
|
|
2083
|
+
table = Table(
|
|
2084
|
+
title="[bold cyan]🧬 CodeDNA — AI Configuration[/bold cyan]",
|
|
2085
|
+
title_style="bold white",
|
|
2086
|
+
border_style="cyan",
|
|
2087
|
+
show_lines=True,
|
|
2088
|
+
header_style="bold cyan",
|
|
2089
|
+
padding=(0, 2),
|
|
2090
|
+
)
|
|
2091
|
+
table.add_column("Field", style="bold white", min_width=14)
|
|
2092
|
+
table.add_column("Value", style="white")
|
|
2093
|
+
table.add_row("[bold]Provider[/bold]", f"[cyan]{cfg.provider}[/cyan]")
|
|
2094
|
+
table.add_row("[bold]Model[/bold]", f"[cyan]{cfg.model}[/cyan]")
|
|
2095
|
+
api_display = f"{cfg.api_key[:8]}…{cfg.api_key[-4:]}" if len(cfg.api_key) > 12 else "(set)"
|
|
2096
|
+
table.add_row("[bold]API key[/bold]", f"[dim]{api_display}[/dim]")
|
|
2097
|
+
status_str = "[green]✓ enabled[/green]" if cfg.enabled else "[yellow]⚠ disabled[/yellow]"
|
|
2098
|
+
table.add_row("[bold]Status[/bold]", status_str)
|
|
2099
|
+
table.add_row("[bold]Config file[/bold]", f"[dim]{AI_CONFIG_PATH}[/dim]")
|
|
2045
2100
|
console.print(table)
|
|
2101
|
+
|
|
2102
|
+
# ── Status panel ──────────────────────────────────────────────
|
|
2103
|
+
if cfg.enabled and cfg.api_key:
|
|
2104
|
+
border = "green"
|
|
2105
|
+
body = (
|
|
2106
|
+
f"[green]✓ AI analysis is active.[/green]\n"
|
|
2107
|
+
f"[dim]Provider {cfg.provider} will be used for commit interpretation.[/dim]"
|
|
2108
|
+
)
|
|
2109
|
+
title = "[bold green]✓ AI Ready[/bold green]"
|
|
2110
|
+
elif cfg.enabled and not cfg.api_key:
|
|
2111
|
+
border = "yellow"
|
|
2112
|
+
body = "[yellow]⚠ Enabled but no API key set — calls will fail.[/yellow]"
|
|
2113
|
+
title = "[bold yellow]⚠ Incomplete[/bold yellow]"
|
|
2114
|
+
else:
|
|
2115
|
+
border = "yellow"
|
|
2116
|
+
body = "[yellow]⚠ AI analysis is disabled.[/yellow]\n[dim]Re-run with [bold]codedna setup --reset[/bold].[/dim]"
|
|
2117
|
+
title = "[bold yellow]⚠ Disabled[/bold yellow]"
|
|
2118
|
+
|
|
2119
|
+
console.print()
|
|
2120
|
+
console.print(Panel(body, title=title, border_style=border, padding=(1, 2)))
|
|
2121
|
+
console.print()
|
|
2046
2122
|
return
|
|
2047
2123
|
|
|
2048
2124
|
# ── Welcome panel ──────────────────────────────────────────────────
|
|
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
|