codna 0.2.74__tar.gz → 0.2.76__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 (961) hide show
  1. {codna-0.2.74 → codna-0.2.76}/PKG-INFO +1 -1
  2. {codna-0.2.74 → codna-0.2.76}/codna/__init__.py +1 -1
  3. {codna-0.2.74 → codna-0.2.76}/codna/webhook_github.py +48 -14
  4. {codna-0.2.74 → codna-0.2.76}/codna/webhook_ops.py +65 -4
  5. {codna-0.2.74 → codna-0.2.76}/codna/webhook_scaler.py +20 -3
  6. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/PKG-INFO +1 -1
  7. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/SOURCES.txt +1 -0
  8. {codna-0.2.74 → codna-0.2.76}/pyproject.toml +1 -1
  9. {codna-0.2.74 → codna-0.2.76}/tests/test_review_red_head.py +29 -0
  10. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook.py +5 -0
  11. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_github.py +72 -0
  12. codna-0.2.76/tests/test_webhook_ops_cli.py +143 -0
  13. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_scaler.py +2 -0
  14. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_service.py +3 -1
  15. {codna-0.2.74 → codna-0.2.76}/tests/test_workflows.py +12 -1
  16. {codna-0.2.74 → codna-0.2.76}/MANIFEST.in +0 -0
  17. {codna-0.2.74 → codna-0.2.76}/README.md +0 -0
  18. {codna-0.2.74 → codna-0.2.76}/codna/_wheel_guard.py +0 -0
  19. {codna-0.2.74 → codna-0.2.76}/codna/admission_control.py +0 -0
  20. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/CLINE_FORK.md +0 -0
  21. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/CLINE_SDK_AZ_INTEGRATION_PLAN.md +0 -0
  22. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/CLINE_SDK_INTERFACE.md +0 -0
  23. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/CLINE_SDK_RESEARCH.md +0 -0
  24. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/package.json +0 -0
  25. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/run-server.bundle.mjs +0 -0
  26. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/run-server.mjs +0 -0
  27. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/run-server.stub.mjs +0 -0
  28. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/.gitignore +0 -0
  29. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/LICENSE +0 -0
  30. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/NOTICE +0 -0
  31. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/UPSTREAM_COMMIT.txt +0 -0
  32. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/README.md +0 -0
  33. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/acp-editor.ts +0 -0
  34. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/adapter.ts +0 -0
  35. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/algenta-plugin.ts +0 -0
  36. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/artifacts.test.ts +0 -0
  37. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/execution.test.ts +0 -0
  38. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/fallback.test.ts +0 -0
  39. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/fallback.ts +0 -0
  40. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/fix-runner.ts +0 -0
  41. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/http.test.ts +0 -0
  42. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/local-graph-tool.ts +0 -0
  43. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/mojo-gate.test.ts +0 -0
  44. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/mojo-gate.ts +0 -0
  45. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/policy.test.ts +0 -0
  46. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/postbuild.sh +0 -0
  47. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/proof-artifacts.test.ts +0 -0
  48. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/proof-provider.test.ts +0 -0
  49. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/proof-provider.ts +0 -0
  50. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/proofs.ts +0 -0
  51. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/provider-key.test.ts +0 -0
  52. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/raw-completions.ts +0 -0
  53. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/review-policy.test.ts +0 -0
  54. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/run-server.ts +0 -0
  55. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/scheduled-agents.ts +0 -0
  56. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/artifacts.ts +0 -0
  57. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/contracts.ts +0 -0
  58. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/execution.ts +0 -0
  59. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/http.ts +0 -0
  60. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/policy.ts +0 -0
  61. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/state.ts +0 -0
  62. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/streaming.test.ts +0 -0
  63. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/server/utils.ts +0 -0
  64. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/task-policy.ts +0 -0
  65. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/telys-localize.test.ts +0 -0
  66. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/telys-localize.ts +0 -0
  67. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/telys-worker.test.ts +0 -0
  68. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/telys-worker.ts +0 -0
  69. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/tools.test.ts +0 -0
  70. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/tools.ts +0 -0
  71. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/usage-cost.test.ts +0 -0
  72. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/usage-cost.ts +0 -0
  73. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/write-scope.test.ts +0 -0
  74. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/algenta/write-scope.ts +0 -0
  75. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/biome.json +0 -0
  76. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/bun.lock +0 -0
  77. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/package.json +0 -0
  78. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/.cline/rules/worktree_dependency_hygiene.md +0 -0
  79. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/.cline/skills/plugin.md +0 -0
  80. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/.gitignore +0 -0
  81. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/AGENTS.md +0 -0
  82. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/ARCHITECTURE.md +0 -0
  83. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/CHANGELOG.md +0 -0
  84. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/CONTRIBUTING.md +0 -0
  85. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/README.md +0 -0
  86. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/biome.json +0 -0
  87. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/README.md +0 -0
  88. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/README.md +0 -0
  89. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/changelog-generator.cron.md +0 -0
  90. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/code-style-audit.cron.md +0 -0
  91. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/daily-code-review.cron.md +0 -0
  92. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/dead-code-finder.cron.md +0 -0
  93. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/dependency-check.cron.md +0 -0
  94. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/documentation-check.cron.md +0 -0
  95. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/events/local-manual-test.event.md +0 -0
  96. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/events/local-plugin-event.event.md +0 -0
  97. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-changelog-check.event.md +0 -0
  98. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-review.event.md +0 -0
  99. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/events/pr-test-coverage.event.md +0 -0
  100. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/performance-baseline.cron.md +0 -0
  101. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/test-coverage-report.cron.md +0 -0
  102. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/type-check-strict.cron.md +0 -0
  103. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/cron/weekly-metrics-summary.cron.md +0 -0
  104. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.py +0 -0
  105. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.sh +0 -0
  106. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PostToolUse.ts +0 -0
  107. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.py +0 -0
  108. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.sh +0 -0
  109. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse.ts +0 -0
  110. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_BlockDestructive.sh +0 -0
  111. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectContext.py +0 -0
  112. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_InjectFileContext.sh +0 -0
  113. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_ModifyInput.ts +0 -0
  114. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/PreToolUse_RequireReview.sh +0 -0
  115. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/README.md +0 -0
  116. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/SessionShutdown.sh +0 -0
  117. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/TaskComplete.sh +0 -0
  118. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/TaskStart.sh +0 -0
  119. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/hooks/custom-compaction-hook.example.ts +0 -0
  120. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/package.json +0 -0
  121. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/README.md +0 -0
  122. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/README.md +0 -0
  123. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/anvil.md +0 -0
  124. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/inquisitor.md +0 -0
  125. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/oracle.md +0 -0
  126. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/agents/phantom.md +0 -0
  127. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/index.ts +0 -0
  128. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/package.json +0 -0
  129. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/api-design.md +0 -0
  130. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/code-review.md +0 -0
  131. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/debugging.md +0 -0
  132. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/documentation.md +0 -0
  133. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/migration.md +0 -0
  134. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/refactoring.md +0 -0
  135. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/skills/test-generation.md +0 -0
  136. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/agents-squad/tsconfig.json +0 -0
  137. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/automation-events.ts +0 -0
  138. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/background-terminal.ts +0 -0
  139. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/custom-compaction.ts +0 -0
  140. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/env-blocker.ts +0 -0
  141. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/gitignore-read-files-guard.ts +0 -0
  142. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/mac-notify.ts +0 -0
  143. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/openrouter-provider.ts +0 -0
  144. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/README.md +0 -0
  145. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/typescript-lsp/index.ts +0 -0
  146. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/weather-metrics.ts +0 -0
  147. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/plugins/web-search.ts +0 -0
  148. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/examples/tsconfig.json +0 -0
  149. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/README.md +0 -0
  150. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/README.md +0 -0
  151. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/bun.mts +0 -0
  152. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/package.json +0 -0
  153. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.provider-form.test.ts +0 -0
  154. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.test.ts +0 -0
  155. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/src/agent-runtime.ts +0 -0
  156. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/src/index.ts +0 -0
  157. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.build.json +0 -0
  158. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.dev.json +0 -0
  159. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/tsconfig.json +0 -0
  160. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/agents/vitest.config.ts +0 -0
  161. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/README.md +0 -0
  162. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/bun.mts +0 -0
  163. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/docs/messages-contract-v1.md +0 -0
  164. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/fixtures/messages/success.messages.json +0 -0
  165. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/package.json +0 -0
  166. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke-host.ts +0 -0
  167. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/scripts/telemetry-smoke.ts +0 -0
  168. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.test.ts +0 -0
  169. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/ClineCore.ts +0 -0
  170. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.test.ts +0 -0
  171. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/cline-account-service.ts +0 -0
  172. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/featurebase-token.test.ts +0 -0
  173. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/index.ts +0 -0
  174. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.test.ts +0 -0
  175. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/rpc.ts +0 -0
  176. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/account/types.ts +0 -0
  177. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.test.ts +0 -0
  178. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/bounded-ttl-cache.ts +0 -0
  179. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.test.ts +0 -0
  180. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/client.ts +0 -0
  181. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.test.ts +0 -0
  182. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/cline.ts +0 -0
  183. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.test.ts +0 -0
  184. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/codex.ts +0 -0
  185. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.test.ts +0 -0
  186. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/oca.ts +0 -0
  187. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.test.ts +0 -0
  188. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/server.ts +0 -0
  189. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/types.ts +0 -0
  190. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.test.ts +0 -0
  191. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/auth/utils.ts +0 -0
  192. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/automation.ts +0 -0
  193. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/runtime-services.ts +0 -0
  194. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/start-input.ts +0 -0
  195. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/telemetry.ts +0 -0
  196. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cline-core/types.ts +0 -0
  197. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.test.ts +0 -0
  198. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/cron-event-ingress.ts +0 -0
  199. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/events/index.ts +0 -0
  200. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/index.ts +0 -0
  201. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/cron-report-writer.ts +0 -0
  202. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/reports/index.ts +0 -0
  203. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.test.ts +0 -0
  204. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-materializer.ts +0 -0
  205. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.test.ts +0 -0
  206. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/cron-runner.ts +0 -0
  207. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/index.ts +0 -0
  208. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/runner/resource-limiter.ts +0 -0
  209. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/index.ts +0 -0
  210. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.test.ts +0 -0
  211. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/schedule/scheduler.ts +0 -0
  212. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/cron-service.ts +0 -0
  213. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/index.ts +0 -0
  214. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-command-service.ts +0 -0
  215. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.test.ts +0 -0
  216. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/service/schedule-service.ts +0 -0
  217. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.test.ts +0 -0
  218. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-reconciler.ts +0 -0
  219. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.test.ts +0 -0
  220. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-spec-parser.ts +0 -0
  221. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.test.ts +0 -0
  222. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/cron-watcher.ts +0 -0
  223. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/specs/index.ts +0 -0
  224. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/cron-schema.ts +0 -0
  225. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/index.ts +0 -0
  226. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.test.ts +0 -0
  227. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/cron/store/sqlite-cron-store.ts +0 -0
  228. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/index.ts +0 -0
  229. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.test.ts +0 -0
  230. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/runtime-commands.ts +0 -0
  231. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.test.ts +0 -0
  232. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/skill-frontmatter-toggle.ts +0 -0
  233. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.test.ts +0 -0
  234. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/unified-config-file-watcher.ts +0 -0
  235. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.test.ts +0 -0
  236. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-config-loader.ts +0 -0
  237. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-plugin.ts +0 -0
  238. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/config/user-instruction-service.ts +0 -0
  239. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/agentic-compaction.ts +0 -0
  240. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/basic-compaction.ts +0 -0
  241. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction-shared.ts +0 -0
  242. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.live.test.ts +0 -0
  243. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.test.ts +0 -0
  244. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/context/compaction.ts +0 -0
  245. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/index.ts +0 -0
  246. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/client.ts +0 -0
  247. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.test.ts +0 -0
  248. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/config-loader.ts +0 -0
  249. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/index.ts +0 -0
  250. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.test.ts +0 -0
  251. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/manager.ts +0 -0
  252. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/name-transform.ts +0 -0
  253. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.test.ts +0 -0
  254. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/oauth.ts +0 -0
  255. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/policies.ts +0 -0
  256. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/tools.ts +0 -0
  257. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/mcp/types.ts +0 -0
  258. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.test.ts +0 -0
  259. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-config-loader.ts +0 -0
  260. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-load-report.ts +0 -0
  261. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.test.ts +0 -0
  262. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-loader.ts +0 -0
  263. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-module-import.ts +0 -0
  264. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox-bootstrap.ts +0 -0
  265. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.test.ts +0 -0
  266. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-sandbox.ts +0 -0
  267. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/plugin/plugin-targeting.ts +0 -0
  268. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/constants.ts +0 -0
  269. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.test.ts +0 -0
  270. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/definitions.ts +0 -0
  271. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch-parser.ts +0 -0
  272. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.test.ts +0 -0
  273. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/apply-patch.ts +0 -0
  274. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.test.ts +0 -0
  275. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/bash.ts +0 -0
  276. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.test.ts +0 -0
  277. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/editor.ts +0 -0
  278. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.test.ts +0 -0
  279. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/file-read.ts +0 -0
  280. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/index.ts +0 -0
  281. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/search.ts +0 -0
  282. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/executors/web-fetch.ts +0 -0
  283. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/helpers.ts +0 -0
  284. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/index.ts +0 -0
  285. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.test.ts +0 -0
  286. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/model-tool-routing.ts +0 -0
  287. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.test.ts +0 -0
  288. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/presets.ts +0 -0
  289. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.test.ts +0 -0
  290. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/runtime.ts +0 -0
  291. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/schemas.ts +0 -0
  292. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/delegated-agent.ts +0 -0
  293. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/index.ts +0 -0
  294. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.lifecycle.test.ts +0 -0
  295. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/multi-agent.ts +0 -0
  296. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/projections.ts +0 -0
  297. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/runtime.ts +0 -0
  298. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.test.ts +0 -0
  299. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/spawn-agent-tool.ts +0 -0
  300. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/subagent-prompts.ts +0 -0
  301. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.test.ts +0 -0
  302. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/team/team-tools.ts +0 -0
  303. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/extensions/tools/types.ts +0 -0
  304. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.test.ts +0 -0
  305. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/checkpoint-hooks.ts +0 -0
  306. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-extension.ts +0 -0
  307. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.test.ts +0 -0
  308. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-config.ts +0 -0
  309. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.test.ts +0 -0
  310. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/hook-file-hooks.ts +0 -0
  311. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/index.ts +0 -0
  312. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess-runner.ts +0 -0
  313. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hooks/subprocess.ts +0 -0
  314. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.test.ts +0 -0
  315. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/connect.ts +0 -0
  316. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.test.ts +0 -0
  317. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/index.ts +0 -0
  318. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.test.ts +0 -0
  319. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/session-client.ts +0 -0
  320. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/client/ui-client.ts +0 -0
  321. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/entry.ts +0 -0
  322. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.test.ts +0 -0
  323. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/index.ts +0 -0
  324. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/runtime-handlers.ts +0 -0
  325. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/daemon/start-shared-server.ts +0 -0
  326. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.test.ts +0 -0
  327. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/defaults.ts +0 -0
  328. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.test.ts +0 -0
  329. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/index.ts +0 -0
  330. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/discovery/workspace.ts +0 -0
  331. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/index.ts +0 -0
  332. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.test.ts +0 -0
  333. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/hub-runtime-host.ts +0 -0
  334. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/runtime-host/remote-runtime-host.ts +0 -0
  335. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/boundary.test.ts +0 -0
  336. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.test.ts +0 -0
  337. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/browser-websocket.ts +0 -0
  338. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/command-transport.ts +0 -0
  339. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/fetch-wiring.test.ts +0 -0
  340. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/approval-handlers.ts +0 -0
  341. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/capability-handlers.ts +0 -0
  342. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/client-handlers.ts +0 -0
  343. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/context.ts +0 -0
  344. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.test.ts +0 -0
  345. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/run-handlers.ts +0 -0
  346. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-event-projector.ts +0 -0
  347. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/handlers/session-handlers.ts +0 -0
  348. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-capability-tool-executors.test.ts +0 -0
  349. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-client-contributions.ts +0 -0
  350. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-notifications.ts +0 -0
  351. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-schedule-events.ts +0 -0
  352. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-logging.ts +0 -0
  353. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-options.ts +0 -0
  354. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-server-transport.ts +0 -0
  355. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-session-records.ts +0 -0
  356. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/hub-websocket-server.ts +0 -0
  357. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.test.ts +0 -0
  358. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/index.ts +0 -0
  359. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/native-transport.ts +0 -0
  360. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/notification.test.ts +0 -0
  361. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/server/ui-events.test.ts +0 -0
  362. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/hub/settings.test.ts +0 -0
  363. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/index.ts +0 -0
  364. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/remote-config/integration.ts +0 -0
  365. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/index.ts +0 -0
  366. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/normalize-runtime-capabilities.ts +0 -0
  367. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/capabilities/runtime-capabilities.ts +0 -0
  368. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.test.ts +0 -0
  369. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-message-codec.ts +0 -0
  370. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.test.ts +0 -0
  371. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/config/agent-runtime-config-builder.ts +0 -0
  372. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.test.ts +0 -0
  373. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/history.ts +0 -0
  374. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.test.ts +0 -0
  375. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/host.ts +0 -0
  376. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/agent-event-bridge.ts +0 -0
  377. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-record.ts +0 -0
  378. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/session-service-invoker.ts +0 -0
  379. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/spawn-tool.ts +0 -0
  380. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local/user-files.ts +0 -0
  381. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.e2e.test.ts +0 -0
  382. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.test.ts +0 -0
  383. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/local-runtime-host.ts +0 -0
  384. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.test.ts +0 -0
  385. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host-support.ts +0 -0
  386. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/host/runtime-host.ts +0 -0
  387. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/index.ts +0 -0
  388. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.team-persistence.test.ts +0 -0
  389. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.test.ts +0 -0
  390. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-builder.ts +0 -0
  391. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.test.ts +0 -0
  392. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-event-adapter.ts +0 -0
  393. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.test.ts +0 -0
  394. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-oauth-token-manager.ts +0 -0
  395. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/runtime-parity.test.ts +0 -0
  396. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.test.ts +0 -0
  397. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime-orchestrator.ts +0 -0
  398. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/session-runtime.ts +0 -0
  399. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/orchestration/user-input-builder.ts +0 -0
  400. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/loop-detection.ts +0 -0
  401. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/mistake-tracker.ts +0 -0
  402. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.test.ts +0 -0
  403. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/safety/rules.ts +0 -0
  404. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.test.ts +0 -0
  405. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/subprocess-sandbox.ts +0 -0
  406. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/tools/tool-approval.ts +0 -0
  407. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.test.ts +0 -0
  408. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/runtime/turn-queue/pending-prompt-service.ts +0 -0
  409. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/agent-events.ts +0 -0
  410. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/config.ts +0 -0
  411. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.test.ts +0 -0
  412. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/global-settings.ts +0 -0
  413. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.test.ts +0 -0
  414. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.ts +0 -0
  415. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/cline-recommended-models.ts +0 -0
  416. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/configured-provider-registry.ts +0 -0
  417. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.test.ts +0 -0
  418. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/handler-factory.ts +0 -0
  419. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.test.ts +0 -0
  420. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-defaults.ts +0 -0
  421. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.test.ts +0 -0
  422. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/provider-settings.ts +0 -0
  423. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-config.ts +0 -0
  424. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-registry.ts +0 -0
  425. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/llms/runtime-types.ts +0 -0
  426. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.startup.test.ts +0 -0
  427. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.test.ts +0 -0
  428. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/local-runtime-bootstrap.ts +0 -0
  429. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-tools.ts +0 -0
  430. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.test.ts +0 -0
  431. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/plugin-uninstall.ts +0 -0
  432. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-registry.ts +0 -0
  433. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.test.ts +0 -0
  434. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/local-provider-service.ts +0 -0
  435. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/model-source.ts +0 -0
  436. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.test.ts +0 -0
  437. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/providers/provider-config-fields.ts +0 -0
  438. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-artifacts.ts +0 -0
  439. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.test.ts +0 -0
  440. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-data.ts +0 -0
  441. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/session-telemetry.ts +0 -0
  442. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/artifact-store.ts +0 -0
  443. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/file-team-store.ts +0 -0
  444. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/index.ts +0 -0
  445. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.test.ts +0 -0
  446. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-legacy-migration.ts +0 -0
  447. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.test.ts +0 -0
  448. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/provider-settings-manager.ts +0 -0
  449. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/session-store.ts +0 -0
  450. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-session-store.ts +0 -0
  451. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/sqlite-team-store.ts +0 -0
  452. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/storage/team-store.ts +0 -0
  453. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/ITelemetryAdapter.ts +0 -0
  454. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.test.ts +0 -0
  455. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryAdapter.ts +0 -0
  456. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.test.ts +0 -0
  457. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/OpenTelemetryProvider.ts +0 -0
  458. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.test.ts +0 -0
  459. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryLoggerSink.ts +0 -0
  460. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.test.ts +0 -0
  461. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/TelemetryService.ts +0 -0
  462. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.test.ts +0 -0
  463. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/core-events.ts +0 -0
  464. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.test.ts +0 -0
  465. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/distinct-id.ts +0 -0
  466. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/index.ts +0 -0
  467. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/telemetry/tool-context.ts +0 -0
  468. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.test.ts +0 -0
  469. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/usage.ts +0 -0
  470. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.test.ts +0 -0
  471. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/file-indexer.ts +0 -0
  472. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/index.ts +0 -0
  473. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.test.ts +0 -0
  474. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/mention-enricher.ts +0 -0
  475. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manager.ts +0 -0
  476. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-manifest.ts +0 -0
  477. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.test.ts +0 -0
  478. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/services/workspace/workspace-telemetry.ts +0 -0
  479. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.test.ts +0 -0
  480. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/checkpoint-restore.ts +0 -0
  481. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/index.ts +0 -0
  482. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-graph.ts +0 -0
  483. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-manifest.ts +0 -0
  484. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/models/session-row.ts +0 -0
  485. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/file-session-service.ts +0 -0
  486. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.test.ts +0 -0
  487. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/message-builder.ts +0 -0
  488. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.test.ts +0 -0
  489. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/persistence-service.ts +0 -0
  490. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.team-persistence.test.ts +0 -0
  491. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/services/session-service.ts +0 -0
  492. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-snapshot.ts +0 -0
  493. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.test.ts +0 -0
  494. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/session-versioning-service.ts +0 -0
  495. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/conversation-store.ts +0 -0
  496. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/session-manifest-store.ts +0 -0
  497. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/stores/team-persistence-store.ts +0 -0
  498. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/index.ts +0 -0
  499. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-child-session-manager.ts +0 -0
  500. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/session/team/team-session-coordinator.ts +0 -0
  501. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/index.ts +0 -0
  502. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.test.ts +0 -0
  503. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/settings-service.ts +0 -0
  504. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/settings/types.ts +0 -0
  505. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/chat-schema.ts +0 -0
  506. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/common.ts +0 -0
  507. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/config.ts +0 -0
  508. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/events.ts +0 -0
  509. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/index.ts +0 -0
  510. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/provider-settings.ts +0 -0
  511. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/session.ts +0 -0
  512. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/sessions.ts +0 -0
  513. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types/storage.ts +0 -0
  514. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/types.ts +0 -0
  515. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/src/version.ts +0 -0
  516. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.build.json +0 -0
  517. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.dev.json +0 -0
  518. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.json +0 -0
  519. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/tsconfig.smoke.json +0 -0
  520. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/vitest.config.ts +0 -0
  521. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/core/vitest.e2e.config.ts +0 -0
  522. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/AGENTS.md +0 -0
  523. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/README.md +0 -0
  524. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/bun.mts +0 -0
  525. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/fixtures/usage.json +0 -0
  526. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/package.json +0 -0
  527. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/fix-esm-imports.ts +0 -0
  528. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/generate-models.ts +0 -0
  529. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/models/generate-models-dev.ts +0 -0
  530. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/scripts/tsconfig.json +0 -0
  531. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/README.md +0 -0
  532. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.test.ts +0 -0
  533. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog-live.ts +0 -0
  534. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated-access.ts +0 -0
  535. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/catalog.generated.ts +0 -0
  536. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/catalog/types.ts +0 -0
  537. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/index.browser.ts +0 -0
  538. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/index.ts +0 -0
  539. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/models.ts +0 -0
  540. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.test.ts +0 -0
  541. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ai-sdk.ts +0 -0
  542. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/async.ts +0 -0
  543. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.test.ts +0 -0
  544. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/billing.ts +0 -0
  545. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins-runtime.ts +0 -0
  546. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.test.ts +0 -0
  547. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/builtins.ts +0 -0
  548. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.test.ts +0 -0
  549. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/compat.ts +0 -0
  550. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/config.ts +0 -0
  551. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/factory-registry.ts +0 -0
  552. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.test.ts +0 -0
  553. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/format.ts +0 -0
  554. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.test.ts +0 -0
  555. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/gateway.ts +0 -0
  556. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/handler.ts +0 -0
  557. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/http.ts +0 -0
  558. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.test.ts +0 -0
  559. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/ids.ts +0 -0
  560. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/messages.ts +0 -0
  561. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.test.ts +0 -0
  562. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/middleware/split-tool-images.ts +0 -0
  563. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-facts.ts +0 -0
  564. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/model-registry.ts +0 -0
  565. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/openai-codex-models.ts +0 -0
  566. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/provider-keys.ts +0 -0
  567. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/registry.ts +0 -0
  568. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.test.ts +0 -0
  569. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/anthropic-compatible.ts +0 -0
  570. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/generic-compatible.ts +0 -0
  571. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/glm-thinking.ts +0 -0
  572. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/minimax-thinking.ts +0 -0
  573. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-option-rules.ts +0 -0
  574. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options-types.ts +0 -0
  575. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.test.ts +0 -0
  576. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/provider-options.ts +0 -0
  577. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/reasoning-codecs.ts +0 -0
  578. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/routing/utils.ts +0 -0
  579. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/stream.ts +0 -0
  580. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/types.ts +0 -0
  581. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.test.ts +0 -0
  582. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/anthropic.ts +0 -0
  583. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.test.ts +0 -0
  584. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/bedrock.ts +0 -0
  585. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.test.ts +0 -0
  586. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/community.ts +0 -0
  587. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/google.ts +0 -0
  588. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.test.ts +0 -0
  589. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/minimax-thinking.ts +0 -0
  590. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/mistral.ts +0 -0
  591. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai-compatible.ts +0 -0
  592. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/openai.ts +0 -0
  593. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/types.ts +0 -0
  594. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.test.ts +0 -0
  595. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers/vendors/vertex.ts +0 -0
  596. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.browser.ts +0 -0
  597. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/providers.ts +0 -0
  598. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.test.ts +0 -0
  599. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/services/langfuse-telemetry.ts +0 -0
  600. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.example.json +0 -0
  601. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.example.json +0 -0
  602. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.openai-codex.reasoning.example.json +0 -0
  603. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning-disabled.example.json +0 -0
  604. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.reasoning.example.json +0 -0
  605. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/live-providers.tools.example.json +0 -0
  606. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.test.ts +0 -0
  607. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-config.ts +0 -0
  608. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-minimax-routing.test.ts +0 -0
  609. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-reasoning.test.ts +0 -0
  610. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-runner.ts +0 -0
  611. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live-tools.test.ts +0 -0
  612. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-live.test.ts +0 -0
  613. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/README.md +0 -0
  614. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/anthropic-claude-sonnet-4-6.json +0 -0
  615. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/cline-anthropic-sonnet.json +0 -0
  616. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-codex-gpt-5-4.json +0 -0
  617. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr/openai-compatible-deepseek-v4-pro.json +0 -0
  618. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/src/tests/provider-vcr.test.ts +0 -0
  619. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.build.json +0 -0
  620. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.dev.json +0 -0
  621. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/tsconfig.json +0 -0
  622. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/llms/vitest.config.ts +0 -0
  623. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/sdk/bun.mts +0 -0
  624. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/sdk/package.json +0 -0
  625. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/sdk/src/index.ts +0 -0
  626. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.build.json +0 -0
  627. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/sdk/tsconfig.json +0 -0
  628. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/README.md +0 -0
  629. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/bun.mts +0 -0
  630. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/package.json +0 -0
  631. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agent.ts +0 -0
  632. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/index.ts +0 -0
  633. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/agents/types.ts +0 -0
  634. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/index.ts +0 -0
  635. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/schemas.ts +0 -0
  636. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/automation/types.ts +0 -0
  637. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/events.ts +0 -0
  638. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/connectors/options.ts +0 -0
  639. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/cron-spec-types.ts +0 -0
  640. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/cron/index.ts +0 -0
  641. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/index.ts +0 -0
  642. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.test.ts +0 -0
  643. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/db/sqlite-db.ts +0 -0
  644. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/dispose.ts +0 -0
  645. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/context.ts +0 -0
  646. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.test.ts +0 -0
  647. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/contribution-registry.ts +0 -0
  648. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/extensions/plugin.ts +0 -0
  649. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/contracts.ts +0 -0
  650. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hooks/events.ts +0 -0
  651. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/hub.ts +0 -0
  652. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/index.browser.ts +0 -0
  653. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/index.ts +0 -0
  654. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.test.ts +0 -0
  655. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/ai-sdk-format.ts +0 -0
  656. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/gateway.ts +0 -0
  657. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/messages.ts +0 -0
  658. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/model-info.ts +0 -0
  659. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/reasoning-effort.ts +0 -0
  660. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/requests.ts +0 -0
  661. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tokens.ts +0 -0
  662. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/llms/tools.ts +0 -0
  663. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/logging/logger.ts +0 -0
  664. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/error.ts +0 -0
  665. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/headers/utils.ts +0 -0
  666. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.test.ts +0 -0
  667. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/json.ts +0 -0
  668. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.test.ts +0 -0
  669. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/shell.ts +0 -0
  670. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/string.ts +0 -0
  671. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/time.ts +0 -0
  672. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/parse/zod.ts +0 -0
  673. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/cline.ts +0 -0
  674. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.test.ts +0 -0
  675. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/format.ts +0 -0
  676. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/prompt/system.ts +0 -0
  677. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/artifact-store.ts +0 -0
  678. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/blob-storage.ts +0 -0
  679. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/bundle.ts +0 -0
  680. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/constants.ts +0 -0
  681. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/index.ts +0 -0
  682. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/materializer.ts +0 -0
  683. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/paths.ts +0 -0
  684. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.test.ts +0 -0
  685. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/runtime.ts +0 -0
  686. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.test.ts +0 -0
  687. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/schema.ts +0 -0
  688. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/remote-config/telemetry.ts +0 -0
  689. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/index.ts +0 -0
  690. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/runtime.ts +0 -0
  691. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/rpc/team-progress.ts +0 -0
  692. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.test.ts +0 -0
  693. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/build-env.ts +0 -0
  694. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.test.ts +0 -0
  695. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/cline-environment.ts +0 -0
  696. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.test.ts +0 -0
  697. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/runtime/hub-daemon-env.ts +0 -0
  698. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry-config.ts +0 -0
  699. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.test.ts +0 -0
  700. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/services/telemetry.ts +0 -0
  701. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/hook-context.ts +0 -0
  702. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/index.ts +0 -0
  703. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/records.ts +0 -0
  704. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-config.ts +0 -0
  705. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/runtime-env.ts +0 -0
  706. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/session/workspace.ts +0 -0
  707. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/index.ts +0 -0
  708. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.test.ts +0 -0
  709. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/path-resolution.ts +0 -0
  710. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.home-dir.test.ts +0 -0
  711. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.test.ts +0 -0
  712. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/storage/paths.ts +0 -0
  713. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/index.ts +0 -0
  714. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/schema.ts +0 -0
  715. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/team/types.ts +0 -0
  716. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.test.ts +0 -0
  717. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/tools/create.ts +0 -0
  718. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/auth.ts +0 -0
  719. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/index.ts +0 -0
  720. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/types/vcr.ts +0 -0
  721. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.test.ts +0 -0
  722. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/src/vcr.ts +0 -0
  723. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.build.json +0 -0
  724. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/tsconfig.json +0 -0
  725. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/shared/vitest.config.ts +0 -0
  726. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/packages/tsconfig.base.json +0 -0
  727. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/check-publish.ts +0 -0
  728. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/ci-node-smoke.ts +0 -0
  729. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/clean.ts +0 -0
  730. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/release.ts +0 -0
  731. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/run-vendored-tests.sh +0 -0
  732. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/scripts/version.ts +0 -0
  733. {codna-0.2.74 → codna-0.2.76}/codna/agent-core/vendor/cline/sdk/tsconfig.json +0 -0
  734. {codna-0.2.74 → codna-0.2.76}/codna/agent_core_runtime.py +0 -0
  735. {codna-0.2.74 → codna-0.2.76}/codna/byok_cli.py +0 -0
  736. {codna-0.2.74 → codna-0.2.76}/codna/ci_admission.py +0 -0
  737. {codna-0.2.74 → codna-0.2.76}/codna/ci_cli.py +0 -0
  738. {codna-0.2.74 → codna-0.2.76}/codna/cli.py +0 -0
  739. {codna-0.2.74 → codna-0.2.76}/codna/cli_errors.py +0 -0
  740. {codna-0.2.74 → codna-0.2.76}/codna/cline_agent.py +0 -0
  741. {codna-0.2.74 → codna-0.2.76}/codna/codeunits.py +0 -0
  742. {codna-0.2.74 → codna-0.2.76}/codna/codeunits_treesitter.py +0 -0
  743. {codna-0.2.74 → codna-0.2.76}/codna/config_file.py +0 -0
  744. {codna-0.2.74 → codna-0.2.76}/codna/doctor.py +0 -0
  745. {codna-0.2.74 → codna-0.2.76}/codna/doctor_output.py +0 -0
  746. {codna-0.2.74 → codna-0.2.76}/codna/engine.py +0 -0
  747. {codna-0.2.74 → codna-0.2.76}/codna/evasion.py +0 -0
  748. {codna-0.2.74 → codna-0.2.76}/codna/evidence.py +0 -0
  749. {codna-0.2.74 → codna-0.2.76}/codna/findings.py +0 -0
  750. {codna-0.2.74 → codna-0.2.76}/codna/fix_inputs.py +0 -0
  751. {codna-0.2.74 → codna-0.2.76}/codna/fix_run.py +0 -0
  752. {codna-0.2.74 → codna-0.2.76}/codna/focus_paths.py +0 -0
  753. {codna-0.2.74 → codna-0.2.76}/codna/gate.py +0 -0
  754. {codna-0.2.74 → codna-0.2.76}/codna/gitpush.py +0 -0
  755. {codna-0.2.74 → codna-0.2.76}/codna/impact.py +0 -0
  756. {codna-0.2.74 → codna-0.2.76}/codna/impact_cli.py +0 -0
  757. {codna-0.2.74 → codna-0.2.76}/codna/keystore.py +0 -0
  758. {codna-0.2.74 → codna-0.2.76}/codna/local_client.py +0 -0
  759. {codna-0.2.74 → codna-0.2.76}/codna/local_mojo_daemon.py +0 -0
  760. {codna-0.2.74 → codna-0.2.76}/codna/local_mojo_pool.py +0 -0
  761. {codna-0.2.74 → codna-0.2.76}/codna/local_repository_shims.py +0 -0
  762. {codna-0.2.74 → codna-0.2.76}/codna/local_runtime.py +0 -0
  763. {codna-0.2.74 → codna-0.2.76}/codna/localfix.py +0 -0
  764. {codna-0.2.74 → codna-0.2.76}/codna/login.py +0 -0
  765. {codna-0.2.74 → codna-0.2.76}/codna/manifest.py +0 -0
  766. {codna-0.2.74 → codna-0.2.76}/codna/mcp_cli.py +0 -0
  767. {codna-0.2.74 → codna-0.2.76}/codna/mcp_install.py +0 -0
  768. {codna-0.2.74 → codna-0.2.76}/codna/mcp_server.py +0 -0
  769. {codna-0.2.74 → codna-0.2.76}/codna/memory.py +0 -0
  770. {codna-0.2.74 → codna-0.2.76}/codna/memory_manifest.py +0 -0
  771. {codna-0.2.74 → codna-0.2.76}/codna/memory_rerank.py +0 -0
  772. {codna-0.2.74 → codna-0.2.76}/codna/netjail.py +0 -0
  773. {codna-0.2.74 → codna-0.2.76}/codna/packaged_agent_runner.py +0 -0
  774. {codna-0.2.74 → codna-0.2.76}/codna/packaged_git.py +0 -0
  775. {codna-0.2.74 → codna-0.2.76}/codna/packaged_repository_advanced.py +0 -0
  776. {codna-0.2.74 → codna-0.2.76}/codna/packaged_repository_backend.py +0 -0
  777. {codna-0.2.74 → codna-0.2.76}/codna/patch_text.py +0 -0
  778. {codna-0.2.74 → codna-0.2.76}/codna/patchgen.py +0 -0
  779. {codna-0.2.74 → codna-0.2.76}/codna/policy.py +0 -0
  780. {codna-0.2.74 → codna-0.2.76}/codna/project_rules.py +0 -0
  781. {codna-0.2.74 → codna-0.2.76}/codna/python_import_paths.py +0 -0
  782. {codna-0.2.74 → codna-0.2.76}/codna/refengine.py +0 -0
  783. {codna-0.2.74 → codna-0.2.76}/codna/remote_http.py +0 -0
  784. {codna-0.2.74 → codna-0.2.76}/codna/repo_backend.py +0 -0
  785. {codna-0.2.74 → codna-0.2.76}/codna/report_cli.py +0 -0
  786. {codna-0.2.74 → codna-0.2.76}/codna/repository_artifacts.py +0 -0
  787. {codna-0.2.74 → codna-0.2.76}/codna/review.py +0 -0
  788. {codna-0.2.74 → codna-0.2.76}/codna/review_budget.py +0 -0
  789. {codna-0.2.74 → codna-0.2.76}/codna/review_findings.py +0 -0
  790. {codna-0.2.74 → codna-0.2.76}/codna/review_github.py +0 -0
  791. {codna-0.2.74 → codna-0.2.76}/codna/review_grounding.py +0 -0
  792. {codna-0.2.74 → codna-0.2.76}/codna/review_manifests.py +0 -0
  793. {codna-0.2.74 → codna-0.2.76}/codna/runtime/__init__.py +0 -0
  794. {codna-0.2.74 → codna-0.2.76}/codna/runtime/config.py +0 -0
  795. {codna-0.2.74 → codna-0.2.76}/codna/runtime/health.py +0 -0
  796. {codna-0.2.74 → codna-0.2.76}/codna/runtime/local_stack.py +0 -0
  797. {codna-0.2.74 → codna-0.2.76}/codna/runtime/ports.py +0 -0
  798. {codna-0.2.74 → codna-0.2.76}/codna/runtime/processes.py +0 -0
  799. {codna-0.2.74 → codna-0.2.76}/codna/runtime_config.py +0 -0
  800. {codna-0.2.74 → codna-0.2.76}/codna/sandbox.py +0 -0
  801. {codna-0.2.74 → codna-0.2.76}/codna/sarif.py +0 -0
  802. {codna-0.2.74 → codna-0.2.76}/codna/scaffold.py +0 -0
  803. {codna-0.2.74 → codna-0.2.76}/codna/secure.py +0 -0
  804. {codna-0.2.74 → codna-0.2.76}/codna/secure_open_pr_cli.py +0 -0
  805. {codna-0.2.74 → codna-0.2.76}/codna/status.py +0 -0
  806. {codna-0.2.74 → codna-0.2.76}/codna/supervisor.py +0 -0
  807. {codna-0.2.74 → codna-0.2.76}/codna/telys_onboarding.py +0 -0
  808. {codna-0.2.74 → codna-0.2.76}/codna/telys_runtime.py +0 -0
  809. {codna-0.2.74 → codna-0.2.76}/codna/testrun.py +0 -0
  810. {codna-0.2.74 → codna-0.2.76}/codna/webhook.py +0 -0
  811. {codna-0.2.74 → codna-0.2.76}/codna/webhook_backend.py +0 -0
  812. {codna-0.2.74 → codna-0.2.76}/codna/webhook_ci_triage.py +0 -0
  813. {codna-0.2.74 → codna-0.2.76}/codna/webhook_cli.py +0 -0
  814. {codna-0.2.74 → codna-0.2.76}/codna/webhook_control.py +0 -0
  815. {codna-0.2.74 → codna-0.2.76}/codna/webhook_lease.py +0 -0
  816. {codna-0.2.74 → codna-0.2.76}/codna/webhook_metering.py +0 -0
  817. {codna-0.2.74 → codna-0.2.76}/codna/webhook_metrics.py +0 -0
  818. {codna-0.2.74 → codna-0.2.76}/codna/webhook_pg_ops.py +0 -0
  819. {codna-0.2.74 → codna-0.2.76}/codna/webhook_pg_queue.py +0 -0
  820. {codna-0.2.74 → codna-0.2.76}/codna/webhook_pg_schema.py +0 -0
  821. {codna-0.2.74 → codna-0.2.76}/codna/webhook_pool.py +0 -0
  822. {codna-0.2.74 → codna-0.2.76}/codna/webhook_procs.py +0 -0
  823. {codna-0.2.74 → codna-0.2.76}/codna/webhook_queue.py +0 -0
  824. {codna-0.2.74 → codna-0.2.76}/codna/webhook_queued_check.py +0 -0
  825. {codna-0.2.74 → codna-0.2.76}/codna/webhook_redeliver.py +0 -0
  826. {codna-0.2.74 → codna-0.2.76}/codna/webhook_resume.py +0 -0
  827. {codna-0.2.74 → codna-0.2.76}/codna/webhook_retry.py +0 -0
  828. {codna-0.2.74 → codna-0.2.76}/codna/webhook_service.py +0 -0
  829. {codna-0.2.74 → codna-0.2.76}/codna/webhook_summaries.py +0 -0
  830. {codna-0.2.74 → codna-0.2.76}/codna/webhook_worker.py +0 -0
  831. {codna-0.2.74 → codna-0.2.76}/codna/worker.py +0 -0
  832. {codna-0.2.74 → codna-0.2.76}/codna/worktree.py +0 -0
  833. {codna-0.2.74 → codna-0.2.76}/codna/writer.py +0 -0
  834. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/dependency_links.txt +0 -0
  835. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/entry_points.txt +0 -0
  836. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/requires.txt +0 -0
  837. {codna-0.2.74 → codna-0.2.76}/codna.egg-info/top_level.txt +0 -0
  838. {codna-0.2.74 → codna-0.2.76}/memengine/__init__.py +0 -0
  839. {codna-0.2.74 → codna-0.2.76}/memengine/_validate.py +0 -0
  840. {codna-0.2.74 → codna-0.2.76}/memengine/native_runtime.py +0 -0
  841. {codna-0.2.74 → codna-0.2.76}/setup.cfg +0 -0
  842. {codna-0.2.74 → codna-0.2.76}/setup.py +0 -0
  843. {codna-0.2.74 → codna-0.2.76}/tests/test_admission_control.py +0 -0
  844. {codna-0.2.74 → codna-0.2.76}/tests/test_agent_core_runtime.py +0 -0
  845. {codna-0.2.74 → codna-0.2.76}/tests/test_bench_driver_lazy_resolution.py +0 -0
  846. {codna-0.2.74 → codna-0.2.76}/tests/test_bench_env.py +0 -0
  847. {codna-0.2.74 → codna-0.2.76}/tests/test_benchmark_parity_imports.py +0 -0
  848. {codna-0.2.74 → codna-0.2.76}/tests/test_benchmark_suite.py +0 -0
  849. {codna-0.2.74 → codna-0.2.76}/tests/test_ci_admission.py +0 -0
  850. {codna-0.2.74 → codna-0.2.76}/tests/test_cli_doctor.py +0 -0
  851. {codna-0.2.74 → codna-0.2.76}/tests/test_cli_fix.py +0 -0
  852. {codna-0.2.74 → codna-0.2.76}/tests/test_cli_parser.py +0 -0
  853. {codna-0.2.74 → codna-0.2.76}/tests/test_cli_register.py +0 -0
  854. {codna-0.2.74 → codna-0.2.76}/tests/test_cli_surface_parity.py +0 -0
  855. {codna-0.2.74 → codna-0.2.76}/tests/test_cline_agent_unparseable_details.py +0 -0
  856. {codna-0.2.74 → codna-0.2.76}/tests/test_cline_fork_guard.py +0 -0
  857. {codna-0.2.74 → codna-0.2.76}/tests/test_codeunits.py +0 -0
  858. {codna-0.2.74 → codna-0.2.76}/tests/test_codeunits_treesitter.py +0 -0
  859. {codna-0.2.74 → codna-0.2.76}/tests/test_config_file.py +0 -0
  860. {codna-0.2.74 → codna-0.2.76}/tests/test_dev_check_script.py +0 -0
  861. {codna-0.2.74 → codna-0.2.76}/tests/test_dockerfile_webhook.py +0 -0
  862. {codna-0.2.74 → codna-0.2.76}/tests/test_dockerignore.py +0 -0
  863. {codna-0.2.74 → codna-0.2.76}/tests/test_doctor.py +0 -0
  864. {codna-0.2.74 → codna-0.2.76}/tests/test_download_telys_runtime_bundle.py +0 -0
  865. {codna-0.2.74 → codna-0.2.76}/tests/test_engine.py +0 -0
  866. {codna-0.2.74 → codna-0.2.76}/tests/test_engine_contract_integration.py +0 -0
  867. {codna-0.2.74 → codna-0.2.76}/tests/test_evasion.py +0 -0
  868. {codna-0.2.74 → codna-0.2.76}/tests/test_evidence.py +0 -0
  869. {codna-0.2.74 → codna-0.2.76}/tests/test_evidence_io.py +0 -0
  870. {codna-0.2.74 → codna-0.2.76}/tests/test_extract_nul.py +0 -0
  871. {codna-0.2.74 → codna-0.2.76}/tests/test_fix_inputs_remote.py +0 -0
  872. {codna-0.2.74 → codna-0.2.76}/tests/test_fix_run.py +0 -0
  873. {codna-0.2.74 → codna-0.2.76}/tests/test_fly_toml.py +0 -0
  874. {codna-0.2.74 → codna-0.2.76}/tests/test_gate.py +0 -0
  875. {codna-0.2.74 → codna-0.2.76}/tests/test_gitpush.py +0 -0
  876. {codna-0.2.74 → codna-0.2.76}/tests/test_impact.py +0 -0
  877. {codna-0.2.74 → codna-0.2.76}/tests/test_impact_cli.py +0 -0
  878. {codna-0.2.74 → codna-0.2.76}/tests/test_keys_file_dev_only.py +0 -0
  879. {codna-0.2.74 → codna-0.2.76}/tests/test_keystore.py +0 -0
  880. {codna-0.2.74 → codna-0.2.76}/tests/test_local_byok_cli.py +0 -0
  881. {codna-0.2.74 → codna-0.2.76}/tests/test_local_client.py +0 -0
  882. {codna-0.2.74 → codna-0.2.76}/tests/test_local_mojo_daemon.py +0 -0
  883. {codna-0.2.74 → codna-0.2.76}/tests/test_local_mojo_pool_runtime.py +0 -0
  884. {codna-0.2.74 → codna-0.2.76}/tests/test_local_runtime.py +0 -0
  885. {codna-0.2.74 → codna-0.2.76}/tests/test_local_runtime_lifecycle.py +0 -0
  886. {codna-0.2.74 → codna-0.2.76}/tests/test_localfix.py +0 -0
  887. {codna-0.2.74 → codna-0.2.76}/tests/test_login.py +0 -0
  888. {codna-0.2.74 → codna-0.2.76}/tests/test_manifest.py +0 -0
  889. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_default_repo.py +0 -0
  890. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_enrich.py +0 -0
  891. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_install.py +0 -0
  892. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_recall.py +0 -0
  893. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_report_bug.py +0 -0
  894. {codna-0.2.74 → codna-0.2.76}/tests/test_mcp_secure.py +0 -0
  895. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_errors.py +0 -0
  896. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_hybrid.py +0 -0
  897. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_incremental.py +0 -0
  898. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_license.py +0 -0
  899. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_rerank.py +0 -0
  900. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_wordllama_rerank.py +0 -0
  901. {codna-0.2.74 → codna-0.2.76}/tests/test_memory_wrapper.py +0 -0
  902. {codna-0.2.74 → codna-0.2.76}/tests/test_modularity.py +0 -0
  903. {codna-0.2.74 → codna-0.2.76}/tests/test_netjail.py +0 -0
  904. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_confidence.py +0 -0
  905. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_git_clone.py +0 -0
  906. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_guidance.py +0 -0
  907. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_remote_pr.py +0 -0
  908. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_runner_review_terminal_state.py +0 -0
  909. {codna-0.2.74 → codna-0.2.76}/tests/test_packaged_test_fix_scope.py +0 -0
  910. {codna-0.2.74 → codna-0.2.76}/tests/test_packaging.py +0 -0
  911. {codna-0.2.74 → codna-0.2.76}/tests/test_patch_text.py +0 -0
  912. {codna-0.2.74 → codna-0.2.76}/tests/test_patchgen.py +0 -0
  913. {codna-0.2.74 → codna-0.2.76}/tests/test_policy.py +0 -0
  914. {codna-0.2.74 → codna-0.2.76}/tests/test_refengine.py +0 -0
  915. {codna-0.2.74 → codna-0.2.76}/tests/test_release_readiness.py +0 -0
  916. {codna-0.2.74 → codna-0.2.76}/tests/test_repo_backend.py +0 -0
  917. {codna-0.2.74 → codna-0.2.76}/tests/test_report_cli.py +0 -0
  918. {codna-0.2.74 → codna-0.2.76}/tests/test_repository_artifacts.py +0 -0
  919. {codna-0.2.74 → codna-0.2.76}/tests/test_review_budget.py +0 -0
  920. {codna-0.2.74 → codna-0.2.76}/tests/test_review_error_details.py +0 -0
  921. {codna-0.2.74 → codna-0.2.76}/tests/test_review_findings.py +0 -0
  922. {codna-0.2.74 → codna-0.2.76}/tests/test_review_grounding.py +0 -0
  923. {codna-0.2.74 → codna-0.2.76}/tests/test_review_run_marker.py +0 -0
  924. {codna-0.2.74 → codna-0.2.76}/tests/test_rules_and_review.py +0 -0
  925. {codna-0.2.74 → codna-0.2.76}/tests/test_runtime_config.py +0 -0
  926. {codna-0.2.74 → codna-0.2.76}/tests/test_runtime_ports.py +0 -0
  927. {codna-0.2.74 → codna-0.2.76}/tests/test_runtime_processes.py +0 -0
  928. {codna-0.2.74 → codna-0.2.76}/tests/test_sandbox.py +0 -0
  929. {codna-0.2.74 → codna-0.2.76}/tests/test_sarif.py +0 -0
  930. {codna-0.2.74 → codna-0.2.76}/tests/test_scaffold_and_status.py +0 -0
  931. {codna-0.2.74 → codna-0.2.76}/tests/test_secure.py +0 -0
  932. {codna-0.2.74 → codna-0.2.76}/tests/test_stage_codna_telys_oem_license.py +0 -0
  933. {codna-0.2.74 → codna-0.2.76}/tests/test_stage_codna_telys_runtime.py +0 -0
  934. {codna-0.2.74 → codna-0.2.76}/tests/test_structured_error.py +0 -0
  935. {codna-0.2.74 → codna-0.2.76}/tests/test_supervisor.py +0 -0
  936. {codna-0.2.74 → codna-0.2.76}/tests/test_sync_wheel_memengine.py +0 -0
  937. {codna-0.2.74 → codna-0.2.76}/tests/test_telys_onboarding.py +0 -0
  938. {codna-0.2.74 → codna-0.2.76}/tests/test_telys_runtime_packaging.py +0 -0
  939. {codna-0.2.74 → codna-0.2.76}/tests/test_testrun.py +0 -0
  940. {codna-0.2.74 → codna-0.2.76}/tests/test_verify_pypi_trusted_publisher.py +0 -0
  941. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_backend_spool.py +0 -0
  942. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_ci_triage.py +0 -0
  943. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_feedback_dispatch.py +0 -0
  944. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_github_ci.py +0 -0
  945. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_lease.py +0 -0
  946. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_metering.py +0 -0
  947. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_ops.py +0 -0
  948. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_pg_queue.py +0 -0
  949. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_queue.py +0 -0
  950. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_queued_check.py +0 -0
  951. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_redeliver.py +0 -0
  952. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_resume.py +0 -0
  953. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_retry.py +0 -0
  954. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_scheduling.py +0 -0
  955. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_worker.py +0 -0
  956. {codna-0.2.74 → codna-0.2.76}/tests/test_webhook_worker_feedback_dispatch.py +0 -0
  957. {codna-0.2.74 → codna-0.2.76}/tests/test_wheel_guard.py +0 -0
  958. {codna-0.2.74 → codna-0.2.76}/tests/test_wheel_smoke_script.py +0 -0
  959. {codna-0.2.74 → codna-0.2.76}/tests/test_worker.py +0 -0
  960. {codna-0.2.74 → codna-0.2.76}/tests/test_worktree.py +0 -0
  961. {codna-0.2.74 → codna-0.2.76}/tests/test_writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codna
3
- Version: 0.2.74
3
+ Version: 0.2.76
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.74"
8
+ __version__ = "0.2.76"
@@ -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")
@@ -6,7 +6,13 @@ One implementation of every verb (:func:`run_verb`) behind three fronts:
6
6
  * HTTP on the ingress, ``Authorization: Bearer $CODNA_WEBHOOK_OPS_TOKEN`` (its own secret,
7
7
  compared in constant time; the webhook HMAC secret is NOT reused -- ``/debug/queue`` used to,
8
8
  and stops here);
9
- * the CLI, run inside a machine with ``DATABASE_URL`` (``fly ssh console -C "codna webhook ops …"``);
9
+ * the CLI, run inside a machine with ``DATABASE_URL`` (``fly ssh console -C "codna webhook ops …"``).
10
+ A verb whose answer is the SERVING process's state rather than a table (:data:`LIVE_VERBS`:
11
+ ``scaler``) is asked of the running server over its own loopback ``/ops/<verb>``, with the
12
+ machine's ``CODNA_WEBHOOK_OPS_TOKEN`` -- a separate CLI process builds no Scaler, so its own
13
+ view could only ever say "not configured" (it did, 2026-09-20, while the token was set). The
14
+ answer carries ``"view": "live"``; when that call cannot be made the CLI's own view is printed
15
+ with ``"view": "cli-rebuild"`` and the reason;
10
16
  * ``webhook-ops.yml`` (``workflow_dispatch``), which wraps the CLI so nobody needs a Fly login.
11
17
 
12
18
  Every mutation records its ``actor`` in ``job_events``. Nothing here is reachable on the
@@ -29,6 +35,10 @@ from .webhook_pg_queue import PostgresQueue
29
35
  OPS_TOKEN_ENV = "CODNA_WEBHOOK_OPS_TOKEN"
30
36
  VERBS = ("jobs", "job", "cancel", "retry-now", "reprioritize", "tenant", "tenants", "workers", "drain", "undrain",
31
37
  "scaler", "slo", "dead", "metrics", "redeliver-sweep", "events")
38
+ # Verbs whose answer is the state of the serving process (its Scaler thread), not a row in the
39
+ # shared table: a separate CLI process has none of it, so the CLI asks the live server instead.
40
+ LIVE_VERBS = ("scaler",)
41
+ LIVE_PORT_ENV = "CODNA_WEBHOOK_PORT"
32
42
 
33
43
 
34
44
  def ops_authorized(headers: Mapping[str, str], environ: Mapping[str, str] | None = None) -> bool:
@@ -185,6 +195,46 @@ def handle_ops_get(path: str, headers: Mapping[str, str], *, queue: Any, actor_e
185
195
 
186
196
 
187
197
  # --- the CLI front (webhook_cli.cmd_webhook dispatches here) ----------------------------------------
198
+ def _live_client() -> Any:
199
+ import httpx
200
+
201
+ return httpx.Client(timeout=5.0)
202
+
203
+
204
+ def live_verb(verb: str, args: Mapping[str, Any], *, actor: str,
205
+ environ: Mapping[str, str] | None = None) -> tuple[dict[str, Any] | None, str]:
206
+ """The RUNNING server's answer to ``verb``: its own loopback ``/ops/<verb>``, authenticated with
207
+ the ``CODNA_WEBHOOK_OPS_TOKEN`` of this environment (the ingress machine holds it for its HTTP
208
+ front). Returns ``(payload + {"view": "live"}, "")``, or ``(None, reason)`` when the call cannot
209
+ be made -- no ops token here, nothing listening on the port, a non-200 -- where the reason names
210
+ an exception class or a status code and never the token."""
211
+ import httpx
212
+
213
+ e = os.environ if environ is None else environ
214
+ token = (e.get(OPS_TOKEN_ENV) or "").strip()
215
+ if not token:
216
+ return None, f"{OPS_TOKEN_ENV} is not set in this process's environment"
217
+ port = (e.get(LIVE_PORT_ENV) or "8080").strip()
218
+ params = {k: str(v) for k, v in args.items() if v not in (None, "")}
219
+ params["actor"] = actor
220
+ try:
221
+ with _live_client() as client:
222
+ resp = client.get(f"http://127.0.0.1:{port}/ops/{verb}", params=params,
223
+ headers={"Authorization": f"Bearer {token}"})
224
+ except (httpx.HTTPError, httpx.InvalidURL) as exc:
225
+ # InvalidURL is not an HTTPError: a CODNA_WEBHOOK_PORT that is not a port lands here too.
226
+ return None, f"loopback /ops/{verb} unreachable: {type(exc).__name__}"
227
+ if resp.status_code != 200:
228
+ return None, f"loopback /ops/{verb} answered HTTP {resp.status_code}"
229
+ try:
230
+ payload = resp.json()
231
+ except ValueError:
232
+ return None, f"loopback /ops/{verb} answered a non-JSON body"
233
+ if not isinstance(payload, dict):
234
+ return None, f"loopback /ops/{verb} answered a non-object body"
235
+ return {**payload, "view": "live"}, ""
236
+
237
+
188
238
  def add_ops_parser(pw_sub: argparse._SubParsersAction) -> None:
189
239
  """``codna webhook ops <verb> [options]`` + ``migrate`` + ``queue export|import``."""
190
240
  po = pw_sub.add_parser("ops", help="Operate the hosted webhook queue (Postgres backend; needs DATABASE_URL).")
@@ -215,16 +265,27 @@ def add_ops_parser(pw_sub: argparse._SubParsersAction) -> None:
215
265
  def cli_ops(args: argparse.Namespace) -> int:
216
266
  from .webhook_pg_schema import database_url
217
267
 
268
+ params = {k: getattr(args, k) for k in ("id", "priority", "status", "kind", "repo", "installation", "action",
269
+ "value", "owner", "reason", "limit") if getattr(args, k, None) is not None}
270
+ who = args.actor or os.environ.get("USER") or "operator"
271
+ live_unavailable = ""
272
+ if args.verb in LIVE_VERBS:
273
+ live, live_unavailable = live_verb(args.verb, params, actor=who)
274
+ if live is not None:
275
+ print(json.dumps(live, indent=2, sort_keys=True, default=str))
276
+ return 0
218
277
  url = database_url()
219
278
  if not url:
220
279
  print("codna: `codna webhook ops` needs DATABASE_URL (or CODNA_WEBHOOK_DATABASE_URL)", file=sys.stderr)
221
280
  return 2
222
281
  queue = PostgresQueue(url, heartbeat_s=0, pool_max=2)
223
282
  try:
224
- params = {k: getattr(args, k) for k in ("id", "priority", "status", "kind", "repo", "installation", "action",
225
- "value", "owner", "reason", "limit") if getattr(args, k, None) is not None}
226
- actor = f"ops-cli:{args.actor or os.environ.get('USER') or 'operator'}"
283
+ actor = f"ops-cli:{who}"
227
284
  out = run_verb(queue, args.verb, params, actor=actor)
285
+ if args.verb in LIVE_VERBS:
286
+ # This process built no Scaler, so its own answer says nothing about the serving one.
287
+ out = {**out, "view": "cli-rebuild", "live_unavailable": live_unavailable,
288
+ "hint": "the serving process answers GET /ops/scaler on the ingress; this CLI process has no Scaler of its own"}
228
289
  if args.verb == "metrics":
229
290
  sys.stdout.write(str(out["text"]))
230
291
  else:
@@ -391,11 +391,28 @@ class Scaler:
391
391
  pass
392
392
 
393
393
 
394
+ # The autoscaler's Machines API credential: a deploy token scoped to the WORKER app (`fly tokens
395
+ # create deploy -a codna-webhook-worker`), set as a secret on the ingress. The service's own name
396
+ # is read first; FLY_API_TOKEN -- flyctl's login variable and the name Fly's Machines API docs use
397
+ # -- stays a fallback so an ingress configured under that name keeps its scaler.
398
+ FLY_TOKEN_ENVS = ("CODNA_WEBHOOK_FLY_TOKEN", "FLY_API_TOKEN")
399
+
400
+
401
+ def fly_token_from_env(environ: Any = None) -> str | None:
402
+ """The first non-blank value among :data:`FLY_TOKEN_ENVS`, or None when neither is set."""
403
+ e = os.environ if environ is None else environ
404
+ for name in FLY_TOKEN_ENVS:
405
+ value = (e.get(name) or "").strip()
406
+ if value:
407
+ return value
408
+ return None
409
+
410
+
394
411
  def machines_client_from_env(environ: Any = None) -> FlyMachinesClient | None:
395
- """None when no ``FLY_API_TOKEN`` is configured -- the scaler then does not run at all, and the
396
- floor machines serve alone (exactly today's shape)."""
412
+ """None when no Fly token is configured under either name in :data:`FLY_TOKEN_ENVS` -- the
413
+ scaler then does not run at all, and the floor machines serve alone (exactly today's shape)."""
397
414
  e = os.environ if environ is None else environ
398
- token = e.get("FLY_API_TOKEN")
415
+ token = fly_token_from_env(e)
399
416
  if not token:
400
417
  return None
401
418
  return FlyMachinesClient(e.get("CODNA_WEBHOOK_WORKER_APP", "codna-webhook-worker"), token,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codna
3
- Version: 0.2.74
3
+ Version: 0.2.76
4
4
  Summary: Local-first repo intelligence and agent fixing for Codna.
5
5
  Author: Thyn
6
6
  Maintainer: Thyn
@@ -225,6 +225,7 @@ tests/test_webhook_github_ci.py
225
225
  tests/test_webhook_lease.py
226
226
  tests/test_webhook_metering.py
227
227
  tests/test_webhook_ops.py
228
+ tests/test_webhook_ops_cli.py
228
229
  tests/test_webhook_pg_queue.py
229
230
  tests/test_webhook_queue.py
230
231
  tests/test_webhook_queued_check.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codna"
3
- version = "0.2.74"
3
+ version = "0.2.76"
4
4
  description = "Local-first repo intelligence and agent fixing for Codna."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -115,6 +115,35 @@ def test_failing_required_checks_walks_a_rollup_longer_than_one_page(monkeypatch
115
115
  assert rg.failing_required_checks("o/r", 1, "tok") is None
116
116
 
117
117
 
118
+ def test_a_failed_commit_status_alone_is_named_in_the_red_head_note(monkeypatch):
119
+ """The codna-site#57 case end to end: the head's only red required context is a StatusContext
120
+ (Vercel, FAILURE -- a deployment, not a check run). With a token that may read commit statuses the
121
+ rollup carries it, and the note names it as `Vercel` (failure)."""
122
+ nodes = [_green("full / security gate"), _green("codna review"),
123
+ {"__typename": "StatusContext", "context": "Vercel", "state": "FAILURE", "isRequired": True},
124
+ {"__typename": "StatusContext", "context": "Vercel – preview", "state": "SUCCESS", "isRequired": True}]
125
+ monkeypatch.setattr(httpx, "post", lambda url, **k: _Resp(_rollup(nodes)))
126
+ red = rg.failing_required_checks("thyn-ai/codna-site", 57, "tok-with-statuses-read")
127
+ assert red == [{"name": "Vercel", "state": "FAILURE", "head_sha": HEAD}]
128
+ note = rg.red_head_note(red)
129
+ assert "`Vercel` (failure)" in note and "head 615e29ce is red" in note
130
+ # an ERROR status is red too; a PENDING or SUCCESS one is not
131
+ nodes[2]["state"] = "ERROR"
132
+ assert rg.red_head_note(rg.failing_required_checks("thyn-ai/codna-site", 57, "tok")).count("`Vercel` (error)") == 1
133
+ nodes[2]["state"] = "PENDING"
134
+ assert rg.failing_required_checks("thyn-ai/codna-site", 57, "tok") == []
135
+
136
+
137
+ def test_a_token_without_statuses_read_sees_no_commit_status_and_the_note_stays_silent(monkeypatch):
138
+ """What the review saw on codna-site#57 before the App had Commit statuses: read: GitHub lists the
139
+ check runs only, the rollup is certain-and-green, and nothing is said -- the reason the review
140
+ token now asks for `statuses: read` (webhook_github.token_permissions_for)."""
141
+ check_runs_only = [n for n in SITE_57 if n["__typename"] == "CheckRun"]
142
+ monkeypatch.setattr(httpx, "post", lambda url, **k: _Resp(_rollup(check_runs_only)))
143
+ assert rg.failing_required_checks("thyn-ai/codna-site", 57, "tok-without-statuses") == []
144
+ assert rg.red_head_note([]) == ""
145
+
146
+
118
147
  def test_red_head_note_is_one_line_naming_the_checks_and_the_head():
119
148
  note = rg.red_head_note([{"name": "Vercel", "state": "FAILURE", "head_sha": HEAD},
120
149
  {"name": "ci / cli tests", "state": "TIMED_OUT", "head_sha": HEAD}])
@@ -240,6 +240,11 @@ def test_review_token_scope_has_no_contents_write():
240
240
  perms = token_permissions_for("review")
241
241
  assert perms == {"contents": "read", "pull_requests": "write", "checks": "write"}
242
242
  assert perms["contents"] == "read" # review NEVER pushes code
243
+ # with Commit statuses granted the review token may also READ commit statuses (a failed Vercel
244
+ # deployment is one); nothing else changes, and nothing becomes writable
245
+ with_statuses = token_permissions_for("review", statuses=True)
246
+ assert with_statuses == {**perms, "statuses": "read"}
247
+ assert [v for k, v in with_statuses.items() if k != "pull_requests" and k != "checks"] == ["read", "read"]
243
248
 
244
249
 
245
250
  # ---- @codna fix wedge: route a review finding into a verified fix PR ---------------------------
@@ -359,11 +359,83 @@ def test_fix_token_falls_back_without_workflows_when_github_says_not_granted(mon
359
359
 
360
360
  def test_review_tokens_never_ask_for_workflows(monkeypatch):
361
361
  webhook_github._WORKFLOWS_GRANTED.clear()
362
+ webhook_github._STATUSES_GRANTED.clear()
362
363
  sent = _fake_post(monkeypatch, [_Resp(201, {"token": "r"})])
363
364
  webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/app", kind="review")
364
365
  assert "workflows" not in sent[0]["permissions"] and "contents" in sent[0]["permissions"]
365
366
 
366
367
 
368
+ # --- review tokens ask for `statuses: read` (Commit statuses) so the PR head's failed commit statuses
369
+ # --- -- a Vercel deployment reports as one -- are visible to failing_required_checks; an installation
370
+ # --- that never granted it makes GitHub refuse the whole mint (422), so the token is minted once more
371
+ # --- without it, the answer is remembered, and the operator log says so (thyn-ai/codna-site#57).
372
+
373
+ def test_review_token_requests_statuses_read_and_remembers_it_is_granted(monkeypatch, capsys):
374
+ webhook_github._WORKFLOWS_GRANTED.clear()
375
+ webhook_github._STATUSES_GRANTED.clear()
376
+ sent = _fake_post(monkeypatch, [_Resp(201, {"token": "r1"})])
377
+ assert webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/app", kind="review") == "r1"
378
+ assert len(sent) == 1 # one mint, no fallback round-trip
379
+ assert sent[0]["permissions"] == {"contents": "read", "pull_requests": "write", "checks": "write", "statuses": "read"}
380
+ assert sent[0]["repositories"] == ["app"]
381
+ assert webhook_github._STATUSES_GRANTED["42"] is True
382
+ assert "statuses_permission_missing" not in capsys.readouterr().err
383
+
384
+
385
+ def test_review_token_falls_back_without_statuses_when_github_says_not_granted(monkeypatch, capsys):
386
+ webhook_github._WORKFLOWS_GRANTED.clear()
387
+ webhook_github._STATUSES_GRANTED.clear()
388
+ sent = _fake_post(monkeypatch, [
389
+ _Resp(422, text='{"message":"The permissions requested are not granted to this installation."}'),
390
+ _Resp(201, {"token": "r2"}),
391
+ ])
392
+ assert webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/app", kind="review") == "r2"
393
+ assert sent[0]["permissions"]["statuses"] == "read" and "statuses" not in sent[1]["permissions"]
394
+ # every other permission is identical on the retry: only the ungranted one is dropped
395
+ assert {k: v for k, v in sent[0]["permissions"].items() if k != "statuses"} == sent[1]["permissions"]
396
+ assert sent[1]["permissions"] == {"contents": "read", "pull_requests": "write", "checks": "write"}
397
+ assert webhook_github._STATUSES_GRANTED["42"] is False
398
+ err = capsys.readouterr().err
399
+ import json as _json
400
+ logged = _json.loads(next(ln for ln in err.splitlines() if "statuses_permission_missing" in ln))
401
+ assert logged["event"] == "statuses_permission_missing" and logged["level"] == "warning"
402
+ assert logged["installation_id"] == "42" and logged["repo"] == "acme/app" and logged["kind"] == "review"
403
+ assert "Commit statuses: read" in logged["remedy"]
404
+ assert "r2" not in err and "jwt" not in err # never a token in the log
405
+ # the next mint for that installation does not ask again, and does not log again
406
+ sent2 = _fake_post(monkeypatch, [_Resp(201, {"token": "r3"})])
407
+ assert webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/app", kind="review") == "r3"
408
+ assert len(sent2) == 1 and "statuses" not in sent2[0]["permissions"]
409
+ assert "statuses_permission_missing" not in capsys.readouterr().err
410
+ # a DIFFERENT installation is asked on its own account (multi-tenant: grants are per installation)
411
+ sent3 = _fake_post(monkeypatch, [_Resp(201, {"token": "r4"})])
412
+ webhook_github.installation_token("1", "pem", 43, repo_full_name="other/app", kind="review")
413
+ assert sent3[0]["permissions"]["statuses"] == "read" and webhook_github._STATUSES_GRANTED["43"] is True
414
+
415
+
416
+ def test_review_mint_422_for_another_reason_is_still_an_error_not_a_silent_retry(monkeypatch):
417
+ """A 422 that is not about permissions (a repository the installation cannot see) is raised as
418
+ before: the fallback exists for the one ungranted permission, not to mask every refusal."""
419
+ webhook_github._STATUSES_GRANTED.clear()
420
+ sent = _fake_post(monkeypatch, [
421
+ _Resp(422, text='{"message":"There is at least one repository that does not exist or is not accessible to the parent installation."}'),
422
+ ])
423
+ with pytest.raises(WebhookError) as exc:
424
+ webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/gone", kind="review")
425
+ assert exc.value.code == "installation_token_failed" and len(sent) == 1
426
+ assert "42" not in webhook_github._STATUSES_GRANTED # nothing learned from an unrelated refusal
427
+
428
+
429
+ def test_fix_and_other_tokens_never_ask_for_statuses(monkeypatch):
430
+ webhook_github._WORKFLOWS_GRANTED.clear()
431
+ webhook_github._STATUSES_GRANTED.clear()
432
+ for kind in ("fix", "secure", "queue", "ci_triage", "ci_rerun"):
433
+ sent = _fake_post(monkeypatch, [_Resp(201, {"token": "t"})])
434
+ webhook_github.installation_token("1", "pem", 42, repo_full_name="acme/app", kind=kind)
435
+ assert "statuses" not in sent[0]["permissions"], kind
436
+ assert token_permissions_for("fix", statuses=True) == token_permissions_for("fix") # the flag is review-only
437
+
438
+
367
439
 
368
440
  def test_workflows_differ_compares_path_and_blob_sha_sets(monkeypatch):
369
441
  import httpx
@@ -0,0 +1,143 @@
1
+ """The CLI front of the operator surface, without a database: the autoscaler's token precedence
2
+ (``CODNA_WEBHOOK_FLY_TOKEN`` first, ``FLY_API_TOKEN`` as the fallback) and ``codna webhook ops
3
+ scaler`` answering for the SERVING process through its loopback ``/ops/scaler`` (``"view": "live"``),
4
+ falling back to its own view marked ``"view": "cli-rebuild"`` with the reason. The live path never
5
+ opens the queue and the fallback runs against a stand-in, so none of this needs Postgres."""
6
+ from __future__ import annotations
7
+
8
+ import argparse
9
+ import json
10
+
11
+ import httpx
12
+ import pytest
13
+
14
+ from codna import webhook_ops
15
+ from codna.webhook_ops import LIVE_VERBS, cli_ops, live_verb
16
+ from codna.webhook_scaler import FLY_TOKEN_ENVS, fly_token_from_env, machines_client_from_env
17
+
18
+ TOKEN = "ops-bearer-for-tests"
19
+
20
+
21
+ # --- the Machines API credential -------------------------------------------------------------------------
22
+
23
+ def test_fly_token_precedence_is_the_services_own_name_then_flyctls():
24
+ assert FLY_TOKEN_ENVS == ("CODNA_WEBHOOK_FLY_TOKEN", "FLY_API_TOKEN")
25
+ assert fly_token_from_env({}) is None
26
+ assert fly_token_from_env({"FLY_API_TOKEN": "legacy"}) == "legacy" # the fallback still works
27
+ assert fly_token_from_env({"CODNA_WEBHOOK_FLY_TOKEN": "ours", "FLY_API_TOKEN": "legacy"}) == "ours"
28
+ assert fly_token_from_env({"CODNA_WEBHOOK_FLY_TOKEN": " \n", "FLY_API_TOKEN": "legacy"}) == "legacy" # blank = unset
29
+ assert machines_client_from_env({"CODNA_WEBHOOK_FLY_TOKEN": "", "FLY_API_TOKEN": ""}) is None
30
+ client = machines_client_from_env({"CODNA_WEBHOOK_FLY_TOKEN": "ours", "FLY_API_TOKEN": "legacy", "CODNA_WEBHOOK_WORKER_APP": "w"})
31
+ assert client is not None and (client._token, client._app) == ("ours", "w")
32
+
33
+
34
+ # --- the live view ---------------------------------------------------------------------------------------
35
+
36
+ def _client(handler):
37
+ return lambda: httpx.Client(transport=httpx.MockTransport(handler), timeout=5.0)
38
+
39
+
40
+ def _refuse(request):
41
+ raise httpx.ConnectError("connection refused", request=request)
42
+
43
+
44
+ def _never(request):
45
+ raise AssertionError("no request may be made here")
46
+
47
+
48
+ def test_live_verb_asks_the_serving_process_with_the_ops_bearer_and_marks_the_view(monkeypatch):
49
+ seen = {}
50
+
51
+ def handler(request):
52
+ seen["url"] = httpx.URL(str(request.url))
53
+ seen["auth"] = request.headers.get("authorization")
54
+ return httpx.Response(200, json={"configured": True, "paused": False, "scaler_leader": 1})
55
+
56
+ monkeypatch.setattr(webhook_ops, "_live_client", _client(handler))
57
+ env = {"CODNA_WEBHOOK_OPS_TOKEN": TOKEN, "CODNA_WEBHOOK_PORT": "8181"}
58
+ out, why = live_verb("scaler", {"action": "status", "limit": 50, "value": None}, actor="github-actions:octocat", environ=env)
59
+ assert why == "" and out == {"configured": True, "paused": False, "scaler_leader": 1, "view": "live"}
60
+ assert seen["auth"] == f"Bearer {TOKEN}"
61
+ assert (seen["url"].host, seen["url"].port, seen["url"].path) == ("127.0.0.1", 8181, "/ops/scaler")
62
+ assert dict(seen["url"].params) == {"action": "status", "limit": "50", "actor": "github-actions:octocat"} # None dropped
63
+
64
+
65
+ @pytest.mark.parametrize("env, handler, expect", [
66
+ ({}, _never, "CODNA_WEBHOOK_OPS_TOKEN is not set"),
67
+ ({"CODNA_WEBHOOK_OPS_TOKEN": TOKEN}, _refuse, "loopback /ops/scaler unreachable: ConnectError"),
68
+ ({"CODNA_WEBHOOK_OPS_TOKEN": TOKEN, "CODNA_WEBHOOK_PORT": "eighty"}, _never, "unreachable: InvalidURL"), # not an HTTPError
69
+ ({"CODNA_WEBHOOK_OPS_TOKEN": TOKEN}, lambda r: httpx.Response(401, json={"error": "unauthorized"}), "answered HTTP 401"),
70
+ ({"CODNA_WEBHOOK_OPS_TOKEN": TOKEN}, lambda r: httpx.Response(200, text="not json"), "non-JSON body"),
71
+ ({"CODNA_WEBHOOK_OPS_TOKEN": TOKEN}, lambda r: httpx.Response(200, json=[1, 2]), "non-object body"),
72
+ ])
73
+ def test_live_verb_says_why_it_could_not_ask_and_never_the_token(monkeypatch, env, handler, expect):
74
+ monkeypatch.setattr(webhook_ops, "_live_client", _client(handler))
75
+ out, why = live_verb("scaler", {}, actor="t", environ=env)
76
+ assert out is None and expect in why
77
+ assert TOKEN not in why
78
+
79
+
80
+ # --- `codna webhook ops` -------------------------------------------------------------------------------
81
+
82
+ def _ns(verb, **overrides):
83
+ ns = dict(verb=verb, id=None, priority=None, status=None, kind=None, repo=None, installation=None,
84
+ action=None, value=None, owner=None, reason="operator", limit=50, actor="github-actions:octocat")
85
+ ns.update(overrides)
86
+ return argparse.Namespace(**ns)
87
+
88
+
89
+ class _NeverBuilt:
90
+ def __init__(self, *args, **kwargs):
91
+ raise AssertionError("the live view must not open the queue")
92
+
93
+
94
+ class _StandIn:
95
+ """Stands in for the PostgresQueue the CLI opens; the verbs exercised here never touch it."""
96
+
97
+ def __init__(self, *args, **kwargs):
98
+ pass
99
+
100
+ def close(self):
101
+ pass
102
+
103
+
104
+ def test_cli_ops_scaler_prints_the_live_view_without_a_database(monkeypatch, capsys):
105
+ monkeypatch.setenv("CODNA_WEBHOOK_OPS_TOKEN", TOKEN)
106
+ monkeypatch.delenv("DATABASE_URL", raising=False)
107
+ monkeypatch.delenv("CODNA_WEBHOOK_DATABASE_URL", raising=False)
108
+ monkeypatch.setattr(webhook_ops, "_live_client",
109
+ _client(lambda r: httpx.Response(200, json={"configured": True, "cap": 4, "paused": False})))
110
+ monkeypatch.setattr(webhook_ops, "PostgresQueue", _NeverBuilt)
111
+ assert cli_ops(_ns("scaler", action="status")) == 0
112
+ assert json.loads(capsys.readouterr().out) == {"cap": 4, "configured": True, "paused": False, "view": "live"}
113
+
114
+
115
+ def test_cli_ops_scaler_falls_back_to_its_own_view_marked_cli_rebuild(monkeypatch, capsys):
116
+ monkeypatch.setenv("CODNA_WEBHOOK_OPS_TOKEN", TOKEN)
117
+ monkeypatch.setenv("DATABASE_URL", "postgresql://stand-in/db")
118
+ monkeypatch.setattr(webhook_ops, "_live_client", _client(_refuse))
119
+ monkeypatch.setattr(webhook_ops, "PostgresQueue", _StandIn)
120
+ assert cli_ops(_ns("scaler")) == 0
121
+ out = json.loads(capsys.readouterr().out)
122
+ assert out["view"] == "cli-rebuild" and out["configured"] is False
123
+ assert out["live_unavailable"] == "loopback /ops/scaler unreachable: ConnectError"
124
+ assert "GET /ops/scaler" in out["hint"]
125
+ assert TOKEN not in json.dumps(out)
126
+
127
+
128
+ def _no_loopback():
129
+ raise AssertionError("a table read must not go to loopback")
130
+
131
+
132
+ def test_cli_ops_table_verbs_never_go_to_loopback(monkeypatch, capsys):
133
+ assert LIVE_VERBS == ("scaler",)
134
+ monkeypatch.setenv("CODNA_WEBHOOK_OPS_TOKEN", TOKEN)
135
+ monkeypatch.setenv("DATABASE_URL", "postgresql://stand-in/db")
136
+ monkeypatch.setattr(webhook_ops, "_live_client", _no_loopback)
137
+ monkeypatch.setattr(webhook_ops, "PostgresQueue", _StandIn)
138
+ seen = []
139
+ monkeypatch.setattr(webhook_ops, "run_verb",
140
+ lambda queue, verb, params, **kw: seen.append((verb, params, kw["actor"])) or {"jobs": []})
141
+ assert cli_ops(_ns("jobs", status="dead")) == 0
142
+ assert seen == [("jobs", {"status": "dead", "reason": "operator", "limit": 50}, "ops-cli:github-actions:octocat")]
143
+ assert json.loads(capsys.readouterr().out) == {"jobs": []} # no view marker on a table read
@@ -49,6 +49,8 @@ def test_no_fly_token_means_no_machines_client():
49
49
  assert machines_client_from_env({}) is None
50
50
  client = machines_client_from_env({"FLY_API_TOKEN": "t", "CODNA_WEBHOOK_WORKER_APP": "w"})
51
51
  assert client is not None and client._app == "w"
52
+ ours = machines_client_from_env({"CODNA_WEBHOOK_FLY_TOKEN": "ours", "FLY_API_TOKEN": "t"})
53
+ assert ours is not None and ours._token == "ours" # the service's own name wins
52
54
 
53
55
 
54
56
  class _Held:
@@ -52,7 +52,8 @@ def test_default_flag_builds_todays_shape(tmp_path, monkeypatch):
52
52
  monkeypatch.setenv("CODNA_WEBHOOK_QUEUE", str(tmp_path / "queue.db"))
53
53
  monkeypatch.setenv("CODNA_RUNTIME_ROOT", str(tmp_path / "rt"))
54
54
  monkeypatch.setenv("TMPDIR", str(tmp_path / "tmp"))
55
- for var in ("CODNA_WEBHOOK_QUEUE_BACKEND", "CODNA_WEBHOOK_ROLE", "DATABASE_URL", "FLY_API_TOKEN", "CODNA_WEBHOOK_REDELIVER"):
55
+ for var in ("CODNA_WEBHOOK_QUEUE_BACKEND", "CODNA_WEBHOOK_ROLE", "DATABASE_URL", "CODNA_WEBHOOK_FLY_TOKEN", "FLY_API_TOKEN",
56
+ "CODNA_WEBHOOK_REDELIVER"):
56
57
  monkeypatch.delenv(var, raising=False)
57
58
  svc = build_service(pool_factory=_Pool)
58
59
  assert (svc.backend, svc.role) == ("sqlite", "all")
@@ -256,6 +257,7 @@ def test_a_lost_lease_cancels_the_job_this_process_runs(make_pg_queue, tmp_path,
256
257
  monkeypatch.setenv("TMPDIR", str(tmp_path / "tmp"))
257
258
  monkeypatch.setenv("CODNA_WEBHOOK_QUEUE_BACKEND", "postgres")
258
259
  monkeypatch.setenv("CODNA_WEBHOOK_ROLE", "worker")
260
+ monkeypatch.delenv("CODNA_WEBHOOK_FLY_TOKEN", raising=False)
259
261
  monkeypatch.delenv("FLY_API_TOKEN", raising=False)
260
262
  build_service(queue=pg, pool_factory=_Pool) # the injected queue gets the handler too
261
263
  assert pg.enqueue(WebhookJob("review", "acme/app", ref="old", pr_number=7, installation_id=42, reason="t"), delivery_id="d1")
@@ -151,11 +151,22 @@ def test_webhook_ops_worker_secrets_refuses_a_partial_set_and_copies_exactly_the
151
151
  names = re.search(r'names="([^"]+)"', run).group(1).split()
152
152
  assert set(names) == {"GITHUB_APP_ID", "GITHUB_APP_PRIVATE_KEY", "CODNA_ENGINE_URL", "CODNA_WEBHOOK_INTERNAL_SECRET"}
153
153
  assert all(f"`{n}`" in runbook for n in names)
154
- for forbidden in ("FLY_API_TOKEN", "CODNA_GITHUB_WEBHOOK_SECRET", "CODNA_WEBHOOK_OPS_TOKEN"):
154
+ for forbidden in ("CODNA_WEBHOOK_FLY_TOKEN", "FLY_API_TOKEN", "CODNA_GITHUB_WEBHOOK_SECRET", "CODNA_WEBHOOK_OPS_TOKEN"):
155
155
  assert forbidden not in names
156
156
  assert "refusing to configure" in run and run.index("refusing to configure") < run.index("flyctl secrets set")
157
157
 
158
158
 
159
+ def test_webhook_ops_worker_token_sets_the_name_the_scaler_reads_first():
160
+ from codna.webhook_scaler import FLY_TOKEN_ENVS
161
+
162
+ run = _ops_step("worker-token")["run"]
163
+ assert FLY_TOKEN_ENVS[0] == "CODNA_WEBHOOK_FLY_TOKEN"
164
+ assert 'flyctl secrets set -a "$APP" "CODNA_WEBHOOK_FLY_TOKEN=$token"' in run
165
+ assert "FLY_API_TOKEN=$token" not in run # the flyctl login name is only a fallback the service reads
166
+ runbook = (ROOT / "infra" / "README-webhook-deploy.md").read_text(encoding="utf-8")
167
+ assert "CODNA_WEBHOOK_FLY_TOKEN=$(fly tokens create deploy -a codna-webhook-worker)" in runbook
168
+
169
+
159
170
  def test_webhook_ops_mpg_steps_redact_the_connection_string_flyctl_prints():
160
171
  for action in ("mpg-create", "mpg-attach"):
161
172
  run = _ops_step(action)["run"].replace("\\\n", " ") # join shell continuation lines
File without changes
File without changes
File without changes