bpsai-pair 2.35.1__tar.gz → 2.35.2__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 (1080) hide show
  1. {bpsai_pair-2.35.1/bpsai_pair.egg-info → bpsai_pair-2.35.2}/PKG-INFO +8 -2
  2. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/README.md +7 -1
  3. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/__init__.py +6 -0
  4. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/bugfix/bf-001.json +19 -0
  5. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/bugfix/bf-002.json +19 -0
  6. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/chore/ch-001.json +19 -0
  7. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/chore/ch-002.json +19 -0
  8. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/plan-draft/pd-001.json +1 -1
  9. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/plan-draft/pd-002.json +1 -1
  10. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/plan-draft/pd-003.json +1 -1
  11. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/security-audit/sa-001.json +1 -1
  12. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/security-audit/sa-002.json +1 -1
  13. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/feature}/iwt-001.json +1 -1
  14. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/feature}/iwt-002.json +1 -1
  15. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/feature}/iwt-003.json +1 -1
  16. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/refactor/rf-001.json +19 -0
  17. bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/refactor/rf-002.json +19 -0
  18. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures/code-review → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/review}/cr-001.json +2 -2
  19. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures/code-review → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/review}/cr-002.json +2 -2
  20. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/task_set.py +65 -16
  21. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/divona.md +5 -1
  22. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/reference/all-cli-commands.md +1 -1
  23. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/scripts/bootstrap-remote.sh +1 -1
  24. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/benchmark_seed.py +2 -1
  25. bpsai_pair-2.35.2/bpsai_pair/feedback/task_type_aliases.py +26 -0
  26. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2/bpsai_pair.egg-info}/PKG-INFO +8 -2
  27. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair.egg-info/SOURCES.txt +19 -12
  28. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/pyproject.toml +1 -1
  29. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/LICENSE +0 -0
  30. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/MANIFEST.in +0 -0
  31. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/__init__.py +0 -0
  32. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/__main__.py +0 -0
  33. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/agent_archetypes.py +0 -0
  34. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/__init__.py +0 -0
  35. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/checks.py +0 -0
  36. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/dispatch.py +0 -0
  37. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/engine.py +0 -0
  38. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/content-draft/cd-001.json +0 -0
  39. {bpsai_pair-2.35.1/bpsai_pair/benchmarks/matrix/fixtures → bpsai_pair-2.35.2/bpsai_pair/benchmarks/matrix/fixtures/extended}/content-draft/cd-002.json +0 -0
  40. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/io.py +0 -0
  41. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/models.py +0 -0
  42. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/schema.py +0 -0
  43. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/matrix/scorer.py +0 -0
  44. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/reports.py +0 -0
  45. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/runner.py +0 -0
  46. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/benchmarks/validation.py +0 -0
  47. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/cli.py +0 -0
  48. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/cli_registration.py +0 -0
  49. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/cli_startup.py +0 -0
  50. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/__init__.py +0 -0
  51. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/advisory.py +0 -0
  52. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch.py +0 -0
  53. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch_display.py +0 -0
  54. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch_handler_length.py +0 -0
  55. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch_lint_commands.py +0 -0
  56. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch_provenance.py +0 -0
  57. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/arch_wiring.py +0 -0
  58. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/artifact_ownership.py +0 -0
  59. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/audit.py +0 -0
  60. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/benchmark.py +0 -0
  61. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/benchmark_cli_helpers.py +0 -0
  62. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/benchmark_matrix_helpers.py +0 -0
  63. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/budget.py +0 -0
  64. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/budget_programmatic.py +0 -0
  65. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/cache.py +0 -0
  66. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/calibration.py +0 -0
  67. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/calibration_helpers.py +0 -0
  68. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/capabilities_merge.py +0 -0
  69. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/claude_md_merge.py +0 -0
  70. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/compaction_commands.py +0 -0
  71. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/config.py +0 -0
  72. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/config_cmd.py +0 -0
  73. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/containment_checkpoint.py +0 -0
  74. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/containment_commands.py +0 -0
  75. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/containment_session.py +0 -0
  76. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/context_commands.py +0 -0
  77. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/core.py +0 -0
  78. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/doctor.py +0 -0
  79. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/doctor_checks.py +0 -0
  80. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/enforce.py +0 -0
  81. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/enforce_containment.py +0 -0
  82. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/enforce_state_edit.py +0 -0
  83. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/enforce_task_edit.py +0 -0
  84. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage.py +0 -0
  85. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_base.py +0 -0
  86. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_base_cache.py +0 -0
  87. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_branch.py +0 -0
  88. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_branch_multi.py +0 -0
  89. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_checkout_restore.py +0 -0
  90. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_cross_base.py +0 -0
  91. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_cross_module.py +0 -0
  92. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_dry_run.py +0 -0
  93. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_entry.py +0 -0
  94. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_executor.py +0 -0
  95. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_feasibility_gate.py +0 -0
  96. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_graph_build.py +0 -0
  97. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_guard_checks.py +0 -0
  98. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_guards.py +0 -0
  99. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_navigator.py +0 -0
  100. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_p2_surface.py +0 -0
  101. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_pause_resume.py +0 -0
  102. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_plan_id.py +0 -0
  103. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_pr.py +0 -0
  104. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_pr_body_cap.py +0 -0
  105. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_pr_multi.py +0 -0
  106. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_pre_dispatch_boundary.py +0 -0
  107. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_preflight.py +0 -0
  108. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_qa_multi.py +0 -0
  109. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_result.py +0 -0
  110. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_resume.py +0 -0
  111. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_resume_integrity.py +0 -0
  112. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_run_context.py +0 -0
  113. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_security.py +0 -0
  114. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_sibling_setup.py +0 -0
  115. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_sweep.py +0 -0
  116. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_target_repo.py +0 -0
  117. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_worktree.py +0 -0
  118. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/engage_worktree_guards.py +0 -0
  119. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/feedback.py +0 -0
  120. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/feedback_helpers.py +0 -0
  121. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/fleet_audit.py +0 -0
  122. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/fleet_check.py +0 -0
  123. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/fleet_upgrade_result.py +0 -0
  124. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/fleet_upgrade_transaction.py +0 -0
  125. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/fleet_workflow_audit.py +0 -0
  126. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/gitignore.py +0 -0
  127. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/init_commands.py +0 -0
  128. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/init_feature.py +0 -0
  129. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/init_repo.py +0 -0
  130. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/license.py +0 -0
  131. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/license_display.py +0 -0
  132. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/license_helpers.py +0 -0
  133. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/mcp.py +0 -0
  134. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/metrics/__init__.py +0 -0
  135. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/metrics/analysis_commands.py +0 -0
  136. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/metrics/burndown_command.py +0 -0
  137. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/metrics/helpers.py +0 -0
  138. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/metrics/summary_commands.py +0 -0
  139. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/orchestrate.py +0 -0
  140. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/orchestrate_evaluate.py +0 -0
  141. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm.py +0 -0
  142. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_crud.py +0 -0
  143. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_diagnostics.py +0 -0
  144. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_helpers.py +0 -0
  145. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_hierarchy_cmd.py +0 -0
  146. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_migrate.py +0 -0
  147. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/pm_sprint.py +0 -0
  148. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/preflight.py +0 -0
  149. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/preset.py +0 -0
  150. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/prime_learn.py +0 -0
  151. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/provider_command.py +0 -0
  152. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/provider_presets.py +0 -0
  153. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/qc_commands.py +0 -0
  154. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/query.py +0 -0
  155. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/review.py +0 -0
  156. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/review_sprint_cmd.py +0 -0
  157. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/security.py +0 -0
  158. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/session.py +0 -0
  159. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/session_check.py +0 -0
  160. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/session_status.py +0 -0
  161. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/setup_commands.py +0 -0
  162. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/state.py +0 -0
  163. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/state_anchors.py +0 -0
  164. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/state_fence.py +0 -0
  165. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/state_validation.py +0 -0
  166. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/status_derive.py +0 -0
  167. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/status_handoff.py +0 -0
  168. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/status_render.py +0 -0
  169. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/subscription.py +0 -0
  170. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/support.py +0 -0
  171. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/sweep_command.py +0 -0
  172. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/sweep_helpers.py +0 -0
  173. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/system.py +0 -0
  174. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry.py +0 -0
  175. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_aggregate_cmd.py +0 -0
  176. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_archive_cmd.py +0 -0
  177. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_display.py +0 -0
  178. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_export.py +0 -0
  179. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_helpers.py +0 -0
  180. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_log_failure.py +0 -0
  181. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/telemetry_log_lifecycle.py +0 -0
  182. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/timer.py +0 -0
  183. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade.py +0 -0
  184. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_agent_removal.py +0 -0
  185. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_config_write.py +0 -0
  186. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_containment.py +0 -0
  187. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_display.py +0 -0
  188. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_execute.py +0 -0
  189. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_fleet_sync.py +0 -0
  190. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_helpers.py +0 -0
  191. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_prompt.py +0 -0
  192. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_skill_removal.py +0 -0
  193. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_source_repo.py +0 -0
  194. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/upgrade_state_fence.py +0 -0
  195. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/validate_runner.py +0 -0
  196. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/validation_commands.py +0 -0
  197. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/version_consistency.py +0 -0
  198. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/wizard.py +0 -0
  199. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workflow_md_generator.py +0 -0
  200. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workflow_md_plan.py +0 -0
  201. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace.py +0 -0
  202. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_helpers.py +0 -0
  203. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_impact.py +0 -0
  204. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_index_cmd.py +0 -0
  205. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_init_helpers.py +0 -0
  206. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_init_project.py +0 -0
  207. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_repos.py +0 -0
  208. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_setup_permissions.py +0 -0
  209. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/commands/workspace_validate.py +0 -0
  210. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/compaction.py +0 -0
  211. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/compaction_events.py +0 -0
  212. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/compaction_helpers.py +0 -0
  213. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/compaction_models.py +0 -0
  214. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/compaction_recovery.py +0 -0
  215. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/__init__.py +0 -0
  216. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/ac_claims.py +0 -0
  217. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/ac_semantics.py +0 -0
  218. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/ac_substance_check.py +0 -0
  219. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/ac_substance_gate.py +0 -0
  220. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/pipeline.py +0 -0
  221. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/policy.py +0 -0
  222. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/completion/store.py +0 -0
  223. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/context/__init__.py +0 -0
  224. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/context/cache.py +0 -0
  225. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/context/freshness.py +0 -0
  226. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/context/loader.py +0 -0
  227. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/__init__.py +0 -0
  228. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/arch_headroom.py +0 -0
  229. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/arch_prescan.py +0 -0
  230. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/budget_heuristic.py +0 -0
  231. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/bypass_log.py +0 -0
  232. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/cache_paths.py +0 -0
  233. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ci_gate.py +0 -0
  234. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/claude_paths.py +0 -0
  235. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/cli_command_tree.py +0 -0
  236. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config.py +0 -0
  237. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_architecture.py +0 -0
  238. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_containment.py +0 -0
  239. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_defaults.py +0 -0
  240. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_helpers.py +0 -0
  241. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_loader.py +0 -0
  242. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_profiles.py +0 -0
  243. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_templates.py +0 -0
  244. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_validation.py +0 -0
  245. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/config_validator.py +0 -0
  246. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/constants.py +0 -0
  247. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/deprecation.py +0 -0
  248. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/encoding.py +0 -0
  249. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/encoding_lint.py +0 -0
  250. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement.py +0 -0
  251. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_analyzer.py +0 -0
  252. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_checker.py +0 -0
  253. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_components.py +0 -0
  254. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_functions.py +0 -0
  255. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_hub.py +0 -0
  256. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_imports.py +0 -0
  257. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_limits.py +0 -0
  258. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_models.py +0 -0
  259. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_split_suggest.py +0 -0
  260. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enforcement_utils.py +0 -0
  261. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/engage_ac_sidecar.py +0 -0
  262. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/engage_task_start.py +0 -0
  263. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enrichment_helpers.py +0 -0
  264. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/enrichment_hooks.py +0 -0
  265. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/file_role_detector.py +0 -0
  266. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/gate_executor.py +0 -0
  267. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/gate_hooks.py +0 -0
  268. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/glob_match.py +0 -0
  269. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/handler_baseline.py +0 -0
  270. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/handler_lint.py +0 -0
  271. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_budget.py +0 -0
  272. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_budget_programmatic.py +0 -0
  273. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_handlers.py +0 -0
  274. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_metrics.py +0 -0
  275. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_pm.py +0 -0
  276. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_routing.py +0 -0
  277. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_state.py +0 -0
  278. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_trello.py +0 -0
  279. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hook_types.py +0 -0
  280. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/hooks.py +0 -0
  281. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/line_count_mode.py +0 -0
  282. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/line_metrics.py +0 -0
  283. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/model_id_lint.py +0 -0
  284. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops.py +0 -0
  285. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops_ci.py +0 -0
  286. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops_context.py +0 -0
  287. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops_feature.py +0 -0
  288. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops_git.py +0 -0
  289. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/ops_project.py +0 -0
  290. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/orchestration_hooks.py +0 -0
  291. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/preconditions.py +0 -0
  292. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/preferences.py +0 -0
  293. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/preset_config.py +0 -0
  294. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/preset_definitions.py +0 -0
  295. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/presets.py +0 -0
  296. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/profile_resolver.py +0 -0
  297. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/programmatic_credit_state.py +0 -0
  298. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/programmatic_credit_validator.py +0 -0
  299. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/provenance_lint.py +0 -0
  300. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/randomization_log.py +0 -0
  301. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/reachability_ast.py +0 -0
  302. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/reachability_lint.py +0 -0
  303. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/readonly_commands.py +0 -0
  304. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/routing.py +0 -0
  305. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/subprocess_lint.py +0 -0
  306. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/task_acceptance.py +0 -0
  307. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/task_ready.py +0 -0
  308. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/task_state.py +0 -0
  309. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/core/utils.py +0 -0
  310. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/__init__.py +0 -0
  311. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/containment_section.md +0 -0
  312. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/README.md +0 -0
  313. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/cookiecutter.json +0 -0
  314. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +0 -0
  315. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agent-memory/bellona/MEMORY.md +0 -0
  316. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agent-memory/driver/MEMORY.md +0 -0
  317. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agent-memory/laverna/MEMORY.md +0 -0
  318. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agent-memory/navigator/MEMORY.md +0 -0
  319. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agent-memory/nayru/MEMORY.md +0 -0
  320. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/bellona.md +0 -0
  321. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/driver.md +0 -0
  322. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/laverna.md +0 -0
  323. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/navigator.md +0 -0
  324. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/nayru.md +0 -0
  325. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/agents/vaivora.md +0 -0
  326. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/draft-backlog.md +0 -0
  327. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/make-it-so.md +0 -0
  328. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/pc-audit-sibling.md +0 -0
  329. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/pc-plan.md +0 -0
  330. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/run-qc.md +0 -0
  331. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/start-task.md +0 -0
  332. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/commands/update-skills.md +0 -0
  333. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/rules/architecture.md +0 -0
  334. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/settings.json +0 -0
  335. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/architecting-modules/SKILL.md +0 -0
  336. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/auditing-sibling-projects/SKILL.md +0 -0
  337. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/creating-skills/SKILL.md +0 -0
  338. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/designing-and-implementing/SKILL.md +0 -0
  339. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/finishing-branches/SKILL.md +0 -0
  340. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/implementing-with-tdd/SKILL.md +0 -0
  341. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/SKILL.md +0 -0
  342. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/reference/bps-trello-conventions.md +0 -0
  343. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/scripts/check_completion.py +0 -0
  344. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/managing-task-lifecycle/scripts/validate_task_status.py +0 -0
  345. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/planning-with-pm/SKILL.md +0 -0
  346. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/reviewing-code/SKILL.md +0 -0
  347. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.claude/skills/running-qc/SKILL.md +0 -0
  348. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconfig +0 -0
  349. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore +0 -0
  350. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/.gitignore +0 -0
  351. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/capabilities.yaml +0 -0
  352. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/project.md +0 -0
  353. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/state.md +0 -0
  354. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/context/workflow.md +0 -0
  355. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/feedback/.gitkeep +0 -0
  356. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/history/.gitkeep +0 -0
  357. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/plans/.gitkeep +0 -0
  358. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/allowlist.yaml +0 -0
  359. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/sandbox.yaml +0 -0
  360. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/security/secret-allowlist.yaml +0 -0
  361. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/tasks/.gitkeep +0 -0
  362. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.paircoder/telemetry/.gitkeep +0 -0
  363. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md +0 -0
  364. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/scripts/on_permission_denied.sh +0 -0
  365. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/hooks/on_permission_denied.sh +0 -0
  366. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/manifest.json +0 -0
  367. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-01-verification-is-yours.md +0 -0
  368. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-02-shared-checkouts-belong-to-runs.md +0 -0
  369. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-03-dispatch-dont-implement.md +0 -0
  370. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-04-fail-closed-audited-bypass.md +0 -0
  371. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-05-no-deferral-at-agent-velocity.md +0 -0
  372. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-06-repo-reality-beats-templates.md +0 -0
  373. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-07-bounded-waits-only.md +0 -0
  374. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-08-stop-the-tail.md +0 -0
  375. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/seeds/seed-09-delegate-loops-probe-limits.md +0 -0
  376. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/workflows/bps-full.yaml +0 -0
  377. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/data/workflows/simple.yaml +0 -0
  378. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/engage/__init__.py +0 -0
  379. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/engage/a2a_push.py +0 -0
  380. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/engage/boundary_clean.py +0 -0
  381. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/engage/constants.py +0 -0
  382. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/engage/containment_audit.py +0 -0
  383. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/__init__.py +0 -0
  384. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/_batch_stats_helpers.py +0 -0
  385. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/anomaly.py +0 -0
  386. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/calibration.py +0 -0
  387. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/calibration_helpers.py +0 -0
  388. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/calibration_refresh.py +0 -0
  389. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/classifier.py +0 -0
  390. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/context_load.py +0 -0
  391. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/drift.py +0 -0
  392. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/feasibility.py +0 -0
  393. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/fleet.py +0 -0
  394. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/overhead.py +0 -0
  395. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/prior_decay.py +0 -0
  396. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/query_builder.py +0 -0
  397. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/routing_report.py +0 -0
  398. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/schema.py +0 -0
  399. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/scoring.py +0 -0
  400. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/seam_heat.py +0 -0
  401. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/service.py +0 -0
  402. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/stack_detect.py +0 -0
  403. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/state_query.py +0 -0
  404. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/stats.py +0 -0
  405. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/feedback/workspace_query.py +0 -0
  406. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/__init__.py +0 -0
  407. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/client.py +0 -0
  408. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/client_prs.py +0 -0
  409. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/commands.py +0 -0
  410. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/merge_strategy.py +0 -0
  411. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/pr.py +0 -0
  412. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/pr_manager.py +0 -0
  413. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/pr_models.py +0 -0
  414. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/github/pr_workflow.py +0 -0
  415. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/gitops/__init__.py +0 -0
  416. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/gitops/failure_rules.py +0 -0
  417. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/gitops/failure_types.py +0 -0
  418. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/gitops/failures.py +0 -0
  419. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/gitops/retry.py +0 -0
  420. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/harness/__init__.py +0 -0
  421. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/harness/claude_code.py +0 -0
  422. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/harness/dispatch_adapter.py +0 -0
  423. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/harness/env_overrides.py +0 -0
  424. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/harness/provider_loader.py +0 -0
  425. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/init_bundled_cli.py +0 -0
  426. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/integrations/__init__.py +0 -0
  427. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/integrations/time_tracking.py +0 -0
  428. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/integrations/time_tracking_cache.py +0 -0
  429. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/integrations/time_tracking_providers.py +0 -0
  430. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/integrations/toggl.py +0 -0
  431. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/__init__.py +0 -0
  432. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/config.py +0 -0
  433. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/gap_mapper.py +0 -0
  434. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/gate_mapper.py +0 -0
  435. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/license_gate.py +0 -0
  436. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/mapper_base.py +0 -0
  437. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/pipeline.py +0 -0
  438. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/recommender.py +0 -0
  439. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/recommender_models.py +0 -0
  440. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/recommender_weights.py +0 -0
  441. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/scorer_mapper.py +0 -0
  442. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/session_mapper.py +0 -0
  443. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/signal_model.py +0 -0
  444. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/task_hook.py +0 -0
  445. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intelligence/telemetry_mapper.py +0 -0
  446. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/__init__.py +0 -0
  447. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/approval.py +0 -0
  448. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/approval_gate.py +0 -0
  449. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/capability_gate.py +0 -0
  450. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/classifier.py +0 -0
  451. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/command_router.py +0 -0
  452. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/dispatch_guard.py +0 -0
  453. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/frustration.py +0 -0
  454. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/response_injection.py +0 -0
  455. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/intent_gate/schema.py +0 -0
  456. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/json_envelope.py +0 -0
  457. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/__init__.py +0 -0
  458. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/activation.py +0 -0
  459. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/binding.py +0 -0
  460. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/cache_signing.py +0 -0
  461. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/core.py +0 -0
  462. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/keys.py +0 -0
  463. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/machine.py +0 -0
  464. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/online.py +0 -0
  465. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/paths.py +0 -0
  466. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/public_key.pem +0 -0
  467. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/schema.py +0 -0
  468. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/security.py +0 -0
  469. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/snapshot_bridge.py +0 -0
  470. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/startup.py +0 -0
  471. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/tier_change.py +0 -0
  472. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/unchecked.py +0 -0
  473. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/licensing/validation_cache.py +0 -0
  474. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/__init__.py +0 -0
  475. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/server.py +0 -0
  476. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/server_inspect.py +0 -0
  477. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/__init__.py +0 -0
  478. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/channels.py +0 -0
  479. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/completion_gates.py +0 -0
  480. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/context.py +0 -0
  481. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/metrics.py +0 -0
  482. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/orchestration.py +0 -0
  483. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/planning.py +0 -0
  484. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/support.py +0 -0
  485. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/tasks.py +0 -0
  486. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/mcp/tools/trello.py +0 -0
  487. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/memory_retention.py +0 -0
  488. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/__init__.py +0 -0
  489. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/accuracy.py +0 -0
  490. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/budget.py +0 -0
  491. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/burndown.py +0 -0
  492. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/calibration_pin.py +0 -0
  493. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/collector.py +0 -0
  494. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/collector_store.py +0 -0
  495. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/estimation.py +0 -0
  496. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/hours_comparison.py +0 -0
  497. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/reports.py +0 -0
  498. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/token_estimator.py +0 -0
  499. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/token_feedback.py +0 -0
  500. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/metrics/velocity.py +0 -0
  501. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/migrate.py +0 -0
  502. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/model_ids.py +0 -0
  503. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/__init__.py +0 -0
  504. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/_exploration.py +0 -0
  505. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/_failure_escalation.py +0 -0
  506. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/_model_band.py +0 -0
  507. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/_override_warning.py +0 -0
  508. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/ac_propagation.py +0 -0
  509. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/added_file_placeholder_scan.py +0 -0
  510. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/agent_names.py +0 -0
  511. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/agent_selector.py +0 -0
  512. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/autonomous.py +0 -0
  513. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/autonomous_models.py +0 -0
  514. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/autonomous_steps.py +0 -0
  515. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/backlog_header.py +0 -0
  516. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/backlog_materializer.py +0 -0
  517. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/backlog_parser.py +0 -0
  518. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/backlog_validation.py +0 -0
  519. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/backlog_yaml.py +0 -0
  520. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/baseline_io.py +0 -0
  521. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/blast_radius.py +0 -0
  522. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/blocked_completion.py +0 -0
  523. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/branch_review.py +0 -0
  524. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/checkin_diagnostic.py +0 -0
  525. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/checkin_kill.py +0 -0
  526. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/circuit_breaker_recovery.py +0 -0
  527. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/commit_gitignore_prune.py +0 -0
  528. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/commit_halt.py +0 -0
  529. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/commit_landing.py +0 -0
  530. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/commit_scope.py +0 -0
  531. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/commit_verification.py +0 -0
  532. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/completion_guard.py +0 -0
  533. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/dependency_resolver.py +0 -0
  534. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/engage_push.py +0 -0
  535. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/engage_push_scan.py +0 -0
  536. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/engage_review.py +0 -0
  537. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/engage_run_state.py +0 -0
  538. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/failure_taxonomy.py +0 -0
  539. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/failure_taxonomy_backfill.py +0 -0
  540. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/final_message_artifact.py +0 -0
  541. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/finding_extraction.py +0 -0
  542. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/finding_records.py +0 -0
  543. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/findings_loop.py +0 -0
  544. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/freshness_gate.py +0 -0
  545. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/handoff.py +0 -0
  546. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/handoff_consumer.py +0 -0
  547. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/handoff_formatting.py +0 -0
  548. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/handoff_retention.py +0 -0
  549. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/headless.py +0 -0
  550. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/headless_dispatch.py +0 -0
  551. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/headless_runner.py +0 -0
  552. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/headless_runner_helpers.py +0 -0
  553. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/headless_session_lifecycle.py +0 -0
  554. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/heartbeat.py +0 -0
  555. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/impact_dedup.py +0 -0
  556. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/invoker.py +0 -0
  557. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/invoker_helpers.py +0 -0
  558. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/issue_refs.py +0 -0
  559. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/manager.py +0 -0
  560. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/model_doctrine.py +0 -0
  561. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/model_routing.py +0 -0
  562. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/nayru_deterministic.py +0 -0
  563. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/nayru_pregates.py +0 -0
  564. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/orchestrator.py +0 -0
  565. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/orchestrator_helpers.py +0 -0
  566. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/orchestrator_models.py +0 -0
  567. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/output_verifier.py +0 -0
  568. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/output_verifier_git_args.py +0 -0
  569. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/output_verifier_signals.py +0 -0
  570. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/package_builder.py +0 -0
  571. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/plan_graph.py +0 -0
  572. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/plan_graph_models.py +0 -0
  573. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/plan_vaivora.py +0 -0
  574. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/plan_vaivora_llm.py +0 -0
  575. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/planner.py +0 -0
  576. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/planner_context.py +0 -0
  577. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/planner_parsing.py +0 -0
  578. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/porcelain_status.py +0 -0
  579. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/portfolio_status.py +0 -0
  580. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/pr_review.py +0 -0
  581. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/pre_dispatch_check.py +0 -0
  582. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/pre_task_sha.py +0 -0
  583. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/reconciliation.py +0 -0
  584. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/residue_sideref.py +0 -0
  585. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_checks.py +0 -0
  586. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_common.py +0 -0
  587. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_dispatch.py +0 -0
  588. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_models.py +0 -0
  589. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_output.py +0 -0
  590. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_severity.py +0 -0
  591. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_sprint.py +0 -0
  592. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_sprint_artifact.py +0 -0
  593. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_sprint_gate.py +0 -0
  594. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/review_worktree.py +0 -0
  595. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/reviewer.py +0 -0
  596. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/run_exit_gate.py +0 -0
  597. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/seam_delta.py +0 -0
  598. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/security.py +0 -0
  599. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/security_models.py +0 -0
  600. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/security_parser.py +0 -0
  601. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/selector_scoring.py +0 -0
  602. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/serializer.py +0 -0
  603. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sibling_branch.py +0 -0
  604. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sibling_branch_verify.py +0 -0
  605. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sibling_fetch.py +0 -0
  606. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_block_handler.py +0 -0
  607. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_commit.py +0 -0
  608. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_executor.py +0 -0
  609. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_executor_baseline.py +0 -0
  610. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_executor_hooks.py +0 -0
  611. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_executor_outcome.py +0 -0
  612. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_lifecycle_args.py +0 -0
  613. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_lifecycle_hooks.py +0 -0
  614. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_models.py +0 -0
  615. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_residue_defer.py +0 -0
  616. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_residue_handler.py +0 -0
  617. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_review_helpers.py +0 -0
  618. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_signals.py +0 -0
  619. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_skipped_handler.py +0 -0
  620. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/sprint_summary.py +0 -0
  621. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/state_commit.py +0 -0
  622. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/subagent_context.py +0 -0
  623. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/target_repo_resolution.py +0 -0
  624. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/targeted_tests.py +0 -0
  625. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/task_md_runtime.py +0 -0
  626. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/task_review.py +0 -0
  627. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/task_review_command.py +0 -0
  628. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/task_timeout.py +0 -0
  629. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/terminal_message_classifier.py +0 -0
  630. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/wiring_review.py +0 -0
  631. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/orchestration/workflow_guide.py +0 -0
  632. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/__init__.py +0 -0
  633. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/auto_assign.py +0 -0
  634. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/cli_update_cache.py +0 -0
  635. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/commands.py +0 -0
  636. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/completion_helpers.py +0 -0
  637. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/helpers.py +0 -0
  638. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/intelligence_helpers.py +0 -0
  639. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/intent_commands.py +0 -0
  640. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/intent_detection.py +0 -0
  641. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/models.py +0 -0
  642. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/parser.py +0 -0
  643. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_commands.py +0 -0
  644. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_complete_command.py +0 -0
  645. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_crud_commands.py +0 -0
  646. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_ensure_from_backlog.py +0 -0
  647. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_enums.py +0 -0
  648. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_estimation.py +0 -0
  649. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_feasibility.py +0 -0
  650. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_intelligence.py +0 -0
  651. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_legacy_helpers.py +0 -0
  652. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_legacy_sync.py +0 -0
  653. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_model.py +0 -0
  654. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_parser.py +0 -0
  655. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_pm_enrich.py +0 -0
  656. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_pm_hierarchy.py +0 -0
  657. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_pm_sync.py +0 -0
  658. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_query_commands.py +0 -0
  659. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_record_emission.py +0 -0
  660. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_status_commands.py +0 -0
  661. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_task_push.py +0 -0
  662. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_trello_sync.py +0 -0
  663. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/plan_workspace.py +0 -0
  664. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/review_intent.py +0 -0
  665. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/scope_detector.py +0 -0
  666. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/standup.py +0 -0
  667. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/standup_commands.py +0 -0
  668. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/state.py +0 -0
  669. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/status_hooks.py +0 -0
  670. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/status_rendering.py +0 -0
  671. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_archive_commands.py +0 -0
  672. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_check_commands.py +0 -0
  673. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_commands.py +0 -0
  674. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_consistency.py +0 -0
  675. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_done.py +0 -0
  676. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_model.py +0 -0
  677. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_parser.py +0 -0
  678. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_reconcile.py +0 -0
  679. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_update_completion.py +0 -0
  680. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/task_update_enforcement.py +0 -0
  681. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/token_estimate_display.py +0 -0
  682. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/planning/token_estimator.py +0 -0
  683. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/__init__.py +0 -0
  684. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/actions.py +0 -0
  685. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/backlog_mixin.py +0 -0
  686. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/backlog_rollup.py +0 -0
  687. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/backlog_types.py +0 -0
  688. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/compat.py +0 -0
  689. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/completion_cascade.py +0 -0
  690. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/completion_eval.py +0 -0
  691. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/engine.py +0 -0
  692. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/errors.py +0 -0
  693. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/hierarchy.py +0 -0
  694. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/lifecycle.py +0 -0
  695. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/migration.py +0 -0
  696. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/null_provider.py +0 -0
  697. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/orchestration.py +0 -0
  698. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/presets.py +0 -0
  699. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/project_hooks.py +0 -0
  700. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/provider.py +0 -0
  701. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/registry.py +0 -0
  702. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/sprint_lifecycle.py +0 -0
  703. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/status_vocab.py +0 -0
  704. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/sync.py +0 -0
  705. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/types.py +0 -0
  706. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/workflow.py +0 -0
  707. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm/workflow_validation.py +0 -0
  708. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/__init__.py +0 -0
  709. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/adapter.py +0 -0
  710. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/backlog_engage.py +0 -0
  711. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/backlog_tree.py +0 -0
  712. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/config.py +0 -0
  713. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/discovery.py +0 -0
  714. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/enrichment.py +0 -0
  715. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/label_resolver.py +0 -0
  716. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/provider.py +0 -0
  717. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/relationship_ops.py +0 -0
  718. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/relationships.py +0 -0
  719. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/pm_trello/sync_ops.py +0 -0
  720. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/prime_learn/__init__.py +0 -0
  721. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/prime_learn/a2a_push.py +0 -0
  722. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/prime_learn/storage.py +0 -0
  723. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/prime_learn/synthesis.py +0 -0
  724. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/__init__.py +0 -0
  725. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/config.py +0 -0
  726. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/executor.py +0 -0
  727. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/fill_validator.py +0 -0
  728. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/gate.py +0 -0
  729. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/loader.py +0 -0
  730. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/models.py +0 -0
  731. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/reporter.py +0 -0
  732. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/results.py +0 -0
  733. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/step_handlers.py +0 -0
  734. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/telemetry_store.py +0 -0
  735. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/templates.py +0 -0
  736. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/qc/timeout_handler.py +0 -0
  737. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/__init__.py +0 -0
  738. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/a2a_adapter.py +0 -0
  739. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/driver_activity.py +0 -0
  740. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/qc_trends.py +0 -0
  741. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/quality_metrics.py +0 -0
  742. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/remote_query_client.py +0 -0
  743. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/review_findings.py +0 -0
  744. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/schema_validator.py +0 -0
  745. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/session_outcomes.py +0 -0
  746. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/sprint_status.py +0 -0
  747. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/query_skills/task_state.py +0 -0
  748. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/__init__.py +0 -0
  749. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/commands.py +0 -0
  750. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/docs_drift_commands.py +0 -0
  751. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/docs_drift_gate.py +0 -0
  752. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/notes_allowlist.py +0 -0
  753. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/notes_commands.py +0 -0
  754. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/notes_gate.py +0 -0
  755. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/notes_markers.py +0 -0
  756. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/phase89_gate.py +0 -0
  757. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/release_checks.py +0 -0
  758. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/template.py +0 -0
  759. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/release/validate.py +0 -0
  760. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/Dockerfile.containment +0 -0
  761. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/__init__.py +0 -0
  762. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/__init__.py +0 -0
  763. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/manifests.py +0 -0
  764. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/manifests_node.py +0 -0
  765. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/manifests_python.py +0 -0
  766. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/models.py +0 -0
  767. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/package_list.py +0 -0
  768. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/repo_resolve.py +0 -0
  769. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/report_format.py +0 -0
  770. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/scanner.py +0 -0
  771. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/advisory/version_match.py +0 -0
  772. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/allowlist.py +0 -0
  773. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/allowlist_data.py +0 -0
  774. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/allowlist_matching.py +0 -0
  775. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint.py +0 -0
  776. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint_base.py +0 -0
  777. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint_containment.py +0 -0
  778. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint_format.py +0 -0
  779. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint_models.py +0 -0
  780. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/checkpoint_rollback.py +0 -0
  781. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/containment.py +0 -0
  782. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/containment_check.py +0 -0
  783. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/containment_config.py +0 -0
  784. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/containment_paths.py +0 -0
  785. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/data_classes.py +0 -0
  786. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/dep_models.py +0 -0
  787. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/dep_scanner.py +0 -0
  788. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/dependencies.py +0 -0
  789. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/image_manager.py +0 -0
  790. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/interactive_runner.py +0 -0
  791. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/network.py +0 -0
  792. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/network_control.py +0 -0
  793. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/review.py +0 -0
  794. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/review_agent.py +0 -0
  795. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/review_models.py +0 -0
  796. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/review_patterns.py +0 -0
  797. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/review_scanner.py +0 -0
  798. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/runner.py +0 -0
  799. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/sandbox.py +0 -0
  800. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets.py +0 -0
  801. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets_config.py +0 -0
  802. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets_format.py +0 -0
  803. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets_patterns.py +0 -0
  804. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets_scanner.py +0 -0
  805. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/security/secrets_types.py +0 -0
  806. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/seeds/__init__.py +0 -0
  807. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/seeds/manifest.py +0 -0
  808. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/seeds/safety.py +0 -0
  809. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/seeds/writer.py +0 -0
  810. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/session.py +0 -0
  811. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/session_finalize.py +0 -0
  812. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/session_handoff.py +0 -0
  813. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/__init__.py +0 -0
  814. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/classifier.py +0 -0
  815. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/classifier_engine.py +0 -0
  816. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/classifier_models.py +0 -0
  817. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/classifier_report.py +0 -0
  818. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/cli_commands.py +0 -0
  819. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/display_helpers.py +0 -0
  820. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/export_base.py +0 -0
  821. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/exporter.py +0 -0
  822. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gap_detector.py +0 -0
  823. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gap_engine.py +0 -0
  824. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gap_models.py +0 -0
  825. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gap_persistence.py +0 -0
  826. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gaps_commands.py +0 -0
  827. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gaps_query_commands.py +0 -0
  828. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gate_definitions.py +0 -0
  829. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gate_evaluator.py +0 -0
  830. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/gates.py +0 -0
  831. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/generator.py +0 -0
  832. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/generator_engine.py +0 -0
  833. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/generator_io.py +0 -0
  834. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/generator_models.py +0 -0
  835. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/installer.py +0 -0
  836. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/installer_sources.py +0 -0
  837. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/intent_matcher.py +0 -0
  838. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/pattern_detector.py +0 -0
  839. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/scorer.py +0 -0
  840. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/scorer_engine.py +0 -0
  841. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/scorer_format.py +0 -0
  842. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/scorer_models.py +0 -0
  843. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/scorer_telemetry.py +0 -0
  844. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_commands.py +0 -0
  845. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_export_cmd.py +0 -0
  846. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_gap_commands.py +0 -0
  847. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_gap_handlers.py +0 -0
  848. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_install_cmd.py +0 -0
  849. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_recommend_cmd.py +0 -0
  850. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_score_cmds.py +0 -0
  851. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_suggester.py +0 -0
  852. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/skill_validate_cmd.py +0 -0
  853. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/subagent_commands.py +0 -0
  854. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/subagent_detector.py +0 -0
  855. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/subagent_parser.py +0 -0
  856. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/subagent_patterns.py +0 -0
  857. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/suggestion.py +0 -0
  858. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/skills/validator.py +0 -0
  859. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sprint/__init__.py +0 -0
  860. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sprint/commands.py +0 -0
  861. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/statusline.py +0 -0
  862. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/statusline_install.py +0 -0
  863. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/statusline_state.py +0 -0
  864. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/support/__init__.py +0 -0
  865. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/support/auth.py +0 -0
  866. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/support/client.py +0 -0
  867. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/support/system_info.py +0 -0
  868. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/__init__.py +0 -0
  869. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/a2a_integration.py +0 -0
  870. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/classifier.py +0 -0
  871. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/diff_parser.py +0 -0
  872. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/providers/__init__.py +0 -0
  873. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/providers/_patterns.py +0 -0
  874. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/providers/generic.py +0 -0
  875. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/sweep/providers/python_provider.py +0 -0
  876. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/tasks/__init__.py +0 -0
  877. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/tasks/archiver.py +0 -0
  878. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/tasks/changelog.py +0 -0
  879. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/tasks/lifecycle.py +0 -0
  880. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/__init__.py +0 -0
  881. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/_provider.py +0 -0
  882. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/_routing_tier.py +0 -0
  883. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/_serialization.py +0 -0
  884. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/_token_usage.py +0 -0
  885. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/_validation.py +0 -0
  886. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/aggregate.py +0 -0
  887. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/aggregates.py +0 -0
  888. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/archive.py +0 -0
  889. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/audit.py +0 -0
  890. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/auto_archive.py +0 -0
  891. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/auto_compaction.py +0 -0
  892. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/batch_submit.py +0 -0
  893. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/cache_health.py +0 -0
  894. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/collector.py +0 -0
  895. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/collector_helpers.py +0 -0
  896. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/collectors.py +0 -0
  897. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/compaction.py +0 -0
  898. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/config.py +0 -0
  899. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/failure_pattern_detector.py +0 -0
  900. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/hook_collector.py +0 -0
  901. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/hooks_schema.py +0 -0
  902. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/migrate.py +0 -0
  903. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/parser.py +0 -0
  904. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/privacy.py +0 -0
  905. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/queries.py +0 -0
  906. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/query_helpers.py +0 -0
  907. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/recovery.py +0 -0
  908. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/recovery_helpers.py +0 -0
  909. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/schema.py +0 -0
  910. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/session_outcomes.py +0 -0
  911. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/session_store.py +0 -0
  912. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/signal_checks.py +0 -0
  913. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/signal_emitter.py +0 -0
  914. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/signal_thresholds.py +0 -0
  915. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/snapshot.py +0 -0
  916. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/sqlite_migration.py +0 -0
  917. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/sqlite_schema.py +0 -0
  918. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/sqlite_telemetry_store.py +0 -0
  919. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/store.py +0 -0
  920. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/t1_gate.py +0 -0
  921. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/task_state_index.py +0 -0
  922. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/telemetry/task_state_log.py +0 -0
  923. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/tokens.py +0 -0
  924. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/__init__.py +0 -0
  925. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/activity.py +0 -0
  926. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/auth.py +0 -0
  927. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/board_commands.py +0 -0
  928. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/board_index.py +0 -0
  929. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/board_setup.py +0 -0
  930. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/checklist_ops.py +0 -0
  931. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/client.py +0 -0
  932. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/commands.py +0 -0
  933. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/connection.py +0 -0
  934. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/custom_fields.py +0 -0
  935. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/errors.py +0 -0
  936. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/field_commands.py +0 -0
  937. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/fields.py +0 -0
  938. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/label_ops.py +0 -0
  939. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/list_resolver.py +0 -0
  940. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/pm_sync_bridge.py +0 -0
  941. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/progress.py +0 -0
  942. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/retry.py +0 -0
  943. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync.py +0 -0
  944. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync_cards.py +0 -0
  945. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync_checklists.py +0 -0
  946. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync_commands.py +0 -0
  947. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync_fields.py +0 -0
  948. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/sync_helpers.py +0 -0
  949. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_card_ops.py +0 -0
  950. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_checklist_match.py +0 -0
  951. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_commands.py +0 -0
  952. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_completion.py +0 -0
  953. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_display.py +0 -0
  954. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_done_pipeline.py +0 -0
  955. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_handoff.py +0 -0
  956. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_helpers.py +0 -0
  957. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_lifecycle.py +0 -0
  958. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_operations.py +0 -0
  959. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_pm_routing.py +0 -0
  960. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_provider.py +0 -0
  961. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/task_sync.py +0 -0
  962. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/templates.py +0 -0
  963. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook.py +0 -0
  964. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook_auth.py +0 -0
  965. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook_commands.py +0 -0
  966. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook_config.py +0 -0
  967. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook_handlers.py +0 -0
  968. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/trello/webhook_server.py +0 -0
  969. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/utils/__init__.py +0 -0
  970. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/utils/sysproc.py +0 -0
  971. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/__init__.py +0 -0
  972. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/api_routes.py +0 -0
  973. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/app.py +0 -0
  974. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/architecture_api.py +0 -0
  975. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/architecture_delta.py +0 -0
  976. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/architecture_step.py +0 -0
  977. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/budget_api.py +0 -0
  978. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/chat_api.py +0 -0
  979. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/config_builder.py +0 -0
  980. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/config_merge.py +0 -0
  981. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/config_parser.py +0 -0
  982. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/containment_step.py +0 -0
  983. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/creator.py +0 -0
  984. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/demo.py +0 -0
  985. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/editor_api.py +0 -0
  986. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/enforcement_api.py +0 -0
  987. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/github_api.py +0 -0
  988. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/guided_api.py +0 -0
  989. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/license_installer.py +0 -0
  990. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/loader.py +0 -0
  991. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/mcp_api.py +0 -0
  992. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/page_route_registry.py +0 -0
  993. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/page_routes.py +0 -0
  994. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/preset_tables.py +0 -0
  995. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/pro_page_routes.py +0 -0
  996. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/project_api.py +0 -0
  997. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/prompts/__init__.py +0 -0
  998. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/prompts/guided_setup.md +0 -0
  999. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/review_api.py +0 -0
  1000. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/routes.py +0 -0
  1001. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/session.py +0 -0
  1002. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/state.py +0 -0
  1003. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/static/chat.js +0 -0
  1004. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/static/style.css +0 -0
  1005. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/static/wizard.js +0 -0
  1006. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/steps.py +0 -0
  1007. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/architecture.html +0 -0
  1008. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/base.html +0 -0
  1009. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/budget.html +0 -0
  1010. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/chat.html +0 -0
  1011. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/enforcement.html +0 -0
  1012. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/github.html +0 -0
  1013. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/index.html +0 -0
  1014. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/mcp.html +0 -0
  1015. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/partials/license_install.html +0 -0
  1016. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/partials/locked_overlay.html +0 -0
  1017. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/partials/upgrade_modal.html +0 -0
  1018. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/project.html +0 -0
  1019. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/review.html +0 -0
  1020. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/success.html +0 -0
  1021. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/trello.html +0 -0
  1022. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/welcome.html +0 -0
  1023. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/templates/workflow.html +0 -0
  1024. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/trello_api.py +0 -0
  1025. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/update_api.py +0 -0
  1026. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/wizard/workflow_routes.py +0 -0
  1027. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/__init__.py +0 -0
  1028. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/agent_spawning.py +0 -0
  1029. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/agent_teams.py +0 -0
  1030. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/audit.py +0 -0
  1031. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/contracts.py +0 -0
  1032. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/discovery.py +0 -0
  1033. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/execution_plan.py +0 -0
  1034. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/git_ops.py +0 -0
  1035. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/gitignore.py +0 -0
  1036. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/impact.py +0 -0
  1037. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/init_project.py +0 -0
  1038. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/membership.py +0 -0
  1039. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/orchestrator.py +0 -0
  1040. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/parser.py +0 -0
  1041. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/permissions.py +0 -0
  1042. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/project_md.py +0 -0
  1043. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/schema.py +0 -0
  1044. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/sibling_conventions.py +0 -0
  1045. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/stack_detect.py +0 -0
  1046. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/task_push.py +0 -0
  1047. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair/workspace/workspace_index.py +0 -0
  1048. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair.egg-info/dependency_links.txt +0 -0
  1049. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair.egg-info/entry_points.txt +0 -0
  1050. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair.egg-info/requires.txt +0 -0
  1051. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/bpsai_pair.egg-info/top_level.txt +0 -0
  1052. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/setup.cfg +0 -0
  1053. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_agent_archetypes.py +0 -0
  1054. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_cli_registration.py +0 -0
  1055. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_cli_startup_archive_pre_t1.py +0 -0
  1056. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_cli_startup_context_freshness_gate.py +0 -0
  1057. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_cli_startup_offline_network.py +0 -0
  1058. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_cli_startup_readonly_gate.py +0 -0
  1059. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_compaction_containment.py +0 -0
  1060. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_compaction_coverage.py +0 -0
  1061. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_compaction_decomp.py +0 -0
  1062. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_compaction_events.py +0 -0
  1063. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_conftest_env_isolation.py +0 -0
  1064. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_dependency_completeness.py +0 -0
  1065. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_feature_gating.py +0 -0
  1066. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_init_bundled_cli.py +0 -0
  1067. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_main_entrypoint.py +0 -0
  1068. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_memory_retention.py +0 -0
  1069. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_model_ids.py +0 -0
  1070. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_readonly_command_state_e2e.py +0 -0
  1071. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_session_finalize.py +0 -0
  1072. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_stale_task_lint.py +0 -0
  1073. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_statusline.py +0 -0
  1074. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_statusline_heartbeat.py +0 -0
  1075. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_statusline_install.py +0 -0
  1076. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_statusline_integration.py +0 -0
  1077. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_statusline_mtime.py +0 -0
  1078. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_t42_1_qc_rename.py +0 -0
  1079. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_template_signal_hooks.py +0 -0
  1080. {bpsai_pair-2.35.1 → bpsai_pair-2.35.2}/tests/test_website_signal_hooks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bpsai-pair
3
- Version: 2.35.1
3
+ Version: 2.35.2
4
4
  Summary: AI-augmented pair programming framework with 270+ CLI commands for planning, orchestration, Trello/GitHub integration, and autonomous workflows
5
5
  Author-email: BPS AI Software <support@paircoder.ai>
6
6
  License-Expression: LicenseRef-Proprietary
@@ -79,7 +79,7 @@ Provides-Extra: integrations
79
79
  Requires-Dist: py-trello>=0.19.0; extra == "integrations"
80
80
  Dynamic: license-file
81
81
 
82
- # PairCoder v2.35.1
82
+ # PairCoder v2.35.2
83
83
 
84
84
  > AI-augmented pair programming framework with 270+ CLI commands
85
85
 
@@ -189,6 +189,12 @@ Check your license: `bpsai-pair license status`
189
189
 
190
190
  > Full release history and detailed notes: [paircoder.ai](https://paircoder.ai).
191
191
 
192
+ **v2.35.2 — Benchmarks join reality, QC agent regains its browser**
193
+ - **Benchmark fixtures speak your task types.** The matrix fixture set is re-keyed to the vocabulary real projects actually use (`feature`, `bugfix`, `chore`, `refactor`, `review`), with legacy strings alias-normalized at ingestion — so `benchmark matrix-run --auto-seed` primes the same calibration cells your production tasks read, instead of cells nothing joins.
194
+ - **Fixtures can't over-demand.** A fail-closed fixture lint rejects any fixture whose grading requirements aren't explicitly stated in its own prompt, ending a class of false cross-model failures.
195
+ - **Divona sees Chrome again.** The QC agent's tool allowlist had excluded the browser tools entirely; it now inherits the full toolset and knows to load deferred browser tools before assuming they're absent.
196
+ - **GitHub Release notes publish again.** The release workflow's notes extraction wrote to the wrong stream in CI, shipping empty release bodies; notes now publish with every release.
197
+
192
198
  **v2.35.1 — Telemetry restored, typed git-failure handling, memory seed packs**
193
199
  - **Driver telemetry records again under parallel lanes.** v2.35.0's run-root worktree isolation sent driver-task telemetry into the ephemeral worktree, which is destroyed at run teardown — runs recorded zero driver rows. Telemetry now lands in the durable checkout, and calibration reads from the same place.
194
200
  - **Git and GitHub failures are classified, not guessed.** A typed failure taxonomy (transient / ambiguous / permanent) drives retries — unrecognized failures are never auto-retried — and error text is scrubbed of tokens and credentials.
@@ -1,4 +1,4 @@
1
- # PairCoder v2.35.1
1
+ # PairCoder v2.35.2
2
2
 
3
3
  > AI-augmented pair programming framework with 270+ CLI commands
4
4
 
@@ -108,6 +108,12 @@ Check your license: `bpsai-pair license status`
108
108
 
109
109
  > Full release history and detailed notes: [paircoder.ai](https://paircoder.ai).
110
110
 
111
+ **v2.35.2 — Benchmarks join reality, QC agent regains its browser**
112
+ - **Benchmark fixtures speak your task types.** The matrix fixture set is re-keyed to the vocabulary real projects actually use (`feature`, `bugfix`, `chore`, `refactor`, `review`), with legacy strings alias-normalized at ingestion — so `benchmark matrix-run --auto-seed` primes the same calibration cells your production tasks read, instead of cells nothing joins.
113
+ - **Fixtures can't over-demand.** A fail-closed fixture lint rejects any fixture whose grading requirements aren't explicitly stated in its own prompt, ending a class of false cross-model failures.
114
+ - **Divona sees Chrome again.** The QC agent's tool allowlist had excluded the browser tools entirely; it now inherits the full toolset and knows to load deferred browser tools before assuming they're absent.
115
+ - **GitHub Release notes publish again.** The release workflow's notes extraction wrote to the wrong stream in CI, shipping empty release bodies; notes now publish with every release.
116
+
111
117
  **v2.35.1 — Telemetry restored, typed git-failure handling, memory seed packs**
112
118
  - **Driver telemetry records again under parallel lanes.** v2.35.0's run-root worktree isolation sent driver-task telemetry into the ephemeral worktree, which is destroyed at run teardown — runs recorded zero driver rows. Telemetry now lands in the durable checkout, and calibration reads from the same place.
113
119
  - **Git and GitHub failures are classified, not guessed.** A typed failure taxonomy (transient / ambiguous / permanent) drives retries — unrecognized failures are never auto-retried — and error text is scrubbed of tokens and credentials.
@@ -15,6 +15,9 @@ Public API:
15
15
  - ``TASK_TYPES`` -- the five v0 task categories.
16
16
  - ``BenchmarkFixture`` / ``ExpectedShape`` -- fixture data model.
17
17
  - ``load_fixture`` / ``load_all_fixtures`` / ``fixtures_dir`` -- fixture loaders.
18
+ - ``validate_fixture_shape`` / ``missing_required_sections`` /
19
+ ``FixtureShapeMismatch`` -- fixture lint: fail closed when a fixture's
20
+ ``required_sections`` aren't demanded by its own prompt.
18
21
  - ``score`` / ``ScoreReport`` / ``CheckResult`` -- composable v0 scoring.
19
22
  - ``DEFAULT_CHECKS`` -- the three v0 checks.
20
23
  - ``MatrixRow`` / ``MatrixResult`` / ``MatrixRunner`` -- 5x5 runner.
@@ -59,9 +62,12 @@ _LAZY_EXPORTS: dict[str, str] = {
59
62
  "TASK_TYPES": "task_set",
60
63
  "BenchmarkFixture": "task_set",
61
64
  "ExpectedShape": "task_set",
65
+ "FixtureShapeMismatch": "task_set",
62
66
  "fixtures_dir": "task_set",
63
67
  "load_all_fixtures": "task_set",
64
68
  "load_fixture": "task_set",
69
+ "missing_required_sections": "task_set",
70
+ "validate_fixture_shape": "task_set",
65
71
  }
66
72
 
67
73
  __all__ = sorted(_LAZY_EXPORTS)
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "bf-001",
3
+ "task_type": "bugfix",
4
+ "input_prompt": "`parse_duration(s)` currently raises `ValueError` for the input `\"0s\"` because it strips the numeric prefix with `s.rstrip(\"s\")` and then rejects an empty string before checking for zero. Fix `parse_duration` so `\"0s\"` returns `0`, and add a regression test for the zero-duration case alongside the existing suffix cases (`\"s\"`, `\"m\"`, `\"h\"`).",
5
+ "system_prompt": "You are a Driver agent fixing a reported bug. Output a single Python file: the corrected implementation followed by pytest tests, with the new regression test clearly covering the reported input.",
6
+ "expected_shape": {
7
+ "produces_code": true,
8
+ "required_sections": [],
9
+ "min_length": 120,
10
+ "must_contain": ["def parse_duration", "def test_", "0s"],
11
+ "must_not_contain": ["TODO"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-02-pc2.1",
16
+ "redacted": true,
17
+ "redaction_notes": "Function name and bug shape generalized from the original report."
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "bf-002",
3
+ "task_type": "bugfix",
4
+ "input_prompt": "`retry_with_backoff(fn, attempts=3)` swallows the final exception and returns `None` on total failure instead of re-raising it, so callers can't distinguish a genuine `None` result from an exhausted retry. Fix it so the last exception propagates after `attempts` failures, and add tests covering the eventual-success-after-retries path and the exhausted-retries path.",
5
+ "system_prompt": "You are a Driver agent fixing a reported bug. Output a single Python file: the corrected implementation followed by pytest tests.",
6
+ "expected_shape": {
7
+ "produces_code": true,
8
+ "required_sections": [],
9
+ "min_length": 150,
10
+ "must_contain": ["def retry_with_backoff", "def test_", "raise"],
11
+ "must_not_contain": ["TODO"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-02-pc2.1",
16
+ "redacted": true,
17
+ "redaction_notes": "Retry helper generalized from the original module."
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "ch-001",
3
+ "task_type": "chore",
4
+ "input_prompt": "Write the CHANGELOG entry for v2.18.0: bumps the pinned `httpx` dependency from 0.27 to 0.28, drops the Python 3.9 compatibility shim in `core/compat.py` (now dead code since the minimum supported version is 3.10), and regenerates the lockfile. No new features or bug fixes in this release.",
5
+ "system_prompt": "You are a release chore agent. Structure the entry with exactly one markdown header, `## Changes`, followed by a bullet list of the changes.",
6
+ "expected_shape": {
7
+ "produces_code": false,
8
+ "required_sections": ["## Changes"],
9
+ "min_length": 100,
10
+ "must_contain": ["httpx", "0.28"],
11
+ "must_not_contain": ["TODO:", "lorem ipsum"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-10-pc2.3",
16
+ "redacted": true,
17
+ "redaction_notes": "Version numbers and dependency generalized from the real release."
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "ch-002",
3
+ "task_type": "chore",
4
+ "input_prompt": "Delete the deprecated `legacy_format_report()` function from `reporting/format.py` -- it was replaced by `format_report()` two releases ago and every remaining call site (checked: none in `src/`, two in `tests/`) needs updating to call `format_report()` directly instead. Update the two test call sites accordingly.",
5
+ "system_prompt": "You are a cleanup agent. Output a single unified diff showing the deletion and the two call-site updates.",
6
+ "expected_shape": {
7
+ "produces_code": true,
8
+ "required_sections": [],
9
+ "min_length": 80,
10
+ "must_contain": ["format_report"],
11
+ "must_not_contain": ["legacy_format_report"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-10-pc2.3",
16
+ "redacted": true,
17
+ "redaction_notes": "Module/function names generalized."
18
+ }
19
+ }
@@ -2,7 +2,7 @@
2
2
  "id": "pd-001",
3
3
  "task_type": "plan-draft",
4
4
  "input_prompt": "Draft a sprint backlog for adding per-call cost logging to a sibling repo. Surface should follow the unified ~/.bpsai/burn-log.jsonl schema (timestamp, service, tokens_input, tokens_output, model, cost_estimate_usd, dispatch_origin, blocked, repo). Identify the API callsites, propose a colocated burn_log module, and break the work into tasks with acceptance criteria.",
5
- "system_prompt": "You are a Navigator agent. Produce a sprint backlog in the engage-compatible markdown format with a Sprint header, a Tasks section, and a Risks section.",
5
+ "system_prompt": "You are a Navigator agent. Produce a sprint backlog in the engage-compatible markdown format with a Sprint header, a `## Tasks` section, and a `## Risks` section.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Tasks", "## Risks"],
@@ -2,7 +2,7 @@
2
2
  "id": "pd-002",
3
3
  "task_type": "plan-draft",
4
4
  "input_prompt": "Plan the rollout of a deterministic-first review pipeline. The Nayru agent should run six pre-gates (ruff, black, secrets, architecture, coverage, contract_break) and only call Claude if any gate fails. Define the module layout, the telemetry signal payload, and the migration plan that keeps Laverna and Vaivora on the legacy path.",
5
- "system_prompt": "You are a Navigator agent. Output a markdown plan with explicit sections for Goals, Tasks, and Risks. Include acceptance criteria checklists under each task.",
5
+ "system_prompt": "You are a Navigator agent. Output a markdown plan with explicit `## Goals`, `## Tasks`, and `## Risks` sections. Include acceptance criteria checklists under each task.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Goals", "## Tasks", "## Risks"],
@@ -2,7 +2,7 @@
2
2
  "id": "pd-003",
3
3
  "task_type": "plan-draft",
4
4
  "input_prompt": "Draft a plan for a new CLI command `bpsai-pair budget programmatic` that reads ~/.bpsai/burn-log.jsonl, aggregates current-month spend, and compares against a configured monthly cap. Define the threshold ladder (80/90/100%) and the CI-gate-ready exit codes. Break the work into one task per sub-feature.",
5
- "system_prompt": "You are a Navigator agent. Produce a backlog in the engage-compatible format with a Sprint header, Goals, Tasks, and Risks.",
5
+ "system_prompt": "You are a Navigator agent. Produce a backlog in the engage-compatible format with a Sprint header, Goals, a `## Tasks` section, and Risks.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Tasks"],
@@ -2,7 +2,7 @@
2
2
  "id": "sa-001",
3
3
  "task_type": "security-audit",
4
4
  "input_prompt": "Audit the burn-log writer module for security issues. The module appends JSON-Lines records to ~/.bpsai/burn-log.jsonl. Look for: (a) path traversal via the configured BURN_LOG_PATH env override, (b) injection of attacker-controlled fields into the JSON record (model name, service tag), (c) log forging via embedded newlines in string fields, (d) information disclosure (does it ever log secrets like API keys?). Use the P0/P1/P2 severity scheme.",
5
- "system_prompt": "You are the Laverna security review agent. Produce a markdown audit with findings tagged P0/P1/P2. End with a Recommendation line: approve | revise | block.",
5
+ "system_prompt": "You are the Laverna security review agent. Structure the audit with exactly these markdown headers, in order: a `## Findings` section (findings tagged P0/P1/P2), then a `## Recommendation` section with a single line: approve | revise | block.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Findings", "## Recommendation"],
@@ -2,7 +2,7 @@
2
2
  "id": "sa-002",
3
3
  "task_type": "security-audit",
4
4
  "input_prompt": "Audit the `bpsai-pair budget programmatic` CLI command for security issues. It reads ~/.bpsai/burn-log.jsonl, parses each line as JSON, aggregates spend by month, and compares against a cap loaded from .paircoder/config.yaml. Look for: YAML deserialization of untrusted config, JSON-bomb / deeply nested payload DoS, malformed-line crash paths, and exposure of file paths in error messages. Tag findings P0/P1/P2.",
5
- "system_prompt": "You are the Laverna security review agent. Produce a markdown audit with P0/P1/P2-tagged findings and a Recommendation line.",
5
+ "system_prompt": "You are the Laverna security review agent. Structure the audit with exactly these markdown headers, in order: a `## Findings` section (P0/P1/P2-tagged findings), then a `## Recommendation` section with a single line: approve | revise | block.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Findings", "## Recommendation"],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "iwt-001",
3
- "task_type": "implement-with-tests",
3
+ "task_type": "feature",
4
4
  "input_prompt": "Implement a pure function `aggregate(records, by)` that groups a list of dicts by the field named `by` and sums `cost_estimate_usd` per bucket. Unknown bucket values become the literal string '(unknown)'. Raise ValueError for an unsupported `by`. Cover with pytest unit tests including the unknown-bucket path and the ValueError branch.",
5
5
  "system_prompt": "You are a Driver agent. Output a single Python file. Place the implementation and pytest tests in the same file. Follow TDD ordering: tests appear above the implementation.",
6
6
  "expected_shape": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "iwt-002",
3
- "task_type": "implement-with-tests",
3
+ "task_type": "feature",
4
4
  "input_prompt": "Implement `compute_threshold(spend_usd, cap_usd)` that returns one of the string verdicts 'ok' | 'warn80' | 'warn90' | 'over'. The boundaries are: <80% ok, ≥80% warn80, ≥90% warn90, ≥100% over. Treat cap_usd == 0 as 'over' when spend_usd > 0 and 'ok' otherwise. Cover every boundary exactly and the zero-cap edge case with pytest.",
5
5
  "system_prompt": "You are a Driver agent. Output a single Python file with implementation and pytest tests.",
6
6
  "expected_shape": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "iwt-003",
3
- "task_type": "implement-with-tests",
3
+ "task_type": "feature",
4
4
  "input_prompt": "Implement a soft-failing `log_call_safely(*, service, tokens_input, tokens_output, model, cost_estimate_usd, dispatch_origin, blocked, repo, path)` that appends a JSON-Lines record to `path`. The wrapper must NEVER raise: OSError (e.g. permission denied, parent missing) is logged and swallowed. Tests must include a successful write, an append (two records), and a fault-injected OSError path that does not propagate.",
5
5
  "system_prompt": "You are a Driver agent. Provide a single Python file: implementation followed by pytest tests using `tmp_path` and monkeypatch.",
6
6
  "expected_shape": {
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "rf-001",
3
+ "task_type": "refactor",
4
+ "input_prompt": "`validate_order(order)` and `validate_invoice(invoice)` each independently repeat the same three checks: non-empty `line_items`, non-negative `total`, and a valid ISO-8601 `created_at`. Extract the shared checks into a single `_validate_common_fields(obj)` helper that both functions call, without changing either function's public signature or error messages.",
5
+ "system_prompt": "You are a Driver agent doing a pure refactor -- behavior must not change. Output a single Python file: the refactored implementation followed by pytest tests proving both functions still produce identical error messages for each invalid case.",
6
+ "expected_shape": {
7
+ "produces_code": true,
8
+ "required_sections": [],
9
+ "min_length": 150,
10
+ "must_contain": ["def _validate_common_fields", "def test_"],
11
+ "must_not_contain": ["TODO"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-15-pc2.4",
16
+ "redacted": true,
17
+ "redaction_notes": "Domain objects (order/invoice) generalized from the original module."
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "rf-002",
3
+ "task_type": "refactor",
4
+ "input_prompt": "`summarize_batch(records)` is a single 90-line function that filters, groups, and aggregates in one pass, making it impossible to unit test the grouping logic in isolation. Decompose it into `_filter_valid(records)`, `_group_by_key(records)`, and `_aggregate_groups(groups)`, with `summarize_batch` becoming a thin composition of the three. Preserve the existing return shape exactly.",
5
+ "system_prompt": "You are a Driver agent doing a pure refactor -- behavior must not change. Output a single Python file: the decomposed implementation followed by pytest tests for each extracted helper plus one end-to-end test for `summarize_batch`.",
6
+ "expected_shape": {
7
+ "produces_code": true,
8
+ "required_sections": [],
9
+ "min_length": 200,
10
+ "must_contain": ["def _filter_valid", "def _group_by_key", "def _aggregate_groups", "def test_"],
11
+ "must_not_contain": ["TODO"],
12
+ "json_schema_keys": []
13
+ },
14
+ "metadata": {
15
+ "source": "session-2026-06-15-pc2.4",
16
+ "redacted": true,
17
+ "redaction_notes": "Function name and field names generalized from the original module."
18
+ }
19
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "id": "cr-001",
3
- "task_type": "code-review",
3
+ "task_type": "review",
4
4
  "input_prompt": "Review the following patch that adds a `dispatch_surface` field to TelemetryRecord. The field is a Literal[\"interactive\", \"programmatic\"] | None classified by a new `classify_dispatch_surface()` helper that wraps an `isatty` check on sys.stdout. Flag any backward-compatibility risks, any correctness gaps in the classifier (terminal detection edge cases), and any test-coverage gaps. Use the P0/P1/P2 severity scheme.",
5
- "system_prompt": "You are the Nayru review agent. Produce a markdown review with explicit findings tagged by severity (P0/P1/P2). Conclude with a Recommendation line: approve | revise | block.",
5
+ "system_prompt": "You are the Nayru review agent. Structure the review with exactly these markdown headers, in order: a `## Findings` section listing findings tagged by severity (P0/P1/P2), then a `## Recommendation` section with a single line: approve | revise | block.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Findings", "## Recommendation"],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "id": "cr-002",
3
- "task_type": "code-review",
3
+ "task_type": "review",
4
4
  "input_prompt": "Review the change that lifts the hardcoded model string from `_synthesize_with_llm` into a local variable `model = \"claude-sonnet-4-6\"` so it can be logged consistently with the actual API call. Confirm the lift covers the SKIP-response path (still billable) and the API-failure path (no record). Flag any places where the model string drifts away from the logged value.",
5
- "system_prompt": "You are the Nayru review agent. Produce a markdown review with findings tagged P0/P1/P2 and end with a Recommendation line: approve | revise | block.",
5
+ "system_prompt": "You are the Nayru review agent. Structure the review with exactly these markdown headers, in order: a `## Findings` section (findings tagged P0/P1/P2), then a `## Recommendation` section with a single line: approve | revise | block.",
6
6
  "expected_shape": {
7
7
  "produces_code": false,
8
8
  "required_sections": ["## Findings", "## Recommendation"],
@@ -1,9 +1,13 @@
1
1
  """Benchmark fixture data model + on-disk loaders.
2
2
 
3
- Defines the five v0 task types, the ``ExpectedShape`` spec used by the
3
+ Defines the five task types (aligned to the production telemetry
4
+ vocabulary -- paircoder#674), the ``ExpectedShape`` spec used by the
4
5
  default scorer, and the ``BenchmarkFixture`` record that ties an input
5
6
  prompt to an expected-shape spec. Fixtures live under
6
- ``fixtures/<task-type>/<id>.json`` next to this module.
7
+ ``fixtures/<task-type>/<id>.json`` next to this module. Retired fixtures
8
+ whose type has no production-vocabulary equivalent live under
9
+ ``fixtures/extended/`` and are excluded from the default load (see
10
+ ``load_all_fixtures``).
7
11
  """
8
12
 
9
13
  from __future__ import annotations
@@ -14,21 +18,23 @@ from pathlib import Path
14
18
  from typing import Any, Literal
15
19
 
16
20
  TaskType = Literal[
17
- "plan-draft",
18
- "implement-with-tests",
19
- "code-review",
20
- "security-audit",
21
- "content-draft",
21
+ "feature",
22
+ "bugfix",
23
+ "chore",
24
+ "refactor",
25
+ "review",
22
26
  ]
23
27
 
24
28
  TASK_TYPES: tuple[TaskType, ...] = (
25
- "plan-draft",
26
- "implement-with-tests",
27
- "code-review",
28
- "security-audit",
29
- "content-draft",
29
+ "feature",
30
+ "bugfix",
31
+ "chore",
32
+ "refactor",
33
+ "review",
30
34
  )
31
35
 
36
+ _EXTENDED_DIR_NAME = "extended"
37
+
32
38
 
33
39
  @dataclass
34
40
  class ExpectedShape:
@@ -103,20 +109,63 @@ class BenchmarkFixture:
103
109
  )
104
110
 
105
111
 
112
+ class FixtureShapeMismatch(ValueError):
113
+ """Raised when expected_shape demands content the fixture's prompt never states.
114
+
115
+ The grader fails any output missing a literal ``required_sections`` string.
116
+ A fixture whose prompt never asks the model for that section is unwinnable
117
+ by construction, and previously produced misleading cross-model scores
118
+ (paircoder#673). Loading fails closed instead.
119
+ """
120
+
121
+
122
+ def missing_required_sections(fixture: BenchmarkFixture) -> list[str]:
123
+ """Return required_sections entries absent from the fixture's own prompt text."""
124
+ haystack = f"{fixture.system_prompt or ''}\n{fixture.input_prompt}"
125
+ return [s for s in fixture.expected_shape.required_sections if s not in haystack]
126
+
127
+
128
+ def validate_fixture_shape(fixture: BenchmarkFixture) -> None:
129
+ """Fail closed if expected_shape.required_sections aren't demanded by the prompt."""
130
+ missing = missing_required_sections(fixture)
131
+ if missing:
132
+ raise FixtureShapeMismatch(
133
+ f"fixture {fixture.id!r} expected_shape.required_sections demands "
134
+ f"{missing}, but neither system_prompt nor input_prompt states it "
135
+ "verbatim",
136
+ )
137
+
138
+
106
139
  def fixtures_dir() -> Path:
107
140
  """Return the bundled-fixtures directory next to this module."""
108
141
  return Path(__file__).resolve().parent / "fixtures"
109
142
 
110
143
 
111
144
  def load_fixture(path: Path | str) -> BenchmarkFixture:
112
- """Load a single fixture from a JSON file."""
145
+ """Load a single fixture from a JSON file.
146
+
147
+ Raises ``FixtureShapeMismatch`` if the fixture's required_sections aren't
148
+ demanded by its own prompt.
149
+ """
113
150
  raw = json.loads(Path(path).read_text())
114
- return BenchmarkFixture.from_dict(raw)
151
+ fixture = BenchmarkFixture.from_dict(raw)
152
+ validate_fixture_shape(fixture)
153
+ return fixture
115
154
 
116
155
 
117
156
  def load_all_fixtures(root: Path | str) -> list[BenchmarkFixture]:
118
- """Recursively load every ``*.json`` fixture under ``root``."""
157
+ """Recursively load every default ``*.json`` fixture under ``root``.
158
+
159
+ Skips anything under an ``extended/`` subdirectory: retired fixtures
160
+ preserved there (paircoder#674) carry pre-vocabulary task_type values
161
+ and are excluded from the default matrix run, not merely a subset of
162
+ it.
163
+ """
119
164
  root_path = Path(root)
120
165
  if not root_path.is_dir():
121
166
  return []
122
- return [load_fixture(p) for p in sorted(root_path.rglob("*.json"))]
167
+ return [
168
+ load_fixture(p)
169
+ for p in sorted(root_path.rglob("*.json"))
170
+ if _EXTENDED_DIR_NAME not in p.relative_to(root_path).parts[:-1]
171
+ ]
@@ -2,7 +2,6 @@
2
2
  name: divona
3
3
  display_name: Divona
4
4
  description: QC testing specialist. Runs interactive browser-based regression tests via Chrome extension. Reads .qc.yaml suite specs, executes scenarios step-by-step, and produces structured pass/fail reports.
5
- tools: Read, Grep, Glob, Bash
6
5
  model: sonnet
7
6
  memory: project
8
7
  permissionMode: manual
@@ -16,6 +15,11 @@ agent-roles:
16
15
 
17
16
  You are a QC testing specialist that runs interactive browser-based regression tests using the Claude Chrome extension (`claude-in-chrome` MCP tools).
18
17
 
18
+ > **Tool availability:** the `mcp__claude-in-chrome__*` tools may be DEFERRED in your
19
+ > tool schema — load them via ToolSearch (one call, comma-separated select list)
20
+ > before use. Do NOT assume they are unavailable because they are not preloaded,
21
+ > and do not fall back to another browser mechanism without probing first.
22
+
19
23
  ## Your Role
20
24
 
21
25
  - Read QC test suite specs (`.qc.yaml` files)
@@ -3,7 +3,7 @@
3
3
  > **This file is generated. Do not edit by hand.**
4
4
  > Regenerate with: `python tools/cli/scripts/generate_cli_reference.py`
5
5
  > Source of truth: the installed `bpsai-pair` Typer app (`bpsai_pair.cli:app`)
6
- > bpsai-pair 2.35.1 | 284 commands across 48 groups
6
+ > bpsai-pair 2.35.2 | 284 commands across 48 groups
7
7
 
8
8
  ---
9
9
 
@@ -46,7 +46,7 @@ fi
46
46
  # compromised future releases. Bumped each release; see the releasing-versions
47
47
  # skill. Invariant enforced by tools/cli/tests/core/test_bootstrap_remote.py
48
48
  # (compares this value to tools/cli/pyproject.toml).
49
- PINNED_VERSION="2.35.1"
49
+ PINNED_VERSION="2.35.2"
50
50
 
51
51
  # Core runtime deps — the minimum set CLI startup needs to import without
52
52
  # crashing. `bpsai_pair.commands.__init__` imports every subcommand module
@@ -28,6 +28,7 @@ from bpsai_pair.benchmarks.matrix.schema import (
28
28
  MATRIX_CSV_FIELDS as _EXPECTED_FIELDS,
29
29
  )
30
30
  from bpsai_pair.feedback.calibration import CalibrationEngine
31
+ from bpsai_pair.feedback.task_type_aliases import normalize_task_type
31
32
  from bpsai_pair.telemetry.schema import (
32
33
  Outcome,
33
34
  PrivacyLevel,
@@ -99,7 +100,7 @@ def _build_record(
99
100
  # this is where we'd map it through.
100
101
  return TelemetryRecord(
101
102
  task_id=f"benchmark-{run_id}-{row['fixture_id']}",
102
- task_type=row["task_type"],
103
+ task_type=normalize_task_type(row["task_type"]),
103
104
  repo=project_repo,
104
105
  model=row["model_id"],
105
106
  tokens=TokenUsage(
@@ -0,0 +1,26 @@
1
+ """Alias normalization onto the production task_type vocabulary (paircoder#674).
2
+
3
+ Real telemetry across a 37-project inventory (2026-07-21) keys almost
4
+ entirely on ``feature``/``bugfix``/``chore``/``refactor``/``review``.
5
+ Older fixtures and re-seeded matrix.csv runs may still carry legacy
6
+ strings (e.g. ``code-review``); normalizing them at ingestion keeps
7
+ calibration cells joined to that production vocabulary instead of
8
+ forking into cells no real task ever keys into.
9
+ """
10
+ from __future__ import annotations
11
+
12
+ TASK_TYPE_ALIASES: dict[str, str] = {
13
+ "implementation": "feature",
14
+ "implement-with-tests": "feature",
15
+ "code-review": "review",
16
+ }
17
+
18
+
19
+ def normalize_task_type(raw: str) -> str:
20
+ """Map a legacy/informal task_type string onto the canonical vocabulary.
21
+
22
+ Values with no known alias pass through unchanged -- an unrecognized
23
+ task_type is data, not an error, and callers (e.g. the benchmark
24
+ seed adapter) rely on arbitrary strings being accepted.
25
+ """
26
+ return TASK_TYPE_ALIASES.get(raw, raw)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bpsai-pair
3
- Version: 2.35.1
3
+ Version: 2.35.2
4
4
  Summary: AI-augmented pair programming framework with 270+ CLI commands for planning, orchestration, Trello/GitHub integration, and autonomous workflows
5
5
  Author-email: BPS AI Software <support@paircoder.ai>
6
6
  License-Expression: LicenseRef-Proprietary
@@ -79,7 +79,7 @@ Provides-Extra: integrations
79
79
  Requires-Dist: py-trello>=0.19.0; extra == "integrations"
80
80
  Dynamic: license-file
81
81
 
82
- # PairCoder v2.35.1
82
+ # PairCoder v2.35.2
83
83
 
84
84
  > AI-augmented pair programming framework with 270+ CLI commands
85
85
 
@@ -189,6 +189,12 @@ Check your license: `bpsai-pair license status`
189
189
 
190
190
  > Full release history and detailed notes: [paircoder.ai](https://paircoder.ai).
191
191
 
192
+ **v2.35.2 — Benchmarks join reality, QC agent regains its browser**
193
+ - **Benchmark fixtures speak your task types.** The matrix fixture set is re-keyed to the vocabulary real projects actually use (`feature`, `bugfix`, `chore`, `refactor`, `review`), with legacy strings alias-normalized at ingestion — so `benchmark matrix-run --auto-seed` primes the same calibration cells your production tasks read, instead of cells nothing joins.
194
+ - **Fixtures can't over-demand.** A fail-closed fixture lint rejects any fixture whose grading requirements aren't explicitly stated in its own prompt, ending a class of false cross-model failures.
195
+ - **Divona sees Chrome again.** The QC agent's tool allowlist had excluded the browser tools entirely; it now inherits the full toolset and knows to load deferred browser tools before assuming they're absent.
196
+ - **GitHub Release notes publish again.** The release workflow's notes extraction wrote to the wrong stream in CI, shipping empty release bodies; notes now publish with every release.
197
+
192
198
  **v2.35.1 — Telemetry restored, typed git-failure handling, memory seed packs**
193
199
  - **Driver telemetry records again under parallel lanes.** v2.35.0's run-root worktree isolation sent driver-task telemetry into the ephemeral worktree, which is destroyed at run teardown — runs recorded zero driver rows. Telemetry now lands in the durable checkout, and calibration reads from the same place.
194
200
  - **Git and GitHub failures are classified, not guessed.** A typed failure taxonomy (transient / ambiguous / permanent) drives retries — unrecognized failures are never auto-retried — and error text is scrubbed of tokens and credentials.
@@ -44,18 +44,24 @@ bpsai_pair/benchmarks/matrix/models.py
44
44
  bpsai_pair/benchmarks/matrix/schema.py
45
45
  bpsai_pair/benchmarks/matrix/scorer.py
46
46
  bpsai_pair/benchmarks/matrix/task_set.py
47
- bpsai_pair/benchmarks/matrix/fixtures/code-review/cr-001.json
48
- bpsai_pair/benchmarks/matrix/fixtures/code-review/cr-002.json
49
- bpsai_pair/benchmarks/matrix/fixtures/content-draft/cd-001.json
50
- bpsai_pair/benchmarks/matrix/fixtures/content-draft/cd-002.json
51
- bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests/iwt-001.json
52
- bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests/iwt-002.json
53
- bpsai_pair/benchmarks/matrix/fixtures/implement-with-tests/iwt-003.json
54
- bpsai_pair/benchmarks/matrix/fixtures/plan-draft/pd-001.json
55
- bpsai_pair/benchmarks/matrix/fixtures/plan-draft/pd-002.json
56
- bpsai_pair/benchmarks/matrix/fixtures/plan-draft/pd-003.json
57
- bpsai_pair/benchmarks/matrix/fixtures/security-audit/sa-001.json
58
- bpsai_pair/benchmarks/matrix/fixtures/security-audit/sa-002.json
47
+ bpsai_pair/benchmarks/matrix/fixtures/bugfix/bf-001.json
48
+ bpsai_pair/benchmarks/matrix/fixtures/bugfix/bf-002.json
49
+ bpsai_pair/benchmarks/matrix/fixtures/chore/ch-001.json
50
+ bpsai_pair/benchmarks/matrix/fixtures/chore/ch-002.json
51
+ bpsai_pair/benchmarks/matrix/fixtures/extended/content-draft/cd-001.json
52
+ bpsai_pair/benchmarks/matrix/fixtures/extended/content-draft/cd-002.json
53
+ bpsai_pair/benchmarks/matrix/fixtures/extended/plan-draft/pd-001.json
54
+ bpsai_pair/benchmarks/matrix/fixtures/extended/plan-draft/pd-002.json
55
+ bpsai_pair/benchmarks/matrix/fixtures/extended/plan-draft/pd-003.json
56
+ bpsai_pair/benchmarks/matrix/fixtures/extended/security-audit/sa-001.json
57
+ bpsai_pair/benchmarks/matrix/fixtures/extended/security-audit/sa-002.json
58
+ bpsai_pair/benchmarks/matrix/fixtures/feature/iwt-001.json
59
+ bpsai_pair/benchmarks/matrix/fixtures/feature/iwt-002.json
60
+ bpsai_pair/benchmarks/matrix/fixtures/feature/iwt-003.json
61
+ bpsai_pair/benchmarks/matrix/fixtures/refactor/rf-001.json
62
+ bpsai_pair/benchmarks/matrix/fixtures/refactor/rf-002.json
63
+ bpsai_pair/benchmarks/matrix/fixtures/review/cr-001.json
64
+ bpsai_pair/benchmarks/matrix/fixtures/review/cr-002.json
59
65
  bpsai_pair/commands/__init__.py
60
66
  bpsai_pair/commands/advisory.py
61
67
  bpsai_pair/commands/arch.py
@@ -410,6 +416,7 @@ bpsai_pair/feedback/service.py
410
416
  bpsai_pair/feedback/stack_detect.py
411
417
  bpsai_pair/feedback/state_query.py
412
418
  bpsai_pair/feedback/stats.py
419
+ bpsai_pair/feedback/task_type_aliases.py
413
420
  bpsai_pair/feedback/workspace_query.py
414
421
  bpsai_pair/github/__init__.py
415
422
  bpsai_pair/github/client.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bpsai-pair"
3
- version = "2.35.1"
3
+ version = "2.35.2"
4
4
  description = "AI-augmented pair programming framework with 270+ CLI commands for planning, orchestration, Trello/GitHub integration, and autonomous workflows"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
File without changes
File without changes