agent-lifecycle-kit 2.9.0__tar.gz → 2.10.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 (426) hide show
  1. {agent_lifecycle_kit-2.9.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.10.0}/PKG-INFO +2 -2
  2. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/README.md +1 -1
  3. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/pyproject.toml +4 -4
  4. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +78 -16
  6. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +48 -37
  7. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/schemas.py +4 -0
  8. agent_lifecycle_kit-2.10.0/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +297 -0
  9. agent_lifecycle_kit-2.10.0/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +252 -0
  10. agent_lifecycle_kit-2.10.0/src/agent_lifecycle/contracts/workflow_economics_schemas.py +205 -0
  11. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/phase_resources.py +1 -1
  12. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/__init__.py +2 -0
  13. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/continuation.py +31 -18
  14. agent_lifecycle_kit-2.10.0/src/agent_lifecycle/workflow/continuation_batch.py +796 -0
  15. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/finalization.py +2 -2
  16. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +2 -2
  17. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +3 -0
  18. agent_lifecycle_kit-2.9.0/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -80
  19. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/LICENSE +0 -0
  20. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/NOTICE +0 -0
  21. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/README.md +0 -0
  22. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/manifest.json +0 -0
  23. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  24. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  25. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  26. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  27. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  28. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  29. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  30. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  31. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  32. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  33. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/setup.cfg +0 -0
  34. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/__init__.py +0 -0
  35. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/__main__.py +0 -0
  36. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  37. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  38. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  39. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  40. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  41. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  42. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  43. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  44. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  45. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  46. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  47. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  48. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  49. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  50. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  51. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  52. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  53. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  54. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  55. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  56. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  57. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  58. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  59. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  60. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  61. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  62. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  63. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  64. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  65. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  66. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  67. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  68. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/implementation.py +0 -0
  69. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  70. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/package.py +0 -0
  71. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  72. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  73. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  74. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  75. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  76. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  77. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  78. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  79. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  80. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  81. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  82. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  83. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  84. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  85. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/changesets/git.py +0 -0
  86. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  87. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  88. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  89. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  90. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  91. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  92. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  93. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  94. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  95. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
  96. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  97. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  98. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/errors.py +0 -0
  99. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/followup.py +0 -0
  100. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  101. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/main.py +0 -0
  102. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  103. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  104. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  105. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  106. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  107. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/policy.py +0 -0
  108. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  109. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/project.py +0 -0
  110. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/research.py +0 -0
  111. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/start.py +0 -0
  112. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  113. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  114. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  115. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  116. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  117. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  118. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/__init__.py +0 -0
  119. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  120. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  121. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  122. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  123. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/profiles.py +0 -0
  124. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/rendering.py +0 -0
  125. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  126. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  127. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  128. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  129. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  130. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  131. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  132. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  133. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  134. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  135. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  136. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  137. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  138. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  139. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  140. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  141. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  142. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  143. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  144. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  145. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  146. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  147. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  148. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  149. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  150. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  151. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  152. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
  153. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  154. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  155. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  156. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  157. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  158. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  159. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  160. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  161. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  162. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  163. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  164. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  165. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  166. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  167. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  168. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  169. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  170. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  171. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  172. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  173. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  174. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  175. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  176. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  177. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  178. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  179. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  180. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  181. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  182. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  183. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  184. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  185. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  186. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  187. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  188. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  189. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  190. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  191. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  192. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  194. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  195. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  196. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  198. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  200. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  201. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  202. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  203. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  204. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  205. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  207. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  208. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  210. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/__init__.py +0 -0
  212. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  213. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  214. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  215. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  216. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  217. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  218. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  219. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  220. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  221. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  222. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  223. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  224. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  225. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  226. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  227. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  228. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  229. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  230. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  231. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/followup/records.py +0 -0
  232. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  233. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  234. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
  235. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  236. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/goal/records.py +0 -0
  237. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/goal/view.py +0 -0
  238. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  239. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  240. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  241. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  242. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  243. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  244. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  245. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  246. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  247. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  248. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  249. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  250. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  251. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  252. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  253. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  254. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  255. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  256. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  257. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  258. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  259. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  260. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  261. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  262. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  263. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  264. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  265. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  266. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  267. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  268. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  269. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  270. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  271. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  272. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  273. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  274. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  275. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  276. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  277. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  278. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  279. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/planning.py +0 -0
  280. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  281. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  282. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  283. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  284. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
  285. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  286. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  287. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  288. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  289. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  290. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  291. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  292. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  293. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  294. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  295. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  296. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  297. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  298. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  299. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  300. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  301. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  302. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  303. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  304. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  305. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  306. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  307. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  308. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  309. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  310. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  311. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  312. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  313. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  314. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  315. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  316. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  317. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/completeness.py +0 -0
  318. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  319. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  320. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/manifest_contract.py +0 -0
  321. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  322. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/templates.py +0 -0
  323. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  324. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  325. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/validation.py +0 -0
  326. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/planning/verification.py +0 -0
  327. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  328. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  329. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/apply.py +0 -0
  330. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  331. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  332. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  333. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  334. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  335. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  336. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/__init__.py +0 -0
  337. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  338. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/guidance.py +0 -0
  339. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/merge.py +0 -0
  340. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/presets.py +0 -0
  341. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/principles.py +0 -0
  342. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/project/profile.py +0 -0
  343. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/py.typed +0 -0
  344. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  345. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  346. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  347. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  348. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  349. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  350. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  351. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/packs.py +0 -0
  352. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  353. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  354. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  355. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  356. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  357. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  358. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  359. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  360. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  361. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  362. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  363. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  364. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  365. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/research/__init__.py +0 -0
  366. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/research/evidence.py +0 -0
  367. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/research/provenance.py +0 -0
  368. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/research/validation.py +0 -0
  369. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/resources.py +0 -0
  370. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review/__init__.py +0 -0
  371. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review/validation.py +0 -0
  372. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  373. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  374. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  375. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  376. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  377. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  378. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  379. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  380. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  381. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  382. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/runner/core.py +0 -0
  383. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  384. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  385. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  386. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  387. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  388. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/specification/validation.py +0 -0
  389. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  390. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  391. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  392. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  393. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  394. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  395. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  396. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  397. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/events.py +0 -0
  398. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  399. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  400. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  401. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  402. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  403. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  404. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  405. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  406. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  407. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  408. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
  409. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/query.py +0 -0
  410. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  411. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
  412. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  413. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/run.py +0 -0
  414. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  415. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  416. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  417. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  418. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/state.py +0 -0
  419. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  420. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
  421. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  422. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  423. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  424. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  425. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  426. {agent_lifecycle_kit-2.9.0 → agent_lifecycle_kit-2.10.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.9.0
3
+ Version: 2.10.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.9.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.10.0`, and common `agent-lifecycle version` errors.
47
47
 
48
48
  For a quick start, run:
49
49
 
@@ -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.9.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.10.0`, and common `agent-lifecycle version` errors.
25
25
 
26
26
  For a quick start, run:
27
27
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "2.9.0"
7
+ version = "2.10.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"
@@ -41,9 +41,9 @@ dependencies = []
41
41
 
42
42
  [dependency-groups]
43
43
  quality = [
44
- "ruff==0.16.3",
45
- "mypy==1.17.1",
46
- "coverage==7.10.6",
44
+ "ruff==0.16.5",
45
+ "mypy==2.3.1",
46
+ "coverage==7.15.4",
47
47
  ]
48
48
 
49
49
  [project.scripts]
@@ -1,3 +1,3 @@
1
1
  """Package version."""
2
2
 
3
- __version__ = "2.9.0"
3
+ __version__ = "2.10.0"
@@ -32,6 +32,7 @@ from agent_lifecycle.workflow import (
32
32
  block_run,
33
33
  commit_task_result,
34
34
  continue_workflow,
35
+ continue_workflow_batch,
35
36
  finalize_run,
36
37
  initialize_workflow_state,
37
38
  migrate_workflow_state,
@@ -107,22 +108,7 @@ def _dispatch_workflow(args: argparse.Namespace) -> dict[str, Any]:
107
108
  maybe_emit_workflow_progress_hook(args, command="workflow run", state_path=state_path)
108
109
  return payload
109
110
  if args.workflow_command == "continue":
110
- payload = continue_workflow(
111
- state_path=state_path,
112
- manifest_path=Path(args.manifest),
113
- lock_path=Path(args.lock) if args.lock else None,
114
- operation_id=args.operation_id,
115
- expected_revision=args.expected_revision,
116
- source_revision=args.source_revision,
117
- reason=args.reason,
118
- apply=args.apply,
119
- projected_state_revision=args.projected_state_revision,
120
- projected_action_digest=args.projected_action_digest,
121
- inputs=_continuation_inputs(args),
122
- )
123
- if args.out:
124
- write_json_create(Path(args.out), payload)
125
- return payload
111
+ return _dispatch_workflow_continue(args, state_path)
126
112
  if args.workflow_command == "adopt-plan":
127
113
  return adopt_plan(
128
114
  state_path,
@@ -343,6 +329,82 @@ def _require_args(args: argparse.Namespace, names: list[str], *, mode: str) -> N
343
329
  raise LifecycleError("missing-cli-argument", f"{mode} requires arguments", {"missing": missing})
344
330
 
345
331
 
332
+ def _dispatch_workflow_continue(args: argparse.Namespace, state_path: Path) -> dict[str, Any]:
333
+ batch_options = (args.input_bundle, args.max_transitions, args.max_io_bytes, args.resume_receipt)
334
+ if not args.until_blocked:
335
+ if any(value is not None for value in batch_options):
336
+ raise LifecycleError(
337
+ "continuation-batch-option-conflict",
338
+ "bounded continuation options require --until-blocked",
339
+ )
340
+ if not args.operation_id:
341
+ raise LifecycleError(
342
+ "continuation-one-step-operation-id-required",
343
+ "one-step continuation requires --operation-id",
344
+ )
345
+ payload = continue_workflow(
346
+ state_path=state_path,
347
+ manifest_path=Path(args.manifest),
348
+ lock_path=Path(args.lock) if args.lock else None,
349
+ operation_id=args.operation_id,
350
+ expected_revision=args.expected_revision,
351
+ source_revision=args.source_revision,
352
+ reason=args.reason,
353
+ apply=args.apply,
354
+ projected_state_revision=args.projected_state_revision,
355
+ projected_action_digest=args.projected_action_digest,
356
+ inputs=_continuation_inputs(args),
357
+ )
358
+ if args.out:
359
+ write_json_create(Path(args.out), payload)
360
+ return payload
361
+ if not args.apply:
362
+ raise LifecycleError(
363
+ "continuation-batch-apply-required",
364
+ "bounded continuation requires --apply",
365
+ )
366
+ if (
367
+ args.operation_id is not None
368
+ or args.projected_state_revision is not None
369
+ or args.projected_action_digest is not None
370
+ ):
371
+ raise LifecycleError(
372
+ "continuation-batch-option-conflict",
373
+ "bounded continuation cannot use singular operation or projection options",
374
+ )
375
+ if _continuation_inputs(args):
376
+ raise LifecycleError(
377
+ "continuation-batch-option-conflict",
378
+ "bounded continuation inputs must come from --input-bundle",
379
+ )
380
+ required = ("lock", "input_bundle", "max_transitions", "max_io_bytes", "out")
381
+ missing = [name.replace("_", "-") for name in required if getattr(args, name) is None or getattr(args, name) == ""]
382
+ if missing:
383
+ raise LifecycleError(
384
+ "continuation-batch-arguments-required",
385
+ "bounded continuation requires explicit lock, bundle, caps and output",
386
+ {"missing": missing},
387
+ )
388
+ if args.max_transitions <= 0 or args.max_io_bytes <= 0:
389
+ raise LifecycleError(
390
+ "continuation-batch-cap-invalid",
391
+ "bounded continuation caps must be positive",
392
+ )
393
+ return continue_workflow_batch(
394
+ state_path=state_path,
395
+ manifest_path=Path(args.manifest),
396
+ lock_path=Path(args.lock),
397
+ input_bundle_path=args.input_bundle,
398
+ output_path=args.out,
399
+ max_transitions=args.max_transitions,
400
+ max_io_bytes=args.max_io_bytes,
401
+ expected_revision=args.expected_revision,
402
+ source_revision=args.source_revision,
403
+ reason=args.reason,
404
+ resume_receipt_path=args.resume_receipt,
405
+ )
406
+
407
+
346
408
  def _continuation_inputs(args: argparse.Namespace) -> dict[str, Any]:
347
409
  singular = {
348
410
  "taskId": args.task,
@@ -511,55 +511,26 @@ def _add_task_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentPar
511
511
  small_compile.add_argument("--write", action="store_true")
512
512
 
513
513
 
514
- def _add_workflow_state_parsers(
514
+ def _add_workflow_continue_parser(
515
515
  workflow_sub: argparse._SubParsersAction[argparse.ArgumentParser],
516
516
  ) -> None:
517
- workflow_init = workflow_sub.add_parser("init")
518
- workflow_init.add_argument("--state", required=True)
519
- workflow_init.add_argument("--run-id", required=True)
520
- workflow_init.add_argument("--package-id", required=True)
521
- workflow_init.add_argument("--package-root", default=".")
522
- workflow_init.add_argument("--event-log", default="events.jsonl")
523
- workflow_migrate = workflow_sub.add_parser("state-migrate")
524
- workflow_migrate.add_argument("--state", required=True)
525
- workflow_migrate.add_argument("--operation-id", required=True)
526
- workflow_migrate.add_argument("--expected-revision", required=True, type=int)
527
- workflow_migrate.add_argument("--source-revision", required=True)
528
- workflow_legacy = workflow_sub.add_parser(
529
- "migrate-runner-artifact",
530
- help="convert one legacy runner artifact into a non-authoritative archival record",
531
- )
532
- workflow_legacy.add_argument("--input", required=True)
533
- workflow_legacy.add_argument("--output", "--out", dest="output", required=True)
534
- workflow_legacy.add_argument("--expected-sha256")
535
- workflow_legacy.add_argument("--max-input-bytes", type=int, default=1_048_576)
536
- workflow_status = workflow_sub.add_parser("status")
537
- workflow_status.add_argument("--state", required=True)
538
- workflow_status.add_argument("--full", action="store_true")
539
- workflow_next = workflow_sub.add_parser("next")
540
- workflow_next.add_argument("--state", required=True)
541
- workflow_run = workflow_sub.add_parser("run")
542
- workflow_run.add_argument("--state", required=True)
543
- workflow_run.add_argument("--manifest", required=True)
544
- workflow_run.add_argument("--lock")
545
- workflow_run.add_argument("--operation-id", required=True)
546
- workflow_run.add_argument("--expected-revision", required=True, type=int)
547
- workflow_run.add_argument("--source-revision", required=True)
548
- workflow_run.add_argument("--reason")
549
- workflow_run.add_argument("--out")
550
- add_progress_hook_args(workflow_run)
551
517
  workflow_continue = workflow_sub.add_parser(
552
518
  "continue",
553
- help="project or explicitly apply one authoritative workflow transition",
519
+ help="project or explicitly apply existing authoritative workflow transitions",
554
520
  )
555
521
  workflow_continue.add_argument("--state", required=True)
556
522
  workflow_continue.add_argument("--manifest", required=True)
557
523
  workflow_continue.add_argument("--lock")
558
- workflow_continue.add_argument("--operation-id", required=True)
524
+ workflow_continue.add_argument("--operation-id")
559
525
  workflow_continue.add_argument("--expected-revision", required=True, type=int)
560
526
  workflow_continue.add_argument("--source-revision", required=True)
561
527
  workflow_continue.add_argument("--reason", required=True)
562
528
  workflow_continue.add_argument("--apply", action="store_true")
529
+ workflow_continue.add_argument("--until-blocked", action="store_true")
530
+ workflow_continue.add_argument("--input-bundle")
531
+ workflow_continue.add_argument("--max-transitions", type=int)
532
+ workflow_continue.add_argument("--max-io-bytes", type=int)
533
+ workflow_continue.add_argument("--resume-receipt")
563
534
  workflow_continue.add_argument("--projected-state-revision", type=int)
564
535
  workflow_continue.add_argument("--projected-action-digest")
565
536
  workflow_continue.add_argument("--task")
@@ -585,6 +556,46 @@ def _add_workflow_state_parsers(
585
556
  workflow_continue.add_argument("--final-implementation-audit")
586
557
  workflow_continue.add_argument("--review-mesh-quorum", action="append", default=[])
587
558
  workflow_continue.add_argument("--out")
559
+
560
+
561
+ def _add_workflow_state_parsers(
562
+ workflow_sub: argparse._SubParsersAction[argparse.ArgumentParser],
563
+ ) -> None:
564
+ workflow_init = workflow_sub.add_parser("init")
565
+ workflow_init.add_argument("--state", required=True)
566
+ workflow_init.add_argument("--run-id", required=True)
567
+ workflow_init.add_argument("--package-id", required=True)
568
+ workflow_init.add_argument("--package-root", default=".")
569
+ workflow_init.add_argument("--event-log", default="events.jsonl")
570
+ workflow_migrate = workflow_sub.add_parser("state-migrate")
571
+ workflow_migrate.add_argument("--state", required=True)
572
+ workflow_migrate.add_argument("--operation-id", required=True)
573
+ workflow_migrate.add_argument("--expected-revision", required=True, type=int)
574
+ workflow_migrate.add_argument("--source-revision", required=True)
575
+ workflow_legacy = workflow_sub.add_parser(
576
+ "migrate-runner-artifact",
577
+ help="convert one legacy runner artifact into a non-authoritative archival record",
578
+ )
579
+ workflow_legacy.add_argument("--input", required=True)
580
+ workflow_legacy.add_argument("--output", "--out", dest="output", required=True)
581
+ workflow_legacy.add_argument("--expected-sha256")
582
+ workflow_legacy.add_argument("--max-input-bytes", type=int, default=1_048_576)
583
+ workflow_status = workflow_sub.add_parser("status")
584
+ workflow_status.add_argument("--state", required=True)
585
+ workflow_status.add_argument("--full", action="store_true")
586
+ workflow_next = workflow_sub.add_parser("next")
587
+ workflow_next.add_argument("--state", required=True)
588
+ workflow_run = workflow_sub.add_parser("run")
589
+ workflow_run.add_argument("--state", required=True)
590
+ workflow_run.add_argument("--manifest", required=True)
591
+ workflow_run.add_argument("--lock")
592
+ workflow_run.add_argument("--operation-id", required=True)
593
+ workflow_run.add_argument("--expected-revision", required=True, type=int)
594
+ workflow_run.add_argument("--source-revision", required=True)
595
+ workflow_run.add_argument("--reason")
596
+ workflow_run.add_argument("--out")
597
+ add_progress_hook_args(workflow_run)
598
+ _add_workflow_continue_parser(workflow_sub)
588
599
  workflow_adopt = workflow_sub.add_parser("adopt-plan")
589
600
  workflow_adopt.add_argument("--state", required=True)
590
601
  workflow_adopt.add_argument("--manifest", required=True)
@@ -86,7 +86,9 @@ from agent_lifecycle.contracts.thread_bridge_schemas import THREAD_BRIDGE_SCHEMA
86
86
  from agent_lifecycle.contracts.usage_export_schemas import USAGE_EXPORT_SCHEMAS
87
87
  from agent_lifecycle.contracts.workflow_artifact_schemas import WORKFLOW_ARTIFACT_SCHEMAS
88
88
  from agent_lifecycle.contracts.workflow_authorization_schemas import WORKFLOW_AUTHORIZATION_SCHEMAS
89
+ from agent_lifecycle.contracts.workflow_continuation_batch_schemas import WORKFLOW_CONTINUATION_BATCH_SCHEMAS
89
90
  from agent_lifecycle.contracts.workflow_continuation_schemas import WORKFLOW_CONTINUATION_SCHEMAS
91
+ from agent_lifecycle.contracts.workflow_economics_schemas import WORKFLOW_ECONOMICS_SCHEMAS
90
92
  from agent_lifecycle.contracts.workflow_run_schemas import WORKFLOW_RUN_SCHEMAS
91
93
  from agent_lifecycle.contracts.workflow_state_schemas import WORKFLOW_STATE_SCHEMAS
92
94
 
@@ -734,7 +736,9 @@ _SCHEMA_GROUPS = (
734
736
  WORKTREE_SUPPORT_SCHEMAS,
735
737
  WORKFLOW_ARTIFACT_SCHEMAS,
736
738
  WORKFLOW_AUTHORIZATION_SCHEMAS,
739
+ WORKFLOW_CONTINUATION_BATCH_SCHEMAS,
737
740
  WORKFLOW_CONTINUATION_SCHEMAS,
741
+ WORKFLOW_ECONOMICS_SCHEMAS,
738
742
  WORKFLOW_STATE_SCHEMAS,
739
743
  BUG_FORENSICS_SCHEMAS,
740
744
  SECURITY_ANALYSIS_SCHEMAS,
@@ -0,0 +1,297 @@
1
+ """Schemas for bounded, projection-first workflow continuation."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from agent_lifecycle.contracts.canonical import canonical_digest
8
+ from agent_lifecycle.contracts.errors import LifecycleError
9
+ from agent_lifecycle.contracts.paths import normalize_repo_path
10
+ from agent_lifecycle.contracts.schema_builders import open_object_schema
11
+
12
+ MAX_CONTINUATION_BATCH_STEPS = 128
13
+ CONTINUATION_BATCH_STOP_REASONS = (
14
+ "TERMINAL",
15
+ "INPUT_REQUIRED",
16
+ "WAITING",
17
+ "BLOCKED",
18
+ "AUDIT_REQUIRED",
19
+ "HUMAN_DECISION_REQUIRED",
20
+ "BUDGET_DECISION_REQUIRED",
21
+ "EXTERNAL_ACTION_REQUIRED",
22
+ "PLAN_AUTHORITY_REQUIRED",
23
+ "CAP_TRANSITIONS",
24
+ "CAP_BYTES",
25
+ "STALE_BUNDLE_ENTRY",
26
+ "RETRY_PROOF_REQUIRED",
27
+ "RETRY_PROOF_MISMATCH",
28
+ )
29
+
30
+ _DIGEST = {"type": "string", "minLength": 64, "maxLength": 64}
31
+ _BLOCKERS = {"type": "array", "items": {"type": "object"}, "maxItems": 64}
32
+ _REQUIRED_INPUTS = {"type": "array", "items": {"type": "object"}, "maxItems": 32}
33
+
34
+
35
+ def _closed_object_schema(
36
+ schema_id: str,
37
+ *,
38
+ required: list[str],
39
+ properties: dict[str, Any],
40
+ ) -> dict[str, Any]:
41
+ schema = open_object_schema(schema_id, required=required, properties=properties)
42
+ schema["additionalProperties"] = False
43
+ return schema
44
+
45
+
46
+ WORKFLOW_CONTINUATION_BATCH_SCHEMAS: dict[str, dict[str, Any]] = {
47
+ "agent-workflow-continuation-input-bundle.v1": _closed_object_schema(
48
+ "agent-workflow-continuation-input-bundle.v1",
49
+ required=["schemaVersion", "runId", "packageId", "planDigest", "sourceRevision", "steps"],
50
+ properties={
51
+ "runId": {"type": "string", "minLength": 1, "maxLength": 256},
52
+ "packageId": {"type": "string", "minLength": 1, "maxLength": 256},
53
+ "planDigest": _DIGEST,
54
+ "sourceRevision": {"type": "string", "minLength": 1, "maxLength": 4096},
55
+ "steps": {
56
+ "type": "array",
57
+ "minItems": 1,
58
+ "maxItems": MAX_CONTINUATION_BATCH_STEPS,
59
+ "items": {
60
+ "type": "object",
61
+ "additionalProperties": False,
62
+ "required": ["operationId", "expectedActionType", "inputs"],
63
+ "properties": {
64
+ "operationId": {"type": "string", "minLength": 1, "maxLength": 256},
65
+ "expectedActionType": {"type": "string", "minLength": 1, "maxLength": 128},
66
+ "inputs": {"type": "object"},
67
+ },
68
+ },
69
+ },
70
+ },
71
+ ),
72
+ "agent-workflow-continuation-batch-receipt.v1": open_object_schema(
73
+ "agent-workflow-continuation-batch-receipt.v1",
74
+ required=[
75
+ "schemaVersion",
76
+ "status",
77
+ "stopReason",
78
+ "receiptPath",
79
+ "bundle",
80
+ "lineage",
81
+ "limits",
82
+ "inputBytes",
83
+ "outputBytes",
84
+ "steps",
85
+ "appliedCount",
86
+ "alreadyAppliedCount",
87
+ "lastAppliedOperationId",
88
+ "finalState",
89
+ "nextCommand",
90
+ "requiredInputs",
91
+ "blockers",
92
+ "modelCallsStarted",
93
+ "hostLaunchStarted",
94
+ "productionPromotionClaimed",
95
+ "receiptDigest",
96
+ ],
97
+ properties={
98
+ "status": {"enum": ["IN_PROGRESS", "STOPPED", "COMPLETE"]},
99
+ "stopReason": {"type": ["string", "null"], "enum": [None, *CONTINUATION_BATCH_STOP_REASONS]},
100
+ "receiptPath": {"type": "string", "minLength": 1, "maxLength": 4096},
101
+ "bundle": {"type": ["object", "null"]},
102
+ "lineage": {"type": ["object", "null"]},
103
+ "limits": {"type": "object"},
104
+ "inputBytes": {"type": "integer", "minimum": 0},
105
+ "outputBytes": {"type": "integer", "minimum": 0},
106
+ "steps": {
107
+ "type": "array",
108
+ "maxItems": MAX_CONTINUATION_BATCH_STEPS,
109
+ "items": {"type": "object"},
110
+ },
111
+ "appliedCount": {"type": "integer", "minimum": 0, "maximum": MAX_CONTINUATION_BATCH_STEPS},
112
+ "alreadyAppliedCount": {
113
+ "type": "integer",
114
+ "minimum": 0,
115
+ "maximum": MAX_CONTINUATION_BATCH_STEPS,
116
+ },
117
+ "lastAppliedOperationId": {"type": ["string", "null"]},
118
+ "finalState": {"type": ["object", "null"]},
119
+ "nextCommand": {"type": ["string", "null"]},
120
+ "requiredInputs": _REQUIRED_INPUTS,
121
+ "blockers": _BLOCKERS,
122
+ "modelCallsStarted": {"const": False},
123
+ "hostLaunchStarted": {"const": False},
124
+ "productionPromotionClaimed": {"const": False},
125
+ "receiptDigest": _DIGEST,
126
+ },
127
+ ),
128
+ "agent-workflow-continuation-batch-summary.v1": open_object_schema(
129
+ "agent-workflow-continuation-batch-summary.v1",
130
+ required=[
131
+ "schemaVersion",
132
+ "status",
133
+ "stopReason",
134
+ "appliedCount",
135
+ "alreadyAppliedCount",
136
+ "lastAppliedOperationId",
137
+ "finalState",
138
+ "receiptPath",
139
+ "receiptDigest",
140
+ "inputBytes",
141
+ "outputBytes",
142
+ "nextCommand",
143
+ "requiredInputs",
144
+ "blockers",
145
+ "modelCallsStarted",
146
+ "hostLaunchStarted",
147
+ "productionPromotionClaimed",
148
+ "summaryDigest",
149
+ ],
150
+ properties={
151
+ "status": {"enum": ["STOPPED", "COMPLETE"]},
152
+ "stopReason": {"enum": list(CONTINUATION_BATCH_STOP_REASONS)},
153
+ "appliedCount": {"type": "integer", "minimum": 0},
154
+ "alreadyAppliedCount": {"type": "integer", "minimum": 0},
155
+ "lastAppliedOperationId": {"type": ["string", "null"]},
156
+ "finalState": {"type": ["object", "null"]},
157
+ "receiptPath": {"type": ["string", "null"]},
158
+ "receiptDigest": {"type": ["string", "null"], "minLength": 64, "maxLength": 64},
159
+ "inputBytes": {"type": "integer", "minimum": 0},
160
+ "outputBytes": {"type": "integer", "minimum": 0},
161
+ "nextCommand": {"type": ["string", "null"]},
162
+ "requiredInputs": _REQUIRED_INPUTS,
163
+ "blockers": _BLOCKERS,
164
+ "modelCallsStarted": {"const": False},
165
+ "hostLaunchStarted": {"const": False},
166
+ "productionPromotionClaimed": {"const": False},
167
+ "summaryDigest": _DIGEST,
168
+ },
169
+ ),
170
+ }
171
+
172
+
173
+ def build_continuation_batch_summary(receipt: dict[str, Any]) -> dict[str, Any]:
174
+ """Build the bounded stdout projection of one persisted batch receipt."""
175
+
176
+ body = {
177
+ "schemaVersion": "agent-workflow-continuation-batch-summary.v1",
178
+ "status": receipt["status"],
179
+ "stopReason": receipt["stopReason"],
180
+ "appliedCount": receipt["appliedCount"],
181
+ "alreadyAppliedCount": receipt["alreadyAppliedCount"],
182
+ "lastAppliedOperationId": receipt["lastAppliedOperationId"],
183
+ "finalState": receipt["finalState"],
184
+ "receiptPath": receipt["receiptPath"],
185
+ "receiptDigest": receipt["receiptDigest"],
186
+ "inputBytes": receipt["inputBytes"],
187
+ "outputBytes": receipt["outputBytes"],
188
+ "nextCommand": receipt["nextCommand"],
189
+ "requiredInputs": receipt["requiredInputs"],
190
+ "blockers": receipt["blockers"],
191
+ "modelCallsStarted": False,
192
+ "hostLaunchStarted": False,
193
+ "productionPromotionClaimed": False,
194
+ }
195
+ return {**body, "summaryDigest": canonical_digest(body)}
196
+
197
+
198
+ def build_unpersisted_continuation_batch_summary(
199
+ *,
200
+ stop_reason: str,
201
+ blockers: list[dict[str, Any]],
202
+ ) -> dict[str, Any]:
203
+ """Build a fail-closed summary when no output receipt can be reserved."""
204
+
205
+ body = {
206
+ "schemaVersion": "agent-workflow-continuation-batch-summary.v1",
207
+ "status": "STOPPED",
208
+ "stopReason": stop_reason,
209
+ "appliedCount": 0,
210
+ "alreadyAppliedCount": 0,
211
+ "lastAppliedOperationId": None,
212
+ "finalState": None,
213
+ "receiptPath": None,
214
+ "receiptDigest": None,
215
+ "inputBytes": 0,
216
+ "outputBytes": 0,
217
+ "nextCommand": None,
218
+ "requiredInputs": [],
219
+ "blockers": blockers,
220
+ "modelCallsStarted": False,
221
+ "hostLaunchStarted": False,
222
+ "productionPromotionClaimed": False,
223
+ }
224
+ return {**body, "summaryDigest": canonical_digest(body)}
225
+
226
+
227
+ def continuation_batch_blocker(exc: LifecycleError) -> dict[str, Any]:
228
+ """Convert one lifecycle failure into a stable batch blocker."""
229
+
230
+ blocker: dict[str, Any] = {"code": exc.code, "message": exc.message}
231
+ if exc.details:
232
+ blocker["context"] = exc.details
233
+ return blocker
234
+
235
+
236
+ def continuation_batch_stop_reason(exc: LifecycleError) -> str:
237
+ """Map preflight failures to the closed batch stop-reason set."""
238
+
239
+ if exc.code == "continuation-retry-proof-required":
240
+ return "RETRY_PROOF_REQUIRED"
241
+ if exc.code == "continuation-retry-proof-mismatch":
242
+ return "RETRY_PROOF_MISMATCH"
243
+ if exc.code == "continuation-input-cap-exceeded":
244
+ return "CAP_BYTES"
245
+ return "BLOCKED"
246
+
247
+
248
+ def continuation_batch_projection_fields(
249
+ projection: dict[str, Any] | None,
250
+ ) -> tuple[str | None, list[dict[str, Any]], list[dict[str, Any]]]:
251
+ """Extract bounded operator-facing fields from a one-step projection."""
252
+
253
+ if projection is None:
254
+ return "workflow continue", [], []
255
+ action = projection.get("action")
256
+ next_action = projection.get("nextAction")
257
+ route = action.get("route") if isinstance(action, dict) else None
258
+ if not isinstance(route, str) and isinstance(next_action, dict):
259
+ route = next_action.get("type")
260
+ return (
261
+ f"workflow {route}" if isinstance(route, str) else None,
262
+ list(projection.get("requiredInputs", [])),
263
+ list(projection.get("blockers", [])),
264
+ )
265
+
266
+
267
+ def is_sha256_digest(value: Any) -> bool:
268
+ """Return whether value is one lowercase SHA-256 hexadecimal digest."""
269
+
270
+ return isinstance(value, str) and len(value) == 64 and all(character in "0123456789abcdef" for character in value)
271
+
272
+
273
+ def normalize_continuation_input_reference(value: Any, field: str) -> dict[str, str]:
274
+ """Validate one digest-bound repository-relative artifact reference."""
275
+
276
+ if not isinstance(value, dict) or set(value) != {"path", "sha256"}:
277
+ raise LifecycleError("continuation-input-reference-invalid", f"{field} must be a path and SHA-256 reference")
278
+ raw_path = value.get("path")
279
+ digest = value.get("sha256")
280
+ if not isinstance(raw_path, str) or not isinstance(digest, str) or not is_sha256_digest(digest):
281
+ raise LifecycleError("continuation-input-reference-invalid", f"{field} sha256 is invalid")
282
+ path = normalize_repo_path(raw_path, label=field)
283
+ return {"path": path, "sha256": digest}
284
+
285
+
286
+ __all__ = [
287
+ "CONTINUATION_BATCH_STOP_REASONS",
288
+ "MAX_CONTINUATION_BATCH_STEPS",
289
+ "WORKFLOW_CONTINUATION_BATCH_SCHEMAS",
290
+ "build_continuation_batch_summary",
291
+ "build_unpersisted_continuation_batch_summary",
292
+ "continuation_batch_blocker",
293
+ "continuation_batch_projection_fields",
294
+ "continuation_batch_stop_reason",
295
+ "is_sha256_digest",
296
+ "normalize_continuation_input_reference",
297
+ ]