codedna 0.2.20__tar.gz → 0.2.22__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 (389) hide show
  1. {codedna-0.2.20 → codedna-0.2.22}/PKG-INFO +1 -1
  2. codedna-0.2.22/codedna/__init__.py +4 -0
  3. {codedna-0.2.20 → codedna-0.2.22}/codedna/ai.py +29 -34
  4. {codedna-0.2.20 → codedna-0.2.22}/codedna/ai_box.py +22 -22
  5. codedna-0.2.22/codedna/ai_fingerprint.py +220 -0
  6. codedna-0.2.22/codedna/analyzer.py +245 -0
  7. codedna-0.2.22/codedna/api.py +1407 -0
  8. {codedna-0.2.20 → codedna-0.2.22}/codedna/auth.py +108 -108
  9. codedna-0.2.22/codedna/bus_factor.py +258 -0
  10. {codedna-0.2.20 → codedna-0.2.22}/codedna/cli.py +168 -168
  11. {codedna-0.2.20 → codedna-0.2.22}/codedna/db.py +21 -21
  12. codedna-0.2.22/codedna/git_hook.py +210 -0
  13. codedna-0.2.22/codedna/integrations/__init__.py +1 -0
  14. codedna-0.2.22/codedna/integrations/github_bot.py +259 -0
  15. codedna-0.2.22/codedna/integrations/jira.py +165 -0
  16. codedna-0.2.22/codedna/integrations/lemonsqueezy.py +229 -0
  17. codedna-0.2.22/codedna/interview.py +296 -0
  18. codedna-0.2.22/codedna/onboarding.py +195 -0
  19. {codedna-0.2.20 → codedna-0.2.22}/codedna/plan.py +51 -52
  20. codedna-0.2.22/codedna/protection.py +211 -0
  21. codedna-0.2.22/codedna/rate_limit.py +83 -0
  22. codedna-0.2.22/codedna/scorer.py +221 -0
  23. codedna-0.2.22/codedna/sprint_health.py +185 -0
  24. codedna-0.2.22/codedna/survey.py +104 -0
  25. codedna-0.2.22/codedna/tech_debt.py +230 -0
  26. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/ai-compare/page.tsx +47 -64
  27. codedna-0.2.22/dashboard/app/billing/page.tsx +260 -0
  28. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/bus-factor/page.tsx +62 -66
  29. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/commits/page.tsx +30 -30
  30. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/debt/page.tsx +103 -131
  31. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/files/page.tsx +25 -25
  32. codedna-0.2.22/dashboard/app/interview/page.tsx +230 -0
  33. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/login/page.tsx +20 -20
  34. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/onboarding/page.tsx +108 -127
  35. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/page.tsx +15 -15
  36. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/protected/page.tsx +74 -73
  37. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/register/page.tsx +23 -23
  38. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/settings/integrations/page.tsx +64 -48
  39. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/sprints/page.tsx +107 -167
  40. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/AnlamaGrafigi.tsx +24 -21
  41. codedna-0.2.22/dashboard/components/AuthProvider.tsx +53 -0
  42. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/CommitTable.tsx +50 -50
  43. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/FeatureGate.tsx +13 -14
  44. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/FileHeatmap.tsx +27 -27
  45. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/HataBanner.tsx +6 -3
  46. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/NavClient.tsx +8 -8
  47. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/QuickInsights.tsx +36 -35
  48. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/RiskBadge.tsx +10 -14
  49. codedna-0.2.22/dashboard/components/SummaryCards.tsx +100 -0
  50. codedna-0.2.22/dashboard/lib/api.ts +116 -0
  51. codedna-0.2.22/dashboard/lib/auth.ts +131 -0
  52. {codedna-0.2.20 → codedna-0.2.22}/dashboard/lib/plan.ts +16 -16
  53. {codedna-0.2.20 → codedna-0.2.22}/pyproject.toml +1 -1
  54. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/src/apiClient.ts +26 -26
  55. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/src/decorations.ts +12 -12
  56. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/src/extension.ts +19 -19
  57. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/src/statusBar.ts +15 -15
  58. codedna-0.2.20/codedna/__init__.py +0 -4
  59. codedna-0.2.20/codedna/ai_fingerprint.py +0 -223
  60. codedna-0.2.20/codedna/analyzer.py +0 -245
  61. codedna-0.2.20/codedna/api.py +0 -1505
  62. codedna-0.2.20/codedna/bus_factor.py +0 -259
  63. codedna-0.2.20/codedna/git_hook.py +0 -212
  64. codedna-0.2.20/codedna/integrations/__init__.py +0 -1
  65. codedna-0.2.20/codedna/integrations/github_bot.py +0 -259
  66. codedna-0.2.20/codedna/integrations/jira.py +0 -166
  67. codedna-0.2.20/codedna/integrations/lemonsqueezy.py +0 -236
  68. codedna-0.2.20/codedna/interview.py +0 -298
  69. codedna-0.2.20/codedna/onboarding.py +0 -195
  70. codedna-0.2.20/codedna/protection.py +0 -211
  71. codedna-0.2.20/codedna/rate_limit.py +0 -83
  72. codedna-0.2.20/codedna/scorer.py +0 -221
  73. codedna-0.2.20/codedna/sprint_health.py +0 -185
  74. codedna-0.2.20/codedna/survey.py +0 -104
  75. codedna-0.2.20/codedna/tech_debt.py +0 -232
  76. codedna-0.2.20/dashboard/app/billing/page.tsx +0 -341
  77. codedna-0.2.20/dashboard/app/interview/page.tsx +0 -225
  78. codedna-0.2.20/dashboard/components/AuthProvider.tsx +0 -53
  79. codedna-0.2.20/dashboard/components/SummaryCards.tsx +0 -100
  80. codedna-0.2.20/dashboard/lib/api.ts +0 -116
  81. codedna-0.2.20/dashboard/lib/auth.ts +0 -131
  82. codedna-0.2.20/vscode-extension/out/apiClient.js +0 -103
  83. codedna-0.2.20/vscode-extension/out/decorations.js +0 -106
  84. codedna-0.2.20/vscode-extension/out/extension.js +0 -154
  85. codedna-0.2.20/vscode-extension/out/statusBar.js +0 -156
  86. {codedna-0.2.20 → codedna-0.2.22}/.env.example +0 -0
  87. {codedna-0.2.20 → codedna-0.2.22}/.env.ls +0 -0
  88. {codedna-0.2.20 → codedna-0.2.22}/.github/CODEOWNERS +0 -0
  89. {codedna-0.2.20 → codedna-0.2.22}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  90. {codedna-0.2.20 → codedna-0.2.22}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  91. {codedna-0.2.20 → codedna-0.2.22}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  92. {codedna-0.2.20 → codedna-0.2.22}/.github/dependabot.yml +0 -0
  93. {codedna-0.2.20 → codedna-0.2.22}/.github/workflows/codedna.yml +0 -0
  94. {codedna-0.2.20 → codedna-0.2.22}/.github/workflows/codeql.yml +0 -0
  95. {codedna-0.2.20 → codedna-0.2.22}/.github/workflows/test.yml +0 -0
  96. {codedna-0.2.20 → codedna-0.2.22}/.gitignore +0 -0
  97. {codedna-0.2.20 → codedna-0.2.22}/.python-version +0 -0
  98. {codedna-0.2.20 → codedna-0.2.22}/CHANGELOG.md +0 -0
  99. {codedna-0.2.20 → codedna-0.2.22}/CONTRIBUTING.md +0 -0
  100. {codedna-0.2.20 → codedna-0.2.22}/LICENSE +0 -0
  101. {codedna-0.2.20 → codedna-0.2.22}/README.md +0 -0
  102. {codedna-0.2.20 → codedna-0.2.22}/SECURITY.md +0 -0
  103. {codedna-0.2.20 → codedna-0.2.22}/dashboard/.env.local.example +0 -0
  104. {codedna-0.2.20 → codedna-0.2.22}/dashboard/.gitignore +0 -0
  105. {codedna-0.2.20 → codedna-0.2.22}/dashboard/README.md +0 -0
  106. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/api/auth/login/route.ts +0 -0
  107. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/api/auth/logout/route.ts +0 -0
  108. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/api/auth/me/route.ts +0 -0
  109. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/api/auth/register/route.ts +0 -0
  110. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/api/billing/checkout/route.ts +0 -0
  111. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/favicon.ico +0 -0
  112. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
  113. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/fonts/GeistVF.woff +0 -0
  114. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/globals.css +0 -0
  115. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/layout.tsx +0 -0
  116. {codedna-0.2.20 → codedna-0.2.22}/dashboard/app/pricing/page.tsx +0 -0
  117. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/ClientProviders.tsx +0 -0
  118. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/CostInfoTooltip.tsx +0 -0
  119. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/LanguageSwitcher.tsx +0 -0
  120. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/OverviewTitles.tsx +0 -0
  121. {codedna-0.2.20 → codedna-0.2.22}/dashboard/components/UpgradeBanner.tsx +0 -0
  122. {codedna-0.2.20 → codedna-0.2.22}/dashboard/lib/i18n/en.ts +0 -0
  123. {codedna-0.2.20 → codedna-0.2.22}/dashboard/lib/i18n/index.tsx +0 -0
  124. {codedna-0.2.20 → codedna-0.2.22}/dashboard/lib/i18n/tr.ts +0 -0
  125. {codedna-0.2.20 → codedna-0.2.22}/dashboard/next-env.d.ts +0 -0
  126. {codedna-0.2.20 → codedna-0.2.22}/dashboard/next.config.mjs +0 -0
  127. {codedna-0.2.20 → codedna-0.2.22}/dashboard/package-lock.json +0 -0
  128. {codedna-0.2.20 → codedna-0.2.22}/dashboard/package.json +0 -0
  129. {codedna-0.2.20 → codedna-0.2.22}/dashboard/postcss.config.mjs +0 -0
  130. {codedna-0.2.20 → codedna-0.2.22}/dashboard/tailwind.config.ts +0 -0
  131. {codedna-0.2.20 → codedna-0.2.22}/dashboard/tsconfig.json +0 -0
  132. {codedna-0.2.20 → codedna-0.2.22}/hooks/post-commit +0 -0
  133. {codedna-0.2.20 → codedna-0.2.22}/uv.lock +0 -0
  134. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/.bin/tsc +0 -0
  135. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/.bin/tsserver +0 -0
  136. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/.package-lock.json +0 -0
  137. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
  138. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/README.md +0 -0
  139. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
  140. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
  141. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
  142. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
  143. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
  144. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
  145. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
  146. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
  147. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
  148. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
  149. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
  150. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
  151. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
  152. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
  153. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
  154. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
  155. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
  156. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
  157. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
  158. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
  159. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
  160. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
  161. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
  162. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
  163. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
  164. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
  165. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
  166. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
  167. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
  168. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
  169. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
  170. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
  171. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/package.json +0 -0
  172. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
  173. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
  174. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
  175. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
  176. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
  177. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
  178. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
  179. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
  180. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
  181. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
  182. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
  183. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
  184. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
  185. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
  186. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
  187. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
  188. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
  189. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
  190. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
  191. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
  192. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
  193. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
  194. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
  195. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
  196. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
  197. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
  198. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
  199. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
  200. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
  201. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
  202. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
  203. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
  204. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
  205. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
  206. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
  207. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
  208. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
  209. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
  210. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
  211. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/README.md +0 -0
  212. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
  213. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
  214. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
  215. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
  216. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
  217. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
  218. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
  219. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
  220. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
  221. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
  222. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
  223. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
  224. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
  225. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
  226. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
  227. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
  228. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
  229. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
  230. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
  231. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
  232. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
  233. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
  234. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
  235. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
  236. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
  237. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
  238. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
  239. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
  240. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
  241. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
  242. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
  243. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
  244. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
  245. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
  246. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
  247. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
  248. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
  249. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
  250. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
  251. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
  252. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
  253. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
  254. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
  255. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
  256. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
  257. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
  258. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
  259. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
  260. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
  261. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
  262. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
  263. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
  264. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
  265. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
  266. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
  267. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
  268. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
  269. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
  270. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
  271. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
  272. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
  273. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
  274. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
  275. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
  276. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
  277. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
  278. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
  279. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
  280. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
  281. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
  282. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
  283. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
  284. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
  285. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
  286. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
  287. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
  288. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
  289. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
  290. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
  291. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
  292. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
  293. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
  294. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
  295. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
  296. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
  297. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
  298. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
  299. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
  300. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
  301. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
  302. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
  303. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
  304. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
  305. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
  306. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
  307. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
  308. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
  309. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
  310. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
  311. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
  312. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
  313. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
  314. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
  315. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
  316. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
  317. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
  318. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
  319. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
  320. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
  321. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
  322. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
  323. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
  324. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
  325. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
  326. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
  327. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
  328. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
  329. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
  330. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
  331. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
  332. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
  333. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
  334. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
  335. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
  336. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
  337. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
  338. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
  339. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
  340. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
  341. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/typescript/package.json +0 -0
  342. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
  343. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/README.md +0 -0
  344. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
  345. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
  346. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
  347. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
  348. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
  349. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
  350. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
  351. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
  352. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
  353. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
  354. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
  355. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
  356. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
  357. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
  358. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
  359. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
  360. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
  361. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
  362. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
  363. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
  364. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
  365. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
  366. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
  367. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
  368. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
  369. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
  370. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
  371. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
  372. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/package.json +0 -0
  373. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
  374. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
  375. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
  376. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
  377. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
  378. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
  379. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
  380. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
  381. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
  382. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
  383. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/out/apiClient.js.map +0 -0
  384. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/out/decorations.js.map +0 -0
  385. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/out/extension.js.map +0 -0
  386. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/out/statusBar.js.map +0 -0
  387. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/package-lock.json +0 -0
  388. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/package.json +0 -0
  389. {codedna-0.2.20 → codedna-0.2.22}/vscode-extension/tsconfig.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codedna
3
- Version: 0.2.20
3
+ Version: 0.2.22
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
@@ -0,0 +1,4 @@
1
+ """CodeDNA — AI Code Transparency Tool."""
2
+
3
+ __version__ = "0.2.22"
4
+ __app_name__ = "codedna"
@@ -1,12 +1,12 @@
1
1
  """
2
- AI Analiz Katmanı - Kullanici komut sonuclarini AI ile yorumlar.
2
+ AI Analysis Layer - Interprets user command outputs using AI.
3
3
 
4
- Desteklenen provider'lar:
4
+ Supported providers:
5
5
  - Anthropic (Claude)
6
6
  - MiniMax
7
7
  - OpenAI
8
8
 
9
- Key sadece analiz icin kullanilir, sohbet/tamamlama yok.
9
+ The key is used only for analysis, no chat/completion.
10
10
  """
11
11
  import base64
12
12
  import json
@@ -19,17 +19,17 @@ from typing import Optional
19
19
 
20
20
  AI_CONFIG_PATH = Path.home() / ".codedna" / "ai_config.json"
21
21
 
22
- # Provider listesi
22
+ # Provider list
23
23
  PROVIDERS = ["anthropic", "minimax", "openai"]
24
24
 
25
- # Default modeller
25
+ # Default models
26
26
  DEFAULT_MODELS = {
27
27
  "anthropic": "claude-sonnet-4-20250514",
28
28
  "minimax": "MiniMax-M2.5",
29
29
  "openai": "gpt-4o-mini",
30
30
  }
31
31
 
32
- # Provider API endpoint
32
+ # Provider API endpoints
33
33
  API_ENDPOINTS = {
34
34
  "anthropic": "https://api.anthropic.com/v1/messages",
35
35
  "minimax": "https://api.minimax.io/v1/text/chatcompletion_v2",
@@ -39,7 +39,7 @@ API_ENDPOINTS = {
39
39
 
40
40
  @dataclass
41
41
  class AIConfig:
42
- """AI analiz konfigurasyonu."""
42
+ """AI analysis configuration."""
43
43
  provider: str
44
44
  api_key: str
45
45
  model: str
@@ -47,7 +47,7 @@ class AIConfig:
47
47
 
48
48
  @classmethod
49
49
  def load(cls) -> Optional["AIConfig"]:
50
- """Config dosyasindan yukle."""
50
+ """Load from config file."""
51
51
  if not AI_CONFIG_PATH.exists():
52
52
  return None
53
53
  try:
@@ -62,7 +62,7 @@ class AIConfig:
62
62
  return None
63
63
 
64
64
  def save(self) -> None:
65
- """Config'i dosyaya yaz."""
65
+ """Write config to file."""
66
66
  AI_CONFIG_PATH.parent.mkdir(parents=True, exist_ok=True)
67
67
  data = {
68
68
  "provider": self.provider,
@@ -78,19 +78,17 @@ class AIConfig:
78
78
 
79
79
  @classmethod
80
80
  def clear(cls) -> None:
81
- """Config'i sil."""
81
+ """Delete the config file."""
82
82
  if AI_CONFIG_PATH.exists():
83
83
  AI_CONFIG_PATH.unlink()
84
84
 
85
85
 
86
86
  def _call_anthropic(api_key: str, model: str, prompt: str) -> str:
87
- """Anthropic Claude API cagirisi."""
87
+ """Call the Anthropic Claude API."""
88
88
  payload = {
89
89
  "model": model,
90
90
  "max_tokens": 500,
91
- "messages": [
92
- {"role": "user", "content": prompt}
93
- ],
91
+ "messages": [{"role": "user", "content": prompt}],
94
92
  }
95
93
  req = urllib.request.Request(
96
94
  API_ENDPOINTS["anthropic"],
@@ -104,16 +102,15 @@ def _call_anthropic(api_key: str, model: str, prompt: str) -> str:
104
102
  )
105
103
  with urllib.request.urlopen(req, timeout=30) as resp:
106
104
  result = json.loads(resp.read())
107
- # Response: {content: [{text: "..."}], ...}
108
105
  return result.get("content", [{}])[0].get("text", "")
109
106
 
110
107
 
111
108
  def _call_minimax(api_key: str, model: str, prompt: str) -> str:
112
- """MiniMax API cagirisi."""
109
+ """Call the MiniMax API."""
113
110
  payload = {
114
111
  "model": model,
115
112
  "messages": [
116
- {"role": "system", "content": "Sen CodeDNA'nin AI analiz asistanisin. Kullanici komut ciktilarini yorumlarsin. Sohbet etme, sadece analiz ve oneriler sun."},
113
+ {"role": "system", "content": "You are CodeDNA's AI analysis assistant. You interpret user command outputs. Do not chat only provide analysis and insights."},
117
114
  {"role": "user", "content": prompt}
118
115
  ],
119
116
  }
@@ -132,12 +129,12 @@ def _call_minimax(api_key: str, model: str, prompt: str) -> str:
132
129
 
133
130
 
134
131
  def _call_openai(api_key: str, model: str, prompt: str) -> str:
135
- """OpenAI API cagirisi."""
132
+ """Call the OpenAI API."""
136
133
  payload = {
137
134
  "model": model,
138
135
  "max_tokens": 500,
139
136
  "messages": [
140
- {"role": "system", "content": "Sen CodeDNA'nin AI analiz asistanisin. Kullanici komut ciktilarini yorumlarsin. Sohbet etme, sadece analiz ve oneriler sun."},
137
+ {"role": "system", "content": "You are CodeDNA's AI analysis assistant. You interpret user command outputs. Do not chat only provide analysis and insights."},
141
138
  {"role": "user", "content": prompt}
142
139
  ],
143
140
  }
@@ -157,38 +154,36 @@ def _call_openai(api_key: str, model: str, prompt: str) -> str:
157
154
 
158
155
  def ai_analyze(command: str, output: str, config: Optional[AIConfig] = None, extra_context: str = "") -> Optional[str]:
159
156
  """
160
- Komut ciktisini AI ile analiz et.
157
+ Analyze command output using AI.
161
158
 
162
159
  Args:
163
- command: Calistirilan komut
164
- output: Komut ciktisi
165
- config: AI konfigurasyonu
166
- extra_context: Ek baglam (dosya icerikleri vs)
160
+ command: Command that was run
161
+ output: Command output
162
+ config: AI configuration
163
+ extra_context: Additional context (file contents, etc.)
167
164
 
168
165
  Returns:
169
- Analiz metni veya None
166
+ Analysis text or None
170
167
  """
171
168
  if config is None:
172
169
  config = AIConfig.load()
173
170
  if config is None or not config.enabled or not config.api_key:
174
171
  return None
175
172
 
176
- # Plan kontrolu - sadece Pro+ kullanicilar AI analiz kullanabilir
173
+ # Plan check only Pro+ users can use AI analysis
177
174
  try:
178
175
  from codedna.plan import get_current_plan, Plan as PlanEnum
179
176
  plan = get_current_plan()
180
177
  if plan == PlanEnum.FREE:
181
- return None # Free planda AI analiz yok
178
+ return None # No AI analysis on free plan
182
179
  except Exception:
183
- return None # Plan yuklenemedi, gosterme
180
+ return None # Cannot load plan, skip
184
181
 
185
- # Yeni prompt - dosyalari oku, dogrula, analiz et (oneri degil)
186
- # Prompt her zaman Ingilizce - AI daha iyi analiz eder
187
- baglam = f"\n\nFILE CONTENTS:\n{extra_context}" if extra_context else ""
182
+ context_block = f"\n\nFILE CONTENTS:\n{extra_context}" if extra_context else ""
188
183
  prompt = f"""You are CodeDNA's code verification assistant. NEVER give general recommendations, only analyze.
189
184
 
190
185
  OUTPUT:
191
- {output[:3000]}{baglam[:4000]}
186
+ {output[:3000]}{context_block[:4000]}
192
187
 
193
188
  Respond in this exact format:
194
189
 
@@ -227,11 +222,11 @@ Rules:
227
222
  else:
228
223
  return None
229
224
  except Exception as e:
230
- return f"AI analiz hatasi: {type(e).__name__}"
225
+ return f"AI analysis error: {type(e).__name__}"
231
226
 
232
227
 
233
228
  def is_enabled() -> bool:
234
- """AI analiz aktif mi? (Sadece Pro+ uyeler)"""
229
+ """Is AI analysis active? (Pro+ users only)"""
235
230
  config = AIConfig.load()
236
231
  if config is None or not config.enabled or not config.api_key:
237
232
  return False
@@ -1,6 +1,6 @@
1
1
  """
2
- AI analiz kutusunu CLI komut çiktilarina ekle.
3
- Her komut çiktisindan sonra AI analiz kutusu göster.
2
+ Append AI analysis box to CLI command outputs.
3
+ Show AI analysis box after each command output.
4
4
  """
5
5
  from rich.panel import Panel
6
6
  from rich.console import Console
@@ -13,12 +13,12 @@ console = Console()
13
13
 
14
14
  def print_ai_box(command_name: str, output: str, width: int = 80) -> None:
15
15
  """
16
- Komut çiktisindan sonra AI analiz kutusu yazdir.
16
+ Print AI analysis box after command output.
17
17
 
18
18
  Args:
19
- command_name: Çalistirilan komut (örn: "codedna scan")
20
- output: Komut çiktisi (raw text)
21
- width: Panel genisligi
19
+ command_name: Command that was run (e.g. "codedna scan")
20
+ output: Command output (raw text)
21
+ width: Panel width
22
22
  """
23
23
  try:
24
24
  from codedna.ai import ai_analyze, is_enabled
@@ -26,26 +26,26 @@ def print_ai_box(command_name: str, output: str, width: int = 80) -> None:
26
26
  return
27
27
 
28
28
  if not is_enabled():
29
- return # AI kapaliysa gösterme
29
+ return # AI is disabled, skip
30
30
 
31
- # AI analiz al
31
+ # Get AI analysis
32
32
  ai_response = ai_analyze(command_name, output)
33
33
 
34
34
  if not ai_response:
35
35
  return
36
36
 
37
- # Hata durumunda sessizce gec (AI analizi opsiyonel)
38
- if ai_response.startswith("AI analiz hatasi"):
37
+ # Silently skip on error (AI analysis is optional)
38
+ if ai_response.startswith("AI analysis error"):
39
39
  return
40
40
 
41
- # Renk ve icon
41
+ # Color and icon
42
42
  border_style = "magenta"
43
- title = "[bold magenta]🤖 AI Analiz (Pro+)[/bold magenta]"
43
+ title = "[bold magenta]🤖 AI Analysis (Pro+)[/bold magenta]"
44
44
 
45
- # Maksimum 60 satir göster
45
+ # Show maximum 60 lines
46
46
  lines = ai_response.strip().split("\n")
47
47
  if len(lines) > 60:
48
- lines = lines[:58] + ["... (kisaltildi)"]
48
+ lines = lines[:58] + ["... (truncated)"]
49
49
  content = "\n".join(lines)
50
50
 
51
51
  panel = Panel(
@@ -64,14 +64,14 @@ def print_ai_box(command_name: str, output: str, width: int = 80) -> None:
64
64
 
65
65
  def capture_and_analyze(command_name: str, run_func, *args, **kwargs) -> None:
66
66
  """
67
- Bir komutu çalistir, çiktiyi yakala, sonra AI analiz göster.
67
+ Run a command, capture its output, then show AI analysis.
68
68
 
69
69
  Args:
70
- command_name: Komut adi (analiz için)
71
- run_func: Çalistirilacak fonksiyon
72
- *args, **kwargs: Fonksiyona geçilecek argümanlar
70
+ command_name: Command name (for analysis)
71
+ run_func: Function to run
72
+ *args, **kwargs: Arguments to pass to the function
73
73
  """
74
- # Çiktiyi yakala
74
+ # Capture output
75
75
  old_stdout = sys.stdout
76
76
  sys.stdout = buffer = StringIO()
77
77
 
@@ -81,14 +81,14 @@ def capture_and_analyze(command_name: str, run_func, *args, **kwargs) -> None:
81
81
  pass
82
82
  except Exception as e:
83
83
  sys.stdout = old_stdout
84
- console.print(f"[red]Hata: {e}[/red]")
84
+ console.print(f"[red]Error: {e}[/red]")
85
85
  return
86
86
  finally:
87
87
  output = buffer.getvalue()
88
88
  sys.stdout = old_stdout
89
89
 
90
- # Orijinal çiktiyi göster
90
+ # Show original output
91
91
  console.print(output, end="")
92
92
 
93
- # AI analiz
93
+ # AI analysis
94
94
  print_ai_box(command_name, output)
@@ -0,0 +1,220 @@
1
+ """
2
+ Distinguishes patterns left by different AI code assistants.
3
+
4
+ IMPORTANT WARNING:
5
+ This is NOT a definitive detection — it is a pattern-based heuristic ESTIMATION model.
6
+ Results may contain false positives/negatives. No certainty is claimed.
7
+ Must be presented to users with this context.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import re
13
+ from dataclasses import dataclass
14
+ from pathlib import Path
15
+ from typing import Optional
16
+
17
+ from codedna.db import get_connection
18
+
19
+
20
+ # ---------------------------------------------------------------------------
21
+ # Tool pattern definitions — heuristic, defensible but not definitive
22
+ # ---------------------------------------------------------------------------
23
+
24
+ # Weighted pattern list per tool: (regex_pattern, weight)
25
+ _TOOL_PATTERNS: dict[str, list[tuple[str, float]]] = {
26
+ "copilot": [
27
+ # GitHub Copilot: short inline comments, no type declarations
28
+ (r"#\s+[A-Z][a-z].{5,40}$", 0.15), # single-line title comment
29
+ (r"def \w+\([^)]{0,30}\):\s*$", 0.10), # no-param / minimal function
30
+ (r"#\s+TODO:", 0.10), # TODO comments
31
+ (r"^\s{4}pass\s*$", 0.08), # functions ending with pass
32
+ (r"return \w+\.get\(", 0.07), # .get() pattern
33
+ ],
34
+ "cursor": [
35
+ # Cursor: detailed docstrings, rich type hints
36
+ (r'"""[\s\S]{20,200}"""', 0.20), # long docstring
37
+ (r":\s*(str|int|float|bool|list|dict|Optional)", 0.15), # type hints
38
+ (r"->.*:\s*$", 0.12), # return type declaration
39
+ (r"from typing import", 0.10), # typing module
40
+ (r"@dataclass", 0.10), # dataclass usage
41
+ ],
42
+ "claude": [
43
+ # Claude: structured multi-line comments, Args/Returns docstrings
44
+ (r"#\s+\d+\.\s+\w", 0.18), # numbered step comments
45
+ (r"\"\"\"[\s\S]*Args:[\s\S]*Returns:", 0.20), # Args/Returns docstring
46
+ (r"#\s+─{3,}", 0.15), # separator line comments
47
+ (r"raise \w+Error\(f[\"']", 0.10), # f-string error messages
48
+ (r"from __future__ import annotations", 0.12), # modern annotation
49
+ ],
50
+ }
51
+
52
+ # Minimum confidence threshold — returns "unknown" if below this
53
+ _MIN_CONFIDENCE = 0.15
54
+
55
+
56
+ @dataclass
57
+ class AIToolGuess:
58
+ """AI tool guess for a single file."""
59
+
60
+ arac: str # "copilot" | "cursor" | "claude" | "unknown" (kept for compat)
61
+ guven: float # 0.0–1.0 (kept for compat)
62
+ puan_detayi: dict[str, float] # tool → raw score (kept for compat)
63
+ uyari: str = (
64
+ "This detection is pattern-based estimation — not definitive."
65
+ )
66
+
67
+
68
+ def guess_ai_tool(file_path: str, code: str) -> AIToolGuess:
69
+ """
70
+ Return a probable AI tool guess and confidence score for a file.
71
+
72
+ Strategy:
73
+ Defined regex patterns for each tool are applied to the code.
74
+ A total score is computed based on weighted match counts.
75
+ The highest-scoring tool is selected if it exceeds the minimum confidence threshold.
76
+
77
+ Args:
78
+ file_path: File path (used for extension filtering)
79
+ code: Source code of the file
80
+
81
+ Returns:
82
+ AIToolGuess object
83
+ """
84
+ lines = code.splitlines()
85
+ scores: dict[str, float] = {tool: 0.0 for tool in _TOOL_PATTERNS}
86
+
87
+ for tool, patterns in _TOOL_PATTERNS.items():
88
+ for pattern, weight in patterns:
89
+ match_count = sum(1 for line in lines if re.search(pattern, line))
90
+ # Normalize by line count (prevents unfair advantage in large files)
91
+ norm = match_count / max(len(lines), 1)
92
+ scores[tool] += norm * weight * 10 # scale to 0–10
93
+
94
+ # Normalize — calculate confidence relative to total score
95
+ total = sum(scores.values())
96
+ if total < 0.01:
97
+ return AIToolGuess(
98
+ arac="unknown",
99
+ guven=0.0,
100
+ puan_detayi={k: round(v, 3) for k, v in scores.items()},
101
+ )
102
+
103
+ best_tool = max(scores, key=lambda k: scores[k])
104
+ confidence = scores[best_tool] / total
105
+
106
+ # Below minimum threshold → unknown
107
+ if confidence < _MIN_CONFIDENCE:
108
+ best_tool = "unknown"
109
+
110
+ return AIToolGuess(
111
+ arac=best_tool,
112
+ guven=round(confidence, 3),
113
+ puan_detayi={k: round(v, 3) for k, v in scores.items()},
114
+ )
115
+
116
+
117
+ def analyze_repo_tools(
118
+ repo_path: Path,
119
+ db_path: Path,
120
+ ) -> dict[str, dict[str, float]]:
121
+ """
122
+ Run a tool-based file analysis across the repo and save results to DB.
123
+
124
+ Returns:
125
+ {tool: {"dosya_sayisi": N, "avg_ai_probability": X}} dict
126
+ """
127
+ from codedna.scorer import scan_repository
128
+
129
+ supported = {".py", ".js", ".jsx", ".ts", ".tsx"}
130
+ results = scan_repository(repo_path, max_files=200)
131
+
132
+ # Tool counters
133
+ tool_stats: dict[str, dict[str, list]] = {
134
+ "copilot": {"ai_prob": [], "understanding": []},
135
+ "cursor": {"ai_prob": [], "understanding": []},
136
+ "claude": {"ai_prob": [], "understanding": []},
137
+ "unknown": {"ai_prob": [], "understanding": []},
138
+ }
139
+
140
+ for result in results:
141
+ if Path(result.file_path).suffix.lower() not in supported:
142
+ continue
143
+ try:
144
+ code = Path(result.file_path).read_text(encoding="utf-8", errors="replace")
145
+ except Exception:
146
+ continue
147
+
148
+ guess = guess_ai_tool(result.file_path, code)
149
+
150
+ # Save to DB — update the most recent file_score record
151
+ try:
152
+ with get_connection(db_path) as conn:
153
+ conn.execute(
154
+ """
155
+ UPDATE file_scores
156
+ SET ai_tool_guess = ?
157
+ WHERE file_path = ?
158
+ AND id = (
159
+ SELECT id FROM file_scores
160
+ WHERE file_path = ?
161
+ ORDER BY id DESC LIMIT 1
162
+ )
163
+ """,
164
+ (guess.arac, result.file_path, result.file_path),
165
+ )
166
+ except Exception:
167
+ pass
168
+
169
+ if guess.arac in tool_stats:
170
+ tool_stats[guess.arac]["ai_prob"].append(result.ai_probability)
171
+ else:
172
+ tool_stats["unknown"]["ai_prob"].append(result.ai_probability)
173
+
174
+ # Collect understanding scores per tool from DB
175
+ try:
176
+ with get_connection(db_path) as conn:
177
+ rows = conn.execute(
178
+ """
179
+ SELECT fs.ai_tool_guess, fs.understanding_score
180
+ FROM file_scores fs
181
+ WHERE fs.ai_tool_guess IS NOT NULL
182
+ AND fs.understanding_score IS NOT NULL
183
+ """
184
+ ).fetchall()
185
+ for r in rows:
186
+ tool = r["ai_tool_guess"] or "unknown"
187
+ if tool in tool_stats:
188
+ tool_stats[tool]["understanding"].append(
189
+ float(r["understanding_score"])
190
+ )
191
+ except Exception:
192
+ pass
193
+
194
+ # Compute output
195
+ output: dict[str, dict[str, float]] = {}
196
+ for tool, data in tool_stats.items():
197
+ if not data["ai_prob"]:
198
+ continue
199
+ avg_ai = sum(data["ai_prob"]) / len(data["ai_prob"])
200
+ avg_und = (
201
+ sum(data["understanding"]) / len(data["understanding"])
202
+ if data["understanding"] else None
203
+ )
204
+ output[tool] = {
205
+ "dosya_sayisi": len(data["ai_prob"]), # kept for API compat
206
+ "avg_ai_probability": round(avg_ai, 3),
207
+ "avg_understanding": round(avg_und, 2) if avg_und is not None else None,
208
+ }
209
+
210
+ return output
211
+
212
+
213
+ def compare_tools_in_repo(repo_path: Path, db_path: Path) -> dict:
214
+ """
215
+ Compare average understanding scores and AI probabilities per tool across the repo.
216
+
217
+ Returns:
218
+ {"copilot": {...}, "cursor": {...}, ...} dict
219
+ """
220
+ return analyze_repo_tools(repo_path, db_path)