codedna 0.4.1__tar.gz → 0.5.0__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.
Files changed (365) hide show
  1. {codedna-0.4.1 → codedna-0.5.0}/CHANGELOG.md +42 -0
  2. {codedna-0.4.1 → codedna-0.5.0}/PKG-INFO +1 -1
  3. {codedna-0.4.1 → codedna-0.5.0}/codedna/__init__.py +1 -1
  4. {codedna-0.4.1 → codedna-0.5.0}/codedna/api.py +34 -0
  5. {codedna-0.4.1 → codedna-0.5.0}/codedna/cli.py +215 -119
  6. codedna-0.5.0/codedna/demo.py +245 -0
  7. {codedna-0.4.1 → codedna-0.5.0}/pyproject.toml +1 -1
  8. codedna-0.5.0/vscode-extension/.vscodeignore +6 -0
  9. codedna-0.5.0/vscode-extension/MARKETPLACE_README.md +68 -0
  10. codedna-0.5.0/vscode-extension/PUBLISH.md +64 -0
  11. codedna-0.5.0/vscode-extension/images/icon.png +0 -0
  12. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/package.json +33 -1
  13. {codedna-0.4.1 → codedna-0.5.0}/.env.example +0 -0
  14. {codedna-0.4.1 → codedna-0.5.0}/.github/CODEOWNERS +0 -0
  15. {codedna-0.4.1 → codedna-0.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  16. {codedna-0.4.1 → codedna-0.5.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  17. {codedna-0.4.1 → codedna-0.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {codedna-0.4.1 → codedna-0.5.0}/.github/dependabot.yml +0 -0
  19. {codedna-0.4.1 → codedna-0.5.0}/.github/workflows/codedna.yml +0 -0
  20. {codedna-0.4.1 → codedna-0.5.0}/.github/workflows/codeql.yml +0 -0
  21. {codedna-0.4.1 → codedna-0.5.0}/.github/workflows/test.yml +0 -0
  22. {codedna-0.4.1 → codedna-0.5.0}/.gitignore +0 -0
  23. {codedna-0.4.1 → codedna-0.5.0}/.python-version +0 -0
  24. {codedna-0.4.1 → codedna-0.5.0}/CONTRIBUTING.md +0 -0
  25. {codedna-0.4.1 → codedna-0.5.0}/LICENSE +0 -0
  26. {codedna-0.4.1 → codedna-0.5.0}/README.md +0 -0
  27. {codedna-0.4.1 → codedna-0.5.0}/SECURITY.md +0 -0
  28. {codedna-0.4.1 → codedna-0.5.0}/codedna/ai.py +0 -0
  29. {codedna-0.4.1 → codedna-0.5.0}/codedna/ai_box.py +0 -0
  30. {codedna-0.4.1 → codedna-0.5.0}/codedna/ai_fingerprint.py +0 -0
  31. {codedna-0.4.1 → codedna-0.5.0}/codedna/analyzer.py +0 -0
  32. {codedna-0.4.1 → codedna-0.5.0}/codedna/auth.py +0 -0
  33. {codedna-0.4.1 → codedna-0.5.0}/codedna/bus_factor.py +0 -0
  34. {codedna-0.4.1 → codedna-0.5.0}/codedna/db.py +0 -0
  35. {codedna-0.4.1 → codedna-0.5.0}/codedna/git_hook.py +0 -0
  36. {codedna-0.4.1 → codedna-0.5.0}/codedna/integrations/__init__.py +0 -0
  37. {codedna-0.4.1 → codedna-0.5.0}/codedna/integrations/github_bot.py +0 -0
  38. {codedna-0.4.1 → codedna-0.5.0}/codedna/integrations/jira.py +0 -0
  39. {codedna-0.4.1 → codedna-0.5.0}/codedna/integrations/lemonsqueezy.py +0 -0
  40. {codedna-0.4.1 → codedna-0.5.0}/codedna/interview.py +0 -0
  41. {codedna-0.4.1 → codedna-0.5.0}/codedna/onboarding.py +0 -0
  42. {codedna-0.4.1 → codedna-0.5.0}/codedna/plan.py +0 -0
  43. {codedna-0.4.1 → codedna-0.5.0}/codedna/protection.py +0 -0
  44. {codedna-0.4.1 → codedna-0.5.0}/codedna/rate_limit.py +0 -0
  45. {codedna-0.4.1 → codedna-0.5.0}/codedna/scorer.py +0 -0
  46. {codedna-0.4.1 → codedna-0.5.0}/codedna/sprint_health.py +0 -0
  47. {codedna-0.4.1 → codedna-0.5.0}/codedna/survey.py +0 -0
  48. {codedna-0.4.1 → codedna-0.5.0}/codedna/tech_debt.py +0 -0
  49. {codedna-0.4.1 → codedna-0.5.0}/dashboard/.env.local.example +0 -0
  50. {codedna-0.4.1 → codedna-0.5.0}/dashboard/.gitignore +0 -0
  51. {codedna-0.4.1 → codedna-0.5.0}/dashboard/README.md +0 -0
  52. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/ai-compare/page.tsx +0 -0
  53. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/api/auth/login/route.ts +0 -0
  54. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/api/auth/logout/route.ts +0 -0
  55. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/api/auth/me/route.ts +0 -0
  56. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/api/auth/register/route.ts +0 -0
  57. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/api/billing/checkout/route.ts +0 -0
  58. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/billing/page.tsx +0 -0
  59. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/bus-factor/page.tsx +0 -0
  60. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/commits/page.tsx +0 -0
  61. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/debt/page.tsx +0 -0
  62. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/favicon.ico +0 -0
  63. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/files/page.tsx +0 -0
  64. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
  65. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/fonts/GeistVF.woff +0 -0
  66. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/globals.css +0 -0
  67. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/interview/page.tsx +0 -0
  68. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/layout.tsx +0 -0
  69. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/login/page.tsx +0 -0
  70. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/onboarding/page.tsx +0 -0
  71. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/page.tsx +0 -0
  72. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/pricing/page.tsx +0 -0
  73. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/protected/page.tsx +0 -0
  74. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/register/page.tsx +0 -0
  75. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/settings/integrations/page.tsx +0 -0
  76. {codedna-0.4.1 → codedna-0.5.0}/dashboard/app/sprints/page.tsx +0 -0
  77. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/AuthProvider.tsx +0 -0
  78. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/ClientProviders.tsx +0 -0
  79. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/CommitTable.tsx +0 -0
  80. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/CostInfoTooltip.tsx +0 -0
  81. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/ErrorBanner.tsx +0 -0
  82. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/FeatureGate.tsx +0 -0
  83. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/FileHeatmap.tsx +0 -0
  84. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/LanguageSwitcher.tsx +0 -0
  85. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/NavClient.tsx +0 -0
  86. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/OverviewTitles.tsx +0 -0
  87. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/QuickInsights.tsx +0 -0
  88. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/RiskBadge.tsx +0 -0
  89. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/SummaryCards.tsx +0 -0
  90. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/UnderstandingChart.tsx +0 -0
  91. {codedna-0.4.1 → codedna-0.5.0}/dashboard/components/UpgradeBanner.tsx +0 -0
  92. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/api.ts +0 -0
  93. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/auth.ts +0 -0
  94. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/i18n/en.ts +0 -0
  95. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/i18n/index.tsx +0 -0
  96. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/i18n/tr.ts +0 -0
  97. {codedna-0.4.1 → codedna-0.5.0}/dashboard/lib/plan.ts +0 -0
  98. {codedna-0.4.1 → codedna-0.5.0}/dashboard/next-env.d.ts +0 -0
  99. {codedna-0.4.1 → codedna-0.5.0}/dashboard/next.config.mjs +0 -0
  100. {codedna-0.4.1 → codedna-0.5.0}/dashboard/package-lock.json +0 -0
  101. {codedna-0.4.1 → codedna-0.5.0}/dashboard/package.json +0 -0
  102. {codedna-0.4.1 → codedna-0.5.0}/dashboard/postcss.config.mjs +0 -0
  103. {codedna-0.4.1 → codedna-0.5.0}/dashboard/tailwind.config.ts +0 -0
  104. {codedna-0.4.1 → codedna-0.5.0}/dashboard/tsconfig.json +0 -0
  105. {codedna-0.4.1 → codedna-0.5.0}/hooks/post-commit +0 -0
  106. {codedna-0.4.1 → codedna-0.5.0}/uv.lock +0 -0
  107. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/.bin/tsc +0 -0
  108. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/.bin/tsserver +0 -0
  109. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/.package-lock.json +0 -0
  110. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
  111. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/README.md +0 -0
  112. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
  113. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
  114. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
  115. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
  116. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
  117. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
  118. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
  119. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
  120. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
  121. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
  122. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
  123. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
  124. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
  125. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
  126. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
  127. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
  128. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
  129. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
  130. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
  131. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
  132. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
  133. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
  134. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
  135. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
  136. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
  137. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
  138. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
  139. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
  140. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
  141. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
  142. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
  143. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
  144. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/package.json +0 -0
  145. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
  146. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
  147. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
  148. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
  149. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
  150. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
  151. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
  152. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
  153. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
  154. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
  155. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
  156. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
  157. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
  158. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
  159. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
  160. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
  161. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
  162. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
  163. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
  164. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
  165. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
  166. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
  167. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
  168. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
  169. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
  170. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
  171. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
  172. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
  173. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
  174. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
  175. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
  176. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
  177. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
  178. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
  179. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
  180. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
  181. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
  182. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
  183. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
  184. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/README.md +0 -0
  185. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
  186. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
  187. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
  188. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
  189. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
  190. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
  191. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
  192. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
  193. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
  194. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
  195. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
  196. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
  197. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
  198. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
  199. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
  200. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
  201. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
  202. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
  203. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
  204. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
  205. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
  206. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
  207. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
  208. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
  209. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
  210. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
  211. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
  212. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
  213. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
  214. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
  215. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
  216. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
  217. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
  218. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
  219. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
  220. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
  221. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
  222. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
  223. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
  224. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
  225. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
  226. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
  227. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
  228. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
  229. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
  230. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
  231. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
  232. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
  233. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
  234. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
  235. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
  236. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
  237. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
  238. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
  239. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
  240. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
  241. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
  242. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
  243. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
  244. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
  245. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
  246. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
  247. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
  248. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
  249. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
  250. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
  251. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
  252. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
  253. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
  254. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
  255. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
  256. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
  257. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
  258. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
  259. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
  260. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
  261. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
  262. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
  263. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
  264. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
  265. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
  266. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
  267. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
  268. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
  269. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
  270. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
  271. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
  272. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
  273. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
  274. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
  275. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
  276. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
  277. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
  278. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
  279. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
  280. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
  281. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
  282. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
  283. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
  284. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
  285. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
  286. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
  287. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
  288. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
  289. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
  290. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
  291. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
  292. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
  293. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
  294. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
  295. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
  296. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
  297. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
  298. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
  299. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
  300. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
  301. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
  302. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
  303. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
  304. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
  305. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
  306. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
  307. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
  308. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
  309. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
  310. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
  311. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
  312. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
  313. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
  314. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/typescript/package.json +0 -0
  315. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
  316. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/README.md +0 -0
  317. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
  318. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
  319. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
  320. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
  321. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
  322. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
  323. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
  324. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
  325. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
  326. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
  327. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
  328. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
  329. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
  330. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
  331. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
  332. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
  333. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
  334. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
  335. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
  336. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
  337. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
  338. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
  339. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
  340. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
  341. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
  342. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
  343. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
  344. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
  345. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/package.json +0 -0
  346. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
  347. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
  348. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
  349. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
  350. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
  351. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
  352. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
  353. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
  354. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
  355. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
  356. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/out/apiClient.js.map +0 -0
  357. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/out/decorations.js.map +0 -0
  358. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/out/extension.js.map +0 -0
  359. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/out/statusBar.js.map +0 -0
  360. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/package-lock.json +0 -0
  361. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/src/apiClient.ts +0 -0
  362. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/src/decorations.ts +0 -0
  363. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/src/extension.ts +0 -0
  364. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/src/statusBar.ts +0 -0
  365. {codedna-0.4.1 → codedna-0.5.0}/vscode-extension/tsconfig.json +0 -0
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.0] - 2026-06-24 — "Phase 8: Demo Mode + VS Code Marketplace"
4
+
5
+ ### ✨ Added — Demo Mode (Part A)
6
+ - **`codedna/demo.py`** — new module with `seed_demo_data`, `clear_demo_data`, `is_demo_active`
7
+ - 47 fake commits over 30 days, varying AI probability (0.1–0.9)
8
+ - 4 authors, 8 files, 3 sprints with realistic health scores
9
+ - 20% null understanding scores, 80% in [3.0, 5.0]
10
+ - Idempotent: tags demo rows with `__demo__` prefix
11
+ - **`codedna demo` CLI command** — seed + auto-start dashboard
12
+ - `codedna demo` — seed and start dashboard
13
+ - `codedna demo --reset` — clear all demo rows
14
+ - `codedna demo --data-only` — seed without starting dashboard
15
+ - **FastAPI endpoints** — `/demo/status`, `/demo/seed`, `/demo/reset`
16
+ - **Dashboard banner** — orange banner at top of dashboard when demo is active
17
+ - Dismissable, persisted in localStorage
18
+ - i18n keys: `demo_banner`, `demo_close`, `demo_init_cta`
19
+
20
+ ### ✨ Added — VS Code Marketplace (Part B)
21
+ - **`vscode-extension/package.json`** — full marketplace metadata
22
+ - `icon` (128x128 PNG), `galleryBanner`, `badges`, `keywords`, `categories`
23
+ - `homepage`, `bugs`, `repository`, `license: MIT`
24
+ - `scripts` for `compile`/`watch`/`package`/`publish`
25
+ - `devDependencies`: `@vscode/vsce ^2.24.0`
26
+ - **`vscode-extension/images/icon.png`** — 128x128 dark cyan/emerald DNA helix
27
+ - **`vscode-extension/.vscodeignore`** — excludes `src/`, `node_modules/`, `*.ts`
28
+ - **`vscode-extension/MARKETPLACE_README.md`** — full English marketplace description
29
+ - **`vscode-extension/PUBLISH.md`** — step-by-step publishing instructions
30
+
31
+ ### 🔄 Changed
32
+ - Minor version bump (0.4.2 → 0.5.0) — major feature release, breaks the 7-patch cascade
33
+
34
+ ## [0.4.2] - 2026-06-24 — "Doctor Legacy Style"
35
+
36
+ ### 🎨 Redesigned
37
+ - **`codedna doctor`** — restored to match the legacy CodeDNA CLI aesthetic
38
+ - Old: Rich Table with show_lines + border_style="dim" (looked too plain)
39
+ - New: `console.print()` with `[bold]─── Kategori ───[/bold]` headers
40
+ - Per-line emoji markers: `[green]✓[/green]`, `[yellow]⚠[/yellow]`, `[red]✗[/red]`
41
+ - Spinner: `console.status("[dim]Testler çalıştırılıyor...[/dim]")`
42
+ - Summary panel: `border_style="green"|"yellow"|"red"` depending on result
43
+ - All messages in Turkish (matching the legacy codebase)
44
+
3
45
  ## [0.4.1] - 2026-06-24 — "Legacy Style"
4
46
 
5
47
  ### 🎨 Redesigned
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codedna
3
- Version: 0.4.1
3
+ Version: 0.5.0
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
@@ -1,4 +1,4 @@
1
1
  """CodeDNA — AI Code Transparency Tool."""
2
2
 
3
- __version__ = "0.4.1"
3
+ __version__ = "0.5.0"
4
4
  __app_name__ = "codedna"
@@ -97,6 +97,40 @@ async def health_check() -> dict:
97
97
  }
98
98
 
99
99
 
100
+ # ---------------------------------------------------------------------------
101
+ # Demo mode endpoints
102
+ # ---------------------------------------------------------------------------
103
+ @app.get("/demo/status", tags=["Demo"])
104
+ async def demo_status() -> dict:
105
+ """Check whether demo data is currently active in the database."""
106
+ from codedna.demo import is_demo_active, _count_demo
107
+ db = _db_path()
108
+ init_db(db)
109
+ active = is_demo_active(db)
110
+ return {
111
+ "active": active,
112
+ "counts": _count_demo(db) if active else {"commits": 0, "files": 0, "authors": 0, "sprints": 0},
113
+ }
114
+
115
+
116
+ @app.post("/demo/seed", tags=["Demo"])
117
+ async def demo_seed() -> dict:
118
+ """Seed the database with realistic fake demo data (idempotent)."""
119
+ from codedna.demo import seed_demo_data
120
+ db = _db_path()
121
+ init_db(db)
122
+ return seed_demo_data(db)
123
+
124
+
125
+ @app.delete("/demo/reset", tags=["Demo"])
126
+ async def demo_reset() -> dict:
127
+ """Clear all demo data from the database."""
128
+ from codedna.demo import clear_demo_data
129
+ db = _db_path()
130
+ deleted = clear_demo_data(db)
131
+ return {"deleted": deleted, "active": False}
132
+
133
+
100
134
  @app.get("/repo/summary", tags=["Repo"])
101
135
  async def repo_summary() -> dict:
102
136
  """Repo-wide summary: average AI score, total commits, risk level."""
@@ -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 _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}")
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
- with console.status("[bold cyan]🔍 Running health checks...[/bold cyan]", spinner="dots"):
1737
- import subprocess
1727
+ def _fail(msg: str) -> None:
1728
+ console.print(f" [red]✗[/red] {msg}")
1738
1729
 
1739
- # 1. Python Environment
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
- _record("Python", "ok", f"{py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 required)")
1735
+ _ok(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 gerekli)")
1743
1736
  else:
1744
- _record("Python", "fail", f"{py_ver.major}.{py_ver.minor}.{py_ver.micro} — 3.10+ required")
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
- _record("CodeDNA", "ok", f"v{codedna.__version__} at {Path(codedna.__file__).parent}")
1742
+ _ok(f"CodeDNA [bold]v{codedna.__version__}[/bold] {Path(codedna.__file__).parent}")
1750
1743
  except Exception as e:
1751
- _record("CodeDNA", "fail", f"import failed: {e}")
1744
+ _fail(f"CodeDNA import hatası: {e}")
1745
+ issues.append("codedna_import")
1746
+ console.print()
1752
1747
 
1753
- # 3. Git
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
- _record("Git", "ok", result.stdout.strip())
1753
+ _ok(f"Git: {result.stdout.strip()}")
1758
1754
  else:
1759
- _record("Git", "fail", "git command returned non-zero")
1755
+ _fail("Git komutu hata döndü")
1756
+ issues.append("git")
1760
1757
  except FileNotFoundError:
1761
- _record("Git", "fail", "git not found on PATH")
1758
+ _fail("Git PATH'te bulunamadı")
1759
+ issues.append("git")
1762
1760
  except Exception as e:
1763
- _record("Git", "warn", f"check failed: {e}")
1761
+ _warn(f"Git kontrolü başarısız: {e}")
1762
+ warnings.append("git_check")
1763
+ console.print()
1764
1764
 
1765
- # 4. Tree-sitter parsers
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
- _record("Tree-sitter", "ok", pkg_name)
1776
+ _ok(pkg_name)
1776
1777
  except ImportError:
1777
- _record("Tree-sitter", "fail", f"{pkg_name} not installed")
1778
+ _fail(f"{pkg_name} yüklü değil")
1779
+ issues.append(f"missing:{pkg_name}")
1780
+ console.print()
1778
1781
 
1779
- # 5. Database
1780
- db_status = "skip"
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
- _record("Database", "ok", f"{db_path} ({size_kb:.1f} KB)")
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
- _record("Database", "warn", f"no database at {db_path}")
1793
- db_status = "warn"
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
- _record("Database", "ok", "initialized (auto-fixed)")
1799
- db_status = "ok"
1800
- db_msg = "auto-fixed"
1796
+ _ok("Veritabanı oluşturuldu (otomatik düzeltildi)")
1801
1797
  except Exception as e:
1802
- _record("Database", "fail", f"auto-init failed: {e}")
1798
+ _fail(f"Veritabanı oluşturulamadı: {e}")
1799
+ issues.append("db_init_failed")
1803
1800
  except Exception:
1804
- _record("Database", "warn", "skipped (not in a git repo)")
1801
+ _warn("Git repo'sunda değilsiniz veritabanı kontrolü atlandı")
1802
+ console.print()
1805
1803
 
1806
- # 6. Git hook
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
- _record("Hook", "ok", "post-commit hook installed")
1809
+ _ok("Post-commit hook kurulu")
1811
1810
  else:
1812
- _record("Hook", "warn", "post-commit hook not installed")
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
- _record("Hook", "ok", "installed (auto-fixed)")
1816
+ _ok("Hook kuruldu (otomatik düzeltildi)")
1817
1817
  except Exception as e:
1818
- _record("Hook", "fail", f"auto-install failed: {e}")
1818
+ _fail(f"Hook kurulamadı: {e}")
1819
+ issues.append("hook_install_failed")
1819
1820
  except Exception:
1820
- _record("Hook", "warn", "skipped (not in a git repo)")
1821
+ _warn("Git repo'sunda değilsiniz hook kontrolü atlandı")
1822
+ console.print()
1821
1823
 
1822
- # 7. Core dependencies
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 integration"),
1829
+ ("gitpython", "Git entegrasyonu"),
1827
1830
  ("fastapi", "REST API"),
1828
1831
  ("uvicorn", "ASGI server"),
1829
- ("pydantic", "Data validation"),
1832
+ ("pydantic", "Veri doğrulama"),
1830
1833
  ("pyjwt", "JWT auth"),
1831
- ("bcrypt", "Password hashing"),
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
- _record("Dependencies", "ok", f"{mod_name} {ver} — {desc}")
1840
+ _ok(f"{mod_name} [dim]{ver}[/dim] — {desc}")
1838
1841
  except ImportError:
1839
- _record("Dependencies", "fail", f"{mod_name} not installed {desc}")
1842
+ _fail(f"{mod_name} yüklü değil ({desc})")
1843
+ issues.append(f"missing:{mod_name}")
1844
+ console.print()
1840
1845
 
1841
- # 8. License & Plan
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 = json.load(f)
1853
+ lic = _json.load(f)
1848
1854
  plan = lic.get("plan", "free")
1849
- _record("License", "ok", f"plan = {plan.upper()}")
1855
+ _ok(f"Aktif plan: [bold cyan]{plan.upper()}[/bold cyan]")
1850
1856
  except Exception as e:
1851
- _record("License", "warn", f"file unreadable: {e}")
1857
+ _warn(f"Lisans dosyası okunamadı: {e}")
1858
+ warnings.append("license_unreadable")
1852
1859
  else:
1853
- _record("License", "warn", f"no license at {license_path} (FREE plan)")
1860
+ _warn(f"Lisans yok: {license_path} (FREE planda)")
1861
+ console.print()
1854
1862
 
1855
- # 9. Network
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
- _record("Network", "ok", "PyPI reachable")
1868
+ _ok("PyPI erişilebilir")
1860
1869
  except Exception as e:
1861
- _record("Network", "warn", f"PyPI unreachable: {type(e).__name__}")
1862
-
1863
- # ─── Render results as a beautiful table ────────────────────────────
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
- # ─── 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]"
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
- 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),
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
  # ---------------------------------------------------------------------------
@@ -2050,6 +2055,97 @@ def update(
2050
2055
  console.print()
2051
2056
 
2052
2057
 
2058
+ # ---------------------------------------------------------------------------
2059
+ # codedna demo (seed database with realistic fake data)
2060
+ # ---------------------------------------------------------------------------
2061
+ @app.command()
2062
+ def demo(
2063
+ reset: bool = typer.Option(False, "--reset", help="Clear all demo data"),
2064
+ data_only: bool = typer.Option(False, "--data-only", help="Seed data only, don't start dashboard"),
2065
+ ) -> None:
2066
+ """Load demo data into the database (idempotent) and open the dashboard."""
2067
+ from codedna.demo import seed_demo_data, clear_demo_data, is_demo_active
2068
+ from codedna.db import get_db_path
2069
+
2070
+ db_path = get_db_path()
2071
+
2072
+ console.print()
2073
+ if reset:
2074
+ deleted = clear_demo_data(db_path)
2075
+ console.print(
2076
+ Panel(
2077
+ f"[bold green]✓ Demo data cleared.[/bold green]\n\n"
2078
+ f"[dim]Removed:[/dim] [yellow]{deleted}[/yellow] [dim]rows[/dim]",
2079
+ title="[bold cyan]🧬 CodeDNA — Demo Reset[/bold cyan]",
2080
+ border_style="cyan",
2081
+ padding=(1, 2),
2082
+ )
2083
+ )
2084
+ console.print()
2085
+ return
2086
+
2087
+ # Seed
2088
+ if is_demo_active(db_path):
2089
+ console.print(
2090
+ Panel(
2091
+ "[bold yellow]⚠ Demo data already seeded.[/bold yellow]\n\n"
2092
+ "[dim]Run [bold]codedna demo --reset[/bold] to clear and re-seed.[/dim]",
2093
+ title="[bold yellow]🧬 CodeDNA — Demo Mode[/bold yellow]",
2094
+ border_style="yellow",
2095
+ padding=(1, 2),
2096
+ )
2097
+ )
2098
+ console.print()
2099
+ return
2100
+
2101
+ console.print("[bold cyan]🧬 CodeDNA Demo Mode[/bold cyan]")
2102
+ console.print("─" * 40)
2103
+ console.print()
2104
+
2105
+ with console.status("[dim]Seeding demo data...[/dim]"):
2106
+ counts = seed_demo_data(db_path)
2107
+
2108
+ console.print(f" [green]✓[/green] [bold]{counts['commits']}[/bold] commits loaded")
2109
+ console.print(f" [green]✓[/green] [bold]{counts['files']}[/bold] files analyzed")
2110
+ console.print(f" [green]✓[/green] [bold]{counts['authors']}[/bold] developer profiles created")
2111
+ console.print(f" [green]✓[/green] [bold]{counts['sprints']}[/bold] sprints recorded")
2112
+ console.print()
2113
+
2114
+ # Summary panel
2115
+ body = (
2116
+ f"[bold green]✓ Demo data ready![/bold green]\n\n"
2117
+ f"[dim]Dashboard:[/dim] [cyan]http://localhost:3000[/cyan]\n"
2118
+ f"[dim]API:[/dim] [cyan]http://localhost:8000[/cyan]\n\n"
2119
+ f"[yellow]⚠ Demo data is fake — for previewing the dashboard only.[/yellow]\n"
2120
+ f"[dim]Run [bold]codedna demo --reset[/bold] to clear demo data.[/dim]"
2121
+ )
2122
+ console.print(Panel(body, border_style="green", padding=(1, 2)))
2123
+ console.print()
2124
+
2125
+ if data_only:
2126
+ console.print("[dim]--data-only flag set, dashboard not started.[/dim]")
2127
+ console.print()
2128
+ return
2129
+
2130
+ # Try to start dashboard (subprocess so we don't block this command)
2131
+ import subprocess
2132
+ import sys
2133
+ console.print("[dim]Starting dashboard in background...[/dim]")
2134
+ try:
2135
+ subprocess.Popen(
2136
+ [sys.executable, "-m", "codedna", "dashboard"],
2137
+ stdout=subprocess.DEVNULL,
2138
+ stderr=subprocess.DEVNULL,
2139
+ start_new_session=True,
2140
+ )
2141
+ console.print(f" [green]✓[/green] Dashboard starting at [cyan]http://localhost:3000[/cyan]")
2142
+ console.print(f" [dim]API at [cyan]http://localhost:8000[/cyan][/dim]")
2143
+ except Exception as e:
2144
+ console.print(f" [yellow]⚠ Could not auto-start dashboard: {e}[/yellow]")
2145
+ console.print(f" [dim]Run [bold]codedna dashboard[/bold] manually to start it.[/dim]")
2146
+ console.print()
2147
+
2148
+
2053
2149
  # ---------------------------------------------------------------------------
2054
2150
  # codedna setup (interactive AI analysis configuration wizard)
2055
2151
  # ---------------------------------------------------------------------------