code-mower 1.0.9__tar.gz → 1.0.10__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 (408) hide show
  1. {code_mower-1.0.9 → code_mower-1.0.10}/PKG-INFO +43 -17
  2. {code_mower-1.0.9 → code_mower-1.0.10}/README.md +42 -16
  3. {code_mower-1.0.9 → code_mower-1.0.10}/pyproject.toml +1 -1
  4. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/__init__.py +1 -1
  5. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/builder_runs.py +4 -0
  6. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/campaign_adapters.py +207 -20
  7. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cli.py +19 -12
  8. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_telemetry.py +2 -0
  9. code_mower-1.0.10/src/code_mower/devin_cli_audit_pr.py +1483 -0
  10. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/campaign_auth.py +34 -7
  11. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli.py +99 -20
  12. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/init.py +76 -2
  13. code_mower-1.0.10/src/code_mower/lane_configs/devin_cli.py +36 -0
  14. code_mower-1.0.10/src/code_mower/lane_delivery.py +1375 -0
  15. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_status.py +1 -0
  16. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_install.py +9 -17
  17. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_rehearsal.py +1 -1
  18. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/next_steps.py +161 -44
  19. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_manifest.py +12 -0
  20. code_mower-1.0.10/src/code_mower/participants.py +179 -0
  21. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_registry.py +52 -0
  22. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_campaigns.py +185 -23
  23. code_mower-1.0.10/src/code_mower/session.py +154 -0
  24. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/code-mower.example.yml +9 -4
  25. code_mower-1.0.10/src/code_mower/templates/lanes/devin.md +41 -0
  26. code_mower-1.0.10/src/code_mower/templates/lanes/run_mac_lane.sh +1232 -0
  27. code_mower-1.0.10/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +63 -0
  28. {code_mower-1.0.9 → code_mower-1.0.10/src/code_mower}/templates/providers.yml +74 -5
  29. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +1 -1
  30. {code_mower-1.0.9 → code_mower-1.0.10/src/code_mower}/templates/workflows/local-cli-audit.yml.j2 +1 -0
  31. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/PKG-INFO +43 -17
  32. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/SOURCES.txt +15 -0
  33. code_mower-1.0.10/templates/lanes/devin.md +41 -0
  34. code_mower-1.0.10/templates/lanes/run_mac_lane.sh +1232 -0
  35. code_mower-1.0.10/templates/providers/devin_cli.yml +70 -0
  36. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/gitar.yml +1 -1
  37. {code_mower-1.0.9/src/code_mower → code_mower-1.0.10}/templates/providers.yml +74 -5
  38. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/builder-provenance.yml.j2 +1 -1
  39. {code_mower-1.0.9/src/code_mower → code_mower-1.0.10}/templates/workflows/local-cli-audit.yml.j2 +1 -0
  40. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_identity.py +4 -0
  41. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_adapters.py +633 -6
  42. code_mower-1.0.10/tests/test_devin_builder_lane.py +1538 -0
  43. code_mower-1.0.10/tests/test_devin_cli_audit_pr.py +974 -0
  44. code_mower-1.0.10/tests/test_devin_provider_contract.py +743 -0
  45. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_campaign_auth.py +6 -2
  46. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_init_build_loop.py +318 -15
  47. code_mower-1.0.10/tests/test_lane_delivery_contract.py +2175 -0
  48. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_migration_rehearsal.py +71 -16
  49. code_mower-1.0.10/tests/test_next_steps.py +147 -0
  50. code_mower-1.0.10/tests/test_participant_sessions.py +210 -0
  51. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_fixture_contracts.py +3 -0
  52. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_campaigns.py +224 -0
  53. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_hygiene.py +91 -78
  54. code_mower-1.0.9/src/code_mower/templates/lanes/run_mac_lane.sh +0 -532
  55. code_mower-1.0.9/templates/lanes/run_mac_lane.sh +0 -532
  56. {code_mower-1.0.9 → code_mower-1.0.10}/CODE_OF_CONDUCT.md +0 -0
  57. {code_mower-1.0.9 → code_mower-1.0.10}/LICENSE +0 -0
  58. {code_mower-1.0.9 → code_mower-1.0.10}/MANIFEST.in +0 -0
  59. {code_mower-1.0.9 → code_mower-1.0.10}/NOTICE +0 -0
  60. {code_mower-1.0.9 → code_mower-1.0.10}/SUPPORT.md +0 -0
  61. {code_mower-1.0.9 → code_mower-1.0.10}/requirements/requirements.txt +0 -0
  62. {code_mower-1.0.9 → code_mower-1.0.10}/setup.cfg +0 -0
  63. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/__init__.py +0 -0
  64. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/_base.py +0 -0
  65. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/cursor_bugbot.py +0 -0
  66. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/gitar.py +0 -0
  67. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/greptile.py +0 -0
  68. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/adapters/qodo.py +0 -0
  69. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
  70. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/antigravity_sdk_probe.py +0 -0
  71. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_handoff_log.py +0 -0
  72. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_labeler_lib.py +0 -0
  73. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_limits.py +0 -0
  74. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/audit_progress.py +0 -0
  75. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/blind_review_artifacts.py +0 -0
  76. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/blind_review_coordinator.py +0 -0
  77. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/board.py +0 -0
  78. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/board_store.py +0 -0
  79. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/bootstrap.py +0 -0
  80. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/builder_experiment.py +0 -0
  81. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/__init__.py +0 -0
  82. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/arms.py +0 -0
  83. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/auto_discovery.py +0 -0
  84. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/commands.py +0 -0
  85. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/context_inputs.py +0 -0
  86. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/corpus.py +0 -0
  87. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/effect_report.py +0 -0
  88. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/evidence.py +0 -0
  89. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/evidence_report.py +0 -0
  90. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/identity.py +0 -0
  91. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/metrics.py +0 -0
  92. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/overlap.py +0 -0
  93. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/planning.py +0 -0
  94. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/policy.py +0 -0
  95. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/results.py +0 -0
  96. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/run_results.py +0 -0
  97. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/run_status.py +0 -0
  98. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/runner.py +0 -0
  99. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/truth.py +0 -0
  100. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/calibration/value_report.py +0 -0
  101. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/campaign_discovery.py +0 -0
  102. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/checks.py +0 -0
  103. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_audit_pr.py +0 -0
  104. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_cli_bounce.py +0 -0
  105. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/claude_cli_environment.py +0 -0
  106. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/clear_stale.py +0 -0
  107. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud.py +0 -0
  108. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/__init__.py +0 -0
  109. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/adoption_runs.py +0 -0
  110. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/bundle.py +0 -0
  111. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/doctor.py +0 -0
  112. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/dogfood.py +0 -0
  113. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/endpoints.py +0 -0
  114. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/errors.py +0 -0
  115. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/events.py +0 -0
  116. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/export.py +0 -0
  117. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/git_metadata.py +0 -0
  118. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/manifest.py +0 -0
  119. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/operations.py +0 -0
  120. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
  121. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/productivity.py +0 -0
  122. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/reports.py +0 -0
  123. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/setup.py +0 -0
  124. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/tokens.py +0 -0
  125. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/upload.py +0 -0
  126. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/cloud_client/work_types.py +0 -0
  127. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_calibration.py +0 -0
  128. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_context_packs.py +0 -0
  129. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/code_mower_merge.py +0 -0
  130. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
  131. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_env_preflight.py +0 -0
  132. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_pr.py +0 -0
  133. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_schema_smoke.py +0 -0
  134. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/codex_audit_verdict.schema.json +0 -0
  135. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/config.py +0 -0
  136. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/controller.py +0 -0
  137. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/decisions.py +0 -0
  138. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor.py +0 -0
  139. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/__init__.py +0 -0
  140. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/adoption.py +0 -0
  141. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/audit_limits.py +0 -0
  142. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/cloud.py +0 -0
  143. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/common.py +0 -0
  144. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github.py +0 -0
  145. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions.py +0 -0
  146. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
  147. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
  148. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
  149. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
  150. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
  151. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
  152. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
  153. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
  154. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_api.py +0 -0
  155. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_branch.py +0 -0
  156. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_config.py +0 -0
  157. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_human_token.py +0 -0
  158. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_provider.py +0 -0
  159. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_repo.py +0 -0
  160. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
  161. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/groups.py +0 -0
  162. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/models.py +0 -0
  163. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/output.py +0 -0
  164. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/presets.py +0 -0
  165. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/privacy.py +0 -0
  166. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
  167. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
  168. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
  169. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env.py +0 -0
  170. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
  171. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
  172. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
  173. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
  174. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
  175. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe.py +0 -0
  176. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
  177. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
  178. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
  179. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
  180. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
  181. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/providers.py +0 -0
  182. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/registry.py +0 -0
  183. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runner.py +0 -0
  184. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runtime.py +0 -0
  185. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
  186. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
  187. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/doctor_checks/supervised_pilot.py +0 -0
  188. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/file_locks.py +0 -0
  189. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/gate_health.py +0 -0
  190. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/gemini_cli_audit_pr.py +0 -0
  191. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/git_identity.py +0 -0
  192. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/grok_build_audit_pr.py +0 -0
  193. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/hermes_cli_audit_pr.py +0 -0
  194. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/__init__.py +0 -0
  195. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/aider.py +0 -0
  196. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
  197. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/claude.py +0 -0
  198. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/codex.py +0 -0
  199. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/devin.py +0 -0
  200. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/gemini_cli.py +0 -0
  201. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/grok_build.py +0 -0
  202. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/hermes_cli.py +0 -0
  203. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/local_llm.py +0 -0
  204. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/lane_configs/muse_cli.py +0 -0
  205. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_audit_pr.py +0 -0
  206. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_bakeoff.py +0 -0
  207. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_calibration.py +0 -0
  208. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/local_llm_profiles.py +0 -0
  209. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration.py +0 -0
  210. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_mirror.py +0 -0
  211. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/migration_readiness.py +0 -0
  212. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/muse_cli_audit_pr.py +0 -0
  213. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package.py +0 -0
  214. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_content.py +0 -0
  215. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_paths.py +0 -0
  216. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_rendering.py +0 -0
  217. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/package_static.py +0 -0
  218. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/plan_context.py +0 -0
  219. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/productivity_report.py +0 -0
  220. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/prompts.py +0 -0
  221. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/__init__.py +0 -0
  222. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/comments.py +0 -0
  223. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/exit_codes.py +0 -0
  224. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/git.py +0 -0
  225. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/github_auth.py +0 -0
  226. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/github_pr.py +0 -0
  227. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/pr_worktree.py +0 -0
  228. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/process.py +0 -0
  229. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/repo_paths.py +0 -0
  230. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/text_schema.py +0 -0
  231. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
  232. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/provider_runners/workspace.py +0 -0
  233. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/__init__.py +0 -0
  234. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/local_cli.py +0 -0
  235. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/providers/provenance.py +0 -0
  236. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_qualify.py +0 -0
  237. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/release_readiness.py +0 -0
  238. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/reviewer_metrics.py +0 -0
  239. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/reviewer_spend.py +0 -0
  240. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/saas_reviewer_labeler.py +0 -0
  241. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/secrets.py +0 -0
  242. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/builder-experiment.example.json +0 -0
  243. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/calibration-corpus.example.json +0 -0
  244. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/calibration-corpus.json +0 -0
  245. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/context-packs.example.json +0 -0
  246. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
  247. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
  248. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
  249. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
  250. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
  251. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/operability.md +0 -0
  252. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
  253. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
  254. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
  255. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/README.md +0 -0
  256. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/claude.md +0 -0
  257. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/codex.md +0 -0
  258. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/cursor.md +0 -0
  259. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/lanes/generic.md +0 -0
  260. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower +0 -0
  261. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
  262. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
  263. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
  264. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
  265. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
  266. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/product-support/status_report.py +0 -0
  267. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/reviewer-spend.example.json +0 -0
  268. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
  269. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  270. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  271. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  272. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  273. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
  274. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  275. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
  276. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  277. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
  278. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  279. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
  280. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  281. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  282. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  283. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
  284. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/trailer_comment_labeler.py +0 -0
  285. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/versioning.py +0 -0
  286. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/work_orders.py +0 -0
  287. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower/workflow_actionlint.py +0 -0
  288. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/dependency_links.txt +0 -0
  289. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/entry_points.txt +0 -0
  290. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/requires.txt +0 -0
  291. {code_mower-1.0.9 → code_mower-1.0.10}/src/code_mower.egg-info/top_level.txt +0 -0
  292. {code_mower-1.0.9 → code_mower-1.0.10}/templates/builder-experiment.example.json +0 -0
  293. {code_mower-1.0.9 → code_mower-1.0.10}/templates/calibration-corpus.example.json +0 -0
  294. {code_mower-1.0.9 → code_mower-1.0.10}/templates/calibration-corpus.json +0 -0
  295. {code_mower-1.0.9 → code_mower-1.0.10}/templates/code-mower.yml.j2 +0 -0
  296. {code_mower-1.0.9 → code_mower-1.0.10}/templates/context-packs.example.json +0 -0
  297. {code_mower-1.0.9 → code_mower-1.0.10}/templates/cursor/BUGBOT.md +0 -0
  298. {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/README.md +0 -0
  299. {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/claude.md +0 -0
  300. {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/codex.md +0 -0
  301. {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/cursor.md +0 -0
  302. {code_mower-1.0.9 → code_mower-1.0.10}/templates/lanes/generic.md +0 -0
  303. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/acp_bridge.yml +0 -0
  304. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/aider.yml +0 -0
  305. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/antigravity_cli.yml +0 -0
  306. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/claude_audit.yml +0 -0
  307. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/claude_review.yml +0 -0
  308. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/coderabbit_cli.yml +0 -0
  309. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/codex.yml +0 -0
  310. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/cursor_bugbot.yml +0 -0
  311. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/cursor_cloud_agent.yml +0 -0
  312. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/devin.yml +0 -0
  313. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/gemini_cli.yml +0 -0
  314. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/greptile.yml +0 -0
  315. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/hermes_cli.yml +0 -0
  316. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/local_llm.yml +0 -0
  317. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/muse_cli.yml +0 -0
  318. {code_mower-1.0.9 → code_mower-1.0.10}/templates/providers/qodo.yml +0 -0
  319. {code_mower-1.0.9 → code_mower-1.0.10}/templates/reviewer-spend.example.json +0 -0
  320. {code_mower-1.0.9 → code_mower-1.0.10}/templates/reviewer-value-report.example.md +0 -0
  321. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  322. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
  323. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  324. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  325. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  326. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/code-mower-gate.yml.j2 +0 -0
  327. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  328. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/hosted-bridge.yml.j2 +0 -0
  329. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  330. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  331. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/review-clear-stale.yml.j2 +0 -0
  332. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  333. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  334. {code_mower-1.0.9 → code_mower-1.0.10}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  335. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_diagnostics.py +0 -0
  336. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_result_semantics.py +0 -0
  337. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_adoption_run_contract.py +0 -0
  338. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_antigravity_sdk_probe.py +0 -0
  339. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_audit_comment_posture.py +0 -0
  340. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_audit_limits.py +0 -0
  341. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_board.py +0 -0
  342. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_experiment.py +0 -0
  343. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_builder_runs.py +0 -0
  344. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_calibration_effect_report.py +0 -0
  345. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_calibration_truth.py +0 -0
  346. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_discovery.py +0 -0
  347. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_campaign_retry_evidence_711.py +0 -0
  348. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_checks.py +0 -0
  349. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_claude_audit_pr.py +0 -0
  350. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_claude_cli_bounce.py +0 -0
  351. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_clear_stale.py +0 -0
  352. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_client.py +0 -0
  353. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_git_metadata.py +0 -0
  354. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_manifest.py +0 -0
  355. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_cloud_reports.py +0 -0
  356. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_coderabbit_cli_audit_pr.py +0 -0
  357. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_codex_audit_env_preflight.py +0 -0
  358. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_codex_audit_pr.py +0 -0
  359. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_controller.py +0 -0
  360. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_decision_audit_integration.py +0 -0
  361. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_decisions.py +0 -0
  362. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_actions_cost_summary.py +0 -0
  363. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_actions_failure_selection.py +0 -0
  364. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_boundaries.py +0 -0
  365. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_campaign_readiness.py +0 -0
  366. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_github_checks.py +0 -0
  367. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_output.py +0 -0
  368. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_privacy.py +0 -0
  369. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_env_required.py +0 -0
  370. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_env_tokens.py +0 -0
  371. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_local_audit_setup.py +0 -0
  372. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_probe.py +0 -0
  373. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_provider_review_hygiene.py +0 -0
  374. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_registry.py +0 -0
  375. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_runtime.py +0 -0
  376. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_self_hosted_runner.py +0 -0
  377. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_doctor_supervised_pilot.py +0 -0
  378. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_file_locks.py +0 -0
  379. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_fork_pr_guard.py +0 -0
  380. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_gate_automerge.py +0 -0
  381. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_gate_health.py +0 -0
  382. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_hosted_dispatch_profile.py +0 -0
  383. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_init_actionlint.py +0 -0
  384. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_lane_status.py +0 -0
  385. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_local_llm_github_helpers.py +0 -0
  386. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_migration_setup_drift.py +0 -0
  387. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_package_install_failure_taxonomy.py +0 -0
  388. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_plan_context.py +0 -0
  389. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_pr_outcome_contract.py +0 -0
  390. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_productivity_metrics_contract.py +0 -0
  391. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_productivity_report.py +0 -0
  392. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_prompts.py +0 -0
  393. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_local_cli.py +0 -0
  394. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_comments.py +0 -0
  395. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_git.py +0 -0
  396. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_github_pr.py +0 -0
  397. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_pr_worktree.py +0 -0
  398. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_process.py +0 -0
  399. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_repo_paths.py +0 -0
  400. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_text_schema.py +0 -0
  401. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_provider_runners_workspace.py +0 -0
  402. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_release_qualify.py +0 -0
  403. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_reviewer_metrics_core.py +0 -0
  404. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_reviewer_spend.py +0 -0
  405. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_supervised_pilot_contract.py +0 -0
  406. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_trailer_comment_labeler.py +0 -0
  407. {code_mower-1.0.9 → code_mower-1.0.10}/tests/test_work_orders.py +0 -0
  408. {code_mower-1.0.9 → code_mower-1.0.10}/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.10
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.10/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,11 @@ 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.
266
288
  Package-only users can start from the public package rather than a source
267
289
  checkout.
268
290
 
@@ -295,7 +317,7 @@ Provider-contract baseline for the next release train:
295
317
 
296
318
  For release verification,
297
319
  [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
320
+ the package-index procedure for `v1.0.10` / `code-mower==1.0.10`. The
299
321
  GitHub release records the workflow and rehearsal evidence for the exact tag.
300
322
  After publication, [Release Qualification](docs/release-qualification.md)
301
323
  coordinates provider-specific install and operational checks without treating
@@ -358,10 +380,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
358
380
  Mower's templates now support that loop end to end; humans still own
359
381
  credentials, branch protection, calibration, and owner decisions.
360
382
 
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.
383
+ The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
384
+ and peer reviewer. The owning builder remains the only writer, and the other
385
+ provider supplies independent review. Other builders and reviewers are explicit
386
+ later additions; they follow the same lane policy with provider-specific
387
+ execution and authentication where needed.
365
388
 
366
389
  ## Why Not Just Run Codex Or Claude Yourself?
367
390
 
@@ -443,10 +466,10 @@ The first recommended lanes are local/manual:
443
466
  | --- | --- | --- |
444
467
  | Codex audit | structured local peer audit | merge-gating eligible after setup |
445
468
  | Claude audit | structured local peer audit | merge-gating eligible after setup |
446
- | Gitar | advisory third signal | informational until calibrated |
447
469
 
448
- Everything else starts manual or informational until your own calibration data
449
- proves it is useful: Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
470
+ Everything else is opt-in after the Claude + Codex loop works and stays manual
471
+ or informational until your own calibration data proves it is useful: Gitar,
472
+ Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
450
473
  BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
451
474
 
452
475
  Gemini CLI and Antigravity are distinct lane ids even though both are Google
@@ -484,8 +507,8 @@ measurement work.
484
507
 
485
508
  ## Installation Status
486
509
 
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
510
+ The current package-index release baseline is `v1.0.10`, with pinned package
511
+ install spec `code-mower==1.0.10`. Release evidence is recorded on the GitHub
489
512
  release and in the first-user install rehearsal. The public repository is
490
513
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
491
514
  GitHub releases remain the auditable source for tags, build artifacts, and
@@ -520,8 +543,9 @@ first so local work exercises the same package entrypoint users install.
520
543
  conservative and team-controlled while automated retention jobs are roadmap
521
544
  work.
522
545
  - 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.
546
+ `code-mower --help-all`. The default help path stays focused on setup,
547
+ `next-steps`, lane status, and local evidence; calibration and cloud commands
548
+ remain available through `--help-all`.
525
549
 
526
550
  ## Docs Map
527
551
 
@@ -541,6 +565,7 @@ first so local work exercises the same package entrypoint users install.
541
565
  - [Claude Lane Standing Instructions](docs/lanes/claude.md)
542
566
  - [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
543
567
  - [Provider Matrix](docs/provider-matrix.md)
568
+ - [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
544
569
  - [GitHub Setup](docs/github-setup.md)
545
570
  - [First Run Transcript](docs/first-run-transcript.md)
546
571
  - [First-User Demo Transcript](docs/first-user-demo-transcript.md)
@@ -561,6 +586,7 @@ first so local work exercises the same package entrypoint users install.
561
586
  - [v1.0.7 Release Notes](docs/v107-release-notes.md)
562
587
  - [v1.0.8 Release Notes](docs/v108-release-notes.md)
563
588
  - [v1.0.9 Release Notes](docs/v109-release-notes.md)
589
+ - [v1.0.10 Release Notes](docs/v1010-release-notes.md)
564
590
  - [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
565
591
  - [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
566
592
  - [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.10/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,11 @@ 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.
236
258
  Package-only users can start from the public package rather than a source
237
259
  checkout.
238
260
 
@@ -265,7 +287,7 @@ Provider-contract baseline for the next release train:
265
287
 
266
288
  For release verification,
267
289
  [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
290
+ the package-index procedure for `v1.0.10` / `code-mower==1.0.10`. The
269
291
  GitHub release records the workflow and rehearsal evidence for the exact tag.
270
292
  After publication, [Release Qualification](docs/release-qualification.md)
271
293
  coordinates provider-specific install and operational checks without treating
@@ -328,10 +350,11 @@ optional work order, single-writer branch, reviewer lanes, and fix rounds. Code
328
350
  Mower's templates now support that loop end to end; humans still own
329
351
  credentials, branch protection, calibration, and owner decisions.
330
352
 
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.
353
+ The initial adoption shape uses Claude Code or Codex as orchestrator, builder,
354
+ and peer reviewer. The owning builder remains the only writer, and the other
355
+ provider supplies independent review. Other builders and reviewers are explicit
356
+ later additions; they follow the same lane policy with provider-specific
357
+ execution and authentication where needed.
335
358
 
336
359
  ## Why Not Just Run Codex Or Claude Yourself?
337
360
 
@@ -413,10 +436,10 @@ The first recommended lanes are local/manual:
413
436
  | --- | --- | --- |
414
437
  | Codex audit | structured local peer audit | merge-gating eligible after setup |
415
438
  | Claude audit | structured local peer audit | merge-gating eligible after setup |
416
- | Gitar | advisory third signal | informational until calibrated |
417
439
 
418
- Everything else starts manual or informational until your own calibration data
419
- proves it is useful: Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
440
+ Everything else is opt-in after the Claude + Codex loop works and stays manual
441
+ or informational until your own calibration data proves it is useful: Gitar,
442
+ Antigravity/Gemini, Muse, Hermes, CodeRabbit CLI, Cursor
420
443
  BugBot, Qodo, Greptile, Devin, local LLMs, and future ACP bridges.
421
444
 
422
445
  Gemini CLI and Antigravity are distinct lane ids even though both are Google
@@ -454,8 +477,8 @@ measurement work.
454
477
 
455
478
  ## Installation Status
456
479
 
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
480
+ The current package-index release baseline is `v1.0.10`, with pinned package
481
+ install spec `code-mower==1.0.10`. Release evidence is recorded on the GitHub
459
482
  release and in the first-user install rehearsal. The public repository is
460
483
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
461
484
  GitHub releases remain the auditable source for tags, build artifacts, and
@@ -490,8 +513,9 @@ first so local work exercises the same package entrypoint users install.
490
513
  conservative and team-controlled while automated retention jobs are roadmap
491
514
  work.
492
515
  - 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.
516
+ `code-mower --help-all`. The default help path stays focused on setup,
517
+ `next-steps`, lane status, and local evidence; calibration and cloud commands
518
+ remain available through `--help-all`.
495
519
 
496
520
  ## Docs Map
497
521
 
@@ -511,6 +535,7 @@ first so local work exercises the same package entrypoint users install.
511
535
  - [Claude Lane Standing Instructions](docs/lanes/claude.md)
512
536
  - [Cursor Hosted Lane Standing Instructions](docs/lanes/cursor.md)
513
537
  - [Provider Matrix](docs/provider-matrix.md)
538
+ - [Provider Calibration Scorecard](docs/provider-calibration-scorecard.md)
514
539
  - [GitHub Setup](docs/github-setup.md)
515
540
  - [First Run Transcript](docs/first-run-transcript.md)
516
541
  - [First-User Demo Transcript](docs/first-user-demo-transcript.md)
@@ -531,6 +556,7 @@ first so local work exercises the same package entrypoint users install.
531
556
  - [v1.0.7 Release Notes](docs/v107-release-notes.md)
532
557
  - [v1.0.8 Release Notes](docs/v108-release-notes.md)
533
558
  - [v1.0.9 Release Notes](docs/v109-release-notes.md)
559
+ - [v1.0.10 Release Notes](docs/v1010-release-notes.md)
534
560
  - [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
535
561
  - [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
536
562
  - [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.10"
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.10"
@@ -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