agent-lifecycle-kit 2.6.0__tar.gz → 2.7.0__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 (421) hide show
  1. {agent_lifecycle_kit-2.6.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.7.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/implementation.py +12 -12
  6. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_observability.py +41 -0
  7. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/metrics_parser.py +7 -0
  8. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +105 -4
  9. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +47 -1
  10. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +2 -6
  11. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +2 -1
  12. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/contracts/review_round_schemas.py +427 -0
  13. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_verdict.py +52 -11
  14. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/schemas.py +2 -0
  15. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +479 -0
  16. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/package_integrity.py +2 -7
  17. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/__init__.py +14 -10
  18. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/metrics/audit_efficiency.py +455 -0
  19. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/audit_optimization.py +163 -44
  20. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/audit_samples.py +208 -29
  21. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/completeness.py +30 -9
  22. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/manifest_contract.py +12 -0
  23. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review/validation.py +2 -7
  24. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/results.py +47 -15
  25. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/review_mesh/synthesis.py +292 -0
  26. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_gate.py +45 -21
  27. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/finalization.py +2 -7
  28. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/reviews.py +2 -8
  29. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  30. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +3 -0
  31. agent_lifecycle_kit-2.6.0/src/agent_lifecycle/review_mesh/synthesis.py +0 -102
  32. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/LICENSE +0 -0
  33. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/NOTICE +0 -0
  34. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/README.md +0 -0
  35. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/manifest.json +0 -0
  36. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  37. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  38. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  39. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  40. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  41. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  42. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  43. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  44. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  45. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  46. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/setup.cfg +0 -0
  47. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/__init__.py +0 -0
  48. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/__main__.py +0 -0
  49. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  50. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  51. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  52. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  53. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  54. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  55. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  56. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  57. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  58. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  59. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  60. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  61. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  62. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  63. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  64. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  65. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  66. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  67. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  68. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  69. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  70. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  71. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  72. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  73. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  74. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  75. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  76. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  77. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  78. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  79. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  80. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  81. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  82. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/package.py +0 -0
  83. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  84. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  85. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  86. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  87. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  88. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  89. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  90. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  91. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  92. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  93. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  94. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  95. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  96. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  97. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/git.py +0 -0
  98. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  99. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  100. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  101. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  102. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  103. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  104. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  105. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  106. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
  107. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  108. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  109. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  110. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/errors.py +0 -0
  111. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/followup.py +0 -0
  112. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  113. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
  114. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/main.py +0 -0
  115. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  116. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  117. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  118. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  119. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/policy.py +0 -0
  120. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  121. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/project.py +0 -0
  122. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/research.py +0 -0
  123. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/start.py +0 -0
  124. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  125. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  126. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  127. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  128. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  129. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  130. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/__init__.py +0 -0
  131. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  132. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  133. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  134. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  135. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/profiles.py +0 -0
  136. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/rendering.py +0 -0
  137. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  138. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  139. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  140. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  141. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  142. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  143. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  144. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  145. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  146. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  147. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  148. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  149. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  150. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  151. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  152. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  153. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  154. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  155. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  156. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  157. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  158. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  159. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  160. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  161. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  162. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  163. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  164. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  165. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  166. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  167. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  168. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  169. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  170. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  171. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  172. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  173. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  174. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  175. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  176. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  177. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  178. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  179. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  180. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  181. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  182. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  183. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  184. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  185. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  186. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  187. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  188. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  189. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  190. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  191. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  192. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  194. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  195. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  196. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  198. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  200. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  201. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  202. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  203. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  205. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  207. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  208. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  209. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  210. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  212. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  213. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  214. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  215. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  216. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/__init__.py +0 -0
  217. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  218. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  219. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  220. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  221. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  222. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  223. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  224. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  225. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  226. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  227. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  228. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  229. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  230. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  231. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  232. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  233. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  234. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  235. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  236. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/followup/records.py +0 -0
  237. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  238. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  239. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  240. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/records.py +0 -0
  241. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/view.py +0 -0
  242. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  243. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  244. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  245. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  246. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  247. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  248. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  249. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  250. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  251. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  252. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  253. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  254. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  255. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  256. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  257. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  258. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  259. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  260. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  261. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  262. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  263. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  264. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  265. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  266. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  267. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  268. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  269. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  270. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  271. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  272. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  273. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  274. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  275. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  276. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  277. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  278. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  279. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  280. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  281. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  282. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  283. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/planning.py +0 -0
  284. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  285. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  286. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  287. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  288. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  289. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  290. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  291. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  292. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  293. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  294. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  295. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  296. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  297. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  298. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  299. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  300. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  301. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  302. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  303. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  304. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  305. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  306. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  307. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  308. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  309. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  310. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  311. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  312. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  313. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  314. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  315. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  316. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  317. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  318. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  319. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  320. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  321. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/templates.py +0 -0
  322. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  323. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  324. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/validation.py +0 -0
  325. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/verification.py +0 -0
  326. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  327. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  328. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/apply.py +0 -0
  329. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  330. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  331. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  332. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  333. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  334. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  335. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/__init__.py +0 -0
  336. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  337. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/guidance.py +0 -0
  338. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/merge.py +0 -0
  339. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/presets.py +0 -0
  340. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/principles.py +0 -0
  341. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/profile.py +0 -0
  342. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/py.typed +0 -0
  343. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  344. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  345. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  346. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  347. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  348. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  349. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  350. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/packs.py +0 -0
  351. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  352. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  353. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  354. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  355. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  356. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  357. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  358. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  359. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  360. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  361. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  362. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  363. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  364. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/__init__.py +0 -0
  365. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/evidence.py +0 -0
  366. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/provenance.py +0 -0
  367. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/validation.py +0 -0
  368. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/resources.py +0 -0
  369. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review/__init__.py +0 -0
  370. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  371. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  372. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  373. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  374. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  375. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  376. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  377. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  378. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/core.py +0 -0
  379. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  380. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  381. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  382. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  383. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/validation.py +0 -0
  384. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  385. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  386. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  387. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  388. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  389. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  390. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  391. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  392. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  393. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/events.py +0 -0
  394. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  395. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  396. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  397. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  398. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  399. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  400. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  401. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  402. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  403. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  404. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
  405. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/query.py +0 -0
  406. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  407. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  408. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/run.py +0 -0
  409. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  410. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  411. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  412. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  413. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/state.py +0 -0
  414. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  415. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
  416. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  417. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  418. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  419. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  420. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  421. {agent_lifecycle_kit-2.6.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-lifecycle-kit
3
- Version: 2.6.0
3
+ Version: 2.7.0
4
4
  Summary: Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion.
5
5
  Author: Agent Lifecycle Kit contributors
6
6
  License: Apache-2.0
@@ -43,7 +43,7 @@ ALK provides a verifiable finish for external-agent work with proportionate cont
43
43
  ## Quick start
44
44
  Start with [install ALK and make the first run](docs/guides/install-and-first-run.md).
45
45
 
46
- It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.6.0`, and common `agent-lifecycle version` errors.
46
+ It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.7.0`, and common `agent-lifecycle version` errors.
47
47
 
48
48
  For a quick start, run:
49
49
 
@@ -196,7 +196,7 @@ Adapter installation and support-level details live in [Adapter install](docs/ad
196
196
  - Start: [English documentation](docs/README.md), [Русская документация](docs/ru/README.md), [Install](docs/guides/install-and-first-run.md), [Quickstart](docs/guides/quickstart.md), [Beginner and advanced workflows](docs/guides/beginner-and-advanced-workflows.md), [Commands by task](docs/guides/commands-by-task.md), [Research workflow](docs/guides/research-workflow.md), [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md), and [Code review workflows](docs/guides/code-review-workflows.md).
197
197
  - Planning and adapters: [Issue to specification drafts](docs/guides/issue-to-spec.md), [Adapter install](docs/adapters/install.md), and [Adapter support matrix](docs/adapters/support-matrix.md).
198
198
  - Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [External verification checks](docs/reference/external-verification-checks.md), [Bounded external tool jobs](docs/reference/external-tool-jobs.md), [Project domain language](docs/reference/project-domain-language.md), [Multi-run attention view](docs/reference/multi-run-attention-view.md), [Plan verification](docs/reference/plan-verification.md), [Research evidence](docs/reference/research-evidence.md), [Public locators and redaction](docs/reference/public-locators-and-redaction.md), [Finding-to-check adoption](docs/reference/finding-check-adoption.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
199
- - Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
199
+ - Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [review efficiency](docs/reference/review-efficiency.md), [evidence independence](docs/reference/evidence-independence.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
200
200
  - Profiles and operations: [Project workflow presets](docs/reference/workflow-presets.md), [Project workflow profile](docs/reference/project-workflow-profile.md), [Read-only status views](docs/reference/read-only-status-view.md), [Adapter progress bridge](docs/reference/automatic-progress-bridge.md), [Sandbox boundaries](docs/reference/sandbox-boundaries.md), [Import mappers](docs/reference/import-mappers.md), [Episode retrieval](docs/reference/episode-retrieval.md), [Runner migration](docs/guides/runner-migration-2.md), [Runner recovery records](docs/reference/runner-recovery.md), [Cross-check profile](docs/reference/cross-check-profile.md), [Review Mesh](docs/reference/review-mesh.md), [Risk-bound independent verification](docs/reference/risk-bound-independent-verification.md), [Bug Forensics profile](docs/reference/bug-forensics.md), and [Bug Forensics context budget](docs/reference/bug-forensics-context-budget.md).
201
201
  - Release assets: [Task templates](templates/tasks/README.md), [Neutrality scanning](docs/reference/neutrality.md), and [Release security](docs/security/release-security.md).
202
202
  Apache-2.0. See [LICENSE](LICENSE).
@@ -21,7 +21,7 @@ ALK provides a verifiable finish for external-agent work with proportionate cont
21
21
  ## Quick start
22
22
  Start with [install ALK and make the first run](docs/guides/install-and-first-run.md).
23
23
 
24
- It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.6.0`, and common `agent-lifecycle version` errors.
24
+ It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.7.0`, and common `agent-lifecycle version` errors.
25
25
 
26
26
  For a quick start, run:
27
27
 
@@ -174,7 +174,7 @@ Adapter installation and support-level details live in [Adapter install](docs/ad
174
174
  - Start: [English documentation](docs/README.md), [Русская документация](docs/ru/README.md), [Install](docs/guides/install-and-first-run.md), [Quickstart](docs/guides/quickstart.md), [Beginner and advanced workflows](docs/guides/beginner-and-advanced-workflows.md), [Commands by task](docs/guides/commands-by-task.md), [Research workflow](docs/guides/research-workflow.md), [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md), and [Code review workflows](docs/guides/code-review-workflows.md).
175
175
  - Planning and adapters: [Issue to specification drafts](docs/guides/issue-to-spec.md), [Adapter install](docs/adapters/install.md), and [Adapter support matrix](docs/adapters/support-matrix.md).
176
176
  - Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [External verification checks](docs/reference/external-verification-checks.md), [Bounded external tool jobs](docs/reference/external-tool-jobs.md), [Project domain language](docs/reference/project-domain-language.md), [Multi-run attention view](docs/reference/multi-run-attention-view.md), [Plan verification](docs/reference/plan-verification.md), [Research evidence](docs/reference/research-evidence.md), [Public locators and redaction](docs/reference/public-locators-and-redaction.md), [Finding-to-check adoption](docs/reference/finding-check-adoption.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
177
- - Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
177
+ - Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [review efficiency](docs/reference/review-efficiency.md), [evidence independence](docs/reference/evidence-independence.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
178
178
  - Profiles and operations: [Project workflow presets](docs/reference/workflow-presets.md), [Project workflow profile](docs/reference/project-workflow-profile.md), [Read-only status views](docs/reference/read-only-status-view.md), [Adapter progress bridge](docs/reference/automatic-progress-bridge.md), [Sandbox boundaries](docs/reference/sandbox-boundaries.md), [Import mappers](docs/reference/import-mappers.md), [Episode retrieval](docs/reference/episode-retrieval.md), [Runner migration](docs/guides/runner-migration-2.md), [Runner recovery records](docs/reference/runner-recovery.md), [Cross-check profile](docs/reference/cross-check-profile.md), [Review Mesh](docs/reference/review-mesh.md), [Risk-bound independent verification](docs/reference/risk-bound-independent-verification.md), [Bug Forensics profile](docs/reference/bug-forensics.md), and [Bug Forensics context budget](docs/reference/bug-forensics-context-budget.md).
179
179
  - Release assets: [Task templates](templates/tasks/README.md), [Neutrality scanning](docs/reference/neutrality.md), and [Release security](docs/security/release-security.md).
180
180
  Apache-2.0. See [LICENSE](LICENSE).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "2.6.0"
7
+ version = "2.7.0"
8
8
  description = "Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -1,3 +1,3 @@
1
1
  """Package version."""
2
2
 
3
- __version__ = "2.6.0"
3
+ __version__ = "2.7.0"
@@ -8,6 +8,11 @@ from typing import Any
8
8
  from agent_lifecycle.audit.ownership import build_ownership_report, report_has_category
9
9
  from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object
10
10
  from agent_lifecycle.contracts.paths import normalize_repo_path
11
+ from agent_lifecycle.contracts.review_verdict import (
12
+ BLOCKING_REVIEW_SEVERITIES,
13
+ REVIEW_SEVERITY_RANK,
14
+ open_blocking_finding_ids,
15
+ )
11
16
  from agent_lifecycle.planning.task_compatibility import (
12
17
  validate_task_plan_compatibility_receipt,
13
18
  )
@@ -22,7 +27,6 @@ from agent_lifecycle.workflow.sandbox_policy import validate_task_sandbox_eviden
22
27
  from agent_lifecycle.workflow.selectors import find_task
23
28
  from agent_lifecycle.workflow.state import load_state
24
29
 
25
- SEVERITY_RANK = {"BLOCKER": 0, "HIGH": 1, "MEDIUM": 2, "LOW": 3, "INFO": 4}
26
30
  IMPLEMENTATION_AUDIT_SCHEMA = "agent-implementation-audit-report.v1"
27
31
  FINAL_IMPLEMENTATION_AUDIT_SCHEMA = "agent-final-implementation-audit.v1"
28
32
 
@@ -609,14 +613,7 @@ def _has_blockers(payload: dict[str, Any]) -> bool:
609
613
 
610
614
  def _has_open_blocking_findings(payload: dict[str, Any]) -> bool:
611
615
  findings = payload.get("findings")
612
- if not isinstance(findings, list):
613
- return False
614
- return any(
615
- isinstance(item, dict)
616
- and item.get("status") == "open"
617
- and item.get("severity") in {"BLOCKER", "HIGH", "MEDIUM"}
618
- for item in findings
619
- )
616
+ return isinstance(findings, list) and bool(open_blocking_finding_ids(findings))
620
617
 
621
618
 
622
619
  def _add_finding(
@@ -639,12 +636,15 @@ def _add_finding(
639
636
  "context": context or {},
640
637
  }
641
638
  findings.append(finding)
642
- if severity in {"BLOCKER", "HIGH", "MEDIUM"}:
639
+ if severity in BLOCKING_REVIEW_SEVERITIES:
643
640
  blockers.append({"code": code, "severity": severity, "message": message, "context": context or {}})
644
641
 
645
642
 
646
643
  def _sorted_findings(findings: list[dict[str, Any]]) -> list[dict[str, Any]]:
647
- return sorted(findings, key=lambda item: (SEVERITY_RANK.get(str(item.get("severity")), 99), str(item.get("code"))))
644
+ return sorted(
645
+ findings,
646
+ key=lambda item: (REVIEW_SEVERITY_RANK.get(str(item.get("severity")), 99), str(item.get("code"))),
647
+ )
648
648
 
649
649
 
650
650
  def _verdict(findings: list[dict[str, Any]]) -> str:
@@ -652,7 +652,7 @@ def _verdict(findings: list[dict[str, Any]]) -> str:
652
652
  return "BLOCKED"
653
653
  if any(item.get("category") == "ownership" for item in findings):
654
654
  return "CONTRACT_CHANGE"
655
- if any(item.get("severity") in {"HIGH", "MEDIUM"} for item in findings):
655
+ if any(item.get("severity") in BLOCKING_REVIEW_SEVERITIES for item in findings):
656
656
  return "REWORK"
657
657
  return "ACCEPTED"
658
658
 
@@ -57,6 +57,11 @@ from agent_lifecycle.metrics import (
57
57
  validate_release_accounting,
58
58
  validate_usage_export,
59
59
  )
60
+ from agent_lifecycle.metrics.audit_efficiency import (
61
+ build_audit_efficiency_report,
62
+ validate_audit_efficiency_input,
63
+ validate_audit_efficiency_report,
64
+ )
60
65
  from agent_lifecycle.metrics.audit_optimization import (
61
66
  build_audit_optimization_report,
62
67
  render_audit_optimization_terminal,
@@ -581,6 +586,8 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
581
586
  return payload
582
587
  if args.metrics_command == "audit-report":
583
588
  return _dispatch_audit_report(args)
589
+ if args.metrics_command == "audit-efficiency":
590
+ return _dispatch_audit_efficiency(args)
584
591
  if args.metrics_command == "audit-proposal":
585
592
  report = read_json_object(Path(args.report), label="audit optimization report")
586
593
  raw_recommendation = report.get("recommendation")
@@ -698,6 +705,40 @@ def _dispatch_audit_report(args: argparse.Namespace) -> dict[str, Any] | str:
698
705
  return report
699
706
 
700
707
 
708
+ def _dispatch_audit_efficiency(args: argparse.Namespace) -> dict[str, Any]:
709
+ measurement = read_json_object(Path(args.input), label="audit efficiency input")
710
+ validation = validate_audit_efficiency_input(measurement)
711
+ if validation["status"] != "PASS":
712
+ raise LifecycleError(
713
+ "audit-efficiency-input-invalid",
714
+ "audit efficiency input validation failed",
715
+ {"validation": validation},
716
+ )
717
+
718
+ comparisons: list[dict[str, Any]] = []
719
+ for index, path in enumerate(args.comparison):
720
+ comparison = read_json_object(Path(path), label="audit efficiency comparison")
721
+ comparison_validation = validate_audit_efficiency_input(comparison)
722
+ if comparison_validation["status"] != "PASS":
723
+ raise LifecycleError(
724
+ "audit-efficiency-comparison-invalid",
725
+ "audit efficiency comparison validation failed",
726
+ {"index": index, "validation": comparison_validation},
727
+ )
728
+ comparisons.append(comparison)
729
+
730
+ report = build_audit_efficiency_report(measurement, comparison_measurements=comparisons)
731
+ report_validation = validate_audit_efficiency_report(report)
732
+ if report_validation["status"] != "PASS":
733
+ raise LifecycleError(
734
+ "audit-efficiency-report-invalid",
735
+ "audit efficiency report validation failed",
736
+ {"validation": report_validation},
737
+ )
738
+ write_json_create(Path(args.out), report)
739
+ return report
740
+
741
+
701
742
  def _read_audit_samples(paths: list[str]) -> list[dict[str, Any]]:
702
743
  samples: list[dict[str, Any]] = []
703
744
  for item in paths:
@@ -77,6 +77,13 @@ def add_metrics_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentP
77
77
  audit_report.add_argument("--current-profile")
78
78
  audit_report.add_argument("--out", required=True)
79
79
  audit_report.add_argument("--terminal", action="store_true")
80
+ audit_efficiency = metrics_sub.add_parser(
81
+ "audit-efficiency",
82
+ help="report quality-preserving audit efficiency from explicit accounting inputs",
83
+ )
84
+ audit_efficiency.add_argument("--input", required=True)
85
+ audit_efficiency.add_argument("--comparison", action="append", default=[])
86
+ audit_efficiency.add_argument("--out", required=True)
80
87
  audit_proposal = metrics_sub.add_parser("audit-proposal", help="create an explicit audit optimization proposal")
81
88
  audit_proposal.add_argument("--report", required=True)
82
89
  audit_proposal.add_argument("--out", required=True)
@@ -14,9 +14,69 @@ AUDIT_OPTIMIZATION_REPORT_SCHEMA = "agent-audit-optimization-report.v1"
14
14
  AUDIT_OPTIMIZATION_PROPOSAL_SCHEMA = "agent-audit-optimization-proposal.v1"
15
15
  AUDIT_OPTIMIZATION_APPLIED_PROFILE_SCHEMA = "agent-audit-optimization-applied-profile.v1"
16
16
  AUDIT_OPTIMIZATION_APPLY_RESULT_SCHEMA = "agent-audit-optimization-apply-result.v1"
17
+ AUDIT_EFFICIENCY_INPUT_SCHEMA = "agent-audit-efficiency-input.v1"
18
+ AUDIT_EFFICIENCY_REPORT_SCHEMA = "agent-audit-efficiency-report.v1"
17
19
 
18
20
 
19
21
  AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
22
+ AUDIT_EFFICIENCY_INPUT_SCHEMA: open_object_schema(
23
+ AUDIT_EFFICIENCY_INPUT_SCHEMA,
24
+ required=[
25
+ "schemaVersion",
26
+ "releaseId",
27
+ "sourceRevision",
28
+ "sourceLineageDigest",
29
+ "qualityFloor",
30
+ "views",
31
+ "outcomes",
32
+ "totals",
33
+ "productionPromotionClaimed",
34
+ "inputDigest",
35
+ ],
36
+ properties={
37
+ "releaseId": {"type": "string", "minLength": 1},
38
+ "sourceRevision": {"type": "string", "minLength": 1},
39
+ "sourceLineageDigest": {"type": "string", "minLength": 64, "maxLength": 64},
40
+ "qualityFloor": {"type": "string", "minLength": 1},
41
+ "views": {"type": "object"},
42
+ "outcomes": {"type": "object"},
43
+ "totals": {"type": "object"},
44
+ "productionPromotionClaimed": {"const": False},
45
+ "inputDigest": {"type": "string", "minLength": 64, "maxLength": 64},
46
+ },
47
+ ),
48
+ AUDIT_EFFICIENCY_REPORT_SCHEMA: open_object_schema(
49
+ AUDIT_EFFICIENCY_REPORT_SCHEMA,
50
+ required=[
51
+ "schemaVersion",
52
+ "status",
53
+ "releaseId",
54
+ "qualityFloor",
55
+ "qualityFloorPreserved",
56
+ "metrics",
57
+ "comparison",
58
+ "advisoryOnly",
59
+ "autoApply",
60
+ "blockers",
61
+ "inputDigest",
62
+ "productionPromotionClaimed",
63
+ "reportDigest",
64
+ ],
65
+ properties={
66
+ "status": {"enum": ["PASS", "NO_COMPARISON", "FAIL"]},
67
+ "releaseId": {"type": ["string", "null"]},
68
+ "qualityFloor": {"type": ["string", "null"]},
69
+ "qualityFloorPreserved": {"const": True},
70
+ "metrics": {"type": "object"},
71
+ "comparison": {"type": "object"},
72
+ "advisoryOnly": {"const": True},
73
+ "autoApply": {"const": False},
74
+ "blockers": {"type": "array", "items": {"type": "object"}},
75
+ "inputDigest": {"type": ["string", "null"]},
76
+ "productionPromotionClaimed": {"const": False},
77
+ "reportDigest": {"type": "string", "minLength": 64, "maxLength": 64},
78
+ },
79
+ ),
20
80
  AUDIT_OPTIMIZATION_SAMPLE_SCHEMA: open_object_schema(
21
81
  AUDIT_OPTIMIZATION_SAMPLE_SCHEMA,
22
82
  required=[
@@ -42,6 +102,7 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
42
102
  properties={
43
103
  "sampleId": {"type": "string", "minLength": 1},
44
104
  "lineage": {"type": "object"},
105
+ "statisticalProvenance": {"type": "object"},
45
106
  "request": {"type": "object"},
46
107
  "review": {"type": "object"},
47
108
  "attempts": {"type": "object"},
@@ -61,7 +122,16 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
61
122
  ),
62
123
  AUDIT_OPTIMIZATION_SAMPLE_BATCH_SCHEMA: open_object_schema(
63
124
  AUDIT_OPTIMIZATION_SAMPLE_BATCH_SCHEMA,
64
- required=["schemaVersion", "status", "sampleCount", "samples", "sourceCount", "blockers", "productionPromotionClaimed", "batchDigest"],
125
+ required=[
126
+ "schemaVersion",
127
+ "status",
128
+ "sampleCount",
129
+ "samples",
130
+ "sourceCount",
131
+ "blockers",
132
+ "productionPromotionClaimed",
133
+ "batchDigest",
134
+ ],
65
135
  properties={
66
136
  "status": {"enum": ["PASS", "FAIL"]},
67
137
  "sampleCount": {"type": "integer", "minimum": 0},
@@ -74,7 +144,16 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
74
144
  ),
75
145
  AUDIT_OPTIMIZATION_STATISTICS_SCHEMA: open_object_schema(
76
146
  AUDIT_OPTIMIZATION_STATISTICS_SCHEMA,
77
- required=["schemaVersion", "status", "sampleCount", "confidence", "minimumSample", "signals", "blockers", "statisticsDigest"],
147
+ required=[
148
+ "schemaVersion",
149
+ "status",
150
+ "sampleCount",
151
+ "confidence",
152
+ "minimumSample",
153
+ "signals",
154
+ "blockers",
155
+ "statisticsDigest",
156
+ ],
78
157
  properties={
79
158
  "status": {"enum": ["PASS", "NO_RECOMMENDATION", "FAIL"]},
80
159
  "sampleCount": {"type": "integer", "minimum": 0},
@@ -121,7 +200,16 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
121
200
  ),
122
201
  AUDIT_OPTIMIZATION_REPORT_SCHEMA: open_object_schema(
123
202
  AUDIT_OPTIMIZATION_REPORT_SCHEMA,
124
- required=["schemaVersion", "status", "statistics", "evaluation", "recommendation", "nextAction", "productionPromotionClaimed", "reportDigest"],
203
+ required=[
204
+ "schemaVersion",
205
+ "status",
206
+ "statistics",
207
+ "evaluation",
208
+ "recommendation",
209
+ "nextAction",
210
+ "productionPromotionClaimed",
211
+ "reportDigest",
212
+ ],
125
213
  properties={
126
214
  "status": {"enum": ["PASS", "NO_RECOMMENDATION", "FAIL"]},
127
215
  "statistics": {"type": "object"},
@@ -134,7 +222,18 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
134
222
  ),
135
223
  AUDIT_OPTIMIZATION_PROPOSAL_SCHEMA: open_object_schema(
136
224
  AUDIT_OPTIMIZATION_PROPOSAL_SCHEMA,
137
- required=["schemaVersion", "status", "proposalId", "sourceRecommendationDigest", "approvalRequired", "applyAllowed", "candidateChanges", "rollback", "productionPromotionClaimed", "proposalDigest"],
225
+ required=[
226
+ "schemaVersion",
227
+ "status",
228
+ "proposalId",
229
+ "sourceRecommendationDigest",
230
+ "approvalRequired",
231
+ "applyAllowed",
232
+ "candidateChanges",
233
+ "rollback",
234
+ "productionPromotionClaimed",
235
+ "proposalDigest",
236
+ ],
138
237
  properties={
139
238
  "status": {"enum": ["PASS", "FAIL"]},
140
239
  "proposalId": {"type": "string", "minLength": 1},
@@ -201,6 +300,8 @@ AUDIT_OPTIMIZATION_SCHEMAS: dict[str, dict[str, Any]] = {
201
300
 
202
301
 
203
302
  __all__ = [
303
+ "AUDIT_EFFICIENCY_INPUT_SCHEMA",
304
+ "AUDIT_EFFICIENCY_REPORT_SCHEMA",
204
305
  "AUDIT_OPTIMIZATION_APPLIED_PROFILE_SCHEMA",
205
306
  "AUDIT_OPTIMIZATION_APPLY_RESULT_SCHEMA",
206
307
  "AUDIT_OPTIMIZATION_PROPOSAL_SCHEMA",
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import re
5
6
  from typing import Any
6
7
 
7
8
  from agent_lifecycle.contracts import LifecycleError, canonical_digest
@@ -23,6 +24,7 @@ _DIGEST = {"type": "string", "pattern": "^[0-9a-f]{64}$"}
23
24
  _ID = {"type": "string", "minLength": 1, "maxLength": 256}
24
25
  _TEXT = {"type": "string", "minLength": 1, "maxLength": 2048}
25
26
  _BLOCKERS = {"type": "array", "items": {"type": "object"}, "maxItems": 128}
27
+ _CHECK_ROUTE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._/-]{0,255}$")
26
28
 
27
29
 
28
30
  FINDING_CHECK_SCHEMAS: dict[str, dict[str, Any]] = {
@@ -100,6 +102,7 @@ FINDING_CHECK_SCHEMAS: dict[str, dict[str, Any]] = {
100
102
  "proposalId": _ID,
101
103
  "status": {"enum": ["PASS", "FAIL"]},
102
104
  "binding": {"type": "object"},
105
+ "reviewerReproduction": {"type": "object", "maxProperties": 4},
103
106
  "approvalRequired": {"const": True},
104
107
  "applyAllowed": {"const": False},
105
108
  "authorityClaimed": {"const": False},
@@ -468,6 +471,15 @@ def validate_finding_check_proposal(proposal: dict[str, Any]) -> dict[str, Any]:
468
471
  blockers.append({"code": "finding-check-proposal-binding-invalid"})
469
472
  if proposal.get("status") not in {"PASS", "FAIL"}:
470
473
  blockers.append({"code": "finding-check-proposal-status-invalid"})
474
+ reproduction = proposal.get("reviewerReproduction")
475
+ if reproduction is not None and (
476
+ not isinstance(reproduction, dict)
477
+ or not isinstance(reproduction.get("text"), str)
478
+ or not reproduction["text"]
479
+ or reproduction.get("parsedAsCommand") is not False
480
+ or reproduction.get("executionAuthorityGranted") is not False
481
+ ):
482
+ blockers.append({"code": "finding-check-proposal-reproduction-invalid"})
471
483
  if (
472
484
  proposal.get("approvalRequired") is not True
473
485
  or proposal.get("applyAllowed") is not False
@@ -486,6 +498,33 @@ def validate_finding_check_proposal(proposal: dict[str, Any]) -> dict[str, Any]:
486
498
  )
487
499
 
488
500
 
501
+ def build_finding_check_proposal(binding: dict[str, Any], *, reproduction: str) -> dict[str, Any]:
502
+ """Preserve reviewer reproduction text as advisory data only."""
503
+
504
+ validation = validate_finding_check_binding(binding)
505
+ if validation["status"] != "PASS":
506
+ raise LifecycleError("finding-check-proposal-binding-invalid", "proposal binding failed validation")
507
+ _required_text(reproduction, "reproduction")
508
+ proposal_seed = canonical_digest({"binding": binding["bindingDigest"], "text": reproduction})
509
+ body = {
510
+ "schemaVersion": FINDING_CHECK_PROPOSAL_SCHEMA,
511
+ "proposalId": f"finding-check-proposal-{proposal_seed[:32]}",
512
+ "status": "PASS",
513
+ "binding": dict(binding),
514
+ "reviewerReproduction": {
515
+ "text": reproduction,
516
+ "parsedAsCommand": False,
517
+ "executionAuthorityGranted": False,
518
+ },
519
+ "approvalRequired": True,
520
+ "applyAllowed": False,
521
+ "authorityClaimed": False,
522
+ "blockers": [],
523
+ "productionPromotionClaimed": False,
524
+ }
525
+ return {**body, "proposalDigest": canonical_digest(body)}
526
+
527
+
489
528
  def _transition_receipt(
490
529
  binding: dict[str, Any], target_status: str, idempotent: bool, blockers: list[dict[str, Any]]
491
530
  ) -> dict[str, Any]:
@@ -530,7 +569,13 @@ def _normalize_check_identity(identity: Any) -> dict[str, str]:
530
569
  route = identity.get("route")
531
570
  if not isinstance(check_id, str) or not check_id or not isinstance(route, str) or not route:
532
571
  raise LifecycleError("finding-check-identity-invalid", "checkIdentity requires id and route")
533
- if any(char.isspace() for char in route) or any(char in route for char in ";&|$`\\"):
572
+ route_parts = route.split("/")
573
+ if (
574
+ _CHECK_ROUTE.fullmatch(route) is None
575
+ or route.startswith("/")
576
+ or "//" in route
577
+ or any(part in {".", ".."} for part in route_parts)
578
+ ):
534
579
  raise LifecycleError("finding-check-identity-authority", "check route contains unsafe command text")
535
580
  normalized = {"id": check_id, "route": route}
536
581
  expected = canonical_digest(normalized)
@@ -625,6 +670,7 @@ __all__ = [
625
670
  "FINDING_CHECK_TRANSITION_SCHEMA",
626
671
  "build_finding_check_binding",
627
672
  "build_finding_check_evidence",
673
+ "build_finding_check_proposal",
628
674
  "transition_finding_check_binding",
629
675
  "validate_finding_check_binding",
630
676
  "validate_finding_check_evidence",
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  from typing import Any
6
6
 
7
7
  from agent_lifecycle.contracts import LifecycleError, canonical_digest
8
+ from agent_lifecycle.contracts.review_verdict import open_blocking_finding_ids
8
9
 
9
10
  IMPLEMENTATION_AUDIT_SCHEMA = "agent-implementation-audit-report.v1"
10
11
  FINAL_IMPLEMENTATION_AUDIT_SCHEMA = "agent-final-implementation-audit.v1"
@@ -269,12 +270,7 @@ def _has_blockers(payload: dict[str, Any]) -> bool:
269
270
 
270
271
  def _has_open_blocking_findings(payload: dict[str, Any]) -> bool:
271
272
  findings = payload.get("findings")
272
- return isinstance(findings, list) and any(
273
- isinstance(item, dict)
274
- and item.get("status") == "open"
275
- and item.get("severity") in {"BLOCKER", "HIGH", "MEDIUM"}
276
- for item in findings
277
- )
273
+ return isinstance(findings, list) and bool(open_blocking_finding_ids(findings))
278
274
 
279
275
 
280
276
  __all__ = [
@@ -12,7 +12,7 @@ INDEPENDENT_EVIDENCE_SCHEMA = "agent-independent-evidence.v1"
12
12
  INDEPENDENT_EVIDENCE_VALIDATION_SCHEMA = "agent-independent-evidence-validation.v1"
13
13
 
14
14
  INDEPENDENCE_DIMENSIONS = ("producer", "implementation", "source")
15
- INDEPENDENCE_METHODS = ("deterministic-check", "human-review")
15
+ INDEPENDENCE_METHODS = ("deterministic-check", "human-review", "statistical-check")
16
16
  INDEPENDENCE_SOURCE_POLICIES = ("exact-revision", "current-lineage", "any-current")
17
17
  INDEPENDENT_EVIDENCE_STATUSES = ("PASS", "FAIL", "UNAVAILABLE")
18
18
 
@@ -278,6 +278,7 @@ def validate_independent_evidence(
278
278
  requirement_validation = validate_independence_requirement(requirement)
279
279
  if requirement_validation["status"] != "PASS":
280
280
  blockers.append({"code": "independent-evidence-requirement-invalid", "validation": requirement_validation})
281
+ return _evidence_validation(evidence, blockers, "NOT_PROVEN")
281
282
  elif evidence.get("requirementDigest") != requirement.get("requirementDigest"):
282
283
  blockers.append({"code": "independent-evidence-requirement-mismatch"})
283
284
  required = requirement.get("required") is True