code-mower 0.5.0b31__tar.gz → 0.5.0b32__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 (273) hide show
  1. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/PKG-INFO +27 -13
  2. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/README.md +26 -12
  3. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/pyproject.toml +1 -1
  4. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/__init__.py +1 -1
  5. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cli.py +1 -1
  6. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/bundle.py +1 -0
  7. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/work_orders.py +763 -9
  8. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/PKG-INFO +27 -13
  9. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_cloud_client.py +54 -1
  10. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_local_cli.py +2 -2
  11. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_release_hygiene.py +34 -34
  12. code_mower-0.5.0b32/tests/test_work_orders.py +689 -0
  13. code_mower-0.5.0b31/tests/test_work_orders.py +0 -320
  14. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/CODE_OF_CONDUCT.md +0 -0
  15. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/LICENSE +0 -0
  16. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/MANIFEST.in +0 -0
  17. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/NOTICE +0 -0
  18. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/SUPPORT.md +0 -0
  19. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/requirements/requirements.txt +0 -0
  20. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/setup.cfg +0 -0
  21. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/__init__.py +0 -0
  22. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/_base.py +0 -0
  23. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/cursor_bugbot.py +0 -0
  24. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/gitar.py +0 -0
  25. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/greptile.py +0 -0
  26. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/adapters/qodo.py +0 -0
  27. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
  28. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/audit_handoff_log.py +0 -0
  29. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/audit_labeler_lib.py +0 -0
  30. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/audit_progress.py +0 -0
  31. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/blind_review_artifacts.py +0 -0
  32. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/blind_review_coordinator.py +0 -0
  33. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/bootstrap.py +0 -0
  34. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/builder_experiment.py +0 -0
  35. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/__init__.py +0 -0
  36. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/arms.py +0 -0
  37. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/auto_discovery.py +0 -0
  38. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/commands.py +0 -0
  39. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/context_inputs.py +0 -0
  40. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/corpus.py +0 -0
  41. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/effect_report.py +0 -0
  42. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/evidence.py +0 -0
  43. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/evidence_report.py +0 -0
  44. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/identity.py +0 -0
  45. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/metrics.py +0 -0
  46. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/overlap.py +0 -0
  47. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/planning.py +0 -0
  48. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/policy.py +0 -0
  49. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/results.py +0 -0
  50. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/run_results.py +0 -0
  51. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/run_status.py +0 -0
  52. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/runner.py +0 -0
  53. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/truth.py +0 -0
  54. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/calibration/value_report.py +0 -0
  55. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/checks.py +0 -0
  56. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/claude_audit_pr.py +0 -0
  57. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/claude_cli_bounce.py +0 -0
  58. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/claude_cli_environment.py +0 -0
  59. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/clear_stale.py +0 -0
  60. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud.py +0 -0
  61. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/__init__.py +0 -0
  62. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/doctor.py +0 -0
  63. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/dogfood.py +0 -0
  64. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/endpoints.py +0 -0
  65. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/errors.py +0 -0
  66. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/events.py +0 -0
  67. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/export.py +0 -0
  68. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/git_metadata.py +0 -0
  69. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/manifest.py +0 -0
  70. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/operations.py +0 -0
  71. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/reports.py +0 -0
  72. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/setup.py +0 -0
  73. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/cloud_client/upload.py +0 -0
  74. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/code_mower_calibration.py +0 -0
  75. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/code_mower_context_packs.py +0 -0
  76. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/code_mower_merge.py +0 -0
  77. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/code_mower_telemetry.py +0 -0
  78. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
  79. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/codex_audit_env_preflight.py +0 -0
  80. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/codex_audit_pr.py +0 -0
  81. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/codex_audit_schema_smoke.py +0 -0
  82. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/codex_audit_verdict.schema.json +0 -0
  83. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/config.py +0 -0
  84. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor.py +0 -0
  85. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/__init__.py +0 -0
  86. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/cloud.py +0 -0
  87. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/common.py +0 -0
  88. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github.py +0 -0
  89. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions.py +0 -0
  90. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
  91. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
  92. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
  93. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
  94. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
  95. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
  96. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
  97. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
  98. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_api.py +0 -0
  99. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_branch.py +0 -0
  100. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_config.py +0 -0
  101. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_provider.py +0 -0
  102. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/github_repo.py +0 -0
  103. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/groups.py +0 -0
  104. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/models.py +0 -0
  105. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/output.py +0 -0
  106. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/presets.py +0 -0
  107. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/privacy.py +0 -0
  108. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
  109. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
  110. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
  111. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_env.py +0 -0
  112. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
  113. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
  114. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_local_cli.py +0 -0
  115. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
  116. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
  117. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_probe.py +0 -0
  118. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
  119. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
  120. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
  121. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
  122. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
  123. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/providers.py +0 -0
  124. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/registry.py +0 -0
  125. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/runner.py +0 -0
  126. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/runtime.py +0 -0
  127. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
  128. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/gemini_cli_audit_pr.py +0 -0
  129. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/hermes_cli_audit_pr.py +0 -0
  130. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/init.py +0 -0
  131. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/__init__.py +0 -0
  132. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/aider.py +0 -0
  133. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
  134. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/claude.py +0 -0
  135. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/codex.py +0 -0
  136. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/devin.py +0 -0
  137. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/gemini_cli.py +0 -0
  138. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/hermes_cli.py +0 -0
  139. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/lane_configs/local_llm.py +0 -0
  140. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/local_llm_audit_pr.py +0 -0
  141. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/local_llm_bakeoff.py +0 -0
  142. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/local_llm_calibration.py +0 -0
  143. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/local_llm_profiles.py +0 -0
  144. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/migration.py +0 -0
  145. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/migration_install.py +0 -0
  146. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/migration_mirror.py +0 -0
  147. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/migration_readiness.py +0 -0
  148. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/migration_rehearsal.py +0 -0
  149. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/next_steps.py +0 -0
  150. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package.py +0 -0
  151. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package_content.py +0 -0
  152. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package_manifest.py +0 -0
  153. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package_paths.py +0 -0
  154. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package_rendering.py +0 -0
  155. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/package_static.py +0 -0
  156. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/prompts.py +0 -0
  157. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_registry.py +0 -0
  158. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/__init__.py +0 -0
  159. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/comments.py +0 -0
  160. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/git.py +0 -0
  161. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/github_auth.py +0 -0
  162. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/github_pr.py +0 -0
  163. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/pr_worktree.py +0 -0
  164. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/process.py +0 -0
  165. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/repo_paths.py +0 -0
  166. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/text_schema.py +0 -0
  167. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
  168. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/provider_runners/workspace.py +0 -0
  169. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/providers/__init__.py +0 -0
  170. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/providers/local_cli.py +0 -0
  171. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/providers/provenance.py +0 -0
  172. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/release_readiness.py +0 -0
  173. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/reviewer_metrics.py +0 -0
  174. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/saas_reviewer_labeler.py +0 -0
  175. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/secrets.py +0 -0
  176. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/builder-experiment.example.json +0 -0
  177. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/calibration-corpus.example.json +0 -0
  178. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/calibration-corpus.json +0 -0
  179. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/code-mower.example.yml +0 -0
  180. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/context-packs.example.json +0 -0
  181. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
  182. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
  183. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
  184. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
  185. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
  186. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/operability.md +0 -0
  187. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
  188. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
  189. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/code_mower +0 -0
  190. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
  191. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
  192. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
  193. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
  194. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
  195. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/providers.yml +0 -0
  196. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/reviewer-spend.example.json +0 -0
  197. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
  198. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  199. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
  200. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/local-cli-audit.yml.j2 +0 -0
  201. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  202. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
  203. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  204. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  205. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/trailer_comment_labeler.py +0 -0
  206. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower/versioning.py +0 -0
  207. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/SOURCES.txt +0 -0
  208. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/dependency_links.txt +0 -0
  209. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/entry_points.txt +0 -0
  210. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/requires.txt +0 -0
  211. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/src/code_mower.egg-info/top_level.txt +0 -0
  212. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/builder-experiment.example.json +0 -0
  213. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/calibration-corpus.example.json +0 -0
  214. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/calibration-corpus.json +0 -0
  215. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/code-mower.yml.j2 +0 -0
  216. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/context-packs.example.json +0 -0
  217. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/cursor/BUGBOT.md +0 -0
  218. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/acp_bridge.yml +0 -0
  219. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/aider.yml +0 -0
  220. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/antigravity_cli.yml +0 -0
  221. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/claude_audit.yml +0 -0
  222. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/claude_review.yml +0 -0
  223. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/coderabbit_cli.yml +0 -0
  224. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/codex.yml +0 -0
  225. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/cursor_bugbot.yml +0 -0
  226. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/devin.yml +0 -0
  227. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/gemini_cli.yml +0 -0
  228. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/gitar.yml +0 -0
  229. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/greptile.yml +0 -0
  230. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/hermes_cli.yml +0 -0
  231. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/local_llm.yml +0 -0
  232. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers/qodo.yml +0 -0
  233. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/providers.yml +0 -0
  234. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/reviewer-spend.example.json +0 -0
  235. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/reviewer-value-report.example.md +0 -0
  236. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  237. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
  238. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/hosted-bridge.yml.j2 +0 -0
  239. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/local-cli-audit.yml.j2 +0 -0
  240. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  241. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/review-clear-stale.yml.j2 +0 -0
  242. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  243. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  244. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_calibration_effect_report.py +0 -0
  245. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_calibration_truth.py +0 -0
  246. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_checks.py +0 -0
  247. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_claude_cli_bounce.py +0 -0
  248. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_clear_stale.py +0 -0
  249. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_cloud_git_metadata.py +0 -0
  250. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_cloud_manifest.py +0 -0
  251. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_cloud_reports.py +0 -0
  252. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_coderabbit_cli_audit_pr.py +0 -0
  253. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_actions_cost_summary.py +0 -0
  254. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_actions_failure_selection.py +0 -0
  255. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_boundaries.py +0 -0
  256. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_github_checks.py +0 -0
  257. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_output.py +0 -0
  258. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_privacy.py +0 -0
  259. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_provider_env_required.py +0 -0
  260. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_provider_env_tokens.py +0 -0
  261. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_provider_probe.py +0 -0
  262. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_provider_review_hygiene.py +0 -0
  263. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_doctor_registry.py +0 -0
  264. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_local_llm_github_helpers.py +0 -0
  265. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_comments.py +0 -0
  266. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_git.py +0 -0
  267. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_github_pr.py +0 -0
  268. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_pr_worktree.py +0 -0
  269. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_process.py +0 -0
  270. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_repo_paths.py +0 -0
  271. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_text_schema.py +0 -0
  272. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_provider_runners_workspace.py +0 -0
  273. {code_mower-0.5.0b31 → code_mower-0.5.0b32}/tests/test_reviewer_metrics_core.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-mower
3
- Version: 0.5.0b31
3
+ Version: 0.5.0b32
4
4
  Summary: Multi-reviewer AI code audit orchestration
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.11
@@ -103,11 +103,11 @@ Code Mower currently targets Python 3.11+; Python 3.12 is recommended.
103
103
 
104
104
  ```bash
105
105
  python3.12 --version
106
- pipx install --python python3.12 code-mower==0.5.0b31
106
+ pipx install --python python3.12 code-mower==0.5.0b32
107
107
  code-mower --version
108
108
  ```
109
109
 
110
- `0.5.0b31` is a beta release. Until Code Mower publishes a stable `1.0`
110
+ `0.5.0b32` is a beta release. Until Code Mower publishes a stable `1.0`
111
111
  line, use the explicit beta version above or allow prereleases with:
112
112
 
113
113
  ```bash
@@ -150,7 +150,7 @@ First-time command map: [docs/launch-command-surface.md](docs/launch-command-sur
150
150
 
151
151
  The current PyPI beta has been rehearsed end-to-end from a clean install:
152
152
  [First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
153
- the latest 10/10 public-package readiness proof for `code-mower==0.5.0b31`.
153
+ the latest 10/10 public-package readiness proof for `code-mower==0.5.0b32`.
154
154
 
155
155
  ## Optional: Plan Before Coding
156
156
 
@@ -160,19 +160,33 @@ surface, then keep pull requests focused on code review and merge readiness:
160
160
  ```bash
161
161
  code-mower project-context init --project-name "My Product"
162
162
  code-mower context add --external ~/Downloads/product-requirements.md
163
- code-mower plan from-issue \
164
- --repo OWNER/REPO \
165
- --title "Add billing settings" \
166
- --body-file issue-body.md \
163
+ code-mower plan from-github-issue OWNER/REPO#123 \
167
164
  --output .code-mower/work-orders/billing-settings-plan.md
168
165
  code-mower work-order draft \
169
166
  --issue-plan .code-mower/work-orders/billing-settings-plan.md \
170
167
  --output .code-mower/work-orders/billing-settings.md
171
168
  ```
172
169
 
173
- The work-order path is local-only by default. External docs are recorded as
174
- metadata manifests unless you explicitly ask for bounded previews. See
175
- [docs/planning-work-orders.md](docs/planning-work-orders.md).
170
+ The GitHub issue remains the source of truth. The local plan and work order are
171
+ derived working artifacts, and `work-order draft` also writes a metadata-only
172
+ `*.cloud-event.json` sidecar that can tie later builder/reviewer evidence back
173
+ to the issue on CodeMower.com. That sidecar excludes source, raw diffs, raw
174
+ transcripts, stdout/stderr, auth output, secrets, and issue body text. External
175
+ docs are recorded as metadata manifests unless you explicitly ask for bounded
176
+ previews. See [docs/planning-work-orders.md](docs/planning-work-orders.md).
177
+
178
+ After a PR exists, attach source-free delivery metadata to the same sidecar:
179
+
180
+ ```bash
181
+ code-mower work-order attach-delivery \
182
+ .code-mower/work-orders/billing-settings.cloud-event.json \
183
+ --pr OWNER/REPO#124 \
184
+ --from-github
185
+ ```
186
+
187
+ That lets CodeMower.com show `issue -> plan -> work order -> PR -> reviewer
188
+ checks -> merge` lineage without receiving source, diffs, transcripts, or issue
189
+ body text.
176
190
 
177
191
  ## Why Not Just Run Codex Or Claude Yourself?
178
192
 
@@ -277,9 +291,9 @@ best?" to "which AI builder plus reviewer loop ships best on this product?" See
277
291
 
278
292
  ## Installation Status
279
293
 
280
- The current public beta is `v0.5.0-beta.31` from
294
+ The current public beta is `v0.5.0-beta.32` from
281
295
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), published
282
- as `code-mower==0.5.0b31` on [PyPI](https://pypi.org/project/code-mower/).
296
+ as `code-mower==0.5.0b32` on [PyPI](https://pypi.org/project/code-mower/).
283
297
  GitHub releases remain the auditable source for tags, build artifacts, and
284
298
  release notes.
285
299
 
@@ -88,11 +88,11 @@ Code Mower currently targets Python 3.11+; Python 3.12 is recommended.
88
88
 
89
89
  ```bash
90
90
  python3.12 --version
91
- pipx install --python python3.12 code-mower==0.5.0b31
91
+ pipx install --python python3.12 code-mower==0.5.0b32
92
92
  code-mower --version
93
93
  ```
94
94
 
95
- `0.5.0b31` is a beta release. Until Code Mower publishes a stable `1.0`
95
+ `0.5.0b32` is a beta release. Until Code Mower publishes a stable `1.0`
96
96
  line, use the explicit beta version above or allow prereleases with:
97
97
 
98
98
  ```bash
@@ -135,7 +135,7 @@ First-time command map: [docs/launch-command-surface.md](docs/launch-command-sur
135
135
 
136
136
  The current PyPI beta has been rehearsed end-to-end from a clean install:
137
137
  [First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
138
- the latest 10/10 public-package readiness proof for `code-mower==0.5.0b31`.
138
+ the latest 10/10 public-package readiness proof for `code-mower==0.5.0b32`.
139
139
 
140
140
  ## Optional: Plan Before Coding
141
141
 
@@ -145,19 +145,33 @@ surface, then keep pull requests focused on code review and merge readiness:
145
145
  ```bash
146
146
  code-mower project-context init --project-name "My Product"
147
147
  code-mower context add --external ~/Downloads/product-requirements.md
148
- code-mower plan from-issue \
149
- --repo OWNER/REPO \
150
- --title "Add billing settings" \
151
- --body-file issue-body.md \
148
+ code-mower plan from-github-issue OWNER/REPO#123 \
152
149
  --output .code-mower/work-orders/billing-settings-plan.md
153
150
  code-mower work-order draft \
154
151
  --issue-plan .code-mower/work-orders/billing-settings-plan.md \
155
152
  --output .code-mower/work-orders/billing-settings.md
156
153
  ```
157
154
 
158
- The work-order path is local-only by default. External docs are recorded as
159
- metadata manifests unless you explicitly ask for bounded previews. See
160
- [docs/planning-work-orders.md](docs/planning-work-orders.md).
155
+ The GitHub issue remains the source of truth. The local plan and work order are
156
+ derived working artifacts, and `work-order draft` also writes a metadata-only
157
+ `*.cloud-event.json` sidecar that can tie later builder/reviewer evidence back
158
+ to the issue on CodeMower.com. That sidecar excludes source, raw diffs, raw
159
+ transcripts, stdout/stderr, auth output, secrets, and issue body text. External
160
+ docs are recorded as metadata manifests unless you explicitly ask for bounded
161
+ previews. See [docs/planning-work-orders.md](docs/planning-work-orders.md).
162
+
163
+ After a PR exists, attach source-free delivery metadata to the same sidecar:
164
+
165
+ ```bash
166
+ code-mower work-order attach-delivery \
167
+ .code-mower/work-orders/billing-settings.cloud-event.json \
168
+ --pr OWNER/REPO#124 \
169
+ --from-github
170
+ ```
171
+
172
+ That lets CodeMower.com show `issue -> plan -> work order -> PR -> reviewer
173
+ checks -> merge` lineage without receiving source, diffs, transcripts, or issue
174
+ body text.
161
175
 
162
176
  ## Why Not Just Run Codex Or Claude Yourself?
163
177
 
@@ -262,9 +276,9 @@ best?" to "which AI builder plus reviewer loop ships best on this product?" See
262
276
 
263
277
  ## Installation Status
264
278
 
265
- The current public beta is `v0.5.0-beta.31` from
279
+ The current public beta is `v0.5.0-beta.32` from
266
280
  [codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), published
267
- as `code-mower==0.5.0b31` on [PyPI](https://pypi.org/project/code-mower/).
281
+ as `code-mower==0.5.0b32` on [PyPI](https://pypi.org/project/code-mower/).
268
282
  GitHub releases remain the auditable source for tags, build artifacts, and
269
283
  release notes.
270
284
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code-mower"
7
- version = "0.5.0b31"
7
+ version = "0.5.0b32"
8
8
  description = "Multi-reviewer AI code audit orchestration"
9
9
  requires-python = ">=3.11"
10
10
  readme = "README.md"
@@ -1,3 +1,3 @@
1
1
  """Code Mower package."""
2
2
 
3
- __version__ = "0.5.0b31"
3
+ __version__ = "0.5.0b32"
@@ -14,7 +14,7 @@ from pathlib import Path
14
14
  if __package__ in {None, ""}:
15
15
  raise SystemExit(
16
16
  "code_mower.cli is a packaged entrypoint. Install Code Mower with "
17
- "`pipx install code-mower==0.5.0b31`, or run source checkouts with "
17
+ "`pipx install code-mower==0.5.0b32`, or run source checkouts with "
18
18
  "`PYTHONPATH=src python -m code_mower.cli`."
19
19
  )
20
20
 
@@ -28,6 +28,7 @@ SAFE_EVENT_TYPES = {
28
28
  "provider_catalog_snapshot",
29
29
  "reviewer_run",
30
30
  "value_report_snapshot",
31
+ "work_order",
31
32
  "workflow_run",
32
33
  }
33
34
  EXCLUDED_CONTENT = (