phase-loop-runtime 0.7.22__tar.gz → 0.7.24__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 (1043) hide show
  1. {phase_loop_runtime-0.7.22/src/phase_loop_runtime.egg-info → phase_loop_runtime-0.7.24}/PKG-INFO +4 -3
  2. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/README.md +1 -1
  3. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/pyproject.toml +4 -2
  4. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/__init__.py +1 -1
  5. phase_loop_runtime-0.7.24/src/phase_loop_runtime/_baml_worker.py +202 -0
  6. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/adoption_bundle.py +3 -0
  7. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/CONTRACTS.md +435 -3
  8. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/config.py +48 -1
  9. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_modular.py +2204 -0
  10. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +37 -0
  11. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +14 -0
  12. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +50 -0
  13. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +16 -0
  14. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +20 -0
  15. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +111 -0
  16. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +30 -0
  17. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/phase_loop_bridge.baml +43 -0
  18. phase_loop_runtime-0.7.24/src/phase_loop_runtime/baml_src/verification_evidence.baml +40 -0
  19. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/claude_agent_view.py +11 -1
  20. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/cli.py +149 -3
  21. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/adapters/base.py +16 -4
  22. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/credential_redaction.py +1 -1
  23. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/evidence_audit.py +17 -1
  24. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/executor_availability.py +10 -0
  25. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/falsifier.py +2 -3
  26. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/gemini_heartbeat.py +6 -0
  27. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/governed_review.py +10 -0
  28. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/harness_env_signatures.py +5 -1
  29. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/injection.py +4 -5
  30. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/launcher.py +36 -7
  31. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/panel_invoker.py +1659 -111
  32. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/president_adapter.py +28 -14
  33. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/review_stage.py +15 -2
  34. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_assumptions.py +2 -2
  35. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/runner.py +127 -58
  36. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/sandbox_egress.py +76 -14
  37. phase_loop_runtime-0.7.24/src/phase_loop_runtime/sandbox_placement.py +529 -0
  38. phase_loop_runtime-0.7.24/src/phase_loop_runtime/sandbox_policy.py +1037 -0
  39. phase_loop_runtime-0.7.24/src/phase_loop_runtime/sandbox_retention.py +384 -0
  40. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_credentials.py +765 -0
  41. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_jail.py +1540 -0
  42. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_jail_autoqualify.py +262 -0
  43. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_jail_qualification.py +463 -0
  44. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_keyring_exec.py +55 -0
  45. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/seat_preflight.py +67 -0
  46. phase_loop_runtime-0.7.24/src/phase_loop_runtime/seat_uid.py +570 -0
  47. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24/src/phase_loop_runtime.egg-info}/PKG-INFO +4 -3
  48. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime.egg-info/SOURCES.txt +36 -0
  49. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime.egg-info/requires.txt +2 -1
  50. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_advisory_cli_802.py +2 -0
  51. phase_loop_runtime-0.7.24/tests/test_agent_cli_scratch_inventory_1147.py +839 -0
  52. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_agy_canary_evidence.py +5 -1
  53. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_conftest_isolation.py +12 -0
  54. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_executor_exited_without_closeout_785.py +13 -0
  55. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_harden_evidence_verifier.py +135 -0
  56. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_legible_roadmap_contract.py +6 -6
  57. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_dependency.py +31 -5
  58. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_modular.py +0 -19
  59. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_schema_export.py +15 -4
  60. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_schema_source.py +1 -1
  61. phase_loop_runtime-0.7.24/tests/test_phase_loop_baml_v1_callers.py +637 -0
  62. phase_loop_runtime-0.7.24/tests/test_phase_loop_baml_v1_runtime.py +5321 -0
  63. phase_loop_runtime-0.7.24/tests/test_phase_loop_baml_v1_supervisor_slot.py +280 -0
  64. phase_loop_runtime-0.7.24/tests/test_pr1161_r2_F001.py +45 -0
  65. phase_loop_runtime-0.7.24/tests/test_pr1161_r2_F002.py +31 -0
  66. phase_loop_runtime-0.7.24/tests/test_pr1161_r2_F003.py +21 -0
  67. phase_loop_runtime-0.7.24/tests/test_pr1161_r2_F004.py +29 -0
  68. phase_loop_runtime-0.7.24/tests/test_pr1161_r4_F001.py +17 -0
  69. phase_loop_runtime-0.7.24/tests/test_pr1161_r4_F002.py +23 -0
  70. phase_loop_runtime-0.7.24/tests/test_pr1161_r4_F003.py +9 -0
  71. phase_loop_runtime-0.7.24/tests/test_pr1161_r5_F001.py +16 -0
  72. phase_loop_runtime-0.7.24/tests/test_pr1161_r6_F001.py +24 -0
  73. phase_loop_runtime-0.7.24/tests/test_pr1161_r7_F001.py +77 -0
  74. phase_loop_runtime-0.7.24/tests/test_pr1161_r9_F002.py +26 -0
  75. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_qualified_agy_image_set.py +5 -2
  76. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_stage_binding.py +3 -2
  77. phase_loop_runtime-0.7.24/tests/test_sandbox_placement.py +1408 -0
  78. phase_loop_runtime-0.7.24/tests/test_sandbox_staging_1147.py +1410 -0
  79. phase_loop_runtime-0.7.24/tests/test_scratch_runtime_audit_1147.py +354 -0
  80. phase_loop_runtime-0.7.24/tests/test_seat_credentials.py +830 -0
  81. phase_loop_runtime-0.7.24/tests/test_seat_jail.py +731 -0
  82. phase_loop_runtime-0.7.24/tests/test_seat_jail_autoqualify.py +170 -0
  83. phase_loop_runtime-0.7.24/tests/test_seat_jail_live_d8.py +454 -0
  84. phase_loop_runtime-0.7.24/tests/test_seat_launch_helpers_trusted.py +276 -0
  85. phase_loop_runtime-0.7.24/tests/test_seat_login_wait_a3_1166.py +346 -0
  86. phase_loop_runtime-0.7.24/tests/test_seat_login_wait_board_context_r12.py +172 -0
  87. phase_loop_runtime-0.7.24/tests/test_seat_notices.py +1147 -0
  88. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_seat_preflight_1204.py +123 -5
  89. phase_loop_runtime-0.7.24/tests/test_seat_sandbox_permissions.py +1089 -0
  90. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_modular.py +0 -662
  91. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +0 -37
  92. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +0 -14
  93. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +0 -50
  94. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +0 -16
  95. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +0 -20
  96. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +0 -121
  97. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +0 -36
  98. phase_loop_runtime-0.7.22/src/phase_loop_runtime/baml_src/verification_evidence.baml +0 -40
  99. phase_loop_runtime-0.7.22/src/phase_loop_runtime/sandbox_policy.py +0 -343
  100. phase_loop_runtime-0.7.22/src/phase_loop_runtime/sandbox_retention.py +0 -182
  101. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/MANIFEST.in +0 -0
  102. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/protocol/protocol.md +0 -0
  103. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/setup.cfg +0 -0
  104. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +0 -0
  105. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +0 -0
  106. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +0 -0
  107. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +0 -0
  108. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +0 -0
  109. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +0 -0
  110. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md +0 -0
  111. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +0 -0
  112. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +0 -0
  113. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +0 -0
  114. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +0 -0
  115. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +0 -0
  116. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +0 -0
  117. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +0 -0
  118. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_proc_cpu.py +0 -0
  119. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +0 -0
  120. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +0 -0
  121. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +0 -0
  122. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +0 -0
  123. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +0 -0
  124. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +0 -0
  125. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +0 -0
  126. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +0 -0
  127. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +0 -0
  128. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +0 -0
  129. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +0 -0
  130. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +0 -0
  131. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +0 -0
  132. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +0 -0
  133. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +0 -0
  134. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +0 -0
  135. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +0 -0
  136. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +0 -0
  137. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +0 -0
  138. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +0 -0
  139. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +0 -0
  140. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +0 -0
  141. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +0 -0
  142. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +0 -0
  143. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +0 -0
  144. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +0 -0
  145. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +0 -0
  146. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +0 -0
  147. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +0 -0
  148. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +0 -0
  149. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +0 -0
  150. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +0 -0
  151. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +0 -0
  152. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +0 -0
  153. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +0 -0
  154. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +0 -0
  155. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +0 -0
  156. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +0 -0
  157. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +0 -0
  158. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/__init__.py +0 -0
  159. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/advisory_contract.py +0 -0
  160. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/backing.py +0 -0
  161. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/backing_omnigent.py +0 -0
  162. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/composition.py +0 -0
  163. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/events.py +0 -0
  164. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +0 -0
  165. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/fixtures.py +0 -0
  166. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/harness_mapping.py +0 -0
  167. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/matrix.py +0 -0
  168. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/observability.py +0 -0
  169. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/presets.py +0 -0
  170. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/registries.py +0 -0
  171. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/research.py +0 -0
  172. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/resolver.py +0 -0
  173. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/schema.py +0 -0
  174. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/standin.py +0 -0
  175. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/advisor_board/validation.py +0 -0
  176. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/agent_runtime_provider.py +0 -0
  177. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/agy_canary_evidence.py +0 -0
  178. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/agy_provenance.py +0 -0
  179. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/agy_qualification.py +0 -0
  180. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/agy_watch.py +0 -0
  181. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/broker.py +0 -0
  182. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/build_bundle.py +0 -0
  183. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/capability_registry.py +0 -0
  184. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/classifier.py +0 -0
  185. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/claude_channel_sidecar.py +0 -0
  186. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/closeout.py +0 -0
  187. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/closeout_classifier.py +0 -0
  188. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/closeout_evidence_audit.py +0 -0
  189. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/closeout_validation.py +0 -0
  190. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/closeout_validators.py +0 -0
  191. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/__init__.py +0 -0
  192. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/VENDOR.json +0 -0
  193. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/consiliency_spec/outside_agent_router.py +0 -0
  194. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-route-verdict.schema.json +0 -0
  195. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-submission.schema.json +0 -0
  196. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-empty-evidence-refs.json +0 -0
  197. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-git-object-id-length.json +0 -0
  198. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-missing-digest.json +0 -0
  199. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-path-traversal.json +0 -0
  200. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-raw-payload.json +0 -0
  201. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-source-bundle-mismatch.json +0 -0
  202. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unknown-producer-identity-posture.json +0 -0
  203. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unsupported-verdict.json +0 -0
  204. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/manifest.json +0 -0
  205. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-ambiguity-report.json +0 -0
  206. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-implementation-submission.json +0 -0
  207. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-work-request.json +0 -0
  208. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/certificate_tier.py +0 -0
  209. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/git_grounded_projection.py +0 -0
  210. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_advisory.py +0 -0
  211. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_conform_evidence.py +0 -0
  212. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_core.py +0 -0
  213. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_imports.py +0 -0
  214. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_pin.py +0 -0
  215. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_provenance.py +0 -0
  216. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_real.py +0 -0
  217. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_real_output.py +0 -0
  218. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_redaction.py +0 -0
  219. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_schema.py +0 -0
  220. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/conformance/outside_agent_vectors.py +0 -0
  221. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/consiliency_gates.py +0 -0
  222. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/consiliency_ingest.py +0 -0
  223. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/consiliency_layout.py +0 -0
  224. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/consiliency_scaffold.py +0 -0
  225. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/__init__.py +0 -0
  226. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/adapters/__init__.py +0 -0
  227. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/adapters/claude.py +0 -0
  228. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/adapters/codex.py +0 -0
  229. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/adapters/outside_agent.py +0 -0
  230. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/__init__.py +0 -0
  231. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/admission.py +0 -0
  232. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/credsep.py +0 -0
  233. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/evidence.py +0 -0
  234. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/live.py +0 -0
  235. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/broker/verbs.py +0 -0
  236. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/contracts.py +0 -0
  237. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/dispatch.py +0 -0
  238. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/event_log.py +0 -0
  239. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/fencing.py +0 -0
  240. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/provider_contracts.py +0 -0
  241. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/reconcile.py +0 -0
  242. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/refresh.py +0 -0
  243. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/convergence/status.py +0 -0
  244. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/cross_repo_channel.py +0 -0
  245. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/declared_identity.py +0 -0
  246. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/default_executor_resolver.py +0 -0
  247. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/deploy/phase-loop-task-message-broker.service +0 -0
  248. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/discovery.py +0 -0
  249. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/dispatch_lock.py +0 -0
  250. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/doc_delta_validator.py +0 -0
  251. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/docs_audit.py +0 -0
  252. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/docs_freshness.py +0 -0
  253. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/docs_surfaces.py +0 -0
  254. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/doctor.py +0 -0
  255. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/dotfiles_profile_plugin.py +0 -0
  256. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/entry_doc_check.py +0 -0
  257. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/events.py +0 -0
  258. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/events_migration.py +0 -0
  259. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/evidence_audit_config.py +0 -0
  260. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fab_canonical.py +0 -0
  261. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fab_delta.py +0 -0
  262. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fab_gate.py +0 -0
  263. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fab_producer.py +0 -0
  264. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fab_provenance.py +0 -0
  265. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fabpub_capability.py +0 -0
  266. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fabpub_tdd_chronology.py +0 -0
  267. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fabreadmit_capability.py +0 -0
  268. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fleet_map.py +0 -0
  269. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fleet_metrics.py +0 -0
  270. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/fleet_metrics_export.py +0 -0
  271. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/gate_posture.py +0 -0
  272. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/generated_outputs.py +0 -0
  273. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/git_discipline.py +0 -0
  274. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/git_ops.py +0 -0
  275. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/git_topology.py +0 -0
  276. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/goal_coverage.py +0 -0
  277. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/governed_bundle.py +0 -0
  278. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/governed_premerge.py +0 -0
  279. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/handoff.py +0 -0
  280. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/handoff_path.py +0 -0
  281. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/install_status.py +0 -0
  282. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/lane_scheduler.py +0 -0
  283. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/lease_store.py +0 -0
  284. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/lease_supervisor.py +0 -0
  285. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/legible_evidence.py +0 -0
  286. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/maintenance.py +0 -0
  287. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/migrate_handoffs.py +0 -0
  288. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/models.py +0 -0
  289. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/observability.py +0 -0
  290. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/phase_loop_drift_audit.py +0 -0
  291. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/phase_worktree_executor.py +0 -0
  292. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/__init__.py +0 -0
  293. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/branch_ops.py +0 -0
  294. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/flag.py +0 -0
  295. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/markers.py +0 -0
  296. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/merge_policy.py +0 -0
  297. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/ratification.py +0 -0
  298. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/pipeline_adapter/sibling_matcher.py +0 -0
  299. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/plan_ir.py +0 -0
  300. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/plan_manifest.py +0 -0
  301. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/plan_pin_lint.py +0 -0
  302. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/planner_validation.py +0 -0
  303. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/president_operation.py +0 -0
  304. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/producer_manifest.py +0 -0
  305. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/profiles.py +0 -0
  306. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/prompts.py +0 -0
  307. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/proof_stages.py +0 -0
  308. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/provenance.py +0 -0
  309. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/publishing.py +0 -0
  310. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/py.typed +0 -0
  311. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/ratification_policy.py +0 -0
  312. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/reconcile.py +0 -0
  313. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/redaction.py +0 -0
  314. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/reflection_sync.py +0 -0
  315. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/release_guard.py +0 -0
  316. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/render.py +0 -0
  317. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/repo_validation.py +0 -0
  318. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/review_summary.py +0 -0
  319. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/reviewtruth_native_fill_capability.py +0 -0
  320. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_authority.py +0 -0
  321. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_lint.py +0 -0
  322. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_ownership.py +0 -0
  323. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_representation_check.py +0 -0
  324. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/roadmap_reseal.py +0 -0
  325. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/route_log.py +0 -0
  326. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/route_policy/__init__.py +0 -0
  327. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +0 -0
  328. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/runtime_paths.py +0 -0
  329. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/runtime_projection.py +0 -0
  330. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/runtime_resources.py +0 -0
  331. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/schema_export.py +0 -0
  332. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +0 -0
  333. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +0 -0
  334. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/schemas/phase_loop_closeout.schema.json +0 -0
  335. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skill_install.py +0 -0
  336. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skill_inventory.py +0 -0
  337. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skill_paths.py +0 -0
  338. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skill_sources_plugin.py +0 -0
  339. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +0 -0
  340. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +0 -0
  341. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +0 -0
  342. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +0 -0
  343. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +0 -0
  344. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +0 -0
  345. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +0 -0
  346. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +0 -0
  347. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  348. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  349. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  350. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  351. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  352. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  353. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  354. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  355. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +0 -0
  356. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  357. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +0 -0
  358. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +0 -0
  359. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +0 -0
  360. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +0 -0
  361. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +0 -0
  362. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +0 -0
  363. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +0 -0
  364. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +0 -0
  365. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  366. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +0 -0
  367. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  368. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +0 -0
  369. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +0 -0
  370. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +0 -0
  371. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +0 -0
  372. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +0 -0
  373. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +0 -0
  374. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +0 -0
  375. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-run-train/README.md +0 -0
  376. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +0 -0
  377. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +0 -0
  378. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +0 -0
  379. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +0 -0
  380. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +0 -0
  381. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +0 -0
  382. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  383. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +0 -0
  384. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +0 -0
  385. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +0 -0
  386. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +0 -0
  387. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +0 -0
  388. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +0 -0
  389. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +0 -0
  390. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +0 -0
  391. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +0 -0
  392. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +0 -0
  393. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +0 -0
  394. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  395. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  396. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  397. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  398. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  399. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  400. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  401. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  402. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +0 -0
  403. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  404. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +0 -0
  405. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +0 -0
  406. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +0 -0
  407. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +0 -0
  408. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +0 -0
  409. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +0 -0
  410. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +0 -0
  411. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +0 -0
  412. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  413. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/roadmap-template.md +0 -0
  414. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  415. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +0 -0
  416. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +0 -0
  417. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +0 -0
  418. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +0 -0
  419. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +0 -0
  420. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +0 -0
  421. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +0 -0
  422. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-run-train/README.md +0 -0
  423. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +0 -0
  424. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +0 -0
  425. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +0 -0
  426. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +0 -0
  427. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +0 -0
  428. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +0 -0
  429. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  430. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +0 -0
  431. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +0 -0
  432. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +0 -0
  433. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +0 -0
  434. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +0 -0
  435. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +0 -0
  436. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +0 -0
  437. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +0 -0
  438. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +0 -0
  439. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +0 -0
  440. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +0 -0
  441. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  442. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  443. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  444. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  445. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  446. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  447. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  448. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  449. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +0 -0
  450. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  451. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +0 -0
  452. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +0 -0
  453. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +0 -0
  454. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +0 -0
  455. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +0 -0
  456. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +0 -0
  457. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +0 -0
  458. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +0 -0
  459. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  460. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/roadmap-template.md +0 -0
  461. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  462. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +0 -0
  463. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +0 -0
  464. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +0 -0
  465. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +0 -0
  466. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +0 -0
  467. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +0 -0
  468. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +0 -0
  469. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-run-train/README.md +0 -0
  470. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +0 -0
  471. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +0 -0
  472. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +0 -0
  473. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +0 -0
  474. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +0 -0
  475. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +0 -0
  476. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  477. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +0 -0
  478. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +0 -0
  479. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +0 -0
  480. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +0 -0
  481. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +0 -0
  482. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +0 -0
  483. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +0 -0
  484. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +0 -0
  485. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +0 -0
  486. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +0 -0
  487. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +0 -0
  488. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +0 -0
  489. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +0 -0
  490. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
  491. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
  492. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
  493. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
  494. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
  495. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
  496. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +0 -0
  497. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
  498. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +0 -0
  499. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +0 -0
  500. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +0 -0
  501. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +0 -0
  502. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +0 -0
  503. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +0 -0
  504. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +0 -0
  505. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +0 -0
  506. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
  507. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/roadmap-template.md +0 -0
  508. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
  509. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +0 -0
  510. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +0 -0
  511. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +0 -0
  512. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +0 -0
  513. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +0 -0
  514. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +0 -0
  515. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +0 -0
  516. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-run-train/README.md +0 -0
  517. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +0 -0
  518. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +0 -0
  519. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +0 -0
  520. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +0 -0
  521. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +0 -0
  522. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +0 -0
  523. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
  524. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +0 -0
  525. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +0 -0
  526. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +0 -0
  527. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/state.py +0 -0
  528. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/state_degradation.py +0 -0
  529. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/state_ops.py +0 -0
  530. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/task_message_broker.py +0 -0
  531. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/task_message_broker_client.py +0 -0
  532. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/task_message_resolver.py +0 -0
  533. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/tdd_receipts.py +0 -0
  534. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/train_ledger.py +0 -0
  535. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/train_review_packet.py +0 -0
  536. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/train_roadmap.py +0 -0
  537. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/train_runner.py +0 -0
  538. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/verification_evidence.py +0 -0
  539. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/verification_evidence_validator.py +0 -0
  540. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/visual_avatar_evidence_validator.py +0 -0
  541. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/visual_evidence_validator.py +0 -0
  542. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/worker_pool.py +0 -0
  543. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime/worktree_index.py +0 -0
  544. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime.egg-info/dependency_links.txt +0 -0
  545. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime.egg-info/entry_points.txt +0 -0
  546. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/src/phase_loop_runtime.egg-info/top_level.txt +0 -0
  547. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_acceptance_falsifier_contract.py +0 -0
  548. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_advisory_mode.py +0 -0
  549. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_alias_install.py +0 -0
  550. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_backcompat.py +0 -0
  551. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_backing_homebrew.py +0 -0
  552. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_backing_omnigent.py +0 -0
  553. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_cli_legacy.py +0 -0
  554. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_composition.py +0 -0
  555. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_concurrency.py +0 -0
  556. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_config.py +0 -0
  557. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_golden.py +0 -0
  558. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_ingestion.py +0 -0
  559. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_integration.py +0 -0
  560. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_live_research.py +0 -0
  561. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_matrix.py +0 -0
  562. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_observability.py +0 -0
  563. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_presets.py +0 -0
  564. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_registries.py +0 -0
  565. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_research.py +0 -0
  566. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_resolver.py +0 -0
  567. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_schema.py +0 -0
  568. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_board_static_import_862.py +0 -0
  569. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_advisor_twin_alias_legacy.py +0 -0
  570. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_agent_runtime_provider_cs08.py +0 -0
  571. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_agy_self_qualification.py +0 -0
  572. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_agy_single_event_transport_1175.py +0 -0
  573. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_autosel.py +0 -0
  574. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_branchgov_preflight.py +0 -0
  575. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_broker_command_builders.py +0 -0
  576. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_broker_evidence_schema_drift_789.py +0 -0
  577. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_broker_staged_tree_delivery.py +0 -0
  578. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_certificate_tier.py +0 -0
  579. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_chronology_scope.py +0 -0
  580. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_gate_metrics.py +0 -0
  581. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_main_red.py +0 -0
  582. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_offload_lock.py +0 -0
  583. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_quarantine.py +0 -0
  584. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_workflow_concurrency.py +0 -0
  585. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_xdist_adoption.py +0 -0
  586. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ci_xdist_witness.py +0 -0
  587. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_claude_json_schema_metaschema_291.py +0 -0
  588. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_cli_train_status_45.py +0 -0
  589. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_break_glass_cli.py +0 -0
  590. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_classifier.py +0 -0
  591. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_convergence_fixes.py +0 -0
  592. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_exception_vocab.py +0 -0
  593. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_generated_outputs.py +0 -0
  594. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_gitignored_disposable_186b.py +0 -0
  595. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_import_cycle_819.py +0 -0
  596. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_new_owned_directory_closes_clean.py +0 -0
  597. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_validator_hook.py +0 -0
  598. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_closeout_verification_gate.py +0 -0
  599. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_codex_effort_max_clamp_49.py +0 -0
  600. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_committed_range_diff.py +0 -0
  601. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_common_directory_leases_807.py +0 -0
  602. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_conform_timing_instrumentation.py +0 -0
  603. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_conformance_golden.py +0 -0
  604. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_consiliency_dual_layout.py +0 -0
  605. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_consiliency_gates.py +0 -0
  606. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_consiliency_ingest.py +0 -0
  607. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_consiliency_scaffold.py +0 -0
  608. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_console_scripts_are_declared.py +0 -0
  609. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_contract_floor_guard_378.py +0 -0
  610. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_adapters.py +0 -0
  611. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_admission.py +0 -0
  612. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_api.py +0 -0
  613. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_credsep.py +0 -0
  614. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_evidence.py +0 -0
  615. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_revocation_race.py +0 -0
  616. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_broker_verbs.py +0 -0
  617. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_cli_integration.py +0 -0
  618. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_coordination_contracts.py +0 -0
  619. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_dispatch.py +0 -0
  620. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_event_contracts.py +0 -0
  621. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_event_log.py +0 -0
  622. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_fencing.py +0 -0
  623. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_fixture_contracts.py +0 -0
  624. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_invalidation.py +0 -0
  625. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_live_enable.py +0 -0
  626. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_provider_contracts.py +0 -0
  627. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_reconcile.py +0 -0
  628. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_refresh.py +0 -0
  629. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_runtime_imports.py +0 -0
  630. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_seat_lifecycle.py +0 -0
  631. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_status.py +0 -0
  632. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_convergence_train_integration.py +0 -0
  633. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_coordinator_wave_loop.py +0 -0
  634. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_cr_fixes_pr220.py +0 -0
  635. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_credential_redaction_shapes.py +0 -0
  636. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_delegated_visual_evidence_91.py +0 -0
  637. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_discovery_hygiene_legacy.py +0 -0
  638. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dispatch_hold_guard.py +0 -0
  639. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dispatch_lock_cross_roadmap.py +0 -0
  640. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dispatch_lock_helper.py +0 -0
  641. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dispatch_lock_reentrancy.py +0 -0
  642. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dispatch_lock_same_roadmap.py +0 -0
  643. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_doc_delta_validator.py +0 -0
  644. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_docs_audit.py +0 -0
  645. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_docs_freshness.py +0 -0
  646. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_doctor_bom.py +0 -0
  647. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_dotfiles_tree.py +0 -0
  648. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_egress_prefix_crosses_the_broker_thread.py +0 -0
  649. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_entry_doc_check.py +0 -0
  650. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execfind_falsifier.py +0 -0
  651. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execfind_governed_promotion.py +0 -0
  652. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execgov.py +0 -0
  653. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execreg_launch_registry.py +0 -0
  654. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execute_phase_handoff_mode.py +0 -0
  655. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_execution_policy_tiering.py +0 -0
  656. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_executor_availability.py +0 -0
  657. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_export_schema.py +0 -0
  658. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_activation_promotion.py +0 -0
  659. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_canonical_b.py +0 -0
  660. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_closeout_crash_safety.py +0 -0
  661. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_closeout_wiring.py +0 -0
  662. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_delta_c.py +0 -0
  663. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_delta_consumer.py +0 -0
  664. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_flag_off_recovery_leak_299.py +0 -0
  665. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_gate_d.py +0 -0
  666. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_producer.py +0 -0
  667. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fab_provenance_a.py +0 -0
  668. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_admission_compat_789.py +0 -0
  669. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_bootstrap_writer_lock_1115.py +0 -0
  670. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_inventory_worktree_lifecycle_789.py +0 -0
  671. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_partition_rotation_789d.py +0 -0
  672. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_recovery_controls_789.py +0 -0
  673. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_rotate_partition_cli_789d.py +0 -0
  674. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_shared_epoch.py +0 -0
  675. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabpub_zero_history_bootstrap.py +0 -0
  676. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabreadmit_authority_digest_v2.py +0 -0
  677. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fabreadmit_broker.py +0 -0
  678. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_finding_F001.py +0 -0
  679. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fleet_map.py +0 -0
  680. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fleet_metrics.py +0 -0
  681. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_fleet_metrics_export.py +0 -0
  682. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_frozen_blob_batch_parse.py +0 -0
  683. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gate_a_wheel_isolation.py +0 -0
  684. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gate_fail_open_visibility.py +0 -0
  685. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gate_parity_244_245.py +0 -0
  686. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gate_posture.py +0 -0
  687. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gemini_heartbeat_bootstrap.py +0 -0
  688. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_gemini_heartbeat_filesystem_view.py +0 -0
  689. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_git_discipline.py +0 -0
  690. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_git_grounded_projection.py +0 -0
  691. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_goal_coverage.py +0 -0
  692. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_cross_vendor_floor_358.py +0 -0
  693. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_disjointness_model_first.py +0 -0
  694. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_e2e.py +0 -0
  695. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_gate_crfixes.py +0 -0
  696. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_planning_gate.py +0 -0
  697. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_premerge.py +0 -0
  698. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_premerge_live.py +0 -0
  699. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_governed_review.py +0 -0
  700. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_declared_identity.py +0 -0
  701. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_panel_policy.py +0 -0
  702. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_plan_manifest_issue_dispositions.py +0 -0
  703. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_plan_pin_lint.py +0 -0
  704. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_producer_manifest.py +0 -0
  705. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_proof_stages.py +0 -0
  706. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_roadmap_reseal.py +0 -0
  707. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_skill_policy_parity.py +0 -0
  708. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_govlean_tdd_receipts.py +0 -0
  709. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_grok_narrow_reject_231.py +0 -0
  710. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_grokexec.py +0 -0
  711. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_harden_evidence_producer.py +0 -0
  712. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_harden_json_depth_825.py +0 -0
  713. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_hotfix_lane.py +0 -0
  714. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_injection_skill_failloud.py +0 -0
  715. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_lane_ir_override.py +0 -0
  716. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_launcher_exec_supervisor.py +0 -0
  717. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_launcher_liveness.py +0 -0
  718. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_launchspec_golden.py +0 -0
  719. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_lease_store.py +0 -0
  720. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_lease_store_conformance.py +0 -0
  721. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ledger_serialization.py +0 -0
  722. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_leg_liveness_monitor.py +0 -0
  723. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_legible_evidence.py +0 -0
  724. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_legible_review_repairs.py +0 -0
  725. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_live_smoke_gate_executes.py +0 -0
  726. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_local_check.py +0 -0
  727. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_manifest_per_entry_164.py +0 -0
  728. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_model_class_policy.py +0 -0
  729. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_model_id_source_guard.py +0 -0
  730. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_model_tier_taxonomy.py +0 -0
  731. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_native_claude_seat_fill.py +0 -0
  732. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_native_claude_seat_fill_green.py +0 -0
  733. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_native_fill_refusal_cause.py +0 -0
  734. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_nonzero_suite_command_fails_closed.py +0 -0
  735. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_observability_alerting.py +0 -0
  736. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_advisory.py +0 -0
  737. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_advisory_cli.py +0 -0
  738. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_advisory_fixtures.py +0 -0
  739. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_authority_boundary.py +0 -0
  740. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_canonical_corpus.py +0 -0
  741. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_conform_evidence.py +0 -0
  742. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_contract_drift.py +0 -0
  743. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_contract_imports.py +0 -0
  744. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_contract_pin.py +0 -0
  745. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_core_api.py +0 -0
  746. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_provenance.py +0 -0
  747. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_real_ci.py +0 -0
  748. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_real_cli.py +0 -0
  749. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_real_output.py +0 -0
  750. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_real_runtime.py +0 -0
  751. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_redaction.py +0 -0
  752. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_redaction_separation.py +0 -0
  753. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_release_surface.py +0 -0
  754. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_schema_validation.py +0 -0
  755. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_outside_agent_vectors.py +0 -0
  756. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_owned_command_procfs_1003.py +0 -0
  757. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_packaged_vector_manifest_pin.py +0 -0
  758. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_advisory_mode_63.py +0 -0
  759. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_claude_review_output.py +0 -0
  760. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_codex_auth_signature_body_252.py +0 -0
  761. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_context_refs_114.py +0 -0
  762. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_doc_contract.py +0 -0
  763. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_gemini_no_command_preamble.py +0 -0
  764. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_invoker.py +0 -0
  765. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_invoker_spawn.py +0 -0
  766. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_invoker_timeout_argv.py +0 -0
  767. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_invoker_windows_import.py +0 -0
  768. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_lanes.py +0 -0
  769. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_leg_auth_preflight_64.py +0 -0
  770. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_leg_failure_diagnostic.py +0 -0
  771. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_leg_status_detail_1096.py +0 -0
  772. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_lens_delivery.py +0 -0
  773. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_native_fill_183.py +0 -0
  774. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_per_leg_model_66.py +0 -0
  775. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_streaming_verdicts.py +0 -0
  776. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_tui_eof_48.py +0 -0
  777. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_tui_liveness_188.py +0 -0
  778. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_tui_workspace_trust_223.py +0 -0
  779. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_panel_verdict_summary.py +0 -0
  780. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_parallel_dispatch_backcompat.py +0 -0
  781. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_parallel_dispatch_cli.py +0 -0
  782. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_adoption_bundle.py +0 -0
  783. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_adoption_bundle_cli.py +0 -0
  784. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_end_to_end.py +0 -0
  785. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_injection.py +0 -0
  786. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_prompt_taxonomy.py +0 -0
  787. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_baml_runner_closeout.py +0 -0
  788. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_branch_divergence_event.py +0 -0
  789. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_break_glass_rerun.py +0 -0
  790. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_build_bundle.py +0 -0
  791. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_classifier.py +0 -0
  792. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_agent_view_adapter.py +0 -0
  793. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_agent_view_dispatch_409.py +0 -0
  794. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_agent_view_lifecycle.py +0 -0
  795. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_hooks.py +0 -0
  796. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_mcp.py +0 -0
  797. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_security.py +0 -0
  798. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_session_launch.py +0 -0
  799. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_sidecar.py +0 -0
  800. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_channel_smoke_suite.py +0 -0
  801. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_claude_route_selection.py +0 -0
  802. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_cli.py +0 -0
  803. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_cli_plugin_load.py +0 -0
  804. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_control_only.py +0 -0
  805. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_event.py +0 -0
  806. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_evidence_audit.py +0 -0
  807. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_hardening.py +0 -0
  808. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_owned_dirty_fallback.py +0 -0
  809. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_schema.py +0 -0
  810. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_closeout_validation.py +0 -0
  811. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_collaborator_citation.py +0 -0
  812. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_collaborator_docs.py +0 -0
  813. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_collaborator_rollback.py +0 -0
  814. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_concurrent_phase_dispatch.py +0 -0
  815. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_def4_writer_namespacing.py +0 -0
  816. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dirty_path_classify_phase_owned_tests.py +0 -0
  817. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dirty_path_classify_previous_phase_owned.py +0 -0
  818. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_discovery.py +0 -0
  819. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_docs.py +0 -0
  820. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dotfiles_schemas.py +0 -0
  821. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dotfiles_sources.py +0 -0
  822. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_downstream_governed_pipeline.py +0 -0
  823. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_downstream_instruction_scope_readme.py +0 -0
  824. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_downstream_portal.py +0 -0
  825. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_downstream_regenesis.py +0 -0
  826. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_drift_audit.py +0 -0
  827. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dry_run_closeout_guard.py +0 -0
  828. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_dry_run_then_run.py +0 -0
  829. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_events_migration.py +0 -0
  830. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_evidence_audit.py +0 -0
  831. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_evidence_audit_runner.py +0 -0
  832. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_evidence_audit_tier2.py +0 -0
  833. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_evidence_audit_tier3.py +0 -0
  834. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_evidence_audit_tuning.py +0 -0
  835. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_execution_policy.py +0 -0
  836. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_executor_degradation.py +0 -0
  837. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_full_phase_mode.py +0 -0
  838. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_handoff.py +0 -0
  839. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_handoff_migration.py +0 -0
  840. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_init.py +0 -0
  841. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_injection.py +0 -0
  842. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_install_status.py +0 -0
  843. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_issue_84_explicit_phase.py +0 -0
  844. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_lane_harnesses.py +0 -0
  845. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_lane_ir.py +0 -0
  846. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_lane_ir_fixtures.py +0 -0
  847. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_lane_scheduler.py +0 -0
  848. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_launcher.py +0 -0
  849. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_ledger_debug.py +0 -0
  850. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_ledger_dedup.py +0 -0
  851. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_live_adapters.py +0 -0
  852. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_maintenance.py +0 -0
  853. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_metrics.py +0 -0
  854. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_migration_regressions.py +0 -0
  855. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_mixedrun_dispatch.py +0 -0
  856. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_mixedrun_matrix.py +0 -0
  857. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_mixedrun_observability.py +0 -0
  858. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_models.py +0 -0
  859. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_native_flags.py +0 -0
  860. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_parallel_plan_safe.py +0 -0
  861. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pi_executor.py +0 -0
  862. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_boundaries.py +0 -0
  863. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_bridge.py +0 -0
  864. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_bundle.py +0 -0
  865. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_closeout.py +0 -0
  866. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_freshness.py +0 -0
  867. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_pipeline_mode.py +0 -0
  868. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_plan_doc_skip.py +0 -0
  869. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_plan_manifest.py +0 -0
  870. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_planner_redispatch_when_plan_current.py +0 -0
  871. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_planner_validation.py +0 -0
  872. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_policy.py +0 -0
  873. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_protocol_contract.py +0 -0
  874. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_provenance.py +0 -0
  875. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_reconcile.py +0 -0
  876. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_reconcile_blocker_self_clear.py +0 -0
  877. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_reconcile_recovery_mode.py +0 -0
  878. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_reconcile_to_status_planned_recovery.py +0 -0
  879. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_reducers.py +0 -0
  880. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_repair_precondition_planned_closeout.py +0 -0
  881. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_repair_skipped_when_blocker_cleared.py +0 -0
  882. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_roadmap_amendments.py +0 -0
  883. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_roadmap_validate.py +0 -0
  884. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_rotation.py +0 -0
  885. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runner.py +0 -0
  886. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runner_closeout_validation.py +0 -0
  887. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runtime_boundary.py +0 -0
  888. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runtime_decouple.py +0 -0
  889. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runtime_package_data.py +0 -0
  890. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_runtime_projection.py +0 -0
  891. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_schema_flow.py +0 -0
  892. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_baml_closeout.py +0 -0
  893. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_bridge_contract.py +0 -0
  894. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_contract.py +0 -0
  895. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_execute_contract.py +0 -0
  896. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_install.py +0 -0
  897. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_skill_planner_contract.py +0 -0
  898. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_smoke_blockers.py +0 -0
  899. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_smoke_exhaustion.py +0 -0
  900. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_smoke_reentry.py +0 -0
  901. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_spurious_completion_rejection.py +0 -0
  902. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_start_gate_phase_status.py +0 -0
  903. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_start_gate_refuses_cross_phase_dirty.py +0 -0
  904. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_state.py +0 -0
  905. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_status_transition_events_emitted.py +0 -0
  906. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_substrate_soak_docs.py +0 -0
  907. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_substrate_soak_governed.py +0 -0
  908. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_substrate_soak_portal.py +0 -0
  909. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_terminal_summary_mirrors_baml_closeout.py +0 -0
  910. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v22_e2e.py +0 -0
  911. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v22_principles.py +0 -0
  912. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v45_found_contracts.py +0 -0
  913. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v45_reconcile.py +0 -0
  914. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v45_sched.py +0 -0
  915. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_v45_schedharden.py +0 -0
  916. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_wave_runner.py +0 -0
  917. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_work_unit_observability.py +0 -0
  918. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_work_unit_runner.py +0 -0
  919. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_work_unit_state.py +0 -0
  920. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_loop_worktrees.py +0 -0
  921. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_owned_dirty_relaxation.py +0 -0
  922. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_state_disagreement_312.py +0 -0
  923. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_phase_worktree_executor.py +0 -0
  924. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_branch_ops_create.py +0 -0
  925. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_branch_ops_rebase_conflict.py +0 -0
  926. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_branch_ops_refuse_default.py +0 -0
  927. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_flag.py +0 -0
  928. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_markers.py +0 -0
  929. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_merge_policy_parse.py +0 -0
  930. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_ratification_event_payload.py +0 -0
  931. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_ratification_runner.py +0 -0
  932. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_ratification_skipped_standalone.py +0 -0
  933. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pipeline_adapter_standalone_regression.py +0 -0
  934. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pkg_layout_freeze.py +0 -0
  935. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_plan_ir_iter_waves.py +0 -0
  936. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_plan_manifest_append_order_1174.py +0 -0
  937. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pr_readback_789.py +0 -0
  938. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_preflight_verification.py +0 -0
  939. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_president_heartbeat_1001.py +0 -0
  940. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_president_ladder_config.py +0 -0
  941. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_president_wiring.py +0 -0
  942. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_presroute_cli.py +0 -0
  943. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_presroute_hardening.py +0 -0
  944. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_presroute_landed.py +0 -0
  945. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_proc_cpu.py +0 -0
  946. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_proofgate_attestation_workflow.py +0 -0
  947. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_proofgate_cleanup.py +0 -0
  948. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_proofgate_isolation.py +0 -0
  949. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_proofgate_receipts.py +0 -0
  950. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_prune_merged_worktrees_script.py +0 -0
  951. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_public_installer.py +0 -0
  952. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_publishing.py +0 -0
  953. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_pushflow.py +0 -0
  954. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_qualify_network_owner.py +0 -0
  955. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_ratification_policy.py +0 -0
  956. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reconcile_manifest_dedup_46.py +0 -0
  957. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reconcile_portability_85c.py +0 -0
  958. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reconcile_tracked_closeout_recovery_90.py +0 -0
  959. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reconcile_verification_log.py +0 -0
  960. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reconcile_visual_avatar_evidence_91.py +0 -0
  961. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_redaction_channel_control_isolation.py +0 -0
  962. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_redaction_main_coverage_cases.py +0 -0
  963. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_reflection_sync.py +0 -0
  964. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_release_dispatch_operator_approval_145.py +0 -0
  965. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_release_pin_autotrack.py +0 -0
  966. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_repo_validation.py +0 -0
  967. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_leg_sandbox.py +0 -0
  968. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_monitor_policy.py +0 -0
  969. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_policy_govlean_repairs.py +0 -0
  970. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_seat_stall_1176.py +0 -0
  971. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_stage_board_findings.py +0 -0
  972. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_staged_tree_authorization.py +0 -0
  973. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_review_summary.py +0 -0
  974. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_roadmap_authority.py +0 -0
  975. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_roadmap_ownership.py +0 -0
  976. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_roadmap_representation_consistency.py +0 -0
  977. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_route_log.py +0 -0
  978. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_route_policy_conformance.py +0 -0
  979. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_routing_invariants.py +0 -0
  980. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_runner_visual_evidence_authoritative_91.py +0 -0
  981. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_runtime_adapter_output_720.py +0 -0
  982. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_runtime_event_log_hardening_720.py +0 -0
  983. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_runtime_procfs_identity_870.py +0 -0
  984. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_runtime_state_mirror_agreement.py +0 -0
  985. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sandbox_clone.py +0 -0
  986. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sandbox_egress.py +0 -0
  987. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sandbox_policy.py +0 -0
  988. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sandbox_preamble.py +0 -0
  989. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sandbox_retention.py +0 -0
  990. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_seat_host_uid_1098.py +0 -0
  991. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_self_asserted_passed_without_evidence_is_gated.py +0 -0
  992. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sibling_matcher_patterns.py +0 -0
  993. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skill_bundle_pinned.py +0 -0
  994. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skill_install_body_expansion.py +0 -0
  995. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skill_liveness_contract.py +0 -0
  996. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skill_plan_manifest_write.py +0 -0
  997. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skill_sources_seam.py +0 -0
  998. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skills_bundle_drift.py +0 -0
  999. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skills_canon_parity.py +0 -0
  1000. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_skills_src_claude_literal_lint.py +0 -0
  1001. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_spec_conformance_gate.py +0 -0
  1002. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_specpkgmin_wheel.py +0 -0
  1003. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_stale_roadmap_dispatch_guard.py +0 -0
  1004. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_status_read_only_62.py +0 -0
  1005. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_subscription_scrub_xai_864.py +0 -0
  1006. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_suite_interpreter_satisfies_requires_python.py +0 -0
  1007. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sweep_fleet_worktrees_script.py +0 -0
  1008. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_sync_skills_apply_failloud.py +0 -0
  1009. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_task_message_broker.py +0 -0
  1010. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_task_message_broker_cli.py +0 -0
  1011. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_task_message_resolver.py +0 -0
  1012. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_tdd_chronology.py +0 -0
  1013. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_the_real_launch_carries_the_prefix.py +0 -0
  1014. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_authority_import_811.py +0 -0
  1015. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_e2e.py +0 -0
  1016. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_invariants.py +0 -0
  1017. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_merge.py +0 -0
  1018. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_order_only_deps_47.py +0 -0
  1019. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_prebuilt.py +0 -0
  1020. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_review_authorization.py +0 -0
  1021. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_review_monitoring_policy.py +0 -0
  1022. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_review_packet.py +0 -0
  1023. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_roadmap.py +0 -0
  1024. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_train_runner.py +0 -0
  1025. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_unattended_release.py +0 -0
  1026. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_v34_parallel_dispatch_soak.py +0 -0
  1027. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_validate_plan_doc_docs_lane.py +0 -0
  1028. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_validate_plan_doc_fail_closed.py +0 -0
  1029. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_validate_plan_doc_goal_coverage.py +0 -0
  1030. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_validate_plan_doc_producer_dependency.py +0 -0
  1031. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_validate_plan_doc_proofgate.py +0 -0
  1032. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verification_dotdot_execution_428.py +0 -0
  1033. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verification_evidence.py +0 -0
  1034. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verification_evidence_validator.py +0 -0
  1035. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verification_interpreter_guard_221.py +0 -0
  1036. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verification_venv_identity_428.py +0 -0
  1037. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_verify_qualified_agy_route_core.py +0 -0
  1038. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_visual_avatar_evidence_validator.py +0 -0
  1039. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_visual_evidence_validator.py +0 -0
  1040. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_workerpool_failure_isolation.py +0 -0
  1041. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_workerpool_parallel.py +0 -0
  1042. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_workerpool_worktree_alloc.py +0 -0
  1043. {phase_loop_runtime-0.7.22 → phase_loop_runtime-0.7.24}/tests/test_worktree_index.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: phase-loop-runtime
3
- Version: 0.7.22
3
+ Version: 0.7.24
4
4
  Summary: Harness-neutral phase-loop orchestration runtime and CLI
5
5
  Author-email: ViperJuice <viperjuice@users.noreply.github.com>
6
6
  License-Expression: Apache-2.0
@@ -16,7 +16,8 @@ Classifier: Topic :: Software Development :: Build Tools
16
16
  Requires-Python: >=3.10
17
17
  Description-Content-Type: text/markdown
18
18
  Requires-Dist: detect-secrets==1.5.0
19
- Requires-Dist: baml-py<0.223,>=0.222
19
+ Requires-Dist: baml-bridge==0.20.1
20
+ Requires-Dist: protobuf<8,>=6.31.1
20
21
  Requires-Dist: pydantic<3,>=2
21
22
  Requires-Dist: PyYAML<7,>=6
22
23
  Requires-Dist: consiliency-contract<0.7,>=0.6.5
@@ -49,7 +50,7 @@ To install just this runtime package directly:
49
50
 
50
51
  ```sh
51
52
  pip install phase-loop-runtime # latest compatible release
52
- pip install phase-loop-runtime==0.7.22 # …or pin an exact version
53
+ pip install phase-loop-runtime==0.7.24 # …or pin an exact version
53
54
  ```
54
55
 
55
56
  To pin a specific tag from source instead, substitute a tag from
@@ -19,7 +19,7 @@ To install just this runtime package directly:
19
19
 
20
20
  ```sh
21
21
  pip install phase-loop-runtime # latest compatible release
22
- pip install phase-loop-runtime==0.7.22 # …or pin an exact version
22
+ pip install phase-loop-runtime==0.7.24 # …or pin an exact version
23
23
  ```
24
24
 
25
25
  To pin a specific tag from source instead, substitute a tag from
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "phase-loop-runtime" # PyPI dist name; NOT "agent-harness" (an unrelated third-party PyPI project)
7
- version = "0.7.22"
7
+ version = "0.7.24"
8
8
  description = "Harness-neutral phase-loop orchestration runtime and CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -20,7 +20,8 @@ classifiers = [
20
20
  ]
21
21
  dependencies = [
22
22
  "detect-secrets==1.5.0",
23
- "baml-py>=0.222,<0.223",
23
+ "baml-bridge==0.20.1",
24
+ "protobuf>=6.31.1,<8",
24
25
  "pydantic>=2,<3",
25
26
  "PyYAML>=6,<7",
26
27
  # PIN (spec-integration v0.3.0): floor at 0.6.3 -- ships the `gate_posture_registry`
@@ -155,6 +156,7 @@ phase_loop_runtime = [
155
156
  markers = [
156
157
  "dotfiles_integration: test requires a dotfiles fleet tree (skipped standalone)",
157
158
  "quarantine(reason): known flake tracked by an OPEN issue; deselected on pull-request CI only (agent-harness#1029)",
159
+ "host_seat_credentials: live jailed-seat test that reads the host's Claude login and seat-jail state (agent-harness#1132)",
158
160
  ]
159
161
 
160
162
  [tool.setuptools.data-files]
@@ -18,4 +18,4 @@ __all__ = [
18
18
  "state_ops",
19
19
  ]
20
20
 
21
- __version__ = "0.7.22"
21
+ __version__ = "0.7.24"
@@ -0,0 +1,202 @@
1
+ """BAML v1 worker process for ``phase_loop_runtime.baml_modular`` (agent-harness#1135).
2
+
3
+ This file runs as a standalone script (``python -I -S _baml_worker.py ...``).
4
+ It imports only the standard library and, after ``init``, ``baml_bridge``; it
5
+ never imports ``phase_loop_runtime``. Importing this module has no side
6
+ effects: everything below runs under ``if __name__ == "__main__":``.
7
+
8
+ argv: ``<owner pid> <comma-separated env allowlist keys> [--no-pdeathsig]``.
9
+
10
+ Protocol: one JSON object per line, UTF-8 with ``ensure_ascii=True``. Requests
11
+ arrive on fd 0; responses leave on a dup of fd 1 taken before fd 1 is pointed
12
+ at stderr, so nothing the native runtime prints can corrupt the protocol.
13
+ Every request carries an ``id`` that the response echoes. A response has
14
+ exactly the keys ``{id, fingerprint, <one of ok|error|request|fault>}``.
15
+
16
+ Op table (fixed): ``init``, ``parse_closeout``, ``closeout_request``,
17
+ ``evidence_request``, plus ``env`` when ``init`` carried ``test_mode``. An op
18
+ before ``init`` or a second ``init`` is answered with a ``fault``. Any
19
+ exception raised by an op (``BaseException``, including ``BamlPanic``) is
20
+ returned as a ``fault``; the client then discards and kills the worker.
21
+ """
22
+ from __future__ import annotations
23
+
24
+ import hashlib
25
+ import json
26
+ import os
27
+ import sys
28
+
29
+ _OP_FUNCTIONS = {
30
+ "parse_closeout": ("user.phase_loop_parse_closeout", ("raw",), ("ok", "error")),
31
+ "closeout_request": (
32
+ "user.phase_loop_closeout_request",
33
+ ("phase_alias", "plan_produces", "plan_owned_files", "closeout_commit_sha"),
34
+ ("request",),
35
+ ),
36
+ "evidence_request": (
37
+ "user.phase_loop_evidence_request",
38
+ ("tier2_signal_summary", "sample_artifact_content", "expected_artifact_characteristics"),
39
+ ("request",),
40
+ ),
41
+ }
42
+ # The client caps a request frame at 4 MiB + 1 KiB; anything larger here is a
43
+ # client bug or a hostile writer, and is refused rather than buffered forever.
44
+ _MAX_REQUEST_LINE = 4 * 1024 * 1024 + 1024 + 4096
45
+ _WATCHDOG_INTERVAL_S = 0.5
46
+ _PR_SET_PDEATHSIG = 1
47
+
48
+
49
+ def fingerprint(files: dict[str, str]) -> str:
50
+ canonical = json.dumps(files, sort_keys=True, separators=(",", ":"), ensure_ascii=True)
51
+ return hashlib.sha256(canonical.encode("ascii")).hexdigest()
52
+
53
+
54
+ def _set_pdeathsig(owner_pid: int) -> None:
55
+ import ctypes
56
+ import signal
57
+
58
+ # ctypes.CDLL(None) resolves prctl on glibc and musl alike; find_library("c")
59
+ # and "libc.so.6" do not work on musl.
60
+ libc = ctypes.CDLL(None, use_errno=True)
61
+ if libc.prctl(_PR_SET_PDEATHSIG, int(signal.SIGKILL), 0, 0, 0) != 0:
62
+ os._exit(70)
63
+ # The owner may have died between our fork and the prctl.
64
+ if os.getppid() != owner_pid:
65
+ os._exit(0)
66
+
67
+
68
+ def _start_watchdog(owner_pid: int) -> None:
69
+ import threading
70
+ import time
71
+
72
+ def watch() -> None:
73
+ while True:
74
+ if os.getppid() != owner_pid:
75
+ os._exit(0)
76
+ time.sleep(_WATCHDOG_INTERVAL_S)
77
+
78
+ threading.Thread(target=watch, name="baml-worker-watchdog", daemon=True).start()
79
+
80
+
81
+ class _Worker:
82
+ def __init__(self, out_fd: int, no_pdeathsig: bool) -> None:
83
+ self.out_fd = out_fd
84
+ self.no_pdeathsig = no_pdeathsig
85
+ self.fp: str | None = None
86
+ self.fns: dict[str, object] | None = None
87
+ self.test_mode = False
88
+
89
+ def send(self, obj: dict) -> None:
90
+ data = (json.dumps(obj, separators=(",", ":"), ensure_ascii=True) + "\n").encode("ascii")
91
+ view = memoryview(data)
92
+ while view:
93
+ written = os.write(self.out_fd, view)
94
+ view = view[written:]
95
+
96
+ def handle(self, line: bytes) -> None:
97
+ req_id = None
98
+ try:
99
+ req = json.loads(line.decode("ascii"))
100
+ if not isinstance(req, dict):
101
+ raise ValueError("request is not a JSON object")
102
+ req_id = req.get("id")
103
+ op = req.get("op")
104
+ if op == "init":
105
+ result = self.init(req)
106
+ self.send({"id": req_id, "fingerprint": self.fp, "ok": result})
107
+ return
108
+ if self.fns is None:
109
+ raise RuntimeError(f"op before init: {op!r}")
110
+ if op == "env" and self.test_mode:
111
+ self.send({"id": req_id, "fingerprint": self.fp, "ok": {"env": sorted(os.environ), "cwd": os.getcwd(), "pid": os.getpid()}})
112
+ return
113
+ if op not in _OP_FUNCTIONS:
114
+ raise RuntimeError(f"unknown op: {op!r}")
115
+ _name, params, keys = _OP_FUNCTIONS[op]
116
+ args = req.get("args")
117
+ if not isinstance(args, dict) or set(args) != set(params):
118
+ raise RuntimeError(f"bad args for {op}")
119
+ out = self.fns[op](**args)
120
+ if not isinstance(out, dict) or len(out) != 1:
121
+ raise RuntimeError(f"bridge {op} returned an unexpected shape")
122
+ ((key, value),) = out.items()
123
+ if key not in keys or not isinstance(value, str):
124
+ raise RuntimeError(f"bridge {op} returned key {key!r}")
125
+ self.send({"id": req_id, "fingerprint": self.fp, key: value})
126
+ except BaseException as exc: # noqa: BLE001 - every op failure is a typed fault
127
+ message = f"{type(exc).__module__}.{type(exc).__qualname__}: {str(exc)[:500]}"
128
+ self.send({"id": req_id, "fingerprint": self.fp, "fault": message})
129
+
130
+ def init(self, req: dict) -> dict:
131
+ if self.fns is not None:
132
+ raise RuntimeError("second init")
133
+ self.test_mode = req.get("test_mode") is True
134
+ if self.no_pdeathsig and not self.test_mode:
135
+ raise RuntimeError("--no-pdeathsig requires test_mode")
136
+ for entry in req.get("sys_path") or []:
137
+ if isinstance(entry, str) and os.path.isabs(entry) and entry not in sys.path:
138
+ sys.path.append(entry)
139
+ files = req.get("files")
140
+ if not isinstance(files, dict) or not all(isinstance(k, str) and isinstance(v, str) for k, v in files.items()):
141
+ raise RuntimeError("init files must be a map of strings")
142
+ import baml_bridge
143
+
144
+ baml_bridge.BamlRuntime.initialize_runtime("baml_src", files)
145
+ fns = {op: baml_bridge.define_function(name, "sync", list(params)) for op, (name, params, _keys) in _OP_FUNCTIONS.items()}
146
+ self.fp = fingerprint(files)
147
+ self.fns = fns
148
+ return {"version": baml_bridge.get_version(), "pid": os.getpid()}
149
+
150
+ def serve(self) -> None:
151
+ buf = b""
152
+ while True:
153
+ chunk = os.read(0, 1 << 16)
154
+ if not chunk:
155
+ return # stdin EOF: the graceful shutdown path
156
+ buf += chunk
157
+ while True:
158
+ newline = buf.find(b"\n")
159
+ if newline < 0:
160
+ break
161
+ line, buf = buf[:newline], buf[newline + 1 :]
162
+ self.handle(line)
163
+ if len(buf) > _MAX_REQUEST_LINE:
164
+ self.send({"id": None, "fingerprint": self.fp, "fault": "request line over cap"})
165
+ return
166
+
167
+
168
+ def main(argv: list[str]) -> int:
169
+ owner_pid = int(argv[1])
170
+ allowlist = {key for key in argv[2].split(",") if key} if len(argv) > 2 else set()
171
+ no_pdeathsig = "--no-pdeathsig" in argv[3:]
172
+
173
+ out_fd = os.dup(1)
174
+ os.dup2(2, 1)
175
+ sys.stdout = sys.stderr
176
+
177
+ # Normalize the environment before baml_bridge is ever imported: this drops
178
+ # interpreter-injected keys (C-locale coercion's LC_CTYPE,
179
+ # __PYVENV_LAUNCHER__) that the parent's allowlist never passed.
180
+ for key in list(os.environ):
181
+ if key not in allowlist:
182
+ del os.environ[key]
183
+ # The v1 runtime keeps a profile store of call data under the working
184
+ # directory (``.baml/profiles-v1``) unless profiling is off. Forced, not
185
+ # defaulted: no call data is ever written to disk, whatever was passed in.
186
+ os.environ["BAML_PROFILE"] = "0"
187
+ os.environ.pop("BAML_PROFILE_DIR", None)
188
+
189
+ if os.name == "posix":
190
+ if sys.platform.startswith("linux") and not no_pdeathsig:
191
+ _set_pdeathsig(owner_pid)
192
+ elif os.getppid() != owner_pid:
193
+ os._exit(0)
194
+ _start_watchdog(owner_pid)
195
+ # Windows: the parent's Job Object (KILL_ON_JOB_CLOSE) enforces owner death.
196
+
197
+ _Worker(out_fd, no_pdeathsig).serve()
198
+ return 0
199
+
200
+
201
+ if __name__ == "__main__":
202
+ sys.exit(main(sys.argv))
@@ -16,6 +16,7 @@ C4_DOCUMENT = Path("docs/c4/phase-loop-runtime-c4-document.md")
16
16
  TASK_CATALOG = Path("docs/tasks/dotfiles-task-catalog.md")
17
17
  RUNTIME_PROJECTION_SURFACE = "phase-loop status --runtime-projection --json"
18
18
  BAML_SCHEMA_ROOT = Path("vendor/phase-loop-runtime/src/phase_loop_runtime/baml_src")
19
+ BAML_BRIDGE_SOURCE = "phase_loop_bridge.baml"
19
20
  ADOPTION_BUNDLE_PATH = Path("docs/adoption/dotfiles-adoption-bundle.json")
20
21
 
21
22
 
@@ -143,6 +144,8 @@ def _source_roots(repo: Path) -> list[dict[str, str]]:
143
144
  def _schema_refs(repo: Path) -> list[dict[str, str]]:
144
145
  refs: list[dict[str, str]] = []
145
146
  for path in sorted((repo / BAML_SCHEMA_ROOT).glob("*.baml")):
147
+ if path.name == BAML_BRIDGE_SOURCE:
148
+ continue # host glue with no classes, not a schema (agent-harness#1135 #26)
146
149
  source_path = _repo_relative(repo, path)
147
150
  refs.append(
148
151
  {