code-mower 1.0.9__tar.gz → 1.0.11__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 (410) hide show
  1. {code_mower-1.0.9 → code_mower-1.0.11}/PKG-INFO +52 -17
  2. {code_mower-1.0.9 → code_mower-1.0.11}/README.md +51 -16
  3. {code_mower-1.0.9 → code_mower-1.0.11}/pyproject.toml +1 -1
  4. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/__init__.py +1 -1
  5. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/builder_runs.py +4 -0
  6. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/campaign_adapters.py +295 -28
  7. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cli.py +19 -12
  8. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/code_mower_telemetry.py +2 -0
  9. code_mower-1.0.11/src/code_mower/devin_api.py +259 -0
  10. code_mower-1.0.11/src/code_mower/devin_cli_audit_pr.py +1483 -0
  11. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/adoption.py +8 -4
  12. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/campaign_auth.py +34 -7
  13. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_local_cli.py +99 -20
  14. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/init.py +76 -2
  15. code_mower-1.0.11/src/code_mower/lane_configs/devin_cli.py +36 -0
  16. code_mower-1.0.11/src/code_mower/lane_delivery.py +1375 -0
  17. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_status.py +1 -0
  18. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/migration_install.py +31 -17
  19. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/migration_rehearsal.py +1 -1
  20. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/next_steps.py +161 -44
  21. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package_manifest.py +13 -0
  22. code_mower-1.0.11/src/code_mower/participants.py +179 -0
  23. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_registry.py +59 -4
  24. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/release_campaigns.py +867 -54
  25. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/release_qualify.py +27 -2
  26. code_mower-1.0.11/src/code_mower/session.py +154 -0
  27. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/code-mower.example.yml +9 -4
  28. code_mower-1.0.11/src/code_mower/templates/lanes/devin.md +41 -0
  29. code_mower-1.0.11/src/code_mower/templates/lanes/run_mac_lane.sh +1232 -0
  30. code_mower-1.0.11/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +63 -0
  31. {code_mower-1.0.9 → code_mower-1.0.11/src/code_mower}/templates/providers.yml +82 -6
  32. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +1 -1
  33. {code_mower-1.0.9 → code_mower-1.0.11/src/code_mower}/templates/workflows/local-cli-audit.yml.j2 +1 -0
  34. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/PKG-INFO +52 -17
  35. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/SOURCES.txt +17 -0
  36. code_mower-1.0.11/templates/lanes/devin.md +41 -0
  37. code_mower-1.0.11/templates/lanes/run_mac_lane.sh +1232 -0
  38. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/devin.yml +8 -1
  39. code_mower-1.0.11/templates/providers/devin_cli.yml +70 -0
  40. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/gitar.yml +1 -1
  41. {code_mower-1.0.9/src/code_mower → code_mower-1.0.11}/templates/providers.yml +82 -6
  42. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/builder-provenance.yml.j2 +1 -1
  43. {code_mower-1.0.9/src/code_mower → code_mower-1.0.11}/templates/workflows/local-cli-audit.yml.j2 +1 -0
  44. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_builder_identity.py +4 -0
  45. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_campaign_adapters.py +798 -6
  46. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_campaign_retry_evidence_711.py +5 -4
  47. code_mower-1.0.11/tests/test_devin_api.py +556 -0
  48. code_mower-1.0.11/tests/test_devin_builder_lane.py +1538 -0
  49. code_mower-1.0.11/tests/test_devin_cli_audit_pr.py +974 -0
  50. code_mower-1.0.11/tests/test_devin_provider_contract.py +752 -0
  51. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_campaign_auth.py +6 -2
  52. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_campaign_readiness.py +16 -10
  53. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_hosted_dispatch_profile.py +52 -30
  54. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_init_build_loop.py +318 -15
  55. code_mower-1.0.11/tests/test_lane_delivery_contract.py +2175 -0
  56. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_migration_rehearsal.py +71 -16
  57. code_mower-1.0.11/tests/test_next_steps.py +147 -0
  58. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_package_install_failure_taxonomy.py +58 -0
  59. code_mower-1.0.11/tests/test_participant_sessions.py +210 -0
  60. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_fixture_contracts.py +3 -0
  61. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_release_campaigns.py +366 -86
  62. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_release_hygiene.py +92 -78
  63. code_mower-1.0.9/src/code_mower/templates/lanes/run_mac_lane.sh +0 -532
  64. code_mower-1.0.9/templates/lanes/run_mac_lane.sh +0 -532
  65. {code_mower-1.0.9 → code_mower-1.0.11}/CODE_OF_CONDUCT.md +0 -0
  66. {code_mower-1.0.9 → code_mower-1.0.11}/LICENSE +0 -0
  67. {code_mower-1.0.9 → code_mower-1.0.11}/MANIFEST.in +0 -0
  68. {code_mower-1.0.9 → code_mower-1.0.11}/NOTICE +0 -0
  69. {code_mower-1.0.9 → code_mower-1.0.11}/SUPPORT.md +0 -0
  70. {code_mower-1.0.9 → code_mower-1.0.11}/requirements/requirements.txt +0 -0
  71. {code_mower-1.0.9 → code_mower-1.0.11}/setup.cfg +0 -0
  72. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/__init__.py +0 -0
  73. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/_base.py +0 -0
  74. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/cursor_bugbot.py +0 -0
  75. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/gitar.py +0 -0
  76. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/greptile.py +0 -0
  77. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/adapters/qodo.py +0 -0
  78. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
  79. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/antigravity_sdk_probe.py +0 -0
  80. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/audit_handoff_log.py +0 -0
  81. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/audit_labeler_lib.py +0 -0
  82. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/audit_limits.py +0 -0
  83. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/audit_progress.py +0 -0
  84. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/blind_review_artifacts.py +0 -0
  85. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/blind_review_coordinator.py +0 -0
  86. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/board.py +0 -0
  87. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/board_store.py +0 -0
  88. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/bootstrap.py +0 -0
  89. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/builder_experiment.py +0 -0
  90. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/__init__.py +0 -0
  91. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/arms.py +0 -0
  92. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/auto_discovery.py +0 -0
  93. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/commands.py +0 -0
  94. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/context_inputs.py +0 -0
  95. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/corpus.py +0 -0
  96. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/effect_report.py +0 -0
  97. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/evidence.py +0 -0
  98. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/evidence_report.py +0 -0
  99. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/identity.py +0 -0
  100. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/metrics.py +0 -0
  101. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/overlap.py +0 -0
  102. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/planning.py +0 -0
  103. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/policy.py +0 -0
  104. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/results.py +0 -0
  105. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/run_results.py +0 -0
  106. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/run_status.py +0 -0
  107. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/runner.py +0 -0
  108. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/truth.py +0 -0
  109. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/calibration/value_report.py +0 -0
  110. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/campaign_discovery.py +0 -0
  111. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/checks.py +0 -0
  112. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/claude_audit_pr.py +0 -0
  113. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/claude_cli_bounce.py +0 -0
  114. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/claude_cli_environment.py +0 -0
  115. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/clear_stale.py +0 -0
  116. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud.py +0 -0
  117. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/__init__.py +0 -0
  118. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/adoption_runs.py +0 -0
  119. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/bundle.py +0 -0
  120. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/doctor.py +0 -0
  121. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/dogfood.py +0 -0
  122. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/endpoints.py +0 -0
  123. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/errors.py +0 -0
  124. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/events.py +0 -0
  125. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/export.py +0 -0
  126. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/git_metadata.py +0 -0
  127. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/manifest.py +0 -0
  128. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/operations.py +0 -0
  129. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
  130. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/productivity.py +0 -0
  131. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/reports.py +0 -0
  132. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/setup.py +0 -0
  133. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/tokens.py +0 -0
  134. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/upload.py +0 -0
  135. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/cloud_client/work_types.py +0 -0
  136. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/code_mower_calibration.py +0 -0
  137. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/code_mower_context_packs.py +0 -0
  138. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/code_mower_merge.py +0 -0
  139. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
  140. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/codex_audit_env_preflight.py +0 -0
  141. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/codex_audit_pr.py +0 -0
  142. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/codex_audit_schema_smoke.py +0 -0
  143. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/codex_audit_verdict.schema.json +0 -0
  144. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/config.py +0 -0
  145. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/controller.py +0 -0
  146. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/decisions.py +0 -0
  147. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor.py +0 -0
  148. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/__init__.py +0 -0
  149. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/audit_limits.py +0 -0
  150. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/cloud.py +0 -0
  151. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/common.py +0 -0
  152. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github.py +0 -0
  153. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions.py +0 -0
  154. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
  155. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
  156. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
  157. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
  158. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
  159. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
  160. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
  161. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
  162. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_api.py +0 -0
  163. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_branch.py +0 -0
  164. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_config.py +0 -0
  165. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_human_token.py +0 -0
  166. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_provider.py +0 -0
  167. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_repo.py +0 -0
  168. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
  169. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/groups.py +0 -0
  170. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/models.py +0 -0
  171. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/output.py +0 -0
  172. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/presets.py +0 -0
  173. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/privacy.py +0 -0
  174. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
  175. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
  176. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
  177. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_env.py +0 -0
  178. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
  179. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
  180. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
  181. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
  182. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
  183. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_probe.py +0 -0
  184. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
  185. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
  186. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
  187. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
  188. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
  189. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/providers.py +0 -0
  190. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/registry.py +0 -0
  191. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/runner.py +0 -0
  192. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/runtime.py +0 -0
  193. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
  194. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
  195. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/doctor_checks/supervised_pilot.py +0 -0
  196. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/file_locks.py +0 -0
  197. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/gate_health.py +0 -0
  198. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/gemini_cli_audit_pr.py +0 -0
  199. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/git_identity.py +0 -0
  200. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/grok_build_audit_pr.py +0 -0
  201. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/hermes_cli_audit_pr.py +0 -0
  202. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/__init__.py +0 -0
  203. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/aider.py +0 -0
  204. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
  205. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/claude.py +0 -0
  206. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/codex.py +0 -0
  207. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/devin.py +0 -0
  208. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/gemini_cli.py +0 -0
  209. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/grok_build.py +0 -0
  210. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/hermes_cli.py +0 -0
  211. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/local_llm.py +0 -0
  212. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/lane_configs/muse_cli.py +0 -0
  213. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/local_llm_audit_pr.py +0 -0
  214. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/local_llm_bakeoff.py +0 -0
  215. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/local_llm_calibration.py +0 -0
  216. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/local_llm_profiles.py +0 -0
  217. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/migration.py +0 -0
  218. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/migration_mirror.py +0 -0
  219. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/migration_readiness.py +0 -0
  220. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/muse_cli_audit_pr.py +0 -0
  221. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package.py +0 -0
  222. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package_content.py +0 -0
  223. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package_paths.py +0 -0
  224. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package_rendering.py +0 -0
  225. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/package_static.py +0 -0
  226. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/plan_context.py +0 -0
  227. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/productivity_report.py +0 -0
  228. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/prompts.py +0 -0
  229. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/__init__.py +0 -0
  230. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/comments.py +0 -0
  231. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/exit_codes.py +0 -0
  232. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/git.py +0 -0
  233. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/github_auth.py +0 -0
  234. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/github_pr.py +0 -0
  235. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/pr_worktree.py +0 -0
  236. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/process.py +0 -0
  237. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/repo_paths.py +0 -0
  238. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/text_schema.py +0 -0
  239. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
  240. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/provider_runners/workspace.py +0 -0
  241. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/providers/__init__.py +0 -0
  242. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/providers/local_cli.py +0 -0
  243. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/providers/provenance.py +0 -0
  244. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/release_readiness.py +0 -0
  245. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/reviewer_metrics.py +0 -0
  246. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/reviewer_spend.py +0 -0
  247. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/saas_reviewer_labeler.py +0 -0
  248. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/secrets.py +0 -0
  249. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/builder-experiment.example.json +0 -0
  250. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/calibration-corpus.example.json +0 -0
  251. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/calibration-corpus.json +0 -0
  252. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/context-packs.example.json +0 -0
  253. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
  254. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
  255. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
  256. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
  257. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
  258. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/operability.md +0 -0
  259. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
  260. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
  261. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
  262. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lanes/README.md +0 -0
  263. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lanes/claude.md +0 -0
  264. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lanes/codex.md +0 -0
  265. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lanes/cursor.md +0 -0
  266. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/lanes/generic.md +0 -0
  267. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/code_mower +0 -0
  268. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
  269. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
  270. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
  271. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
  272. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
  273. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/product-support/status_report.py +0 -0
  274. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/reviewer-spend.example.json +0 -0
  275. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
  276. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  277. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  278. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  279. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  280. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
  281. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  282. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
  283. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  284. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
  285. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  286. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
  287. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  288. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  289. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  290. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
  291. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/trailer_comment_labeler.py +0 -0
  292. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/versioning.py +0 -0
  293. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/work_orders.py +0 -0
  294. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower/workflow_actionlint.py +0 -0
  295. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/dependency_links.txt +0 -0
  296. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/entry_points.txt +0 -0
  297. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/requires.txt +0 -0
  298. {code_mower-1.0.9 → code_mower-1.0.11}/src/code_mower.egg-info/top_level.txt +0 -0
  299. {code_mower-1.0.9 → code_mower-1.0.11}/templates/builder-experiment.example.json +0 -0
  300. {code_mower-1.0.9 → code_mower-1.0.11}/templates/calibration-corpus.example.json +0 -0
  301. {code_mower-1.0.9 → code_mower-1.0.11}/templates/calibration-corpus.json +0 -0
  302. {code_mower-1.0.9 → code_mower-1.0.11}/templates/code-mower.yml.j2 +0 -0
  303. {code_mower-1.0.9 → code_mower-1.0.11}/templates/context-packs.example.json +0 -0
  304. {code_mower-1.0.9 → code_mower-1.0.11}/templates/cursor/BUGBOT.md +0 -0
  305. {code_mower-1.0.9 → code_mower-1.0.11}/templates/lanes/README.md +0 -0
  306. {code_mower-1.0.9 → code_mower-1.0.11}/templates/lanes/claude.md +0 -0
  307. {code_mower-1.0.9 → code_mower-1.0.11}/templates/lanes/codex.md +0 -0
  308. {code_mower-1.0.9 → code_mower-1.0.11}/templates/lanes/cursor.md +0 -0
  309. {code_mower-1.0.9 → code_mower-1.0.11}/templates/lanes/generic.md +0 -0
  310. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/acp_bridge.yml +0 -0
  311. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/aider.yml +0 -0
  312. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/antigravity_cli.yml +0 -0
  313. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/claude_audit.yml +0 -0
  314. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/claude_review.yml +0 -0
  315. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/coderabbit_cli.yml +0 -0
  316. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/codex.yml +0 -0
  317. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/cursor_bugbot.yml +0 -0
  318. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/cursor_cloud_agent.yml +0 -0
  319. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/gemini_cli.yml +0 -0
  320. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/greptile.yml +0 -0
  321. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/hermes_cli.yml +0 -0
  322. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/local_llm.yml +0 -0
  323. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/muse_cli.yml +0 -0
  324. {code_mower-1.0.9 → code_mower-1.0.11}/templates/providers/qodo.yml +0 -0
  325. {code_mower-1.0.9 → code_mower-1.0.11}/templates/reviewer-spend.example.json +0 -0
  326. {code_mower-1.0.9 → code_mower-1.0.11}/templates/reviewer-value-report.example.md +0 -0
  327. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  328. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
  329. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  330. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  331. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  332. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/code-mower-gate.yml.j2 +0 -0
  333. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  334. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/hosted-bridge.yml.j2 +0 -0
  335. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  336. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  337. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/review-clear-stale.yml.j2 +0 -0
  338. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  339. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  340. {code_mower-1.0.9 → code_mower-1.0.11}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  341. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_adoption_diagnostics.py +0 -0
  342. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_adoption_result_semantics.py +0 -0
  343. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_adoption_run_contract.py +0 -0
  344. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_antigravity_sdk_probe.py +0 -0
  345. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_audit_comment_posture.py +0 -0
  346. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_audit_limits.py +0 -0
  347. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_board.py +0 -0
  348. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_builder_experiment.py +0 -0
  349. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_builder_runs.py +0 -0
  350. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_calibration_effect_report.py +0 -0
  351. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_calibration_truth.py +0 -0
  352. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_campaign_discovery.py +0 -0
  353. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_checks.py +0 -0
  354. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_claude_audit_pr.py +0 -0
  355. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_claude_cli_bounce.py +0 -0
  356. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_clear_stale.py +0 -0
  357. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_cloud_client.py +0 -0
  358. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_cloud_git_metadata.py +0 -0
  359. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_cloud_manifest.py +0 -0
  360. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_cloud_reports.py +0 -0
  361. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_coderabbit_cli_audit_pr.py +0 -0
  362. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_codex_audit_env_preflight.py +0 -0
  363. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_codex_audit_pr.py +0 -0
  364. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_controller.py +0 -0
  365. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_decision_audit_integration.py +0 -0
  366. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_decisions.py +0 -0
  367. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_actions_cost_summary.py +0 -0
  368. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_actions_failure_selection.py +0 -0
  369. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_boundaries.py +0 -0
  370. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_github_checks.py +0 -0
  371. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_output.py +0 -0
  372. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_privacy.py +0 -0
  373. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_provider_env_required.py +0 -0
  374. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_provider_env_tokens.py +0 -0
  375. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_provider_local_audit_setup.py +0 -0
  376. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_provider_probe.py +0 -0
  377. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_provider_review_hygiene.py +0 -0
  378. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_registry.py +0 -0
  379. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_runtime.py +0 -0
  380. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_self_hosted_runner.py +0 -0
  381. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_doctor_supervised_pilot.py +0 -0
  382. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_file_locks.py +0 -0
  383. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_fork_pr_guard.py +0 -0
  384. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_gate_automerge.py +0 -0
  385. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_gate_health.py +0 -0
  386. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_init_actionlint.py +0 -0
  387. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_lane_status.py +0 -0
  388. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_local_llm_github_helpers.py +0 -0
  389. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_migration_setup_drift.py +0 -0
  390. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_plan_context.py +0 -0
  391. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_pr_outcome_contract.py +0 -0
  392. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_productivity_metrics_contract.py +0 -0
  393. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_productivity_report.py +0 -0
  394. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_prompts.py +0 -0
  395. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_local_cli.py +0 -0
  396. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_comments.py +0 -0
  397. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_git.py +0 -0
  398. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_github_pr.py +0 -0
  399. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_pr_worktree.py +0 -0
  400. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_process.py +0 -0
  401. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_repo_paths.py +0 -0
  402. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_text_schema.py +0 -0
  403. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_provider_runners_workspace.py +0 -0
  404. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_release_qualify.py +0 -0
  405. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_reviewer_metrics_core.py +0 -0
  406. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_reviewer_spend.py +0 -0
  407. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_supervised_pilot_contract.py +0 -0
  408. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_trailer_comment_labeler.py +0 -0
  409. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_work_orders.py +0 -0
  410. {code_mower-1.0.9 → code_mower-1.0.11}/tests/test_work_type_contract.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-mower
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Multi-reviewer AI code audit orchestration
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/codemower-ai/code-mower
@@ -40,8 +40,7 @@ gate.
40
40
 
41
41
  The short version:
42
42
 
43
- - create safe, manual-first reviewer lanes for Codex, Claude, Gitar, and other
44
- AI review tools;
43
+ - create safe, manual-first peer-review lanes for Codex and Claude;
45
44
  - run setup diagnostics before a lane can surprise you with spend, source
46
45
  exposure, or GitHub Actions churn;
47
46
  - turn issue text, external docs, and project doctrine into local work orders
@@ -73,6 +72,18 @@ Code Mower should feel like an engineering tool, not a demo harness:
73
72
 
74
73
  ## What It Looks Like
75
74
 
75
+ Start with Claude Code and Codex, or choose your participants during setup with
76
+ `code-mower init --interactive`. For example, `code-mower init --with
77
+ claude,codex,devin` previews that selection. The generated configuration remembers
78
+ your choices for later sessions.
79
+
80
+ Ask the agent you are using to start a Code Mower session; that agent is the
81
+ default orchestrator. `code-mower session start --repo OWNER/REPO --with
82
+ claude,codex,devin --host codex` prepares the operating brief when invoked from
83
+ Codex. The host agent drives the work using available execution paths.
84
+ See [Participants And Sessions](docs/sessions.md) for setup, host identity,
85
+ and product-specific capabilities.
86
+
76
87
  `code-mower doctor --adoption --repo OWNER/REPO` is the first useful command
77
88
  for a real repository. It checks your runtime, GitHub setup, provider CLIs,
78
89
  token posture, optional cloud setup, private-repo Actions cost traps, and
@@ -92,7 +103,7 @@ Example, shortened:
92
103
  ```text
93
104
  $ code-mower doctor --adoption --repo OWNER/REPO
94
105
  PASS config.validate config validates
95
- PASS profile.select selected profile: codex, claude_audit, gitar
106
+ PASS profile.select selected profile: codex, claude_audit
96
107
  PASS runtime.python Python 3.12 satisfies Code Mower requirements
97
108
  PASS runtime.github_auth GitHub CLI auth probe succeeded
98
109
  PASS runtime.local_cli codex codex found
@@ -205,6 +216,12 @@ Cold adopters should start with the reviewer gate, then add builders, then
205
216
  measure builder experiments; provider experiments come after that base loop is
206
217
  observable.
207
218
 
219
+ The initial reviewer and builder paths default to Claude + Codex. Other
220
+ participants require an explicit setup selection. `code-mower next-steps --repo
221
+ OWNER/REPO --pr NUMBER` shows setup, peer-audit requests, status, and local
222
+ evidence. Add `--advanced` for calibration, migration, package rehearsal, and
223
+ optional cloud guidance after the initial loop works.
224
+
208
225
  Install first from the [Install And Bootstrap](docs/install.md) matrix: pipx for
209
226
  laptops, uv tool installs for hosted agents or CI boxes, and an editable venv
210
227
  for Code Mower contributors. All paths require Python 3.12 or newer. For
@@ -224,7 +241,7 @@ agent report its actual host posture, exact installed version, doctor result,
224
241
  Board URL, and any owner-only click-list before it mutates the repo.
225
242
 
226
243
  The current package-index announcement entry point is the tagged
227
- [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.9/docs/try-in-10-minutes.md)
244
+ [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.11/docs/try-in-10-minutes.md)
228
245
  guide. The v1.0 supervised-pilot release includes the native Board, the
229
246
  controller dry-run and policy contract, adoption and upgrade hardening from
230
247
  recent install rehearsals, package-index release checks, provider-diversity
@@ -263,6 +280,15 @@ The v1.0.9 patch makes Board refresh recovery deterministic, turns package
263
280
  installation failures into bounded actionable diagnostics, and lets release
264
281
  campaigns require established providers while retaining slower or experimental
265
282
  providers as informational evidence.
283
+ The v1.0.10 patch makes local builder lanes deliverable and recoverable: a
284
+ provider-neutral delivery contract with bounded no-change and owner-action
285
+ outcomes, process-group cleanup so a finished provider is not reported as a
286
+ timeout, simpler first-run defaults, host-led participant sessions, and a
287
+ published 20-sample provider calibration scorecard.
288
+ The v1.0.11 patch moves canonical hosted Devin release campaigns onto the
289
+ bounded, pollable Sessions API transport and keeps macOS Claude release
290
+ qualification inside the maintained strict sandbox by using pip's
291
+ TLS-verifying certifi certificate path.
266
292
  Package-only users can start from the public package rather than a source
267
293
  checkout.
268
294
 
@@ -295,7 +321,7 @@ Provider-contract baseline for the next release train:
295
321
 
296
322
  For release verification,
297
323
  [First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
298
- the package-index procedure for `v1.0.9` / `code-mower==1.0.9`. The
324
+ the package-index procedure for `v1.0.11` / `code-mower==1.0.11`. The
299
325
  GitHub release records the workflow and rehearsal evidence for the exact tag.
300
326
  After publication, [Release Qualification](docs/release-qualification.md)
301
327
  coordinates provider-specific install and operational checks without treating
@@ -358,10 +384,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
358
384
  Mower's templates now support that loop end to end; humans still own
359
385
  credentials, branch protection, calibration, and owner decisions.
360
386
 
361
- The reference adoption shape is Claude Code as orchestrator; Claude Code,
362
- Codex, and Cursor as builder lanes; Claude Code and Codex as reviewer lanes;
363
- and Gitar or Antigravity as informational reviewer signal until local
364
- calibration says otherwise.
387
+ The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
388
+ and peer reviewer. The owning builder remains the only writer, and the other
389
+ provider supplies independent review. Other builders and reviewers are explicit
390
+ later additions; they follow the same lane policy with provider-specific
391
+ execution and authentication where needed.
365
392
 
366
393
  ## Why Not Just Run Codex Or Claude Yourself?
367
394
 
@@ -443,12 +470,16 @@ The first recommended lanes are local/manual:
443
470
  | --- | --- | --- |
444
471
  | Codex audit | structured local peer audit | merge-gating eligible after setup |
445
472
  | Claude audit | structured local peer audit | merge-gating eligible after setup |
446
- | Gitar | advisory third signal | informational until calibrated |
447
473
 
448
- Everything else starts manual or informational until your own calibration data
449
- proves it is useful: Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
474
+ Everything else is opt-in after the Claude + Codex loop works and stays manual
475
+ or informational until your own calibration data proves it is useful: Gitar,
476
+ Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
450
477
  BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
451
478
 
479
+ Hosted Devin dispatches use the Devin Sessions API v3. They require a service-user
480
+ `DEVIN_API_KEY`, its opaque `DEVIN_ORG_ID`, and an exact repository acknowledgement
481
+ in `CODE_MOWER_DEVIN_REPOSITORIES`; see `docs/release-qualification.md` for setup.
482
+
452
483
  Gemini CLI and Antigravity are distinct lane ids even though both are Google
453
484
  surfaces and may use Gemini model infrastructure. Keep their auth, model
454
485
  provenance, calibration evidence, and release notes separate.
@@ -484,8 +515,8 @@ measurement work.
484
515
 
485
516
  ## Installation Status
486
517
 
487
- The current package-index release baseline is `v1.0.9`, with pinned package
488
- install spec `code-mower==1.0.9`. Release evidence is recorded on the GitHub
518
+ The current package-index release baseline is `v1.0.11`, with pinned package
519
+ install spec `code-mower==1.0.11`. Release evidence is recorded on the GitHub
489
520
  release and in the first-user install rehearsal. The public repository is
490
521
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
491
522
  GitHub releases remain the auditable source for tags, build artifacts, and
@@ -520,8 +551,9 @@ first so local work exercises the same package entrypoint users install.
520
551
  conservative and team-controlled while automated retention jobs are roadmap
521
552
  work.
522
553
  - Advanced/provider/operator commands remain available behind
523
- `code-mower --help-all`. The default help path stays focused on `init`,
524
- `doctor`, calibration, value reports, and optional cloud export/upload.
554
+ `code-mower --help-all`. The default help path stays focused on setup,
555
+ `next-steps`, lane status, and local evidence; calibration and cloud commands
556
+ remain available through `--help-all`.
525
557
 
526
558
  ## Docs Map
527
559
 
@@ -541,6 +573,7 @@ first so local work exercises the same package entrypoint users install.
541
573
  - [Claude Lane Standing Instructions](docs/lanes/claude.md)
542
574
  - [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
543
575
  - [Provider Matrix](docs/provider-matrix.md)
576
+ - [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
544
577
  - [GitHub Setup](docs/github-setup.md)
545
578
  - [First Run Transcript](docs/first-run-transcript.md)
546
579
  - [First-User Demo Transcript](docs/first-user-demo-transcript.md)
@@ -561,6 +594,8 @@ first so local work exercises the same package entrypoint users install.
561
594
  - [v1.0.7 Release Notes](docs/v107-release-notes.md)
562
595
  - [v1.0.8 Release Notes](docs/v108-release-notes.md)
563
596
  - [v1.0.9 Release Notes](docs/v109-release-notes.md)
597
+ - [v1.0.10 Release Notes](docs/v1010-release-notes.md)
598
+ - [v1.0.11 Release Notes](docs/v1011-release-notes.md)
564
599
  - [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
565
600
  - [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
566
601
  - [Demo Calibration Example](examples/demo-calibration/README.md)
@@ -10,8 +10,7 @@ gate.
10
10
 
11
11
  The short version:
12
12
 
13
- - create safe, manual-first reviewer lanes for Codex, Claude, Gitar, and other
14
- AI review tools;
13
+ - create safe, manual-first peer-review lanes for Codex and Claude;
15
14
  - run setup diagnostics before a lane can surprise you with spend, source
16
15
  exposure, or GitHub Actions churn;
17
16
  - turn issue text, external docs, and project doctrine into local work orders
@@ -43,6 +42,18 @@ Code Mower should feel like an engineering tool, not a demo harness:
43
42
 
44
43
  ## What It Looks Like
45
44
 
45
+ Start with Claude Code and Codex, or choose your participants during setup with
46
+ `code-mower init --interactive`. For example, `code-mower init --with
47
+ claude,codex,devin` previews that selection. The generated configuration remembers
48
+ your choices for later sessions.
49
+
50
+ Ask the agent you are using to start a Code Mower session; that agent is the
51
+ default orchestrator. `code-mower session start --repo OWNER/REPO --with
52
+ claude,codex,devin --host codex` prepares the operating brief when invoked from
53
+ Codex. The host agent drives the work using available execution paths.
54
+ See [Participants And Sessions](docs/sessions.md) for setup, host identity,
55
+ and product-specific capabilities.
56
+
46
57
  `code-mower doctor --adoption --repo OWNER/REPO` is the first useful command
47
58
  for a real repository. It checks your runtime, GitHub setup, provider CLIs,
48
59
  token posture, optional cloud setup, private-repo Actions cost traps, and
@@ -62,7 +73,7 @@ Example, shortened:
62
73
  ```text
63
74
  $ code-mower doctor --adoption --repo OWNER/REPO
64
75
  PASS config.validate config validates
65
- PASS profile.select selected profile: codex, claude_audit, gitar
76
+ PASS profile.select selected profile: codex, claude_audit
66
77
  PASS runtime.python Python 3.12 satisfies Code Mower requirements
67
78
  PASS runtime.github_auth GitHub CLI auth probe succeeded
68
79
  PASS runtime.local_cli codex codex found
@@ -175,6 +186,12 @@ Cold adopters should start with the reviewer gate, then add builders, then
175
186
  measure builder experiments; provider experiments come after that base loop is
176
187
  observable.
177
188
 
189
+ The initial reviewer and builder paths default to Claude + Codex. Other
190
+ participants require an explicit setup selection. `code-mower next-steps --repo
191
+ OWNER/REPO --pr NUMBER` shows setup, peer-audit requests, status, and local
192
+ evidence. Add `--advanced` for calibration, migration, package rehearsal, and
193
+ optional cloud guidance after the initial loop works.
194
+
178
195
  Install first from the [Install And Bootstrap](docs/install.md) matrix: pipx for
179
196
  laptops, uv tool installs for hosted agents or CI boxes, and an editable venv
180
197
  for Code Mower contributors. All paths require Python 3.12 or newer. For
@@ -194,7 +211,7 @@ agent report its actual host posture, exact installed version, doctor result,
194
211
  Board URL, and any owner-only click-list before it mutates the repo.
195
212
 
196
213
  The current package-index announcement entry point is the tagged
197
- [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.9/docs/try-in-10-minutes.md)
214
+ [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.11/docs/try-in-10-minutes.md)
198
215
  guide. The v1.0 supervised-pilot release includes the native Board, the
199
216
  controller dry-run and policy contract, adoption and upgrade hardening from
200
217
  recent install rehearsals, package-index release checks, provider-diversity
@@ -233,6 +250,15 @@ The v1.0.9 patch makes Board refresh recovery deterministic, turns package
233
250
  installation failures into bounded actionable diagnostics, and lets release
234
251
  campaigns require established providers while retaining slower or experimental
235
252
  providers as informational evidence.
253
+ The v1.0.10 patch makes local builder lanes deliverable and recoverable: a
254
+ provider-neutral delivery contract with bounded no-change and owner-action
255
+ outcomes, process-group cleanup so a finished provider is not reported as a
256
+ timeout, simpler first-run defaults, host-led participant sessions, and a
257
+ published 20-sample provider calibration scorecard.
258
+ The v1.0.11 patch moves canonical hosted Devin release campaigns onto the
259
+ bounded, pollable Sessions API transport and keeps macOS Claude release
260
+ qualification inside the maintained strict sandbox by using pip's
261
+ TLS-verifying certifi certificate path.
236
262
  Package-only users can start from the public package rather than a source
237
263
  checkout.
238
264
 
@@ -265,7 +291,7 @@ Provider-contract baseline for the next release train:
265
291
 
266
292
  For release verification,
267
293
  [First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
268
- the package-index procedure for `v1.0.9` / `code-mower==1.0.9`. The
294
+ the package-index procedure for `v1.0.11` / `code-mower==1.0.11`. The
269
295
  GitHub release records the workflow and rehearsal evidence for the exact tag.
270
296
  After publication, [Release Qualification](docs/release-qualification.md)
271
297
  coordinates provider-specific install and operational checks without treating
@@ -328,10 +354,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
328
354
  Mower's templates now support that loop end to end; humans still own
329
355
  credentials, branch protection, calibration, and owner decisions.
330
356
 
331
- The reference adoption shape is Claude Code as orchestrator; Claude Code,
332
- Codex, and Cursor as builder lanes; Claude Code and Codex as reviewer lanes;
333
- and Gitar or Antigravity as informational reviewer signal until local
334
- calibration says otherwise.
357
+ The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
358
+ and peer reviewer. The owning builder remains the only writer, and the other
359
+ provider supplies independent review. Other builders and reviewers are explicit
360
+ later additions; they follow the same lane policy with provider-specific
361
+ execution and authentication where needed.
335
362
 
336
363
  ## Why Not Just Run Codex Or Claude Yourself?
337
364
 
@@ -413,12 +440,16 @@ The first recommended lanes are local/manual:
413
440
  | --- | --- | --- |
414
441
  | Codex audit | structured local peer audit | merge-gating eligible after setup |
415
442
  | Claude audit | structured local peer audit | merge-gating eligible after setup |
416
- | Gitar | advisory third signal | informational until calibrated |
417
443
 
418
- Everything else starts manual or informational until your own calibration data
419
- proves it is useful: Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
444
+ Everything else is opt-in after the Claude + Codex loop works and stays manual
445
+ or informational until your own calibration data proves it is useful: Gitar,
446
+ Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
420
447
  BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
421
448
 
449
+ Hosted Devin dispatches use the Devin Sessions API v3. They require a service-user
450
+ `DEVIN_API_KEY`, its opaque `DEVIN_ORG_ID`, and an exact repository acknowledgement
451
+ in `CODE_MOWER_DEVIN_REPOSITORIES`; see `docs/release-qualification.md` for setup.
452
+
422
453
  Gemini CLI and Antigravity are distinct lane ids even though both are Google
423
454
  surfaces and may use Gemini model infrastructure. Keep their auth, model
424
455
  provenance, calibration evidence, and release notes separate.
@@ -454,8 +485,8 @@ measurement work.
454
485
 
455
486
  ## Installation Status
456
487
 
457
- The current package-index release baseline is `v1.0.9`, with pinned package
458
- install spec `code-mower==1.0.9`. Release evidence is recorded on the GitHub
488
+ The current package-index release baseline is `v1.0.11`, with pinned package
489
+ install spec `code-mower==1.0.11`. Release evidence is recorded on the GitHub
459
490
  release and in the first-user install rehearsal. The public repository is
460
491
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
461
492
  GitHub releases remain the auditable source for tags, build artifacts, and
@@ -490,8 +521,9 @@ first so local work exercises the same package entrypoint users install.
490
521
  conservative and team-controlled while automated retention jobs are roadmap
491
522
  work.
492
523
  - Advanced/provider/operator commands remain available behind
493
- `code-mower --help-all`. The default help path stays focused on `init`,
494
- `doctor`, calibration, value reports, and optional cloud export/upload.
524
+ `code-mower --help-all`. The default help path stays focused on setup,
525
+ `next-steps`, lane status, and local evidence; calibration and cloud commands
526
+ remain available through `--help-all`.
495
527
 
496
528
  ## Docs Map
497
529
 
@@ -511,6 +543,7 @@ first so local work exercises the same package entrypoint users install.
511
543
  - [Claude Lane Standing Instructions](docs/lanes/claude.md)
512
544
  - [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
513
545
  - [Provider Matrix](docs/provider-matrix.md)
546
+ - [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
514
547
  - [GitHub Setup](docs/github-setup.md)
515
548
  - [First Run Transcript](docs/first-run-transcript.md)
516
549
  - [First-User Demo Transcript](docs/first-user-demo-transcript.md)
@@ -531,6 +564,8 @@ first so local work exercises the same package entrypoint users install.
531
564
  - [v1.0.7 Release Notes](docs/v107-release-notes.md)
532
565
  - [v1.0.8 Release Notes](docs/v108-release-notes.md)
533
566
  - [v1.0.9 Release Notes](docs/v109-release-notes.md)
567
+ - [v1.0.10 Release Notes](docs/v1010-release-notes.md)
568
+ - [v1.0.11 Release Notes](docs/v1011-release-notes.md)
534
569
  - [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
535
570
  - [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
536
571
  - [Demo Calibration Example](examples/demo-calibration/README.md)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code-mower"
7
- version = "1.0.9"
7
+ version = "1.0.11"
8
8
  description = "Multi-reviewer AI code audit orchestration"
9
9
  requires-python = ">=3.12"
10
10
  readme = "README.md"
@@ -1,3 +1,3 @@
1
1
  """Code Mower package."""
2
2
 
3
- __version__ = "1.0.9"
3
+ __version__ = "1.0.11"
@@ -39,6 +39,8 @@ AUTHOR_INFERENCE_RULES = {
39
39
  "claude-bot": ("claude", "claude_code_action"),
40
40
  "cursor[bot]": ("cursor_cloud_agent", "cursor_cloud_agent"),
41
41
  "cursor": ("cursor_cloud_agent", "cursor_cloud_agent"),
42
+ "devin-ai-integration": ("devin", "devin"),
43
+ "devin-ai-integration[bot]": ("devin", "devin"),
42
44
  }
43
45
  BRANCH_PREFIX_INFERENCE_RULES = (
44
46
  ("cursor/", "cursor_cloud_agent", "cursor_cloud_agent"),
@@ -49,6 +51,8 @@ BRANCH_PREFIX_INFERENCE_RULES = (
49
51
  ("chatgpt-codex-", "codex", "chatgpt-codex-connector"),
50
52
  ("claude/", "claude", "claude_code_action"),
51
53
  ("claude-", "claude", "claude_code_action"),
54
+ ("devin/", "devin_cli", "devin_cli"),
55
+ ("devin-", "devin_cli", "devin_cli"),
52
56
  )
53
57
 
54
58