codna 0.2.73__tar.gz → 0.2.75__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 (960) hide show
  1. {codna-0.2.73 → codna-0.2.75}/PKG-INFO +1 -1
  2. {codna-0.2.73 → codna-0.2.75}/codna/__init__.py +1 -1
  3. {codna-0.2.73 → codna-0.2.75}/codna/webhook.py +63 -4
  4. {codna-0.2.73 → codna-0.2.75}/codna/webhook_backend.py +13 -3
  5. {codna-0.2.73 → codna-0.2.75}/codna/webhook_github.py +130 -42
  6. {codna-0.2.73 → codna-0.2.75}/codna/webhook_lease.py +15 -2
  7. {codna-0.2.73 → codna-0.2.75}/codna/webhook_pg_ops.py +36 -1
  8. {codna-0.2.73 → codna-0.2.75}/codna/webhook_pg_queue.py +67 -5
  9. {codna-0.2.73 → codna-0.2.75}/codna/webhook_pool.py +38 -0
  10. {codna-0.2.73 → codna-0.2.75}/codna/webhook_queue.py +6 -0
  11. codna-0.2.75/codna/webhook_queued_check.py +458 -0
  12. {codna-0.2.73 → codna-0.2.75}/codna/webhook_service.py +8 -1
  13. {codna-0.2.73 → codna-0.2.75}/codna/webhook_worker.py +26 -44
  14. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/PKG-INFO +1 -1
  15. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/SOURCES.txt +2 -0
  16. {codna-0.2.73 → codna-0.2.75}/pyproject.toml +1 -1
  17. {codna-0.2.73 → codna-0.2.75}/tests/test_review_red_head.py +29 -0
  18. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook.py +5 -0
  19. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_github.py +159 -10
  20. codna-0.2.75/tests/test_webhook_queued_check.py +541 -0
  21. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_worker.py +229 -0
  22. {codna-0.2.73 → codna-0.2.75}/MANIFEST.in +0 -0
  23. {codna-0.2.73 → codna-0.2.75}/README.md +0 -0
  24. {codna-0.2.73 → codna-0.2.75}/codna/_wheel_guard.py +0 -0
  25. {codna-0.2.73 → codna-0.2.75}/codna/admission_control.py +0 -0
  26. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/CLINE_FORK.md +0 -0
  27. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/CLINE_SDK_AZ_INTEGRATION_PLAN.md +0 -0
  28. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/CLINE_SDK_INTERFACE.md +0 -0
  29. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/CLINE_SDK_RESEARCH.md +0 -0
  30. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/package.json +0 -0
  31. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/run-server.bundle.mjs +0 -0
  32. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/run-server.mjs +0 -0
  33. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/run-server.stub.mjs +0 -0
  34. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/.gitignore +0 -0
  35. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/LICENSE +0 -0
  36. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/NOTICE +0 -0
  37. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/UPSTREAM_COMMIT.txt +0 -0
  38. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/README.md +0 -0
  39. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/acp-editor.ts +0 -0
  40. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/adapter.ts +0 -0
  41. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/algenta-plugin.ts +0 -0
  42. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/artifacts.test.ts +0 -0
  43. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/execution.test.ts +0 -0
  44. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/fallback.test.ts +0 -0
  45. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/fallback.ts +0 -0
  46. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/fix-runner.ts +0 -0
  47. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/http.test.ts +0 -0
  48. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/local-graph-tool.ts +0 -0
  49. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/mojo-gate.test.ts +0 -0
  50. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/mojo-gate.ts +0 -0
  51. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/policy.test.ts +0 -0
  52. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/postbuild.sh +0 -0
  53. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/proof-artifacts.test.ts +0 -0
  54. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/proof-provider.test.ts +0 -0
  55. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/proof-provider.ts +0 -0
  56. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/proofs.ts +0 -0
  57. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/provider-key.test.ts +0 -0
  58. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/raw-completions.ts +0 -0
  59. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/review-policy.test.ts +0 -0
  60. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/run-server.ts +0 -0
  61. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/scheduled-agents.ts +0 -0
  62. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/artifacts.ts +0 -0
  63. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/contracts.ts +0 -0
  64. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/execution.ts +0 -0
  65. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/http.ts +0 -0
  66. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/policy.ts +0 -0
  67. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/state.ts +0 -0
  68. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/streaming.test.ts +0 -0
  69. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/server/utils.ts +0 -0
  70. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/task-policy.ts +0 -0
  71. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/telys-localize.test.ts +0 -0
  72. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/telys-localize.ts +0 -0
  73. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/telys-worker.test.ts +0 -0
  74. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/telys-worker.ts +0 -0
  75. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/tools.test.ts +0 -0
  76. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/tools.ts +0 -0
  77. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/usage-cost.test.ts +0 -0
  78. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/usage-cost.ts +0 -0
  79. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/write-scope.test.ts +0 -0
  80. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/algenta/write-scope.ts +0 -0
  81. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/biome.json +0 -0
  82. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/bun.lock +0 -0
  83. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/package.json +0 -0
  84. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/.cline/rules/worktree_dependency_hygiene.md +0 -0
  85. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/.cline/skills/plugin.md +0 -0
  86. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/.gitignore +0 -0
  87. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/AGENTS.md +0 -0
  88. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/ARCHITECTURE.md +0 -0
  89. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/CHANGELOG.md +0 -0
  90. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/CONTRIBUTING.md +0 -0
  91. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/README.md +0 -0
  92. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/biome.json +0 -0
  93. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/README.md +0 -0
  94. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/README.md +0 -0
  95. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/changelog-generator.cron.md +0 -0
  96. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/code-style-audit.cron.md +0 -0
  97. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/daily-code-review.cron.md +0 -0
  98. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/dead-code-finder.cron.md +0 -0
  99. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/dependency-check.cron.md +0 -0
  100. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/documentation-check.cron.md +0 -0
  101. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/events/local-manual-test.event.md +0 -0
  102. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/events/local-plugin-event.event.md +0 -0
  103. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-changelog-check.event.md +0 -0
  104. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-review.event.md +0 -0
  105. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-test-coverage.event.md +0 -0
  106. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/performance-baseline.cron.md +0 -0
  107. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/test-coverage-report.cron.md +0 -0
  108. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/type-check-strict.cron.md +0 -0
  109. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/cron/weekly-metrics-summary.cron.md +0 -0
  110. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.py +0 -0
  111. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.sh +0 -0
  112. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.ts +0 -0
  113. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.py +0 -0
  114. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.sh +0 -0
  115. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.ts +0 -0
  116. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_BlockDestructive.sh +0 -0
  117. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectContext.py +0 -0
  118. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectFileContext.sh +0 -0
  119. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_ModifyInput.ts +0 -0
  120. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_RequireReview.sh +0 -0
  121. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/README.md +0 -0
  122. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/SessionShutdown.sh +0 -0
  123. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/TaskComplete.sh +0 -0
  124. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/TaskStart.sh +0 -0
  125. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/hooks/custom-compaction-hook.example.ts +0 -0
  126. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/package.json +0 -0
  127. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/README.md +0 -0
  128. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/README.md +0 -0
  129. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/anvil.md +0 -0
  130. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/inquisitor.md +0 -0
  131. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/oracle.md +0 -0
  132. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/phantom.md +0 -0
  133. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/index.ts +0 -0
  134. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/package.json +0 -0
  135. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/api-design.md +0 -0
  136. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/code-review.md +0 -0
  137. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/debugging.md +0 -0
  138. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/documentation.md +0 -0
  139. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/migration.md +0 -0
  140. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/refactoring.md +0 -0
  141. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/test-generation.md +0 -0
  142. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/tsconfig.json +0 -0
  143. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/automation-events.ts +0 -0
  144. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/background-terminal.ts +0 -0
  145. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/custom-compaction.ts +0 -0
  146. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/env-blocker.ts +0 -0
  147. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/gitignore-read-files-guard.ts +0 -0
  148. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/mac-notify.ts +0 -0
  149. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/openrouter-provider.ts +0 -0
  150. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/README.md +0 -0
  151. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/index.ts +0 -0
  152. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/weather-metrics.ts +0 -0
  153. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/plugins/web-search.ts +0 -0
  154. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/examples/tsconfig.json +0 -0
  155. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/README.md +0 -0
  156. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/README.md +0 -0
  157. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/bun.mts +0 -0
  158. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/package.json +0 -0
  159. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.provider-form.test.ts +0 -0
  160. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.test.ts +0 -0
  161. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.ts +0 -0
  162. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/src/index.ts +0 -0
  163. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.build.json +0 -0
  164. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.dev.json +0 -0
  165. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.json +0 -0
  166. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/agents/vitest.config.ts +0 -0
  167. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/README.md +0 -0
  168. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/bun.mts +0 -0
  169. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/docs/messages-contract-v1.md +0 -0
  170. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/fixtures/messages/success.messages.json +0 -0
  171. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/package.json +0 -0
  172. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke-host.ts +0 -0
  173. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke.ts +0 -0
  174. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.test.ts +0 -0
  175. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.ts +0 -0
  176. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.test.ts +0 -0
  177. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.ts +0 -0
  178. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/featurebase-token.test.ts +0 -0
  179. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/index.ts +0 -0
  180. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.test.ts +0 -0
  181. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.ts +0 -0
  182. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/types.ts +0 -0
  183. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.test.ts +0 -0
  184. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.ts +0 -0
  185. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.test.ts +0 -0
  186. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.ts +0 -0
  187. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.test.ts +0 -0
  188. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.ts +0 -0
  189. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.test.ts +0 -0
  190. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.ts +0 -0
  191. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.test.ts +0 -0
  192. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.ts +0 -0
  193. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.test.ts +0 -0
  194. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.ts +0 -0
  195. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/types.ts +0 -0
  196. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.test.ts +0 -0
  197. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.ts +0 -0
  198. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/automation.ts +0 -0
  199. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/runtime-services.ts +0 -0
  200. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/start-input.ts +0 -0
  201. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/telemetry.ts +0 -0
  202. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/types.ts +0 -0
  203. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.test.ts +0 -0
  204. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.ts +0 -0
  205. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/index.ts +0 -0
  206. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/index.ts +0 -0
  207. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/cron-report-writer.ts +0 -0
  208. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/index.ts +0 -0
  209. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.test.ts +0 -0
  210. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.ts +0 -0
  211. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.test.ts +0 -0
  212. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.ts +0 -0
  213. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/index.ts +0 -0
  214. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/resource-limiter.ts +0 -0
  215. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/index.ts +0 -0
  216. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.test.ts +0 -0
  217. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.ts +0 -0
  218. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/cron-service.ts +0 -0
  219. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/index.ts +0 -0
  220. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-command-service.ts +0 -0
  221. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.test.ts +0 -0
  222. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.ts +0 -0
  223. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.test.ts +0 -0
  224. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.ts +0 -0
  225. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.test.ts +0 -0
  226. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.ts +0 -0
  227. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.test.ts +0 -0
  228. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.ts +0 -0
  229. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/index.ts +0 -0
  230. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/cron-schema.ts +0 -0
  231. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/index.ts +0 -0
  232. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.test.ts +0 -0
  233. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.ts +0 -0
  234. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/index.ts +0 -0
  235. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.test.ts +0 -0
  236. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.ts +0 -0
  237. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.test.ts +0 -0
  238. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.ts +0 -0
  239. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.test.ts +0 -0
  240. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.ts +0 -0
  241. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.test.ts +0 -0
  242. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.ts +0 -0
  243. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-plugin.ts +0 -0
  244. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-service.ts +0 -0
  245. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/agentic-compaction.ts +0 -0
  246. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/basic-compaction.ts +0 -0
  247. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction-shared.ts +0 -0
  248. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.live.test.ts +0 -0
  249. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.test.ts +0 -0
  250. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.ts +0 -0
  251. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/index.ts +0 -0
  252. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/client.ts +0 -0
  253. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.test.ts +0 -0
  254. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.ts +0 -0
  255. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/index.ts +0 -0
  256. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.test.ts +0 -0
  257. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.ts +0 -0
  258. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/name-transform.ts +0 -0
  259. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.test.ts +0 -0
  260. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.ts +0 -0
  261. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/policies.ts +0 -0
  262. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/tools.ts +0 -0
  263. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/types.ts +0 -0
  264. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.test.ts +0 -0
  265. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.ts +0 -0
  266. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-load-report.ts +0 -0
  267. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.test.ts +0 -0
  268. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.ts +0 -0
  269. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-module-import.ts +0 -0
  270. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox-bootstrap.ts +0 -0
  271. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.test.ts +0 -0
  272. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.ts +0 -0
  273. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-targeting.ts +0 -0
  274. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/constants.ts +0 -0
  275. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.test.ts +0 -0
  276. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.ts +0 -0
  277. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch-parser.ts +0 -0
  278. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.test.ts +0 -0
  279. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.ts +0 -0
  280. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.test.ts +0 -0
  281. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.ts +0 -0
  282. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.test.ts +0 -0
  283. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.ts +0 -0
  284. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.test.ts +0 -0
  285. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.ts +0 -0
  286. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/index.ts +0 -0
  287. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/search.ts +0 -0
  288. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/web-fetch.ts +0 -0
  289. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/helpers.ts +0 -0
  290. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/index.ts +0 -0
  291. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.test.ts +0 -0
  292. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.ts +0 -0
  293. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.test.ts +0 -0
  294. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.ts +0 -0
  295. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.test.ts +0 -0
  296. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.ts +0 -0
  297. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/schemas.ts +0 -0
  298. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/delegated-agent.ts +0 -0
  299. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/index.ts +0 -0
  300. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.lifecycle.test.ts +0 -0
  301. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.ts +0 -0
  302. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/projections.ts +0 -0
  303. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/runtime.ts +0 -0
  304. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.test.ts +0 -0
  305. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.ts +0 -0
  306. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/subagent-prompts.ts +0 -0
  307. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.test.ts +0 -0
  308. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.ts +0 -0
  309. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/types.ts +0 -0
  310. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.test.ts +0 -0
  311. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.ts +0 -0
  312. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-extension.ts +0 -0
  313. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.test.ts +0 -0
  314. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.ts +0 -0
  315. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.test.ts +0 -0
  316. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.ts +0 -0
  317. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/index.ts +0 -0
  318. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess-runner.ts +0 -0
  319. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess.ts +0 -0
  320. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.test.ts +0 -0
  321. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.ts +0 -0
  322. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.test.ts +0 -0
  323. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.ts +0 -0
  324. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.test.ts +0 -0
  325. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.ts +0 -0
  326. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/ui-client.ts +0 -0
  327. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/entry.ts +0 -0
  328. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.test.ts +0 -0
  329. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.ts +0 -0
  330. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/runtime-handlers.ts +0 -0
  331. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/start-shared-server.ts +0 -0
  332. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.test.ts +0 -0
  333. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.ts +0 -0
  334. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.test.ts +0 -0
  335. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.ts +0 -0
  336. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/workspace.ts +0 -0
  337. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/index.ts +0 -0
  338. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.test.ts +0 -0
  339. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.ts +0 -0
  340. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/remote-runtime-host.ts +0 -0
  341. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/boundary.test.ts +0 -0
  342. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.test.ts +0 -0
  343. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.ts +0 -0
  344. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/command-transport.ts +0 -0
  345. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/fetch-wiring.test.ts +0 -0
  346. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/approval-handlers.ts +0 -0
  347. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/capability-handlers.ts +0 -0
  348. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/client-handlers.ts +0 -0
  349. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/context.ts +0 -0
  350. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.test.ts +0 -0
  351. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.ts +0 -0
  352. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-event-projector.ts +0 -0
  353. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-handlers.ts +0 -0
  354. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-capability-tool-executors.test.ts +0 -0
  355. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-client-contributions.ts +0 -0
  356. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-notifications.ts +0 -0
  357. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-schedule-events.ts +0 -0
  358. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-logging.ts +0 -0
  359. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-options.ts +0 -0
  360. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-transport.ts +0 -0
  361. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-session-records.ts +0 -0
  362. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-websocket-server.ts +0 -0
  363. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.test.ts +0 -0
  364. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.ts +0 -0
  365. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/native-transport.ts +0 -0
  366. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/notification.test.ts +0 -0
  367. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/ui-events.test.ts +0 -0
  368. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/settings.test.ts +0 -0
  369. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/index.ts +0 -0
  370. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/remote-config/integration.ts +0 -0
  371. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/index.ts +0 -0
  372. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/normalize-runtime-capabilities.ts +0 -0
  373. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/runtime-capabilities.ts +0 -0
  374. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.test.ts +0 -0
  375. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.ts +0 -0
  376. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.test.ts +0 -0
  377. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.ts +0 -0
  378. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.test.ts +0 -0
  379. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.ts +0 -0
  380. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.test.ts +0 -0
  381. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.ts +0 -0
  382. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/agent-event-bridge.ts +0 -0
  383. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-record.ts +0 -0
  384. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-service-invoker.ts +0 -0
  385. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/spawn-tool.ts +0 -0
  386. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/user-files.ts +0 -0
  387. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.e2e.test.ts +0 -0
  388. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.test.ts +0 -0
  389. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.ts +0 -0
  390. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.test.ts +0 -0
  391. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.ts +0 -0
  392. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host.ts +0 -0
  393. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/index.ts +0 -0
  394. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.team-persistence.test.ts +0 -0
  395. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.test.ts +0 -0
  396. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.ts +0 -0
  397. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.test.ts +0 -0
  398. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.ts +0 -0
  399. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.test.ts +0 -0
  400. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.ts +0 -0
  401. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-parity.test.ts +0 -0
  402. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.test.ts +0 -0
  403. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.ts +0 -0
  404. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime.ts +0 -0
  405. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/user-input-builder.ts +0 -0
  406. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/loop-detection.ts +0 -0
  407. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/mistake-tracker.ts +0 -0
  408. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.test.ts +0 -0
  409. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.ts +0 -0
  410. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.test.ts +0 -0
  411. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.ts +0 -0
  412. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/tool-approval.ts +0 -0
  413. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.test.ts +0 -0
  414. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.ts +0 -0
  415. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/agent-events.ts +0 -0
  416. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/config.ts +0 -0
  417. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.test.ts +0 -0
  418. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.ts +0 -0
  419. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.test.ts +0 -0
  420. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.ts +0 -0
  421. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/cline-recommended-models.ts +0 -0
  422. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/configured-provider-registry.ts +0 -0
  423. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.test.ts +0 -0
  424. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.ts +0 -0
  425. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.test.ts +0 -0
  426. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.ts +0 -0
  427. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.test.ts +0 -0
  428. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.ts +0 -0
  429. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-config.ts +0 -0
  430. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-registry.ts +0 -0
  431. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-types.ts +0 -0
  432. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.startup.test.ts +0 -0
  433. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.test.ts +0 -0
  434. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.ts +0 -0
  435. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-tools.ts +0 -0
  436. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.test.ts +0 -0
  437. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.ts +0 -0
  438. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-registry.ts +0 -0
  439. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.test.ts +0 -0
  440. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.ts +0 -0
  441. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/model-source.ts +0 -0
  442. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.test.ts +0 -0
  443. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.ts +0 -0
  444. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-artifacts.ts +0 -0
  445. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.test.ts +0 -0
  446. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.ts +0 -0
  447. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-telemetry.ts +0 -0
  448. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/artifact-store.ts +0 -0
  449. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/file-team-store.ts +0 -0
  450. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/index.ts +0 -0
  451. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.test.ts +0 -0
  452. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.ts +0 -0
  453. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.test.ts +0 -0
  454. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.ts +0 -0
  455. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/session-store.ts +0 -0
  456. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-session-store.ts +0 -0
  457. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-team-store.ts +0 -0
  458. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/team-store.ts +0 -0
  459. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/ITelemetryAdapter.ts +0 -0
  460. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.test.ts +0 -0
  461. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.ts +0 -0
  462. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.test.ts +0 -0
  463. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.ts +0 -0
  464. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.test.ts +0 -0
  465. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.ts +0 -0
  466. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.test.ts +0 -0
  467. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.ts +0 -0
  468. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.test.ts +0 -0
  469. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.ts +0 -0
  470. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.test.ts +0 -0
  471. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.ts +0 -0
  472. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/index.ts +0 -0
  473. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/tool-context.ts +0 -0
  474. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.test.ts +0 -0
  475. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.ts +0 -0
  476. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.test.ts +0 -0
  477. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.ts +0 -0
  478. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/index.ts +0 -0
  479. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.test.ts +0 -0
  480. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.ts +0 -0
  481. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manager.ts +0 -0
  482. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manifest.ts +0 -0
  483. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.test.ts +0 -0
  484. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.ts +0 -0
  485. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.test.ts +0 -0
  486. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.ts +0 -0
  487. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/index.ts +0 -0
  488. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-graph.ts +0 -0
  489. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-manifest.ts +0 -0
  490. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-row.ts +0 -0
  491. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/file-session-service.ts +0 -0
  492. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.test.ts +0 -0
  493. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.ts +0 -0
  494. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.test.ts +0 -0
  495. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.ts +0 -0
  496. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.team-persistence.test.ts +0 -0
  497. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.ts +0 -0
  498. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-snapshot.ts +0 -0
  499. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.test.ts +0 -0
  500. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.ts +0 -0
  501. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/conversation-store.ts +0 -0
  502. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/session-manifest-store.ts +0 -0
  503. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/team-persistence-store.ts +0 -0
  504. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/index.ts +0 -0
  505. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-child-session-manager.ts +0 -0
  506. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-session-coordinator.ts +0 -0
  507. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/index.ts +0 -0
  508. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.test.ts +0 -0
  509. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.ts +0 -0
  510. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/types.ts +0 -0
  511. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/chat-schema.ts +0 -0
  512. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/common.ts +0 -0
  513. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/config.ts +0 -0
  514. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/events.ts +0 -0
  515. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/index.ts +0 -0
  516. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/provider-settings.ts +0 -0
  517. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/session.ts +0 -0
  518. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/sessions.ts +0 -0
  519. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/storage.ts +0 -0
  520. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/types.ts +0 -0
  521. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/src/version.ts +0 -0
  522. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.build.json +0 -0
  523. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.dev.json +0 -0
  524. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.json +0 -0
  525. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.smoke.json +0 -0
  526. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/vitest.config.ts +0 -0
  527. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/core/vitest.e2e.config.ts +0 -0
  528. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/AGENTS.md +0 -0
  529. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/README.md +0 -0
  530. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/bun.mts +0 -0
  531. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/fixtures/usage.json +0 -0
  532. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/package.json +0 -0
  533. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/fix-esm-imports.ts +0 -0
  534. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/generate-models.ts +0 -0
  535. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/models/generate-models-dev.ts +0 -0
  536. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/tsconfig.json +0 -0
  537. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/README.md +0 -0
  538. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.test.ts +0 -0
  539. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.ts +0 -0
  540. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated-access.ts +0 -0
  541. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated.ts +0 -0
  542. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/types.ts +0 -0
  543. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/index.browser.ts +0 -0
  544. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/index.ts +0 -0
  545. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/models.ts +0 -0
  546. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.test.ts +0 -0
  547. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.ts +0 -0
  548. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/async.ts +0 -0
  549. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.test.ts +0 -0
  550. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.ts +0 -0
  551. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins-runtime.ts +0 -0
  552. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.test.ts +0 -0
  553. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.ts +0 -0
  554. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.test.ts +0 -0
  555. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.ts +0 -0
  556. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/config.ts +0 -0
  557. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/factory-registry.ts +0 -0
  558. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.test.ts +0 -0
  559. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.ts +0 -0
  560. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.test.ts +0 -0
  561. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.ts +0 -0
  562. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/handler.ts +0 -0
  563. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/http.ts +0 -0
  564. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.test.ts +0 -0
  565. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.ts +0 -0
  566. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/messages.ts +0 -0
  567. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.test.ts +0 -0
  568. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.ts +0 -0
  569. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-facts.ts +0 -0
  570. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-registry.ts +0 -0
  571. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/openai-codex-models.ts +0 -0
  572. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/provider-keys.ts +0 -0
  573. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/registry.ts +0 -0
  574. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.test.ts +0 -0
  575. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.ts +0 -0
  576. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/generic-compatible.ts +0 -0
  577. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/glm-thinking.ts +0 -0
  578. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/minimax-thinking.ts +0 -0
  579. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-option-rules.ts +0 -0
  580. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options-types.ts +0 -0
  581. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.test.ts +0 -0
  582. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.ts +0 -0
  583. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/reasoning-codecs.ts +0 -0
  584. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/utils.ts +0 -0
  585. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/stream.ts +0 -0
  586. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/types.ts +0 -0
  587. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.test.ts +0 -0
  588. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.ts +0 -0
  589. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.test.ts +0 -0
  590. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.ts +0 -0
  591. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.test.ts +0 -0
  592. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.ts +0 -0
  593. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/google.ts +0 -0
  594. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.test.ts +0 -0
  595. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.ts +0 -0
  596. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/mistral.ts +0 -0
  597. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai-compatible.ts +0 -0
  598. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai.ts +0 -0
  599. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/types.ts +0 -0
  600. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.test.ts +0 -0
  601. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.ts +0 -0
  602. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.browser.ts +0 -0
  603. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.ts +0 -0
  604. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.test.ts +0 -0
  605. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.ts +0 -0
  606. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.example.json +0 -0
  607. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.example.json +0 -0
  608. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.reasoning.example.json +0 -0
  609. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning-disabled.example.json +0 -0
  610. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning.example.json +0 -0
  611. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.tools.example.json +0 -0
  612. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.test.ts +0 -0
  613. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.ts +0 -0
  614. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-minimax-routing.test.ts +0 -0
  615. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-reasoning.test.ts +0 -0
  616. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-runner.ts +0 -0
  617. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-tools.test.ts +0 -0
  618. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live.test.ts +0 -0
  619. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/README.md +0 -0
  620. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/anthropic-claude-sonnet-4-6.json +0 -0
  621. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/cline-anthropic-sonnet.json +0 -0
  622. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-codex-gpt-5-4.json +0 -0
  623. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-compatible-deepseek-v4-pro.json +0 -0
  624. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr.test.ts +0 -0
  625. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.build.json +0 -0
  626. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.dev.json +0 -0
  627. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.json +0 -0
  628. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/llms/vitest.config.ts +0 -0
  629. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/sdk/bun.mts +0 -0
  630. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/sdk/package.json +0 -0
  631. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/sdk/src/index.ts +0 -0
  632. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.build.json +0 -0
  633. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.json +0 -0
  634. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/README.md +0 -0
  635. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/bun.mts +0 -0
  636. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/package.json +0 -0
  637. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agent.ts +0 -0
  638. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/index.ts +0 -0
  639. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/types.ts +0 -0
  640. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/index.ts +0 -0
  641. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/schemas.ts +0 -0
  642. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/types.ts +0 -0
  643. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/events.ts +0 -0
  644. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/options.ts +0 -0
  645. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/cron-spec-types.ts +0 -0
  646. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/index.ts +0 -0
  647. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/index.ts +0 -0
  648. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.test.ts +0 -0
  649. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.ts +0 -0
  650. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/dispose.ts +0 -0
  651. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/context.ts +0 -0
  652. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.test.ts +0 -0
  653. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.ts +0 -0
  654. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/plugin.ts +0 -0
  655. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/contracts.ts +0 -0
  656. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/events.ts +0 -0
  657. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hub.ts +0 -0
  658. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/index.browser.ts +0 -0
  659. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/index.ts +0 -0
  660. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.test.ts +0 -0
  661. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.ts +0 -0
  662. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/gateway.ts +0 -0
  663. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/messages.ts +0 -0
  664. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/model-info.ts +0 -0
  665. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/reasoning-effort.ts +0 -0
  666. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/requests.ts +0 -0
  667. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tokens.ts +0 -0
  668. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tools.ts +0 -0
  669. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/logging/logger.ts +0 -0
  670. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/error.ts +0 -0
  671. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/headers/utils.ts +0 -0
  672. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.test.ts +0 -0
  673. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.ts +0 -0
  674. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.test.ts +0 -0
  675. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.ts +0 -0
  676. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/string.ts +0 -0
  677. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/time.ts +0 -0
  678. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/zod.ts +0 -0
  679. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/cline.ts +0 -0
  680. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.test.ts +0 -0
  681. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.ts +0 -0
  682. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/system.ts +0 -0
  683. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/artifact-store.ts +0 -0
  684. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/blob-storage.ts +0 -0
  685. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/bundle.ts +0 -0
  686. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/constants.ts +0 -0
  687. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/index.ts +0 -0
  688. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/materializer.ts +0 -0
  689. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/paths.ts +0 -0
  690. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.test.ts +0 -0
  691. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.ts +0 -0
  692. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.test.ts +0 -0
  693. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.ts +0 -0
  694. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/telemetry.ts +0 -0
  695. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/index.ts +0 -0
  696. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/runtime.ts +0 -0
  697. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/team-progress.ts +0 -0
  698. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.test.ts +0 -0
  699. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.ts +0 -0
  700. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.test.ts +0 -0
  701. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.ts +0 -0
  702. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.test.ts +0 -0
  703. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.ts +0 -0
  704. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry-config.ts +0 -0
  705. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.test.ts +0 -0
  706. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.ts +0 -0
  707. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/hook-context.ts +0 -0
  708. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/index.ts +0 -0
  709. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/records.ts +0 -0
  710. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-config.ts +0 -0
  711. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-env.ts +0 -0
  712. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/workspace.ts +0 -0
  713. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/index.ts +0 -0
  714. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.test.ts +0 -0
  715. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.ts +0 -0
  716. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.home-dir.test.ts +0 -0
  717. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.test.ts +0 -0
  718. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.ts +0 -0
  719. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/index.ts +0 -0
  720. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/schema.ts +0 -0
  721. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/types.ts +0 -0
  722. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.test.ts +0 -0
  723. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.ts +0 -0
  724. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/auth.ts +0 -0
  725. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/index.ts +0 -0
  726. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/vcr.ts +0 -0
  727. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.test.ts +0 -0
  728. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.ts +0 -0
  729. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.build.json +0 -0
  730. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.json +0 -0
  731. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/shared/vitest.config.ts +0 -0
  732. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/packages/tsconfig.base.json +0 -0
  733. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/check-publish.ts +0 -0
  734. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/ci-node-smoke.ts +0 -0
  735. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/clean.ts +0 -0
  736. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/release.ts +0 -0
  737. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/run-vendored-tests.sh +0 -0
  738. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/scripts/version.ts +0 -0
  739. {codna-0.2.73 → codna-0.2.75}/codna/agent-core/vendor/cline/sdk/tsconfig.json +0 -0
  740. {codna-0.2.73 → codna-0.2.75}/codna/agent_core_runtime.py +0 -0
  741. {codna-0.2.73 → codna-0.2.75}/codna/byok_cli.py +0 -0
  742. {codna-0.2.73 → codna-0.2.75}/codna/ci_admission.py +0 -0
  743. {codna-0.2.73 → codna-0.2.75}/codna/ci_cli.py +0 -0
  744. {codna-0.2.73 → codna-0.2.75}/codna/cli.py +0 -0
  745. {codna-0.2.73 → codna-0.2.75}/codna/cli_errors.py +0 -0
  746. {codna-0.2.73 → codna-0.2.75}/codna/cline_agent.py +0 -0
  747. {codna-0.2.73 → codna-0.2.75}/codna/codeunits.py +0 -0
  748. {codna-0.2.73 → codna-0.2.75}/codna/codeunits_treesitter.py +0 -0
  749. {codna-0.2.73 → codna-0.2.75}/codna/config_file.py +0 -0
  750. {codna-0.2.73 → codna-0.2.75}/codna/doctor.py +0 -0
  751. {codna-0.2.73 → codna-0.2.75}/codna/doctor_output.py +0 -0
  752. {codna-0.2.73 → codna-0.2.75}/codna/engine.py +0 -0
  753. {codna-0.2.73 → codna-0.2.75}/codna/evasion.py +0 -0
  754. {codna-0.2.73 → codna-0.2.75}/codna/evidence.py +0 -0
  755. {codna-0.2.73 → codna-0.2.75}/codna/findings.py +0 -0
  756. {codna-0.2.73 → codna-0.2.75}/codna/fix_inputs.py +0 -0
  757. {codna-0.2.73 → codna-0.2.75}/codna/fix_run.py +0 -0
  758. {codna-0.2.73 → codna-0.2.75}/codna/focus_paths.py +0 -0
  759. {codna-0.2.73 → codna-0.2.75}/codna/gate.py +0 -0
  760. {codna-0.2.73 → codna-0.2.75}/codna/gitpush.py +0 -0
  761. {codna-0.2.73 → codna-0.2.75}/codna/impact.py +0 -0
  762. {codna-0.2.73 → codna-0.2.75}/codna/impact_cli.py +0 -0
  763. {codna-0.2.73 → codna-0.2.75}/codna/keystore.py +0 -0
  764. {codna-0.2.73 → codna-0.2.75}/codna/local_client.py +0 -0
  765. {codna-0.2.73 → codna-0.2.75}/codna/local_mojo_daemon.py +0 -0
  766. {codna-0.2.73 → codna-0.2.75}/codna/local_mojo_pool.py +0 -0
  767. {codna-0.2.73 → codna-0.2.75}/codna/local_repository_shims.py +0 -0
  768. {codna-0.2.73 → codna-0.2.75}/codna/local_runtime.py +0 -0
  769. {codna-0.2.73 → codna-0.2.75}/codna/localfix.py +0 -0
  770. {codna-0.2.73 → codna-0.2.75}/codna/login.py +0 -0
  771. {codna-0.2.73 → codna-0.2.75}/codna/manifest.py +0 -0
  772. {codna-0.2.73 → codna-0.2.75}/codna/mcp_cli.py +0 -0
  773. {codna-0.2.73 → codna-0.2.75}/codna/mcp_install.py +0 -0
  774. {codna-0.2.73 → codna-0.2.75}/codna/mcp_server.py +0 -0
  775. {codna-0.2.73 → codna-0.2.75}/codna/memory.py +0 -0
  776. {codna-0.2.73 → codna-0.2.75}/codna/memory_manifest.py +0 -0
  777. {codna-0.2.73 → codna-0.2.75}/codna/memory_rerank.py +0 -0
  778. {codna-0.2.73 → codna-0.2.75}/codna/netjail.py +0 -0
  779. {codna-0.2.73 → codna-0.2.75}/codna/packaged_agent_runner.py +0 -0
  780. {codna-0.2.73 → codna-0.2.75}/codna/packaged_git.py +0 -0
  781. {codna-0.2.73 → codna-0.2.75}/codna/packaged_repository_advanced.py +0 -0
  782. {codna-0.2.73 → codna-0.2.75}/codna/packaged_repository_backend.py +0 -0
  783. {codna-0.2.73 → codna-0.2.75}/codna/patch_text.py +0 -0
  784. {codna-0.2.73 → codna-0.2.75}/codna/patchgen.py +0 -0
  785. {codna-0.2.73 → codna-0.2.75}/codna/policy.py +0 -0
  786. {codna-0.2.73 → codna-0.2.75}/codna/project_rules.py +0 -0
  787. {codna-0.2.73 → codna-0.2.75}/codna/python_import_paths.py +0 -0
  788. {codna-0.2.73 → codna-0.2.75}/codna/refengine.py +0 -0
  789. {codna-0.2.73 → codna-0.2.75}/codna/remote_http.py +0 -0
  790. {codna-0.2.73 → codna-0.2.75}/codna/repo_backend.py +0 -0
  791. {codna-0.2.73 → codna-0.2.75}/codna/report_cli.py +0 -0
  792. {codna-0.2.73 → codna-0.2.75}/codna/repository_artifacts.py +0 -0
  793. {codna-0.2.73 → codna-0.2.75}/codna/review.py +0 -0
  794. {codna-0.2.73 → codna-0.2.75}/codna/review_budget.py +0 -0
  795. {codna-0.2.73 → codna-0.2.75}/codna/review_findings.py +0 -0
  796. {codna-0.2.73 → codna-0.2.75}/codna/review_github.py +0 -0
  797. {codna-0.2.73 → codna-0.2.75}/codna/review_grounding.py +0 -0
  798. {codna-0.2.73 → codna-0.2.75}/codna/review_manifests.py +0 -0
  799. {codna-0.2.73 → codna-0.2.75}/codna/runtime/__init__.py +0 -0
  800. {codna-0.2.73 → codna-0.2.75}/codna/runtime/config.py +0 -0
  801. {codna-0.2.73 → codna-0.2.75}/codna/runtime/health.py +0 -0
  802. {codna-0.2.73 → codna-0.2.75}/codna/runtime/local_stack.py +0 -0
  803. {codna-0.2.73 → codna-0.2.75}/codna/runtime/ports.py +0 -0
  804. {codna-0.2.73 → codna-0.2.75}/codna/runtime/processes.py +0 -0
  805. {codna-0.2.73 → codna-0.2.75}/codna/runtime_config.py +0 -0
  806. {codna-0.2.73 → codna-0.2.75}/codna/sandbox.py +0 -0
  807. {codna-0.2.73 → codna-0.2.75}/codna/sarif.py +0 -0
  808. {codna-0.2.73 → codna-0.2.75}/codna/scaffold.py +0 -0
  809. {codna-0.2.73 → codna-0.2.75}/codna/secure.py +0 -0
  810. {codna-0.2.73 → codna-0.2.75}/codna/secure_open_pr_cli.py +0 -0
  811. {codna-0.2.73 → codna-0.2.75}/codna/status.py +0 -0
  812. {codna-0.2.73 → codna-0.2.75}/codna/supervisor.py +0 -0
  813. {codna-0.2.73 → codna-0.2.75}/codna/telys_onboarding.py +0 -0
  814. {codna-0.2.73 → codna-0.2.75}/codna/telys_runtime.py +0 -0
  815. {codna-0.2.73 → codna-0.2.75}/codna/testrun.py +0 -0
  816. {codna-0.2.73 → codna-0.2.75}/codna/webhook_ci_triage.py +0 -0
  817. {codna-0.2.73 → codna-0.2.75}/codna/webhook_cli.py +0 -0
  818. {codna-0.2.73 → codna-0.2.75}/codna/webhook_control.py +0 -0
  819. {codna-0.2.73 → codna-0.2.75}/codna/webhook_metering.py +0 -0
  820. {codna-0.2.73 → codna-0.2.75}/codna/webhook_metrics.py +0 -0
  821. {codna-0.2.73 → codna-0.2.75}/codna/webhook_ops.py +0 -0
  822. {codna-0.2.73 → codna-0.2.75}/codna/webhook_pg_schema.py +0 -0
  823. {codna-0.2.73 → codna-0.2.75}/codna/webhook_procs.py +0 -0
  824. {codna-0.2.73 → codna-0.2.75}/codna/webhook_redeliver.py +0 -0
  825. {codna-0.2.73 → codna-0.2.75}/codna/webhook_resume.py +0 -0
  826. {codna-0.2.73 → codna-0.2.75}/codna/webhook_retry.py +0 -0
  827. {codna-0.2.73 → codna-0.2.75}/codna/webhook_scaler.py +0 -0
  828. {codna-0.2.73 → codna-0.2.75}/codna/webhook_summaries.py +0 -0
  829. {codna-0.2.73 → codna-0.2.75}/codna/worker.py +0 -0
  830. {codna-0.2.73 → codna-0.2.75}/codna/worktree.py +0 -0
  831. {codna-0.2.73 → codna-0.2.75}/codna/writer.py +0 -0
  832. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/dependency_links.txt +0 -0
  833. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/entry_points.txt +0 -0
  834. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/requires.txt +0 -0
  835. {codna-0.2.73 → codna-0.2.75}/codna.egg-info/top_level.txt +0 -0
  836. {codna-0.2.73 → codna-0.2.75}/memengine/__init__.py +0 -0
  837. {codna-0.2.73 → codna-0.2.75}/memengine/_validate.py +0 -0
  838. {codna-0.2.73 → codna-0.2.75}/memengine/native_runtime.py +0 -0
  839. {codna-0.2.73 → codna-0.2.75}/setup.cfg +0 -0
  840. {codna-0.2.73 → codna-0.2.75}/setup.py +0 -0
  841. {codna-0.2.73 → codna-0.2.75}/tests/test_admission_control.py +0 -0
  842. {codna-0.2.73 → codna-0.2.75}/tests/test_agent_core_runtime.py +0 -0
  843. {codna-0.2.73 → codna-0.2.75}/tests/test_bench_driver_lazy_resolution.py +0 -0
  844. {codna-0.2.73 → codna-0.2.75}/tests/test_bench_env.py +0 -0
  845. {codna-0.2.73 → codna-0.2.75}/tests/test_benchmark_parity_imports.py +0 -0
  846. {codna-0.2.73 → codna-0.2.75}/tests/test_benchmark_suite.py +0 -0
  847. {codna-0.2.73 → codna-0.2.75}/tests/test_ci_admission.py +0 -0
  848. {codna-0.2.73 → codna-0.2.75}/tests/test_cli_doctor.py +0 -0
  849. {codna-0.2.73 → codna-0.2.75}/tests/test_cli_fix.py +0 -0
  850. {codna-0.2.73 → codna-0.2.75}/tests/test_cli_parser.py +0 -0
  851. {codna-0.2.73 → codna-0.2.75}/tests/test_cli_register.py +0 -0
  852. {codna-0.2.73 → codna-0.2.75}/tests/test_cli_surface_parity.py +0 -0
  853. {codna-0.2.73 → codna-0.2.75}/tests/test_cline_agent_unparseable_details.py +0 -0
  854. {codna-0.2.73 → codna-0.2.75}/tests/test_cline_fork_guard.py +0 -0
  855. {codna-0.2.73 → codna-0.2.75}/tests/test_codeunits.py +0 -0
  856. {codna-0.2.73 → codna-0.2.75}/tests/test_codeunits_treesitter.py +0 -0
  857. {codna-0.2.73 → codna-0.2.75}/tests/test_config_file.py +0 -0
  858. {codna-0.2.73 → codna-0.2.75}/tests/test_dev_check_script.py +0 -0
  859. {codna-0.2.73 → codna-0.2.75}/tests/test_dockerfile_webhook.py +0 -0
  860. {codna-0.2.73 → codna-0.2.75}/tests/test_dockerignore.py +0 -0
  861. {codna-0.2.73 → codna-0.2.75}/tests/test_doctor.py +0 -0
  862. {codna-0.2.73 → codna-0.2.75}/tests/test_download_telys_runtime_bundle.py +0 -0
  863. {codna-0.2.73 → codna-0.2.75}/tests/test_engine.py +0 -0
  864. {codna-0.2.73 → codna-0.2.75}/tests/test_engine_contract_integration.py +0 -0
  865. {codna-0.2.73 → codna-0.2.75}/tests/test_evasion.py +0 -0
  866. {codna-0.2.73 → codna-0.2.75}/tests/test_evidence.py +0 -0
  867. {codna-0.2.73 → codna-0.2.75}/tests/test_evidence_io.py +0 -0
  868. {codna-0.2.73 → codna-0.2.75}/tests/test_extract_nul.py +0 -0
  869. {codna-0.2.73 → codna-0.2.75}/tests/test_fix_inputs_remote.py +0 -0
  870. {codna-0.2.73 → codna-0.2.75}/tests/test_fix_run.py +0 -0
  871. {codna-0.2.73 → codna-0.2.75}/tests/test_fly_toml.py +0 -0
  872. {codna-0.2.73 → codna-0.2.75}/tests/test_gate.py +0 -0
  873. {codna-0.2.73 → codna-0.2.75}/tests/test_gitpush.py +0 -0
  874. {codna-0.2.73 → codna-0.2.75}/tests/test_impact.py +0 -0
  875. {codna-0.2.73 → codna-0.2.75}/tests/test_impact_cli.py +0 -0
  876. {codna-0.2.73 → codna-0.2.75}/tests/test_keys_file_dev_only.py +0 -0
  877. {codna-0.2.73 → codna-0.2.75}/tests/test_keystore.py +0 -0
  878. {codna-0.2.73 → codna-0.2.75}/tests/test_local_byok_cli.py +0 -0
  879. {codna-0.2.73 → codna-0.2.75}/tests/test_local_client.py +0 -0
  880. {codna-0.2.73 → codna-0.2.75}/tests/test_local_mojo_daemon.py +0 -0
  881. {codna-0.2.73 → codna-0.2.75}/tests/test_local_mojo_pool_runtime.py +0 -0
  882. {codna-0.2.73 → codna-0.2.75}/tests/test_local_runtime.py +0 -0
  883. {codna-0.2.73 → codna-0.2.75}/tests/test_local_runtime_lifecycle.py +0 -0
  884. {codna-0.2.73 → codna-0.2.75}/tests/test_localfix.py +0 -0
  885. {codna-0.2.73 → codna-0.2.75}/tests/test_login.py +0 -0
  886. {codna-0.2.73 → codna-0.2.75}/tests/test_manifest.py +0 -0
  887. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_default_repo.py +0 -0
  888. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_enrich.py +0 -0
  889. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_install.py +0 -0
  890. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_recall.py +0 -0
  891. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_report_bug.py +0 -0
  892. {codna-0.2.73 → codna-0.2.75}/tests/test_mcp_secure.py +0 -0
  893. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_errors.py +0 -0
  894. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_hybrid.py +0 -0
  895. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_incremental.py +0 -0
  896. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_license.py +0 -0
  897. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_rerank.py +0 -0
  898. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_wordllama_rerank.py +0 -0
  899. {codna-0.2.73 → codna-0.2.75}/tests/test_memory_wrapper.py +0 -0
  900. {codna-0.2.73 → codna-0.2.75}/tests/test_modularity.py +0 -0
  901. {codna-0.2.73 → codna-0.2.75}/tests/test_netjail.py +0 -0
  902. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_confidence.py +0 -0
  903. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_git_clone.py +0 -0
  904. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_guidance.py +0 -0
  905. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_remote_pr.py +0 -0
  906. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_runner_review_terminal_state.py +0 -0
  907. {codna-0.2.73 → codna-0.2.75}/tests/test_packaged_test_fix_scope.py +0 -0
  908. {codna-0.2.73 → codna-0.2.75}/tests/test_packaging.py +0 -0
  909. {codna-0.2.73 → codna-0.2.75}/tests/test_patch_text.py +0 -0
  910. {codna-0.2.73 → codna-0.2.75}/tests/test_patchgen.py +0 -0
  911. {codna-0.2.73 → codna-0.2.75}/tests/test_policy.py +0 -0
  912. {codna-0.2.73 → codna-0.2.75}/tests/test_refengine.py +0 -0
  913. {codna-0.2.73 → codna-0.2.75}/tests/test_release_readiness.py +0 -0
  914. {codna-0.2.73 → codna-0.2.75}/tests/test_repo_backend.py +0 -0
  915. {codna-0.2.73 → codna-0.2.75}/tests/test_report_cli.py +0 -0
  916. {codna-0.2.73 → codna-0.2.75}/tests/test_repository_artifacts.py +0 -0
  917. {codna-0.2.73 → codna-0.2.75}/tests/test_review_budget.py +0 -0
  918. {codna-0.2.73 → codna-0.2.75}/tests/test_review_error_details.py +0 -0
  919. {codna-0.2.73 → codna-0.2.75}/tests/test_review_findings.py +0 -0
  920. {codna-0.2.73 → codna-0.2.75}/tests/test_review_grounding.py +0 -0
  921. {codna-0.2.73 → codna-0.2.75}/tests/test_review_run_marker.py +0 -0
  922. {codna-0.2.73 → codna-0.2.75}/tests/test_rules_and_review.py +0 -0
  923. {codna-0.2.73 → codna-0.2.75}/tests/test_runtime_config.py +0 -0
  924. {codna-0.2.73 → codna-0.2.75}/tests/test_runtime_ports.py +0 -0
  925. {codna-0.2.73 → codna-0.2.75}/tests/test_runtime_processes.py +0 -0
  926. {codna-0.2.73 → codna-0.2.75}/tests/test_sandbox.py +0 -0
  927. {codna-0.2.73 → codna-0.2.75}/tests/test_sarif.py +0 -0
  928. {codna-0.2.73 → codna-0.2.75}/tests/test_scaffold_and_status.py +0 -0
  929. {codna-0.2.73 → codna-0.2.75}/tests/test_secure.py +0 -0
  930. {codna-0.2.73 → codna-0.2.75}/tests/test_stage_codna_telys_oem_license.py +0 -0
  931. {codna-0.2.73 → codna-0.2.75}/tests/test_stage_codna_telys_runtime.py +0 -0
  932. {codna-0.2.73 → codna-0.2.75}/tests/test_structured_error.py +0 -0
  933. {codna-0.2.73 → codna-0.2.75}/tests/test_supervisor.py +0 -0
  934. {codna-0.2.73 → codna-0.2.75}/tests/test_sync_wheel_memengine.py +0 -0
  935. {codna-0.2.73 → codna-0.2.75}/tests/test_telys_onboarding.py +0 -0
  936. {codna-0.2.73 → codna-0.2.75}/tests/test_telys_runtime_packaging.py +0 -0
  937. {codna-0.2.73 → codna-0.2.75}/tests/test_testrun.py +0 -0
  938. {codna-0.2.73 → codna-0.2.75}/tests/test_verify_pypi_trusted_publisher.py +0 -0
  939. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_backend_spool.py +0 -0
  940. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_ci_triage.py +0 -0
  941. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_feedback_dispatch.py +0 -0
  942. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_github_ci.py +0 -0
  943. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_lease.py +0 -0
  944. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_metering.py +0 -0
  945. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_ops.py +0 -0
  946. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_pg_queue.py +0 -0
  947. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_queue.py +0 -0
  948. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_redeliver.py +0 -0
  949. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_resume.py +0 -0
  950. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_retry.py +0 -0
  951. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_scaler.py +0 -0
  952. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_scheduling.py +0 -0
  953. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_service.py +0 -0
  954. {codna-0.2.73 → codna-0.2.75}/tests/test_webhook_worker_feedback_dispatch.py +0 -0
  955. {codna-0.2.73 → codna-0.2.75}/tests/test_wheel_guard.py +0 -0
  956. {codna-0.2.73 → codna-0.2.75}/tests/test_wheel_smoke_script.py +0 -0
  957. {codna-0.2.73 → codna-0.2.75}/tests/test_worker.py +0 -0
  958. {codna-0.2.73 → codna-0.2.75}/tests/test_workflows.py +0 -0
  959. {codna-0.2.73 → codna-0.2.75}/tests/test_worktree.py +0 -0
  960. {codna-0.2.73 → codna-0.2.75}/tests/test_writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codna
3
- Version: 0.2.73
3
+ Version: 0.2.75
4
4
  Summary: Local-first repo intelligence and agent fixing for Codna.
5
5
  Author: Thyn
6
6
  Maintainer: Thyn
@@ -5,4 +5,4 @@ This package is the `codna` CLI. Users never touch "algenta" directly — the en
5
5
  is an internal dependency reached over HTTP.
6
6
  """
7
7
 
8
- __version__ = "0.2.73"
8
+ __version__ = "0.2.75"
@@ -29,6 +29,7 @@ import json
29
29
  import os
30
30
  import re
31
31
  import sys
32
+ import threading
32
33
  from dataclasses import dataclass
33
34
  from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
34
35
  from pathlib import Path
@@ -668,13 +669,14 @@ def default_queue_path() -> str:
668
669
 
669
670
  # --- self-hostable server: verify + enqueue (thin ingress) ----------------------------
670
671
  def _log_delivery(event: str, payload: Mapping[str, Any], delivery_id: str | None, outcome: str,
671
- job: WebhookJob | None = None) -> None:
672
+ job: WebhookJob | None = None, **fields: Any) -> None:
672
673
  """One stderr JSON line per verified delivery: what arrived and what became of it.
673
674
 
674
675
  Until now a delivery that classified as `ignored` or collapsed as a `duplicate` left no trace
675
676
  anywhere -- on 2026-09-17 a `@codna fix` reply produced neither a job nor a log line and the
676
677
  only way to tell "never delivered" from "delivered and dropped" was to guess. Same shape as the
677
678
  worker's lines so one grep covers ingress and processing (`"service": "codna-webhook"`).
679
+ ``fields`` are extra keys a path wants on record (the Check Run the ingress opened, for one).
678
680
  """
679
681
  repo = (payload.get("repository") or {}).get("full_name")
680
682
  line = {
@@ -688,6 +690,7 @@ def _log_delivery(event: str, payload: Mapping[str, Any], delivery_id: str | Non
688
690
  }
689
691
  if job is not None:
690
692
  line.update({"kind": job.kind, "reason": job.reason, "pr_number": job.pr_number})
693
+ line.update(fields)
691
694
  print(json.dumps(line, sort_keys=True), file=sys.stderr, flush=True)
692
695
 
693
696
 
@@ -797,7 +800,35 @@ class _Handler(BaseHTTPRequestHandler):
797
800
  _log_delivery(event, payload, delivery_id, "accepted", job)
798
801
  self._reply(202, {"status": "accepted", "kind": job.kind, "repo": job.repo_full_name})
799
802
  return
800
- fresh = queue.enqueue(job, delivery_id=delivery_id)
803
+ # The review's Check Run is opened `queued` HERE, before the row exists, so the tenant sees
804
+ # it the moment the delivery is accepted rather than when a worker slot frees (measured
805
+ # 2026-09-20: p95 23 s invisible during a 21-review fan-out). The row is born owning the
806
+ # run; the worker updates it. webhook_queued_check has the whole lifecycle; the service
807
+ # switches this on for the Postgres backend only (webhook_service.serve).
808
+ queued_check = bool(getattr(self.server, "queued_check_runs", False))
809
+ pre = None
810
+ late_gate: threading.Event | None = None
811
+ if queued_check:
812
+ from . import webhook_queued_check
813
+
814
+ late_gate = threading.Event()
815
+ pre = webhook_queued_check.precreate(
816
+ job, queue=queue, delivery_id=delivery_id, github=self._github(),
817
+ app_id=os.environ.get("GITHUB_APP_ID"), private_key=os.environ.get("GITHUB_APP_PRIVATE_KEY"),
818
+ late_gate=late_gate)
819
+ try:
820
+ if pre is not None:
821
+ fresh = queue.enqueue(job, delivery_id=delivery_id, check_run_id=pre.check_run_id)
822
+ else:
823
+ fresh = queue.enqueue(job, delivery_id=delivery_id)
824
+ finally:
825
+ if late_gate is not None:
826
+ late_gate.set() # a create that answers after the budget may now adopt onto this row
827
+ check_run: dict[str, Any] = {}
828
+ if pre is not None:
829
+ bound = webhook_queued_check.bind_or_close(pre, job=job, queue=queue, delivery_id=delivery_id,
830
+ fresh=fresh, github=self._github())
831
+ check_run = {"check_run_id": pre.check_run_id, "check_run": bound}
801
832
  # A new head retires the work the old one left behind. enqueue() already collapsed the
802
833
  # WAITING rows; this stops the ones already RUNNING, whose verdict would land on a commit
803
834
  # that no longer exists (thyn-ai/mojo-kernels#32, 2026-09-19: two reviews ran to completion
@@ -809,13 +840,41 @@ class _Handler(BaseHTTPRequestHandler):
809
840
  superseded = webhook_control.supersede_running(job, queue=queue)
810
841
  except Exception: # noqa: BLE001 -- a delivery must be accepted even if cancelling fails
811
842
  superseded = 0
812
- _log_delivery(event, payload, delivery_id, "accepted" if fresh else "duplicate", job)
843
+ if queued_check and job.pr_number is not None:
844
+ # ... and the WAITING rows enqueue() just retired had Check Runs of their own, opened
845
+ # queued by this ingress: complete them neutral ("superseded by <sha>") the way the
846
+ # running ones are, off the request thread. The reaper sweeps whatever this misses.
847
+ # The pre-create's token is scoped to this repository and may complete those runs;
848
+ # without one (a `fix` retiring a review's row) a token is minted per row.
849
+ token_for = webhook_queued_check.token_for(
850
+ github=self._github(), app_id=os.environ.get("GITHUB_APP_ID"),
851
+ private_key=os.environ.get("GITHUB_APP_PRIVATE_KEY"))
852
+ if pre is not None:
853
+ def token_for(_row: Any, _token: str = pre.token) -> str: # one token, one repository
854
+ return _token
855
+ try:
856
+ webhook_queued_check.settle_retired_in_background(
857
+ queue, github=self._github(), repo=job.repo_full_name, pr_number=job.pr_number,
858
+ token_for=token_for)
859
+ except Exception: # noqa: BLE001 -- the reaper's sweep is the backstop
860
+ pass
861
+ _log_delivery(event, payload, delivery_id, "accepted" if fresh else "duplicate", job, **check_run)
813
862
  self._reply(
814
863
  202 if fresh else 200,
815
864
  {"status": "accepted" if fresh else "duplicate", "kind": job.kind,
816
- "repo": job.repo_full_name, "reason": job.reason, "superseded_running": superseded},
865
+ "repo": job.repo_full_name, "reason": job.reason, "superseded_running": superseded, **check_run},
817
866
  )
818
867
 
868
+ def _github(self) -> Any:
869
+ """The GitHub client the ingress opens and closes Check Runs with: an object the service
870
+ (or a test) hung on the server, else the real module."""
871
+ client = getattr(self.server, "github", None)
872
+ if client is not None:
873
+ return client
874
+ from . import webhook_github
875
+
876
+ return webhook_github
877
+
819
878
 
820
879
  def require_webhook_secret(environ: Mapping[str, str] | None = None) -> str:
821
880
  """Return the configured webhook secret or fail before opening a listener."""
@@ -122,7 +122,11 @@ class ShadowQueue:
122
122
  def shadow(self) -> Any:
123
123
  return self._shadow
124
124
 
125
- def enqueue(self, job: WebhookJob, *, delivery_id: str | None, priority: int = 0, unless_pending: bool = False) -> bool:
125
+ def enqueue(self, job: WebhookJob, *, delivery_id: str | None, priority: int = 0, unless_pending: bool = False,
126
+ check_run_id: int | None = None) -> bool:
127
+ # check_run_id is accepted for signature parity with the Postgres queue and ignored: the
128
+ # ingress never pre-creates a Check Run on this backend (SQLite runs the job and creates
129
+ # the run at claim), so a caller can never hand one in.
126
130
  fresh = self._primary.enqueue(job, delivery_id=delivery_id, priority=priority, unless_pending=unless_pending)
127
131
  if fresh:
128
132
  try:
@@ -216,20 +220,26 @@ class SpoolingQueue:
216
220
  return sum(counts.get(k, 0) for k in ("queued", "retry", "running"))
217
221
 
218
222
  # -- enqueue: Postgres first, the file when it cannot answer ------------------------------------
219
- def enqueue(self, job: WebhookJob, *, delivery_id: str | None, priority: int = 0, unless_pending: bool = False) -> bool:
223
+ def enqueue(self, job: WebhookJob, *, delivery_id: str | None, priority: int = 0, unless_pending: bool = False,
224
+ check_run_id: int | None = None) -> bool:
220
225
  # The late path (a Postgres write that answers after the timeout) retires the SPOOL copy,
221
226
  # so it must not look before that copy exists: it waits on this gate, which the timeout
222
227
  # branch below sets once its spool write is done (success or failure). Ordered, not timed.
223
228
  spool_written = threading.Event()
224
229
  try:
225
230
  fresh = _call_with_timeout(
226
- lambda: self._primary.enqueue(job, delivery_id=delivery_id, priority=priority, unless_pending=unless_pending),
231
+ lambda: self._primary.enqueue(job, delivery_id=delivery_id, priority=priority, unless_pending=unless_pending,
232
+ check_run_id=check_run_id),
227
233
  self._enqueue_timeout_s,
228
234
  on_late=lambda accepted: self._retire_spooled(delivery_id) if accepted else None,
229
235
  late_gate=spool_written)
230
236
  except Exception as exc: # noqa: BLE001 -- the file takes it; GitHub still gets its 202
231
237
  self._mark_down()
232
238
  try:
239
+ # The spool row does NOT carry the pre-created Check Run: the file has no owner for
240
+ # it (no reaper sweeps the spool), and the ingress, finding the run bound to no
241
+ # Postgres row, closes it at once (webhook_queued_check.bind_or_close). The worker
242
+ # that eventually claims the forwarded row creates the run then, as it always has.
233
243
  fresh = self._spool.enqueue(job, delivery_id=delivery_id, priority=priority, unless_pending=unless_pending)
234
244
  finally:
235
245
  spool_written.set()
@@ -22,8 +22,15 @@ _API = "https://api.github.com"
22
22
  # round-trip happens once, not per job.
23
23
  _WORKFLOWS_GRANTED: dict[str, bool] = {}
24
24
 
25
+ # installation id -> whether the App has the `statuses` permission there (Commit statuses: read),
26
+ # learned the same way from the first review-token request per process. Requesting a permission the
27
+ # installation never granted makes GitHub refuse the WHOLE mint (422), so an installation without it
28
+ # gets a review token without `statuses` -- the review then sees check runs but no commit statuses
29
+ # (a Vercel deployment reports as one), and the operator log says so once.
30
+ _STATUSES_GRANTED: dict[str, bool] = {}
25
31
 
26
- def token_permissions_for(kind: str, *, workflows: bool = False) -> dict[str, str]:
32
+
33
+ def token_permissions_for(kind: str, *, workflows: bool = False, statuses: bool = False) -> dict[str, str]:
27
34
  """Least-privilege installation-token permissions for a job kind.
28
35
 
29
36
  fix needs to push a branch + open a PR; secure only reads code + code-scanning results.
@@ -32,6 +39,11 @@ def token_permissions_for(kind: str, *, workflows: bool = False) -> dict[str, st
32
39
  .github/workflows files differ from the default branch -- which is every PR branch that
33
40
  predates a workflow change on main (thyn-ai/algenta#1003, 2026-09-17), even though the fix
34
41
  commit itself never touches a workflow.
42
+
43
+ ``statuses=True`` adds `statuses: read` to a review token: the PR head's ``statusCheckRollup``
44
+ (review_github.failing_required_checks) lists commit statuses -- a Vercel deployment reports as
45
+ one -- only to a token that may read them; without it the review sees check runs alone and
46
+ approved thyn-ai/codna-site#57 with no word about its FAILED required `Vercel` status.
35
47
  """
36
48
  if kind == "fix":
37
49
  perms = {"contents": "write", "pull_requests": "write", "checks": "write", "issues": "write"}
@@ -42,7 +54,10 @@ def token_permissions_for(kind: str, *, workflows: bool = False) -> dict[str, st
42
54
  return {"contents": "read", "security_events": "read", "checks": "write", "issues": "write"}
43
55
  if kind == "review":
44
56
  # Read code, write PR review comments + a check. No contents:write — review never pushes.
45
- return {"contents": "read", "pull_requests": "write", "checks": "write"}
57
+ perms = {"contents": "read", "pull_requests": "write", "checks": "write"}
58
+ if statuses:
59
+ perms["statuses"] = "read"
60
+ return perms
46
61
  if kind == "queue":
47
62
  # Read the PR head + its check runs, write ONE check on the merge-group commit.
48
63
  return {"pull_requests": "read", "checks": "write"}
@@ -57,10 +72,12 @@ def token_permissions_for(kind: str, *, workflows: bool = False) -> dict[str, st
57
72
  raise WebhookError("unknown_job_kind", f"no token scope for job kind {kind!r}")
58
73
 
59
74
 
60
- def scoped_token_request(repo_full_name: str, kind: str, *, workflows: bool = False) -> dict[str, Any]:
75
+ def scoped_token_request(repo_full_name: str, kind: str, *, workflows: bool = False,
76
+ statuses: bool = False) -> dict[str, Any]:
61
77
  """Body for POST /app/installations/{id}/access_tokens — scoped to the one repo + minimal perms."""
62
78
  repo_name = repo_full_name.split("/", 1)[-1]
63
- return {"repositories": [repo_name], "permissions": token_permissions_for(kind, workflows=workflows)}
79
+ return {"repositories": [repo_name],
80
+ "permissions": token_permissions_for(kind, workflows=workflows, statuses=statuses)}
64
81
 
65
82
 
66
83
  def normalize_private_key_pem(private_key_pem: str) -> str:
@@ -125,22 +142,39 @@ def installation_token(
125
142
  except Exception as exc: # noqa: BLE001
126
143
  raise WebhookError("github_app_auth_unavailable", f"cannot sign App JWT: {exc}") from exc
127
144
 
128
- def _mint(with_workflows: bool):
145
+ def _mint(*, with_workflows: bool, with_statuses: bool):
129
146
  return httpx.post(
130
147
  f"{_API}/app/installations/{installation_id}/access_tokens",
131
148
  headers={"Authorization": f"Bearer {jwt}", "Accept": "application/vnd.github+json"},
132
- json=scoped_token_request(repo_full_name, kind, workflows=with_workflows),
149
+ json=scoped_token_request(repo_full_name, kind, workflows=with_workflows, statuses=with_statuses),
133
150
  timeout=30.0, follow_redirects=True,
134
151
  )
135
152
 
136
- want_workflows = kind == "fix" and _WORKFLOWS_GRANTED.get(str(installation_id), True)
137
- resp = _mint(want_workflows)
138
- if want_workflows and resp.status_code == 422 and "permission" in resp.text.lower():
139
- # The App has not been granted `workflows` on this installation: remember, mint without it.
140
- _WORKFLOWS_GRANTED[str(installation_id)] = False
141
- resp = _mint(False)
142
- elif want_workflows and resp.status_code < 300:
143
- _WORKFLOWS_GRANTED[str(installation_id)] = True
153
+ # The one OPTIONAL permission a kind asks for -- `workflows` (fix) or `statuses` (review) -- is
154
+ # requested until this installation says it never granted it; GitHub answers 422 for the whole
155
+ # mint then, so the token is minted once more without it and the answer is remembered per process.
156
+ inst = str(installation_id)
157
+ want_workflows = kind == "fix" and _WORKFLOWS_GRANTED.get(inst, True)
158
+ want_statuses = kind == "review" and _STATUSES_GRANTED.get(inst, True)
159
+ resp = _mint(with_workflows=want_workflows, with_statuses=want_statuses)
160
+ if (want_workflows or want_statuses) and resp.status_code == 422 and "permission" in resp.text.lower():
161
+ if want_workflows:
162
+ # The App has not been granted `workflows` on this installation: remember, mint without it.
163
+ _WORKFLOWS_GRANTED[inst] = False
164
+ if want_statuses:
165
+ # Not granted `Commit statuses: read` here (multi-tenant: each installation grants the
166
+ # App's new permissions on its own schedule). The review runs on check runs alone; a
167
+ # failed commit status such as Vercel cannot be named until the installation grants it.
168
+ _STATUSES_GRANTED[inst] = False
169
+ _warn("statuses_permission_missing", installation_id=inst, repo=repo_full_name, kind=kind,
170
+ effect="commit statuses (e.g. Vercel) are invisible to the review's red-head check",
171
+ remedy="accept the App's 'Commit statuses: read' permission on this installation")
172
+ resp = _mint(with_workflows=False, with_statuses=False)
173
+ elif (want_workflows or want_statuses) and resp.status_code < 300:
174
+ if want_workflows:
175
+ _WORKFLOWS_GRANTED[inst] = True
176
+ if want_statuses:
177
+ _STATUSES_GRANTED[inst] = True
144
178
  if resp.status_code >= 300:
145
179
  raise WebhookError("installation_token_failed", f"installation token: {resp.status_code} {resp.text[:200]}")
146
180
  token = resp.json().get("token")
@@ -158,8 +192,14 @@ def check_run_payload(name: str, head_sha: str, *, status: str, conclusion: str
158
192
  return body
159
193
 
160
194
 
161
- def create_check_run(repo_full_name: str, token: str, *, name: str, head_sha: str, summary: str) -> int | None:
162
- """Create an in_progress Check Run so status shows in the PR UI. Returns its id."""
195
+ def create_check_run(repo_full_name: str, token: str, *, name: str, head_sha: str, summary: str,
196
+ status: str = "in_progress") -> int | None:
197
+ """Create a Check Run so status shows in the PR UI. Returns its id.
198
+
199
+ ``in_progress`` by default (a worker that is about to run the job). The ingress creates a
200
+ review's run ``queued`` the moment the delivery is accepted, so the check is visible while
201
+ the job waits for a worker slot; ``start_check_run`` flips it when a worker claims the row.
202
+ """
163
203
  try:
164
204
  import httpx
165
205
  except Exception as exc: # noqa: BLE001
@@ -167,7 +207,7 @@ def create_check_run(repo_full_name: str, token: str, *, name: str, head_sha: st
167
207
  resp = httpx.post(
168
208
  f"{_API}/repos/{repo_full_name}/check-runs",
169
209
  headers={"Authorization": f"Bearer {token}", "Accept": "application/vnd.github+json"},
170
- json=check_run_payload(name, head_sha, status="in_progress", conclusion=None, summary=summary),
210
+ json=check_run_payload(name, head_sha, status=status, conclusion=None, summary=summary),
171
211
  timeout=30.0, follow_redirects=True,
172
212
  )
173
213
  if resp.status_code >= 300:
@@ -178,6 +218,50 @@ def create_check_run(repo_full_name: str, token: str, *, name: str, head_sha: st
178
218
  return check_run_id
179
219
 
180
220
 
221
+ def start_check_run(repo_full_name: str, token: str, check_run_id: int, *, name: str, summary: str) -> None:
222
+ """Flip a ``queued`` Check Run to ``in_progress``: the worker that claimed its job is running it.
223
+
224
+ ``started_at`` is set to now, so the run's duration in the UI is the job's own, not the time
225
+ it waited in the queue (GitHub Actions stamps its job runs the same way)."""
226
+ try:
227
+ import httpx
228
+ except Exception as exc: # noqa: BLE001
229
+ raise WebhookError("check_run_unavailable", f"Check Run update needs httpx: {exc}") from exc
230
+ import time as _time
231
+
232
+ body = check_run_payload(name, "", status="in_progress", conclusion=None, summary=summary)
233
+ body.pop("head_sha", None) # a PATCH never re-anchors the run
234
+ body["started_at"] = _time.strftime("%Y-%m-%dT%H:%M:%SZ", _time.gmtime())
235
+ resp = httpx.patch(
236
+ f"{_API}/repos/{repo_full_name}/check-runs/{check_run_id}",
237
+ headers={"Authorization": f"Bearer {token}", "Accept": "application/vnd.github+json"},
238
+ json=body, timeout=30.0, follow_redirects=True,
239
+ )
240
+ if resp.status_code >= 300:
241
+ raise WebhookError("check_run_update_failed", f"start check run: {resp.status_code} {resp.text[:200]}")
242
+
243
+
244
+ def check_run_status(repo_full_name: str, token: str, check_run_id: int) -> str | None:
245
+ """``queued`` / ``in_progress`` / ``completed`` for one Check Run, or None when it cannot be read
246
+ (not ours, gone, or a transport error). A retry asks this before reusing the run its row
247
+ carries: a run the previous attempt already completed is not reopened, a fresh one replaces it."""
248
+ try:
249
+ import httpx
250
+ except Exception: # noqa: BLE001
251
+ return None
252
+ try:
253
+ resp = httpx.get(
254
+ f"{_API}/repos/{repo_full_name}/check-runs/{int(check_run_id)}",
255
+ headers={"Authorization": f"Bearer {token}", "Accept": "application/vnd.github+json"},
256
+ timeout=20.0, follow_redirects=True,
257
+ )
258
+ except Exception: # noqa: BLE001
259
+ return None
260
+ data = _check_run_json(resp)
261
+ status = data.get("status") if data else None
262
+ return str(status) if status else None
263
+
264
+
181
265
  def update_check_run(repo_full_name: str, token: str, check_run_id: int, *, conclusion: str, summary: str,
182
266
  name: str = "Codna") -> None:
183
267
  try:
@@ -271,8 +355,9 @@ def complete_stale_check_runs(
271
355
  repo_full_name: str, token: str, *, head_sha: str, name: str, summary: str,
272
356
  conclusion: str = "cancelled",
273
357
  ) -> int:
274
- """Complete (as ``conclusion``, default ``cancelled``) every still-``in_progress`` Check Run
275
- named ``name`` on ``head_sha``. Returns how many were closed. Best-effort hygiene: never raises.
358
+ """Complete (as ``conclusion``, default ``cancelled``) every still-open (``queued`` or
359
+ ``in_progress``) Check Run named ``name`` on ``head_sha``. Returns how many were closed.
360
+ Best-effort hygiene: never raises.
276
361
 
277
362
  A run this worker opened and then lost -- killed mid-job by a redeploy, or a crash before
278
363
  update_check_run -- stays "in progress" on that commit forever, because only the App that
@@ -282,39 +367,42 @@ def complete_stale_check_runs(
282
367
  predecessor instead of stacking a second spinner next to it -- and, as ``neutral``, on the
283
368
  event SHA of a review whose pull request head had already moved when the job started
284
369
  (thyn-ai/codna#569): a run left ``in_progress`` on a commit nobody is merging still strands
285
- automation that waits for "all checks complete".
370
+ automation that waits for "all checks complete". ``queued`` runs are swept too: the ingress
371
+ opens a review's run in that state, and one whose row never reached a worker is as stranded
372
+ as an ``in_progress`` one. The listing endpoint filters on one status per request.
286
373
  """
287
374
  try:
288
375
  import httpx
289
376
  except Exception: # noqa: BLE001
290
377
  return 0
291
378
  headers = {"Authorization": f"Bearer {token}", "Accept": "application/vnd.github+json"}
292
- try:
293
- resp = httpx.get(
294
- f"{_API}/repos/{repo_full_name}/commits/{head_sha}/check-runs",
295
- headers=headers, params={"check_name": name, "status": "in_progress", "per_page": 50},
296
- timeout=30.0, follow_redirects=True,
297
- )
298
- except Exception: # noqa: BLE001
299
- return 0
300
- if resp.status_code >= 300:
301
- return 0
302
379
  closed = 0
303
- try:
304
- runs = (resp.json() or {}).get("check_runs") or []
305
- except Exception: # noqa: BLE001
306
- return 0
307
- for run in runs:
308
- run_id = run.get("id")
309
- if not run_id:
310
- continue
380
+ for status in ("in_progress", "queued"):
311
381
  try:
312
- update_check_run(
313
- repo_full_name, token, run_id, conclusion=conclusion, summary=summary, name=name
382
+ resp = httpx.get(
383
+ f"{_API}/repos/{repo_full_name}/commits/{head_sha}/check-runs",
384
+ headers=headers, params={"check_name": name, "status": status, "per_page": 50},
385
+ timeout=30.0, follow_redirects=True,
314
386
  )
315
- closed += 1
316
- except Exception: # noqa: BLE001 — someone else's run, already completed, or a transport error
387
+ except Exception: # noqa: BLE001
317
388
  continue
389
+ if resp.status_code >= 300:
390
+ continue
391
+ try:
392
+ runs = (resp.json() or {}).get("check_runs") or []
393
+ except Exception: # noqa: BLE001
394
+ continue
395
+ for run in runs:
396
+ run_id = run.get("id")
397
+ if not run_id:
398
+ continue
399
+ try:
400
+ update_check_run(
401
+ repo_full_name, token, run_id, conclusion=conclusion, summary=summary, name=name
402
+ )
403
+ closed += 1
404
+ except Exception: # noqa: BLE001 — someone else's run, already completed, or a transport error
405
+ continue
318
406
  return closed
319
407
 
320
408
 
@@ -15,7 +15,11 @@ Two threads, both stdlib, both unit-tested with fakes:
15
15
  completed with the dead-letter conclusion, comment-fix thread replied to), never a silent drop
16
16
  and never a red check from our own outage; (3) once Postgres has been healthy again for
17
17
  ``outage_retry_after_s``, runs dead rows whose failure text names an outage one more time;
18
- (4) forgets workers whose heartbeat is long gone.
18
+ (4) forgets workers whose heartbeat is long gone; (5) completes the Check Runs of rows that were
19
+ retired before any worker touched them -- the ``queued`` run the ingress opens at enqueue, when
20
+ a newer head superseded the row, an operator cancelled it, a rollback exported it, or it failed
21
+ before the worker could report (``webhook_queued_check.settle_retired``; the ingress does the
22
+ same for the pull request it just retired rows on, this is the backstop).
19
23
  """
20
24
  from __future__ import annotations
21
25
 
@@ -26,7 +30,7 @@ import threading
26
30
  import time
27
31
  from typing import Any, Callable
28
32
 
29
- from . import webhook_github, webhook_pg_ops, webhook_retry
33
+ from . import webhook_github, webhook_pg_ops, webhook_queued_check, webhook_retry
30
34
  from .webhook import WebhookJob, check_run_name
31
35
  from .webhook_pg_queue import MAX_RESUMES, PostgresQueue
32
36
 
@@ -302,12 +306,21 @@ class Reaper:
302
306
  retried += 1
303
307
  return retried
304
308
 
309
+ # -- (5) the runs of rows retired before a worker saw them ----------------------------------------
310
+ def close_retired_check_runs(self) -> int:
311
+ """A ``queued`` Check Run the ingress opened belongs to a row; when that row ends without a
312
+ worker (superseded while waiting, cancelled by an operator, exported by a rollback, failed
313
+ before reporting) nothing else completes the run. Exactly once per row (``posted.check_closed``)."""
314
+ return webhook_queued_check.settle_retired(self._queue, github=self._github, token_for=self._token,
315
+ retrigger=RETRIGGER)
316
+
305
317
  # -- the loop --------------------------------------------------------------------------------------
306
318
  def tick(self) -> dict[str, int]:
307
319
  self.ticks += 1
308
320
  out = self.reap_expired()
309
321
  out["dead_letters_notified"] = self.notify_dead_letters()
310
322
  out["outage_retries"] = self.retry_after_outage()
323
+ out["retired_checks_closed"] = self.close_retired_check_runs()
311
324
  out["workers_pruned"] = webhook_pg_ops.prune_dead_workers(self._queue)
312
325
  self.last_outcome = out
313
326
  if any(out.values()):
@@ -99,10 +99,16 @@ def retry_now(queue: PostgresQueue, row_id: int, *, actor: str) -> dict[str, Any
99
99
  return {"id": row_id, "outcome": "not_found"}
100
100
  if row["status"] not in ("dead", "failed", "cancelled", "queued"):
101
101
  return {"id": row_id, "outcome": "not_retryable", "status": row["status"]}
102
+ # The row keeps its Check Run id: the worker that claims it asks GitHub whether that run is
103
+ # still open (webhook_queued_check.open_check_run) -- it continues one the sweep has not
104
+ # reached yet, and opens a fresh one when the verdict, the dead-letter notice or the sweep
105
+ # already completed it. Forgetting the id here would leave a still-open run with nothing
106
+ # pointing at it. `check_closed` is cleared so a later retirement of THIS row sweeps whatever
107
+ # run it then carries.
102
108
  conn.execute(
103
109
  f"UPDATE {_q(queue)}.jobs SET status='queued', attempts=0, max_attempts=%(budget)s, not_before=NULL, "
104
110
  f"finished_at=NULL, owner=NULL, lease_expires_at=NULL, cancel_requested=NULL, "
105
- f"posted = posted - 'dead_letter' WHERE id=%(id)s",
111
+ f"posted = posted - 'dead_letter' - 'check_closed' WHERE id=%(id)s",
106
112
  {"budget": queue.policy_for(row["kind"]).budget, "id": row_id})
107
113
  queue.event(row_id, "retry_now", actor=actor, detail={"from_status": row["status"]}, conn=conn)
108
114
  return {"id": row_id, "outcome": "queued"}
@@ -280,6 +286,35 @@ def unposted_dead(queue: PostgresQueue, *, limit: int = 50) -> list[dict[str, An
280
286
  return [dict(r) for r in rows]
281
287
 
282
288
 
289
+ # Terminal states a row can reach WITHOUT a worker ever closing the Check Run it owns: retired while
290
+ # waiting (a newer head, an operator's cancel, a rollback export) or failed before the worker could
291
+ # report (a token that would not mint, orphaned by a restart on its last attempt).
292
+ RETIRED_STATUSES = ("superseded", "cancelled", "exported", "failed")
293
+
294
+
295
+ def retired_check_runs(queue: PostgresQueue, *, repo: str | None = None, pr_number: int | None = None,
296
+ since_s: float = 7 * 24 * 3600, limit: int = 100) -> list[dict[str, Any]]:
297
+ """Rows in a ``RETIRED_STATUSES`` state that still carry a Check Run id and have not had that run
298
+ confirmed closed (``posted.check_closed`` unset), oldest first. The ingress asks for one pull
299
+ request right after its enqueue retired the older heads; the reaper asks for everything as the
300
+ backstop. The window bounds the one-time backfill over rows that predate the sweep."""
301
+ clauses = ["status = ANY(%(statuses)s)", "check_run_id IS NOT NULL", "NOT (posted ? 'check_closed')",
302
+ f"finished_at >= {_NOW} - make_interval(secs => %(since)s)"]
303
+ params: dict[str, Any] = {"statuses": list(RETIRED_STATUSES), "since": float(since_s), "limit": int(limit),
304
+ **_now_param(queue)}
305
+ if repo:
306
+ clauses.append("repo = %(repo)s")
307
+ params["repo"] = repo
308
+ if pr_number is not None:
309
+ clauses.append("pr_number = %(pr)s")
310
+ params["pr"] = int(pr_number)
311
+ with queue.connection() as conn:
312
+ rows = conn.execute(
313
+ f"SELECT id, kind, repo, ref, pr_number, installation_id, status, check_run_id, last_error, result, finished_at "
314
+ f"FROM {_q(queue)}.jobs WHERE {' AND '.join(clauses)} ORDER BY finished_at LIMIT %(limit)s", params).fetchall()
315
+ return [dict(r) for r in rows]
316
+
317
+
283
318
  def dead_after_outage(queue: PostgresQueue, *, since_s: float = 6 * 3600, limit: int = 200) -> list[dict[str, Any]]:
284
319
  """Dead rows from the last ``since_s`` whose failure text names an outage -- the candidates the
285
320
  post-outage sweep runs again (never those already retried by an operator)."""
@@ -234,7 +234,12 @@ class PostgresQueue:
234
234
  the reaper queueing the current head of a reaped job) -- any job of this kind for exactly
235
235
  this head that is waiting, running OR already finished: a head that has its review does not
236
236
  get a second one because an older head's job noticed, as it ended, that the head had moved
237
- (the older job is normally cancelled first; this closes the window in which it is not)."""
237
+ (the older job is normally cancelled first; this closes the window in which it is not).
238
+
239
+ ``check_run_id`` is the Check Run the ingress already opened ``queued`` for this job (see
240
+ ``webhook_queued_check``); the row is born owning it, ``check_started_at`` is stamped now
241
+ (the SLO clock: the tenant can see the check from this moment), and the worker that claims
242
+ the row updates that run instead of creating one."""
238
243
  if job.kind not in KINDS:
239
244
  raise ValueError(f"unknown job kind {job.kind!r}")
240
245
  if delivery_id is None:
@@ -265,10 +270,12 @@ class PostgresQueue:
265
270
  row = conn.execute(
266
271
  f"INSERT INTO {self._t('jobs')} (delivery_id, idempotency_key, kind, repo, ref, installation_id, "
267
272
  f"issue_number, pr_number, context, reason, priority, attempts, max_attempts, resumes, not_before, "
268
- f"check_run_id, created_at, src_sqlite_id) "
273
+ f"check_run_id, check_started_at, created_at, src_sqlite_id) "
269
274
  f"VALUES (%(delivery_id)s, %(key)s, %(kind)s, %(repo)s, %(ref)s, %(installation_id)s, %(issue_number)s, "
270
275
  f"%(pr_number)s, %(context)s::jsonb, %(reason)s, %(priority)s, %(attempts)s, %(max_attempts)s, "
271
- f"%(resumes)s, %(not_before)s, %(check_run_id)s, COALESCE(%(created_at)s::timestamptz, {_NOW}), %(src)s) "
276
+ f"%(resumes)s, %(not_before)s, %(check_run_id)s, "
277
+ f"CASE WHEN %(check_run_id)s::bigint IS NULL THEN NULL ELSE {_NOW} END, "
278
+ f"COALESCE(%(created_at)s::timestamptz, {_NOW}), %(src)s) "
272
279
  f"ON CONFLICT DO NOTHING RETURNING id",
273
280
  {
274
281
  "delivery_id": delivery_id, "key": idempotency_key(job), "kind": job.kind,
@@ -286,7 +293,8 @@ class PostgresQueue:
286
293
  new_id = int(row["id"])
287
294
  self.event(new_id, "enqueued", conn=conn,
288
295
  detail={"delivery_id": delivery_id, "kind": job.kind, "reason": job.reason,
289
- "priority": int(priority), "imported_from_sqlite": src_sqlite_id is not None})
296
+ "priority": int(priority), "imported_from_sqlite": src_sqlite_id is not None,
297
+ "check_run_id": check_run_id})
290
298
  if job.kind in SUPERSEDABLE_KINDS and job.pr_number is not None and job.ref:
291
299
  # A new head of this pull request retires the WAITING older heads in the same
292
300
  # transaction as its own insert -- the SQLite queue's rule (webhook_queue
@@ -334,6 +342,59 @@ class PostgresQueue:
334
342
  with self._pool.connection() as conn:
335
343
  return self._pending_within(conn, repo=repo, pr_number=pr_number, ref=ref, kind=kind)
336
344
 
345
+ # --- the Check Run the ingress opens at enqueue (webhook_queued_check) -----------------------
346
+ def has_delivery(self, delivery_id: str | None) -> bool:
347
+ """Whether a row for this ``delivery_id`` already exists, whatever its state. The ingress
348
+ asks before opening a queued Check Run for a delivery: a redelivery of an already-processed
349
+ GUID collapses in ``enqueue`` and must not leave a second run on the commit."""
350
+ if not delivery_id:
351
+ return False
352
+ with self._pool.connection() as conn:
353
+ row = conn.execute(f"SELECT 1 FROM {self._t('jobs')} WHERE delivery_id = %s LIMIT 1", (delivery_id,)).fetchone()
354
+ return row is not None
355
+
356
+ def check_run_bound(self, delivery_id: str | None) -> int | None:
357
+ """The Check Run id the row for this delivery carries, or None (no row, or none bound). The
358
+ ingress reads it right after ``enqueue`` to learn whether the run it opened is owned by a
359
+ row -- anything else is an orphan it must close at once."""
360
+ if not delivery_id:
361
+ return None
362
+ with self._pool.connection() as conn:
363
+ row = conn.execute(f"SELECT check_run_id FROM {self._t('jobs')} WHERE delivery_id = %s", (delivery_id,)).fetchone()
364
+ return int(row["check_run_id"]) if row and row.get("check_run_id") else None
365
+
366
+ def adopt_check_run(self, job: WebhookJob, check_run_id: int, *, delivery_id: str | None = None) -> bool:
367
+ """Hand an already-open Check Run to the WAITING row for exactly this head (or, with
368
+ ``delivery_id``, to this delivery's own waiting row) when that row carries none yet. True when
369
+ a row took it: the worker that claims it will update this run instead of creating one.
370
+
371
+ Two callers: the ingress whose insert collapsed onto a live row for the same head (a
372
+ second delivery for one commit) -- if that row was written without a run (by a worker's or
373
+ the reaper's requeue, or an older ingress) it adopts this one, and nothing is orphaned; and
374
+ the late path of a pre-create that outran the ingress's time budget, which adopts onto the
375
+ delivery's own row if no worker has claimed it. Conditional on ``status = 'queued'`` and
376
+ ``check_run_id IS NULL``, under the row lock the UPDATE takes, so a claim that lands first
377
+ wins and the caller closes the run instead."""
378
+ if not check_run_id:
379
+ return False
380
+ if delivery_id:
381
+ where, params = "delivery_id = %(d)s", {"d": delivery_id}
382
+ else:
383
+ if not job.ref:
384
+ return False
385
+ where = "repo = %(repo)s AND kind = %(kind)s AND pr_number IS NOT DISTINCT FROM %(pr)s AND ref = %(ref)s"
386
+ params = {"repo": job.repo_full_name, "kind": job.kind, "pr": job.pr_number, "ref": job.ref}
387
+ with self._pool.connection() as conn, conn.transaction():
388
+ row = conn.execute(
389
+ f"UPDATE {self._t('jobs')} SET check_run_id = %(cid)s, check_started_at = COALESCE(check_started_at, {_NOW}) "
390
+ f"WHERE {where} AND status = 'queued' AND check_run_id IS NULL RETURNING id",
391
+ {**params, "cid": int(check_run_id), "now": self._now()},
392
+ ).fetchone()
393
+ if row is None:
394
+ return False
395
+ self.event(int(row["id"]), "check_run_adopted", conn=conn, detail={"check_run_id": int(check_run_id)})
396
+ return True
397
+
337
398
  # --- claim + lease -------------------------------------------------------------------------
338
399
  def claim(self, *, reserve_priority: bool = False, classes: Iterable[int] | None = None,
339
400
  lease_s: float | None = None) -> QueuedJob | None:
@@ -363,7 +424,8 @@ class PostgresQueue:
363
424
  self.event(int(row["id"]), "claimed", conn=conn,
364
425
  detail={"owner": thread_owner, "attempt": int(row["attempts"]), "lease_s": lease})
365
426
  qjob = QueuedJob(row_id=int(row["id"]), delivery_id=row["delivery_id"], attempts=int(row["attempts"]),
366
- job=_job_from_row(row))
427
+ job=_job_from_row(row),
428
+ check_run_id=int(row["check_run_id"]) if row.get("check_run_id") else None)
367
429
  self._start_lease(qjob.row_id, thread_owner)
368
430
  return qjob
369
431