agent-lifecycle-kit 2.5.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.5.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.7.0}/PKG-INFO +4 -4
  2. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/README.md +3 -3
  3. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/implementation.py +12 -12
  6. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_observability.py +114 -0
  7. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_planning.py +7 -0
  8. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/metrics_parser.py +16 -0
  9. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/cli/plan_lock_commands.py +96 -0
  10. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/planning_parsers.py +7 -0
  11. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +105 -4
  12. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +47 -1
  13. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +2 -6
  14. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +2 -1
  15. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/metric_schemas.py +44 -2
  16. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/contracts/release_accounting_schemas.py +121 -0
  17. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/contracts/review_round_schemas.py +427 -0
  18. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_verdict.py +52 -11
  19. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/schemas.py +4 -0
  20. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +479 -0
  21. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/package_integrity.py +118 -15
  22. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/__init__.py +36 -10
  23. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/metrics/audit_efficiency.py +455 -0
  24. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/audit_optimization.py +163 -44
  25. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/audit_samples.py +208 -29
  26. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/cost_collection.py +21 -0
  27. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/phase_resources.py +69 -2
  28. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/metrics/release_accounting.py +661 -0
  29. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/completeness.py +30 -9
  30. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/manifest_contract.py +12 -0
  31. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review/validation.py +2 -7
  32. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/results.py +47 -15
  33. agent_lifecycle_kit-2.7.0/src/agent_lifecycle/review_mesh/synthesis.py +292 -0
  34. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_gate.py +45 -21
  35. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/finalization.py +2 -7
  36. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/reviews.py +2 -8
  37. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +4 -4
  38. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +6 -0
  39. agent_lifecycle_kit-2.5.0/src/agent_lifecycle/review_mesh/synthesis.py +0 -102
  40. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/LICENSE +0 -0
  41. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/NOTICE +0 -0
  42. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/README.md +0 -0
  43. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/manifest.json +0 -0
  44. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  45. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  46. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  47. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  48. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  49. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  50. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  51. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  52. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  53. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  54. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/setup.cfg +0 -0
  55. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/__init__.py +0 -0
  56. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/__main__.py +0 -0
  57. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  58. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  59. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  60. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  61. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  62. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  63. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  64. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  65. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  66. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  67. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  68. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  69. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  70. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  71. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  72. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  73. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  74. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  75. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  76. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  77. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  78. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  79. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  80. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  81. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  82. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  83. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  84. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  85. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  86. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  87. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  88. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  89. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  90. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/package.py +0 -0
  91. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  92. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  93. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  94. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  95. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  96. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  97. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  98. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  99. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  100. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  101. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  102. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  103. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  104. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  105. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/git.py +0 -0
  106. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  107. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  108. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  109. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  110. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  111. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  112. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  113. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  114. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
  115. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  116. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  117. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/errors.py +0 -0
  118. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/followup.py +0 -0
  119. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  120. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
  121. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/main.py +0 -0
  122. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  123. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  124. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/policy.py +0 -0
  125. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  126. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/project.py +0 -0
  127. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/research.py +0 -0
  128. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/start.py +0 -0
  129. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  130. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  131. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  132. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  133. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  134. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  135. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/__init__.py +0 -0
  136. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  137. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  138. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  139. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  140. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/profiles.py +0 -0
  141. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/rendering.py +0 -0
  142. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  143. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  144. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  145. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  146. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  147. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  148. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  149. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  150. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  151. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  152. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  153. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  154. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  155. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  156. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  157. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  158. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  159. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  160. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  161. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  162. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  163. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  164. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  165. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  166. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  167. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  168. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  169. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  170. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  171. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  172. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  173. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  174. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  175. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  176. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  177. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  178. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  179. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  180. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  181. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  182. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  183. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  184. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  185. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  186. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  187. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  188. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  189. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  190. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  191. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  192. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  193. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  194. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  195. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  196. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  198. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  200. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  201. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  202. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  203. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  205. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  207. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  208. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  210. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  212. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  213. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  214. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  215. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  216. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  217. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  218. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  219. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/__init__.py +0 -0
  220. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  221. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  222. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  223. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  224. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  225. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  226. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  227. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  228. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  229. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  230. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  231. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  232. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  233. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  234. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  235. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  236. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  237. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  238. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  239. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/followup/records.py +0 -0
  240. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  241. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  242. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  243. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/records.py +0 -0
  244. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/goal/view.py +0 -0
  245. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  246. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  247. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  248. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  249. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  250. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  251. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  252. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  253. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  254. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  255. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  256. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  257. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  258. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  259. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  260. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  261. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  262. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  263. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  264. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  265. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  266. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  267. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  268. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  269. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  270. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  271. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  272. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  273. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  274. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  275. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  276. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  277. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  278. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  279. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  280. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  281. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  282. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  283. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  284. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  285. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  286. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/planning.py +0 -0
  287. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  288. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  289. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  290. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  291. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  292. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  293. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  294. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  295. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  296. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  297. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  298. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  299. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  300. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  301. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  302. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  303. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  304. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  305. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  306. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  307. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  308. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  309. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  310. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  311. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  312. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  313. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  314. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  315. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  316. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  317. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  318. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  319. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  320. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  321. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/templates.py +0 -0
  322. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  323. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  324. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/validation.py +0 -0
  325. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/planning/verification.py +0 -0
  326. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  327. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  328. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/apply.py +0 -0
  329. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  330. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  331. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  332. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  333. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  334. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  335. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/__init__.py +0 -0
  336. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  337. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/guidance.py +0 -0
  338. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/merge.py +0 -0
  339. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/presets.py +0 -0
  340. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/principles.py +0 -0
  341. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/project/profile.py +0 -0
  342. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/py.typed +0 -0
  343. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  344. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  345. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  346. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  347. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  348. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  349. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  350. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/packs.py +0 -0
  351. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  352. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  353. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  354. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  355. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  356. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  357. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  358. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  359. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  360. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  361. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  362. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  363. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  364. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/__init__.py +0 -0
  365. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/evidence.py +0 -0
  366. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/provenance.py +0 -0
  367. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/research/validation.py +0 -0
  368. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/resources.py +0 -0
  369. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review/__init__.py +0 -0
  370. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  371. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  372. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  373. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  374. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  375. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  376. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  377. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  378. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/core.py +0 -0
  379. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  380. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  381. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  382. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  383. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/specification/validation.py +0 -0
  384. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  385. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  386. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  387. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  388. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  389. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  390. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  391. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  392. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  393. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/events.py +0 -0
  394. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  395. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  396. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  397. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  398. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  399. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  400. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  401. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  402. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  403. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  404. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
  405. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/query.py +0 -0
  406. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  407. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  408. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/run.py +0 -0
  409. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  410. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  411. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  412. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  413. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/state.py +0 -0
  414. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  415. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
  416. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  417. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  418. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  419. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  420. {agent_lifecycle_kit-2.5.0 → agent_lifecycle_kit-2.7.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  421. {agent_lifecycle_kit-2.5.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.5.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.5.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
 
@@ -69,7 +69,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
69
69
  - The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
70
70
  - Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
71
71
  - Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
72
- - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority.
72
+ - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), and cross session boundaries with the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md).
73
73
  ## What it gives you
74
74
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
75
75
  - One process for different CLIs: adapter-specific commands stay outside the
@@ -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.5.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
 
@@ -47,7 +47,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
47
47
  - The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
48
48
  - Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
49
49
  - Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
50
- - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority.
50
+ - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), and cross session boundaries with the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md).
51
51
  ## What it gives you
52
52
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
53
53
  - One process for different CLIs: adapter-specific commands stay outside the
@@ -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.5.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.5.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
 
@@ -39,7 +39,9 @@ from agent_lifecycle.imports.security_findings import import_security_findings
39
39
  from agent_lifecycle.metrics import (
40
40
  build_lifecycle_cost_summary,
41
41
  build_lifecycle_recommendation_summary,
42
+ build_phase_resource_measurement,
42
43
  build_quality_cost_signals,
44
+ build_release_accounting,
43
45
  build_task_outcome_index,
44
46
  build_usage_export,
45
47
  generate_lifecycle_cost_report,
@@ -47,10 +49,19 @@ from agent_lifecycle.metrics import (
47
49
  recommend_lifecycle_mode,
48
50
  require_lifecycle_cost_pass,
49
51
  require_lifecycle_recommendation_pass,
52
+ require_phase_resource_measurement_pass,
53
+ require_release_accounting_pass,
50
54
  require_usage_export_pass,
51
55
  validate_lifecycle_cost_report,
56
+ validate_phase_resource_measurement,
57
+ validate_release_accounting,
52
58
  validate_usage_export,
53
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
+ )
54
65
  from agent_lifecycle.metrics.audit_optimization import (
55
66
  build_audit_optimization_report,
56
67
  render_audit_optimization_terminal,
@@ -497,6 +508,10 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
497
508
  "liveCallsStarted": False,
498
509
  "productionPromotionClaimed": False,
499
510
  }
511
+ if args.metrics_command == "phase-resources":
512
+ return _dispatch_phase_resources(args)
513
+ if args.metrics_command == "release-accounting":
514
+ return _dispatch_release_accounting(args)
500
515
  if args.metrics_command == "usage-export":
501
516
  export = build_usage_export(
502
517
  artifact_paths=[Path(item) for item in args.artifact],
@@ -571,6 +586,8 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
571
586
  return payload
572
587
  if args.metrics_command == "audit-report":
573
588
  return _dispatch_audit_report(args)
589
+ if args.metrics_command == "audit-efficiency":
590
+ return _dispatch_audit_efficiency(args)
574
591
  if args.metrics_command == "audit-proposal":
575
592
  report = read_json_object(Path(args.report), label="audit optimization report")
576
593
  raw_recommendation = report.get("recommendation")
@@ -593,6 +610,69 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
593
610
  raise LifecycleError("command-not-implemented", "metrics command is not implemented")
594
611
 
595
612
 
613
+ def _dispatch_phase_resources(args: argparse.Namespace) -> dict[str, Any]:
614
+ source = read_json_object(Path(args.input), label="phase resource input")
615
+ if source.get("schemaVersion") != "agent-phase-resource-input.v1":
616
+ raise LifecycleError("phase-resource-input-schema-invalid", "unsupported phase resource input schema")
617
+ raw_phases = source.get("phases")
618
+ if not isinstance(raw_phases, list) or not all(isinstance(item, dict) for item in raw_phases):
619
+ raise LifecycleError("invalid-phase-resource-measurement", "phases must be an array of objects")
620
+ phases: list[dict[str, Any]] = raw_phases
621
+ raw_lineage = source.get("lineage")
622
+ if raw_lineage is not None and not isinstance(raw_lineage, dict):
623
+ raise LifecycleError("invalid-phase-resource-measurement", "lineage must be an object")
624
+ raw_artifacts = source.get("sourceArtifacts")
625
+ if raw_artifacts is not None and (
626
+ not isinstance(raw_artifacts, list) or not all(isinstance(item, dict) for item in raw_artifacts)
627
+ ):
628
+ raise LifecycleError("invalid-phase-resource-measurement", "sourceArtifacts must be an array of objects")
629
+ measurement = build_phase_resource_measurement(
630
+ phases,
631
+ lineage=raw_lineage,
632
+ source_artifacts=raw_artifacts,
633
+ )
634
+ validation = require_phase_resource_measurement_pass(validate_phase_resource_measurement(measurement))
635
+ output_bytes = write_json_create(Path(args.out), measurement)
636
+ body = {
637
+ "schemaVersion": "agent-phase-resource-generation.v1",
638
+ "status": "PASS",
639
+ "outputPath": args.out,
640
+ "outputBytes": len(output_bytes),
641
+ "measurementDigest": measurement["measurementDigest"],
642
+ "validation": validation,
643
+ "liveCallsStarted": False,
644
+ "productionPromotionClaimed": False,
645
+ }
646
+ return {**body, "receiptDigest": canonical_digest(body)}
647
+
648
+
649
+ def _dispatch_release_accounting(args: argparse.Namespace) -> dict[str, Any]:
650
+ declared_provenance = (
651
+ read_json_object(Path(args.provenance), label="release accounting provenance")
652
+ if args.provenance
653
+ else None
654
+ )
655
+ accounting = build_release_accounting(
656
+ args.release_id,
657
+ [Path(item) for item in args.artifact],
658
+ project_root=Path(args.project_root),
659
+ declared_provenance=declared_provenance,
660
+ )
661
+ validation = require_release_accounting_pass(validate_release_accounting(accounting))
662
+ output_bytes = write_json_create(Path(args.out), accounting)
663
+ body = {
664
+ "schemaVersion": "agent-release-accounting-generation.v1",
665
+ "status": "PASS",
666
+ "outputPath": args.out,
667
+ "outputBytes": len(output_bytes),
668
+ "accountingDigest": accounting["accountingDigest"],
669
+ "validation": validation,
670
+ "liveCallsStarted": False,
671
+ "productionPromotionClaimed": False,
672
+ }
673
+ return {**body, "receiptDigest": canonical_digest(body)}
674
+
675
+
596
676
  def _dispatch_audit_report(args: argparse.Namespace) -> dict[str, Any] | str:
597
677
  samples = _read_audit_samples(args.sample)
598
678
  candidates = _read_json_items(args.candidate_profile, label="candidate profile")
@@ -625,6 +705,40 @@ def _dispatch_audit_report(args: argparse.Namespace) -> dict[str, Any] | str:
625
705
  return report
626
706
 
627
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
+
628
742
  def _read_audit_samples(paths: list[str]) -> list[dict[str, Any]]:
629
743
  samples: list[dict[str, Any]] = []
630
744
  for item in paths:
@@ -6,6 +6,7 @@ import argparse
6
6
  from pathlib import Path
7
7
  from typing import Any
8
8
 
9
+ from agent_lifecycle.cli.plan_lock_commands import create_reviewed_plan_lock
9
10
  from agent_lifecycle.compiler import compile_small_model_packets, compile_task_packets
10
11
  from agent_lifecycle.contracts import (
11
12
  LifecycleError,
@@ -93,6 +94,12 @@ def _dispatch_specification(args: argparse.Namespace) -> dict[str, Any]:
93
94
 
94
95
 
95
96
  def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
97
+ if args.plan_command == "lock-create":
98
+ return create_reviewed_plan_lock(
99
+ manifest_path=args.manifest,
100
+ review_path=args.review,
101
+ repository_root=Path(args.repository_root),
102
+ )
96
103
  if args.plan_command == "check":
97
104
  manifest = read_json_object(Path(args.manifest), label="plan manifest")
98
105
  lock = read_json_object(Path(args.lock), label="plan lock") if args.lock else None
@@ -22,6 +22,15 @@ def add_metrics_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentP
22
22
  cost_report.add_argument("--project-root", default=".")
23
23
  cost_report.add_argument("--out", required=True)
24
24
  cost_report.add_argument("--summary-out")
25
+ phase_resources = metrics_sub.add_parser("phase-resources", help="build a bounded phase resource measurement")
26
+ phase_resources.add_argument("--input", required=True)
27
+ phase_resources.add_argument("--out", required=True)
28
+ release_accounting = metrics_sub.add_parser("release-accounting", help="build release resource accounting")
29
+ release_accounting.add_argument("--release-id", required=True)
30
+ release_accounting.add_argument("--artifact", action="append", required=True)
31
+ release_accounting.add_argument("--project-root", default=".")
32
+ release_accounting.add_argument("--provenance")
33
+ release_accounting.add_argument("--out", required=True)
25
34
  usage_export = metrics_sub.add_parser("usage-export")
26
35
  usage_export.add_argument("--artifact", action="append", default=[])
27
36
  usage_export.add_argument("--project-root", default=".")
@@ -68,6 +77,13 @@ def add_metrics_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentP
68
77
  audit_report.add_argument("--current-profile")
69
78
  audit_report.add_argument("--out", required=True)
70
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)
71
87
  audit_proposal = metrics_sub.add_parser("audit-proposal", help="create an explicit audit optimization proposal")
72
88
  audit_proposal.add_argument("--report", required=True)
73
89
  audit_proposal.add_argument("--out", required=True)
@@ -0,0 +1,96 @@
1
+ """Reviewed plan-lock creation command."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path, PurePosixPath
6
+ from typing import Any
7
+
8
+ from agent_lifecycle.contracts import (
9
+ LifecycleError,
10
+ canonical_digest,
11
+ load_json_object,
12
+ sha256_hex,
13
+ write_json_create,
14
+ )
15
+ from agent_lifecycle.contracts.canonical import MAX_JSON_INPUT_BYTES
16
+ from agent_lifecycle.contracts.paths import normalize_repo_path, read_stable_repository_file
17
+ from agent_lifecycle.freeze.package_integrity import (
18
+ build_reviewed_plan_lock_v2,
19
+ verify_plan_package_integrity,
20
+ )
21
+
22
+ PLAN_LOCK_CREATION_RECEIPT = "agent-plan-lock-creation-receipt.v1"
23
+
24
+
25
+ def create_reviewed_plan_lock(
26
+ *,
27
+ manifest_path: str,
28
+ review_path: str,
29
+ repository_root: Path,
30
+ ) -> dict[str, Any]:
31
+ """Create and verify the canonical lock for one reviewed frozen plan."""
32
+
33
+ root = repository_root.resolve(strict=True)
34
+ manifest_rel, manifest_data = _read_repository_json(root, manifest_path, label="plan manifest")
35
+ manifest = load_json_object(manifest_data, label="plan manifest")
36
+ package_value = manifest.get("package")
37
+ package = package_value if isinstance(package_value, dict) else {}
38
+ raw_plan_root = package.get("planArtifactRoot")
39
+ if not isinstance(raw_plan_root, str):
40
+ raise LifecycleError("invalid-plan-manifest", "package.planArtifactRoot is required")
41
+ plan_root = normalize_repo_path(raw_plan_root, label="package.planArtifactRoot")
42
+ expected_manifest = f"{plan_root}/plan.manifest.json"
43
+ if manifest_rel != expected_manifest:
44
+ raise LifecycleError("plan-manifest-path-mismatch", "manifest path does not match package.planArtifactRoot")
45
+
46
+ review_rel, review_data = _read_repository_json(root, review_path, label="plan review")
47
+ review = load_json_object(review_data, label="plan review")
48
+ lock = build_reviewed_plan_lock_v2(
49
+ manifest,
50
+ review,
51
+ review_path=review_rel,
52
+ review_sha256=sha256_hex(review_data),
53
+ repository_root=root,
54
+ )
55
+ # Reject malformed or drifting package bytes before creating the
56
+ # no-replace authority artifact. The second check still detects drift.
57
+ verify_plan_package_integrity(manifest, lock, repository_root=root)
58
+ lock_rel = f"{plan_root}/plan.lock.json"
59
+ lock_path = root.joinpath(*PurePosixPath(lock_rel).parts)
60
+ try:
61
+ write_json_create(lock_path, lock)
62
+ except FileExistsError as exc:
63
+ raise LifecycleError("plan-lock-exists", "canonical plan lock already exists", {"path": lock_rel}) from exc
64
+ except OSError as exc:
65
+ raise LifecycleError(
66
+ "plan-lock-write-failed",
67
+ "canonical plan lock could not be created",
68
+ {"path": lock_rel},
69
+ ) from exc
70
+ verification = verify_plan_package_integrity(manifest, lock, repository_root=root)
71
+ body = {
72
+ "schemaVersion": PLAN_LOCK_CREATION_RECEIPT,
73
+ "status": "PASS",
74
+ "packageId": package.get("id"),
75
+ "planRevision": manifest.get("planRevision"),
76
+ "manifestPath": manifest_rel,
77
+ "manifestHash": canonical_digest(manifest),
78
+ "reviewPath": review_rel,
79
+ "reviewId": review.get("reviewId"),
80
+ "reviewedPlanHash": review.get("reviewedPlanHash"),
81
+ "lockPath": lock_rel,
82
+ "lockSchemaVersion": lock.get("schemaVersion"),
83
+ "planFilesHash": lock.get("planFilesHash"),
84
+ "filesystemVerified": verification.get("filesystemVerified") is True,
85
+ "productionPromotionClaimed": False,
86
+ }
87
+ return {**body, "receiptDigest": canonical_digest(body)}
88
+
89
+
90
+ def _read_repository_json(root: Path, raw_path: str, *, label: str) -> tuple[str, bytes]:
91
+ relative = normalize_repo_path(raw_path, label=f"{label} path")
92
+ data = read_stable_repository_file(root, relative, max_bytes=MAX_JSON_INPUT_BYTES, label=label)
93
+ return relative, data
94
+
95
+
96
+ __all__ = ["PLAN_LOCK_CREATION_RECEIPT", "create_reviewed_plan_lock"]
@@ -17,6 +17,13 @@ def _add_plan_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentPar
17
17
  plan_check.add_argument("--lock")
18
18
  plan_check.add_argument("--require-completeness", action="store_true")
19
19
  plan_check.add_argument("--completeness-profile")
20
+ lock_create = plan_sub.add_parser(
21
+ "lock-create",
22
+ help="create the canonical lock for an independently reviewed plan",
23
+ )
24
+ lock_create.add_argument("--manifest", required=True)
25
+ lock_create.add_argument("--review", required=True)
26
+ lock_create.add_argument("--repository-root", default=".")
20
27
  verify = plan_sub.add_parser("verify", help="compose read-only plan checks")
21
28
  verify.add_argument("--manifest", required=True)
22
29
  verify.add_argument("--package-root")
@@ -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",