agent-lifecycle-kit 2.12.0__tar.gz → 2.13.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 (436) hide show
  1. {agent_lifecycle_kit-2.12.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.13.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +24 -156
  6. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/adapter_sessions/start_routing.py +255 -0
  7. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +81 -32
  8. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +15 -53
  9. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +101 -6
  10. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/adapter.py +60 -17
  11. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +32 -0
  12. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +4 -64
  13. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/project.py +26 -0
  14. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/start.py +1 -0
  15. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/cli/workflow_task_parsers.py +95 -0
  16. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +2 -1
  17. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/policy/execution_strategy.py +695 -0
  18. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/continuation.py +76 -2
  19. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +33 -13
  20. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/workflow/task_start.py +550 -0
  21. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/task_transitions.py +13 -159
  22. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  23. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +2 -0
  24. agent_lifecycle_kit-2.12.0/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -17
  25. agent_lifecycle_kit-2.12.0/src/agent_lifecycle/policy/execution_strategy.py +0 -332
  26. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/LICENSE +0 -0
  27. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/NOTICE +0 -0
  28. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/README.md +0 -0
  29. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/manifest.json +0 -0
  30. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  31. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  32. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  33. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  34. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  35. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  36. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  37. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  38. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  39. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  40. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/setup.cfg +0 -0
  41. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/__init__.py +0 -0
  42. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/__main__.py +0 -0
  43. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  44. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  45. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  46. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  47. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  48. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  49. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  50. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  51. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  52. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  53. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  54. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  55. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  56. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  57. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  58. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  59. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  60. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  61. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  62. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  63. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  64. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  65. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  66. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  67. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  68. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/delta.py +0 -0
  69. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  70. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  71. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/implementation.py +0 -0
  72. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  73. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/package.py +0 -0
  74. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  75. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  76. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  77. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  78. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  79. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  80. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  81. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  82. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  83. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  84. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  85. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  86. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  87. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  88. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/git.py +0 -0
  89. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  90. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  91. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  92. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  93. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  94. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  95. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
  96. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  97. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  98. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
  99. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  100. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  101. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/errors.py +0 -0
  102. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/followup.py +0 -0
  103. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  104. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/main.py +0 -0
  105. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  106. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  107. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  108. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  109. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  110. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/policy.py +0 -0
  111. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  112. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/research.py +0 -0
  113. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  114. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  115. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  116. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  117. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
  118. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  119. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  120. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/__init__.py +0 -0
  121. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  122. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  123. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  124. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  125. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/profiles.py +0 -0
  126. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/rendering.py +0 -0
  127. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  128. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  129. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  130. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  131. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  132. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  133. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  134. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  135. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  136. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  137. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  138. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  139. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  140. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  141. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  142. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  143. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  144. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  145. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  146. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  147. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  148. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  149. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  150. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  151. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  152. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  153. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
  154. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  155. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  156. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  157. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  158. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  159. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  160. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  161. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  162. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  163. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  164. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  165. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  166. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  167. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  168. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  169. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
  170. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  171. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  172. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  173. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  174. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  175. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  176. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  177. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  178. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  179. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  180. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  181. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  182. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  183. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  184. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  185. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  186. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  187. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  188. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  189. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  190. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  191. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  192. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  194. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  195. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  196. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  198. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/schemas.py +0 -0
  199. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  200. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  201. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  202. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  203. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  205. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  207. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  208. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  210. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  212. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  213. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
  214. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
  215. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
  216. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  217. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  218. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/__init__.py +0 -0
  219. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  220. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  221. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  222. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  223. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  224. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  225. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  226. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  227. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  228. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  229. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  230. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  231. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  232. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  233. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  234. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  235. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  236. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  237. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  238. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/followup/records.py +0 -0
  239. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  240. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  241. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
  242. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  243. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/records.py +0 -0
  244. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/view.py +0 -0
  245. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  246. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  247. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  248. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  249. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  250. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  251. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  252. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  253. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  254. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  255. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  256. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  257. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  258. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  259. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  260. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  261. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  262. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  263. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  264. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  265. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  266. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  267. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  268. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  269. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  270. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  271. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  272. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  273. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  274. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  275. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  276. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  277. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  278. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  279. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  280. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  281. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  282. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  283. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  284. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  285. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  286. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/planning.py +0 -0
  287. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  288. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  289. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  290. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  291. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
  292. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  293. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  294. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  295. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  296. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  297. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  298. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  299. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  300. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  301. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  302. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  303. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  304. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  305. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  306. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  307. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  308. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  309. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  310. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  311. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  312. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  313. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  314. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  315. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  316. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  317. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  318. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  319. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  320. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  321. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  322. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  323. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  324. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  325. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/completeness.py +0 -0
  326. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  327. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  328. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/manifest_contract.py +0 -0
  329. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  330. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/templates.py +0 -0
  331. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  332. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  333. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/validation.py +0 -0
  334. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/verification.py +0 -0
  335. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  336. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  337. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/apply.py +0 -0
  338. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  339. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  340. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  341. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  342. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  343. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/__init__.py +0 -0
  344. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  345. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/guidance.py +0 -0
  346. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/merge.py +0 -0
  347. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/presets.py +0 -0
  348. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/principles.py +0 -0
  349. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/profile.py +0 -0
  350. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/py.typed +0 -0
  351. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  352. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  353. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  354. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  355. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  356. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
  357. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  358. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  359. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/packs.py +0 -0
  360. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  361. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
  362. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  363. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  364. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  365. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  366. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  367. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  368. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  369. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  370. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  371. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  372. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  373. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  374. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/__init__.py +0 -0
  375. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/evidence.py +0 -0
  376. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/provenance.py +0 -0
  377. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/validation.py +0 -0
  378. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/resources.py +0 -0
  379. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review/__init__.py +0 -0
  380. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review/validation.py +0 -0
  381. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  382. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  383. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  384. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  385. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  386. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  387. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  388. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  389. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  390. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  391. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/core.py +0 -0
  392. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  393. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  394. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  395. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  396. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  397. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/validation.py +0 -0
  398. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  399. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  400. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  401. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  402. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  403. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  404. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  405. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  406. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
  407. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  408. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/events.py +0 -0
  409. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  410. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
  411. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  412. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  413. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  414. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  415. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  416. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  417. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  418. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  419. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  420. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
  421. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/query.py +0 -0
  422. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  423. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
  424. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/run.py +0 -0
  425. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  426. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  427. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  428. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  429. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/state.py +0 -0
  430. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  431. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  432. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  433. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  434. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  435. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  436. {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.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.12.0
3
+ Version: 2.13.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.12.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.13.0`, and common `agent-lifecycle version` errors.
47
47
 
48
48
  For a quick start, run:
49
49
 
@@ -77,7 +77,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
77
77
  - Small-model friendly packets: compact context, clear next actions, and
78
78
  deterministic checks for local or cheaper models.
79
79
  - Quality without overengineering: one provider-neutral execution strategy
80
- composes risk, model class, packet size, review and resource limits.
80
+ composes risk, model class, packet size, review and resource limits, then binds the decision to one exact task attempt without giving it workflow authority.
81
81
  - Usage visibility: tokens, time, resource counters and structured execution records without sensitive data are native; monetary cost is optional and only used when a metered host reports it.
82
82
  - Project-specific workflow settings: ALK can discover and validate uncommitted local defaults, or apply a built-in workflow preset for a common route, while the frozen plan remains authoritative.
83
83
  - Reproducible Python maintenance: pinned development-only Ruff, mypy and coverage checks, a non-growing quality ratchet, stable redacted CLI errors, installed package resources, an explicit documented Python API, and bounded performance controls that preserve security and evidence rules.
@@ -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.12.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.13.0`, and common `agent-lifecycle version` errors.
25
25
 
26
26
  For a quick start, run:
27
27
 
@@ -55,7 +55,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
55
55
  - Small-model friendly packets: compact context, clear next actions, and
56
56
  deterministic checks for local or cheaper models.
57
57
  - Quality without overengineering: one provider-neutral execution strategy
58
- composes risk, model class, packet size, review and resource limits.
58
+ composes risk, model class, packet size, review and resource limits, then binds the decision to one exact task attempt without giving it workflow authority.
59
59
  - Usage visibility: tokens, time, resource counters and structured execution records without sensitive data are native; monetary cost is optional and only used when a metered host reports it.
60
60
  - Project-specific workflow settings: ALK can discover and validate uncommitted local defaults, or apply a built-in workflow preset for a common route, while the frozen plan remains authoritative.
61
61
  - Reproducible Python maintenance: pinned development-only Ruff, mypy and coverage checks, a non-growing quality ratchet, stable redacted CLI errors, installed package resources, an explicit documented Python API, and bounded performance controls that preserve security and evidence rules.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "2.12.0"
7
+ version = "2.13.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.12.0"
3
+ __version__ = "2.13.0"
@@ -6,57 +6,10 @@ from pathlib import Path
6
6
  from typing import Any
7
7
 
8
8
  from agent_lifecycle.adapter_sessions.contracts import build_lifecycle_start_receipt
9
- from agent_lifecycle.adapter_sessions.launcher import load_adapter_descriptor
10
- from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object, sha256_hex
9
+ from agent_lifecycle.contracts import canonical_digest, sha256_hex
11
10
  from agent_lifecycle.contracts.project_profile_schemas import GUIDED_ACTION_RECEIPT_SCHEMA
12
- from agent_lifecycle.policy.execution_strategy import (
13
- deferred_execution_strategy_summary,
14
- execution_strategy_summary,
15
- resolve_execution_strategy,
16
- )
17
11
  from agent_lifecycle.project.guidance import build_stage_guidance_projection
18
12
 
19
- def _profile_plan_authority(
20
- *,
21
- task_file: Path | None,
22
- task_text: str | None,
23
- lock_path: Path | None,
24
- ) -> tuple[dict[str, Any] | None, dict[str, Any] | None]:
25
- """Read plan authority only from a structured frozen file input.
26
-
27
- Raw text and Markdown remain draft-only and do not cause ALK to inspect
28
- arbitrary project files. Frozen manifests and adapter run requests already
29
- carry explicit plan paths, so their profile merge can enforce the same
30
- plan/lock precedence as the atomic commands.
31
- """
32
-
33
- if task_file is None or task_text is not None or not task_file.is_file():
34
- return None, None
35
- try:
36
- payload = read_json_object(task_file, label="project-profile start input")
37
- except (LifecycleError, OSError):
38
- return None, None
39
- schema = payload.get("schemaVersion")
40
- if schema == "agent-adapter-task-run-request.v1":
41
- manifest_value = payload.get("manifest")
42
- request_lock = payload.get("lock")
43
- if not isinstance(manifest_value, str) or not manifest_value:
44
- return None, None
45
- manifest_path = Path(manifest_value)
46
- lock_value = request_lock if isinstance(request_lock, str) and request_lock else None
47
- selected_lock = Path(lock_value) if lock_value else lock_path
48
- elif schema == "agent-plan-manifest.v1":
49
- manifest_path = task_file
50
- selected_lock = lock_path
51
- else:
52
- return None, None
53
- try:
54
- plan = read_json_object(manifest_path, label="project-profile plan manifest")
55
- lock = read_json_object(selected_lock, label="project-profile plan lock") if selected_lock is not None else None
56
- except (LifecycleError, OSError):
57
- return None, None
58
- return plan, lock
59
-
60
13
 
61
14
  def _build_guided_action_receipt(
62
15
  base: dict[str, Any],
@@ -110,12 +63,13 @@ def _guided_stage(base: dict[str, Any]) -> str:
110
63
  """Map the public start mode to the stable project-profile stage."""
111
64
 
112
65
  mode = base.get("requestedMode")
113
- return {
66
+ stages: dict[str, str] = {
114
67
  "research": "research",
115
68
  "plan": "planning",
116
69
  "review": "review",
117
70
  "implement": "implementation",
118
- }.get(mode, "intake")
71
+ }
72
+ return stages.get(mode, "intake") if isinstance(mode, str) else "intake"
119
73
 
120
74
 
121
75
  def _effective_profile_summary(effective: dict[str, Any]) -> dict[str, Any]:
@@ -135,92 +89,6 @@ def _effective_profile_summary(effective: dict[str, Any]) -> dict[str, Any]:
135
89
  }
136
90
 
137
91
 
138
- def _strategy_summary_for_receipt(
139
- receipt: dict[str, Any],
140
- *,
141
- adapter_id: str,
142
- descriptor_path: Path | None,
143
- requested_risk: str,
144
- risk_policy_path: Path | None,
145
- routing_profile_path: Path | None,
146
- baseline_profile_path: Path | None,
147
- host_model_profile_path: Path | None,
148
- project_profile_digest: str | None = None,
149
- ) -> dict[str, Any]:
150
- if receipt.get("status") != "READY" or receipt.get("action") != "MANAGED_RUN":
151
- return deferred_execution_strategy_summary()
152
- binding = receipt.get("workflowBinding") if isinstance(receipt.get("workflowBinding"), dict) else {}
153
- try:
154
- manifest_path = _required_binding_path(binding, "manifest")
155
- lock_path = _required_binding_path(binding, "lock")
156
- state_path = _required_binding_path(binding, "state")
157
- _descriptor_file, descriptor = load_adapter_descriptor(adapter_id, descriptor_path)
158
- strategy = resolve_execution_strategy(
159
- manifest=read_json_object(manifest_path, label="frozen plan manifest"),
160
- lock=read_json_object(lock_path, label="plan lock"),
161
- state=read_json_object(state_path, label="workflow state"),
162
- task_id=_required_binding_string(binding, "task"),
163
- adapter_id=adapter_id,
164
- adapter_host=str(descriptor.get("host", "")),
165
- operation_id=_required_binding_string(binding, "operationId"),
166
- expected_revision=_required_binding_revision(binding),
167
- source_revision=_required_binding_string(binding, "sourceRevision"),
168
- requested_risk=requested_risk,
169
- risk_policy=read_json_object(
170
- risk_policy_path or Path("profiles/risk-execution-policy.v1.json"),
171
- label="risk execution policy",
172
- ),
173
- routing_profile=read_json_object(
174
- routing_profile_path or Path("profiles/model-routing-profile.v1.json"),
175
- label="model routing profile",
176
- ),
177
- baseline_profile=read_json_object(
178
- baseline_profile_path or Path("profiles/lifecycle-baselines.v1.json"),
179
- label="lifecycle baseline profile",
180
- ),
181
- host_profile=(
182
- read_json_object(host_model_profile_path, label="host model profile")
183
- if host_model_profile_path is not None
184
- else None
185
- ),
186
- project_profile_digest=project_profile_digest,
187
- )
188
- return execution_strategy_summary(strategy)
189
- except (LifecycleError, OSError) as exc:
190
- code = exc.code if isinstance(exc, LifecycleError) else "strategy-input-read-failed"
191
- return {
192
- **deferred_execution_strategy_summary(reason=code),
193
- "status": "BLOCKED",
194
- }
195
-
196
-
197
- def _required_binding_path(binding: dict[str, Any], field: str) -> Path:
198
- value = _required_binding_string(binding, field)
199
- return Path(value)
200
-
201
-
202
- def _required_binding_string(binding: dict[str, Any], field: str) -> str:
203
- value = binding.get(field)
204
- if not isinstance(value, str) or not value:
205
- raise LifecycleError("strategy-binding-missing", "managed strategy binding is missing", {"field": field})
206
- return value
207
-
208
-
209
- def _required_binding_revision(binding: dict[str, Any]) -> int:
210
- value = binding.get("expectedRevision")
211
- if not isinstance(value, int) or isinstance(value, bool) or value < 1:
212
- raise LifecycleError(
213
- "strategy-binding-revision-invalid",
214
- "managed strategy expected revision is invalid",
215
- )
216
- return value
217
-
218
-
219
- def _binding_path(binding: dict[str, Any], field: str) -> Path | None:
220
- value = binding.get(field)
221
- return Path(value) if isinstance(value, str) and value else None
222
-
223
-
224
92
  def _planning_launch_blocked_receipt(
225
93
  *,
226
94
  adapter_id: str,
@@ -271,20 +139,15 @@ def _planning_launch_blocked_receipt(
271
139
  return {**body, "receiptDigest": canonical_digest(body)}
272
140
 
273
141
 
274
- def _binding_string(binding: dict[str, Any], field: str) -> str | None:
275
- value = binding.get(field)
276
- return value if isinstance(value, str) and value else None
277
-
278
-
279
142
  def _task_summary(receipt: dict[str, Any]) -> dict[str, Any]:
280
- planning = receipt.get("planningImport") if isinstance(receipt.get("planningImport"), dict) else {}
281
- session = receipt.get("adapterSessionReceipt") if isinstance(receipt.get("adapterSessionReceipt"), dict) else {}
282
- next_action = session.get("nextAction") if isinstance(session.get("nextAction"), dict) else {}
283
- recommendation = (
284
- receipt.get("reviewMeshRecommendation")
285
- if isinstance(receipt.get("reviewMeshRecommendation"), dict)
286
- else {}
287
- )
143
+ planning_value = receipt.get("planningImport")
144
+ planning: dict[str, Any] = planning_value if isinstance(planning_value, dict) else {}
145
+ session_value = receipt.get("adapterSessionReceipt")
146
+ session: dict[str, Any] = session_value if isinstance(session_value, dict) else {}
147
+ next_action_value = session.get("nextAction")
148
+ next_action: dict[str, Any] = next_action_value if isinstance(next_action_value, dict) else {}
149
+ recommendation_value = receipt.get("reviewMeshRecommendation")
150
+ recommendation: dict[str, Any] = recommendation_value if isinstance(recommendation_value, dict) else {}
288
151
  return {
289
152
  "schemaVersion": receipt.get("schemaVersion"),
290
153
  "status": receipt.get("status"),
@@ -326,7 +189,9 @@ def _resume_summary(receipt: dict[str, Any], *, session: dict[str, Any] | None =
326
189
 
327
190
 
328
191
  def _claims_execution(receipt: dict[str, Any]) -> bool:
329
- return any(bool(receipt.get(field)) for field in ("executionStarted", "hostLaunchStarted", "lifecycleCoverageClaimed"))
192
+ return any(
193
+ bool(receipt.get(field)) for field in ("executionStarted", "hostLaunchStarted", "lifecycleCoverageClaimed")
194
+ )
330
195
 
331
196
 
332
197
  def _safe_input(value: Any) -> dict[str, Any]:
@@ -379,16 +244,19 @@ def _redact_task_echo(value: Any, *, task_text: str) -> Any:
379
244
  if isinstance(value, list):
380
245
  return [_redact_task_echo(item, task_text=task_text) for item in value]
381
246
  if isinstance(value, dict):
382
- return {
383
- str(key): _redact_task_echo(item, task_text=task_text)
384
- for key, item in value.items()
385
- }
247
+ return {str(key): _redact_task_echo(item, task_text=task_text) for key, item in value.items()}
386
248
  return value
387
249
 
388
250
 
389
251
  def _session_input(session_id: str) -> dict[str, Any]:
390
252
  encoded = session_id.encode("utf-8")
391
- return {"type": "SESSION", "label": session_id, "digest": sha256_hex(encoded), "byteCount": len(encoded), "rawTextStored": False}
253
+ return {
254
+ "type": "SESSION",
255
+ "label": session_id,
256
+ "digest": sha256_hex(encoded),
257
+ "byteCount": len(encoded),
258
+ "rawTextStored": False,
259
+ }
392
260
 
393
261
 
394
262
  def _empty_input() -> dict[str, Any]:
@@ -401,7 +269,7 @@ def _blocker_summaries(value: Any) -> list[dict[str, Any]]:
401
269
  summaries: list[dict[str, Any]] = []
402
270
  for item in value:
403
271
  if isinstance(item, dict):
404
- summary = {"code": str(item.get("code", "start-delegate-blocked"))}
272
+ summary: dict[str, Any] = {"code": str(item.get("code", "start-delegate-blocked"))}
405
273
  if isinstance(item.get("field"), str):
406
274
  summary["field"] = item["field"]
407
275
  if isinstance(item.get("fields"), list):
@@ -0,0 +1,255 @@
1
+ """Binding and execution-strategy helpers for the unified start facade."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Any
7
+
8
+ from agent_lifecycle.adapter_sessions.launcher import load_adapter_descriptor
9
+ from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object
10
+ from agent_lifecycle.policy.execution_strategy import (
11
+ deferred_execution_strategy_summary,
12
+ execution_strategy_summary,
13
+ resolve_execution_strategy,
14
+ )
15
+ from agent_lifecycle.resources import builtin_profile_path
16
+ from agent_lifecycle.workflow.artifacts import next_available_attempt, package_root
17
+ from agent_lifecycle.workflow.selectors import find_task
18
+
19
+
20
+ def resolve_managed_execution_strategy(
21
+ *,
22
+ adapter_id: str,
23
+ state_path: Path,
24
+ manifest_path: Path,
25
+ lock_path: Path | None,
26
+ task_id: str,
27
+ operation_id: str,
28
+ expected_revision: int,
29
+ source_revision: str,
30
+ requested_risk: str,
31
+ descriptor_path: Path | None = None,
32
+ risk_policy_path: Path | None = None,
33
+ routing_profile_path: Path | None = None,
34
+ baseline_profile_path: Path | None = None,
35
+ host_model_profile_path: Path | None = None,
36
+ project_profile: dict[str, Any] | None = None,
37
+ project_profile_path: Path | None = None,
38
+ ) -> dict[str, Any]:
39
+ """Resolve one adoption-eligible strategy from the managed-run inputs."""
40
+
41
+ if lock_path is None:
42
+ raise LifecycleError("strategy-lock-required", "managed strategy adoption requires a plan lock")
43
+ state = read_json_object(state_path, label="workflow state")
44
+ root = package_root(state_path, state)
45
+ descriptor_file, descriptor = load_adapter_descriptor(adapter_id, descriptor_path)
46
+ capability_file = _capability_manifest_path(root, descriptor_file, descriptor)
47
+ capability = read_json_object(capability_file, label="capability manifest")
48
+ profile_file = project_profile_path or root / ".alk/project-profile.json"
49
+ if project_profile is None and profile_file.is_file():
50
+ project_profile = read_json_object(profile_file, label="project profile")
51
+ profile_digest = canonical_digest(project_profile) if project_profile is not None else None
52
+ risk_file = risk_policy_path or builtin_profile_path("risk-execution-policy.v1.json")
53
+ routing_file = routing_profile_path or builtin_profile_path("model-routing-profile.v1.json")
54
+ baseline_file = baseline_profile_path or builtin_profile_path("lifecycle-baselines.v1.json")
55
+ task = find_task(state, task_id)
56
+ selected_attempt = next_available_attempt(state_path, state, task)
57
+ strategy = resolve_execution_strategy(
58
+ manifest=read_json_object(manifest_path, label="frozen plan manifest"),
59
+ lock=read_json_object(lock_path, label="plan lock"),
60
+ state=state,
61
+ task_id=task_id,
62
+ adapter_id=adapter_id,
63
+ adapter_host=str(descriptor.get("host", "")),
64
+ operation_id=operation_id,
65
+ expected_revision=expected_revision,
66
+ source_revision=source_revision,
67
+ requested_risk=requested_risk,
68
+ risk_policy=read_json_object(risk_file, label="risk execution policy"),
69
+ routing_profile=read_json_object(routing_file, label="model routing profile"),
70
+ baseline_profile=read_json_object(baseline_file, label="lifecycle baseline profile"),
71
+ host_profile=(
72
+ read_json_object(host_model_profile_path, label="host model profile")
73
+ if host_model_profile_path is not None
74
+ else None
75
+ ),
76
+ project_profile_digest=profile_digest,
77
+ descriptor=descriptor,
78
+ capability_manifest=capability,
79
+ target_attempt=selected_attempt,
80
+ descriptor_path=_repo_relative(root, descriptor_file, label="adapter descriptor"),
81
+ capability_manifest_path=_repo_relative(root, capability_file, label="capability manifest"),
82
+ project_profile_path=_repo_relative(root, profile_file, label="project profile"),
83
+ )
84
+ return {
85
+ "strategy": strategy,
86
+ "summary": execution_strategy_projection(strategy),
87
+ "inputs": {
88
+ "requestedRisk": requested_risk,
89
+ "riskPolicyPath": risk_file.as_posix(),
90
+ "routingProfilePath": routing_file.as_posix(),
91
+ "baselineProfilePath": baseline_file.as_posix(),
92
+ "hostProfilePath": host_model_profile_path.as_posix() if host_model_profile_path else None,
93
+ "descriptorPath": strategy["adoptionBinding"]["descriptorPath"],
94
+ "capabilityManifestPath": strategy["adoptionBinding"]["capabilityManifestPath"],
95
+ "projectProfilePath": strategy["adoptionBinding"]["projectProfileIdentity"]["path"],
96
+ },
97
+ }
98
+
99
+
100
+ def execution_strategy_projection(strategy: dict[str, Any]) -> dict[str, Any]:
101
+ """Return the common transparent projection used by start and continuation."""
102
+
103
+ projection = execution_strategy_summary(strategy)
104
+ projection["selectedValidationMode"] = strategy["quality"]["selectedMode"]
105
+ projection["sourceDecisionDigests"] = dict(strategy["sourceDecisionDigests"])
106
+ projection["selectionReasons"] = {
107
+ "quality": "frozen-plan-and-risk-policy",
108
+ "packet": "validated-quality-floor",
109
+ "review": "frozen-plan-review-policy",
110
+ "route": "validated-model-routing-profile",
111
+ }
112
+ projection["blockers"] = list(strategy.get("blockers", []))
113
+ projection["modelCallsStarted"] = False
114
+ return projection
115
+
116
+
117
+ def strategy_projection_for_receipt(receipt: dict[str, Any]) -> dict[str, Any]:
118
+ """Read the already resolved strategy projection from a managed receipt."""
119
+
120
+ if receipt.get("status") != "READY" or receipt.get("action") != "MANAGED_RUN":
121
+ return deferred_execution_strategy_summary()
122
+ session = receipt.get("adapterSessionReceipt")
123
+ next_action = session.get("nextAction") if isinstance(session, dict) else None
124
+ strategy = next_action.get("executionStrategy") if isinstance(next_action, dict) else None
125
+ if not isinstance(strategy, dict):
126
+ return {**deferred_execution_strategy_summary(reason="strategy-adoption-unavailable"), "status": "BLOCKED"}
127
+ return execution_strategy_projection(strategy)
128
+
129
+
130
+ def _capability_manifest_path(root: Path, descriptor_path: Path, descriptor: dict[str, Any]) -> Path:
131
+ raw = descriptor.get("capabilityManifest")
132
+ if not isinstance(raw, str) or not raw:
133
+ raise LifecycleError(
134
+ "strategy-capability-manifest-missing",
135
+ "adapter descriptor must declare a capability manifest",
136
+ )
137
+ configured = Path(raw)
138
+ candidates = [configured if configured.is_absolute() else root / configured]
139
+ candidates.append(descriptor_path.parent / configured.name)
140
+ for candidate in candidates:
141
+ if candidate.is_file():
142
+ return candidate
143
+ raise LifecycleError(
144
+ "strategy-capability-manifest-missing",
145
+ "configured capability manifest was not found",
146
+ )
147
+
148
+
149
+ def _repo_relative(root: Path, path: Path, *, label: str) -> str:
150
+ candidate = path if path.is_absolute() else Path.cwd() / path
151
+ try:
152
+ return candidate.resolve(strict=False).relative_to(root.resolve()).as_posix()
153
+ except ValueError as exc:
154
+ raise LifecycleError(
155
+ "strategy-binding-path-outside-package",
156
+ f"{label} must stay inside the workflow package root",
157
+ ) from exc
158
+
159
+
160
+ def _profile_plan_authority(
161
+ *,
162
+ task_file: Path | None,
163
+ task_text: str | None,
164
+ lock_path: Path | None,
165
+ ) -> tuple[dict[str, Any] | None, dict[str, Any] | None]:
166
+ """Read plan authority only from a structured frozen file input."""
167
+
168
+ if task_file is None or task_text is not None or not task_file.is_file():
169
+ return None, None
170
+ try:
171
+ payload = read_json_object(task_file, label="project-profile start input")
172
+ except (LifecycleError, OSError):
173
+ return None, None
174
+ schema = payload.get("schemaVersion")
175
+ if schema == "agent-adapter-task-run-request.v1":
176
+ manifest_value = payload.get("manifest")
177
+ request_lock = payload.get("lock")
178
+ if not isinstance(manifest_value, str) or not manifest_value:
179
+ return None, None
180
+ manifest_path = Path(manifest_value)
181
+ lock_value = request_lock if isinstance(request_lock, str) and request_lock else None
182
+ selected_lock = Path(lock_value) if lock_value else lock_path
183
+ elif schema == "agent-plan-manifest.v1":
184
+ manifest_path = task_file
185
+ selected_lock = lock_path
186
+ else:
187
+ return None, None
188
+ try:
189
+ plan = read_json_object(manifest_path, label="project-profile plan manifest")
190
+ lock = read_json_object(selected_lock, label="project-profile plan lock") if selected_lock else None
191
+ except (LifecycleError, OSError):
192
+ return None, None
193
+ return plan, lock
194
+
195
+
196
+ def _missing_frozen_bindings(
197
+ payload: dict[str, Any] | None,
198
+ *,
199
+ state_path: Path | None,
200
+ lock_path: Path | None,
201
+ task_id: str | None,
202
+ operation_id: str | None,
203
+ expected_revision: int | None,
204
+ source_revision: str | None,
205
+ ) -> list[str]:
206
+ """Return missing exact bindings for an implementation start."""
207
+
208
+ if not isinstance(payload, dict):
209
+ return ["frozenInput"]
210
+ if payload.get("schemaVersion") == "agent-adapter-task-run-request.v1":
211
+ values = {
212
+ "state": payload.get("state"),
213
+ "manifest": payload.get("manifest"),
214
+ "lock": payload.get("lock"),
215
+ "task": payload.get("task"),
216
+ "operationId": payload.get("operationId"),
217
+ "expectedRevision": payload.get("expectedRevision"),
218
+ "sourceRevision": payload.get("sourceRevision"),
219
+ }
220
+ else:
221
+ values = {
222
+ "state": state_path,
223
+ "manifest": "provided-input",
224
+ "lock": lock_path,
225
+ "task": task_id,
226
+ "operationId": operation_id,
227
+ "expectedRevision": expected_revision,
228
+ "sourceRevision": source_revision,
229
+ }
230
+ missing = [field for field, value in values.items() if value in {None, ""}]
231
+ revision = values.get("expectedRevision")
232
+ if revision is not None and (not isinstance(revision, int) or isinstance(revision, bool) or revision < 1):
233
+ missing.append("expectedRevision")
234
+ return sorted(set(missing))
235
+
236
+
237
+ def _binding_path(binding: dict[str, Any], field: str) -> Path | None:
238
+ value = binding.get(field)
239
+ return Path(value) if isinstance(value, str) and value else None
240
+
241
+
242
+ def _binding_string(binding: dict[str, Any], field: str) -> str | None:
243
+ value = binding.get(field)
244
+ return value if isinstance(value, str) and value else None
245
+
246
+
247
+ __all__ = [
248
+ "_binding_path",
249
+ "_binding_string",
250
+ "_missing_frozen_bindings",
251
+ "_profile_plan_authority",
252
+ "execution_strategy_projection",
253
+ "resolve_managed_execution_strategy",
254
+ "strategy_projection_for_receipt",
255
+ ]