agent-lifecycle-kit 2.13.0__tar.gz → 2.15.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 (442) hide show
  1. {agent_lifecycle_kit-2.13.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.15.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +2 -3
  6. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +4 -3
  7. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/implementation.py +3 -0
  8. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/ownership.py +61 -25
  9. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/package.py +13 -1
  10. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/changesets/git.py +13 -2
  11. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/changesets/snapshot.py +11 -2
  12. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/cli/dispatch_metrics.py +85 -0
  13. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_observability.py +13 -13
  14. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/metrics_parser.py +18 -0
  15. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/compiler/small_model_packets.py +26 -15
  16. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/compiler/task_packets.py +49 -18
  17. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/authority_io.py +523 -0
  18. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/authority_text.py +137 -0
  19. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/canonical.py +72 -98
  20. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/metric_schemas.py +3 -0
  21. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/ownership_paths.py +322 -0
  22. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/paths.py +105 -0
  23. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/persistence.py +0 -3
  24. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +2 -0
  25. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/review_verdict.py +4 -0
  26. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/validation.py +12 -7
  27. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +83 -3
  28. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +28 -6
  29. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +79 -23
  30. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/external_dialects.py +1 -1
  31. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/planning.py +1 -1
  32. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/__init__.py +14 -0
  33. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/audit_efficiency.py +75 -8
  34. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/cost_collection.py +8 -0
  35. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/phase_resources.py +47 -2
  36. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/recommendations.py +101 -12
  37. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/metrics/regression_signals.py +735 -0
  38. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/release_accounting.py +102 -11
  39. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/metrics/workflow_economics.py +218 -0
  40. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/completeness.py +17 -1
  41. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/manifest_contract.py +13 -1
  42. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/verification.py +5 -0
  43. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/execution_resources.py +43 -3
  44. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review/validation.py +2 -0
  45. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/contracts.py +2 -0
  46. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/artifacts.py +6 -13
  47. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/continuation_batch.py +6 -18
  48. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/workflow/events.py +76 -0
  49. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/operation_kernel.py +2 -21
  50. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/plan_adoption.py +8 -3
  51. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/reviews.py +3 -0
  52. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/run.py +13 -3
  53. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/task_start.py +9 -10
  54. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/task_transitions.py +57 -10
  55. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  56. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +3 -0
  57. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/cli/dispatch_metrics.py +0 -34
  58. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/contracts/ownership_paths.py +0 -43
  59. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/contracts/paths.py +0 -180
  60. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/metrics/regression_signals.py +0 -92
  61. agent_lifecycle_kit-2.13.0/src/agent_lifecycle/workflow/events.py +0 -50
  62. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/LICENSE +0 -0
  63. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/NOTICE +0 -0
  64. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/README.md +0 -0
  65. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/manifest.json +0 -0
  66. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  67. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  68. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  69. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  70. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  71. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  72. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  73. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  74. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  75. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  76. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/setup.cfg +0 -0
  77. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/__init__.py +0 -0
  78. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/__main__.py +0 -0
  79. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  80. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  81. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  82. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  83. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  84. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  85. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  86. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  87. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  88. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  89. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  90. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  91. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  92. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  93. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  94. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  95. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  96. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  97. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  98. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  99. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  100. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  101. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  102. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  103. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  104. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  105. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  106. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  107. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/delta.py +0 -0
  108. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  109. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  110. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  111. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  112. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  113. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  114. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  115. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  116. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  117. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  118. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  119. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  120. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  121. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  122. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  123. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  124. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  125. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  126. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  127. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  128. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  129. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  130. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
  131. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  132. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
  133. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  134. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  135. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/errors.py +0 -0
  136. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/followup.py +0 -0
  137. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  138. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
  139. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/main.py +0 -0
  140. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  141. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  142. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  143. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  144. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/policy.py +0 -0
  145. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  146. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/project.py +0 -0
  147. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/research.py +0 -0
  148. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/start.py +0 -0
  149. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  150. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/workflow_task_parsers.py +0 -0
  151. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  152. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  153. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  154. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
  155. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/__init__.py +0 -0
  156. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  157. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  158. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  159. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  160. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/profiles.py +0 -0
  161. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/rendering.py +0 -0
  162. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  163. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  164. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  165. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  166. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  167. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  168. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  169. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  170. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  171. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  172. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  173. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  174. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  175. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  176. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  177. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  178. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  179. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  180. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  181. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  182. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  183. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  184. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  185. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  186. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  187. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  188. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
  189. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  190. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  191. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  192. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  194. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  195. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  196. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  197. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  198. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  200. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
  201. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  202. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  203. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  205. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  207. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  208. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  210. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  212. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  213. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  214. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  215. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  216. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  217. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  218. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  219. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  220. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  221. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  222. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  223. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  224. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  225. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  226. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  227. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/schemas.py +0 -0
  228. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  229. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  230. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  231. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  232. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  233. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  234. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  235. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  236. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  237. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  238. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
  239. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  240. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  241. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
  242. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
  243. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  244. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/__init__.py +0 -0
  245. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  246. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  247. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  248. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  249. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  250. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  251. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  252. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  253. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  254. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  255. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  256. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  257. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  258. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  259. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  260. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  261. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  262. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  263. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  264. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/followup/records.py +0 -0
  265. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  266. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  267. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
  268. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  269. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/goal/records.py +0 -0
  270. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/goal/view.py +0 -0
  271. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  272. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  273. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  274. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  275. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  276. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  277. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  278. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  279. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  280. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  281. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  282. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  283. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  284. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  285. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  286. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  287. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  288. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  289. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  290. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  291. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  292. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  293. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  294. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  295. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  296. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  297. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  298. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  299. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  300. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  301. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  302. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  303. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  304. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  305. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  306. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  307. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  308. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  309. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  310. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  311. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  312. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  313. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  314. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  315. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  316. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  317. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  318. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  319. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  320. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  321. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  322. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  323. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  324. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  325. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  326. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  327. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  328. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  329. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  330. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  331. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  332. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  333. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  334. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  335. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  336. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  337. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  338. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  339. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  340. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  341. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  342. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  343. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  344. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/templates.py +0 -0
  345. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  346. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  347. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/planning/validation.py +0 -0
  348. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  349. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  350. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/apply.py +0 -0
  351. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  352. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  353. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  354. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  355. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  356. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  357. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/__init__.py +0 -0
  358. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  359. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/guidance.py +0 -0
  360. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/merge.py +0 -0
  361. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/presets.py +0 -0
  362. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/principles.py +0 -0
  363. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/project/profile.py +0 -0
  364. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/py.typed +0 -0
  365. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  366. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  367. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  368. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  369. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  370. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
  371. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  372. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  373. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/packs.py +0 -0
  374. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  375. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
  376. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  377. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  378. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  379. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  380. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  381. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  382. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  383. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  384. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  385. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  386. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  387. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/research/__init__.py +0 -0
  388. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/research/evidence.py +0 -0
  389. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/research/provenance.py +0 -0
  390. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/research/validation.py +0 -0
  391. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/resources.py +0 -0
  392. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review/__init__.py +0 -0
  393. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  394. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  395. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  396. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  397. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  398. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  399. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  400. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  401. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  402. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/runner/core.py +0 -0
  403. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  404. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  405. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  406. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  407. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  408. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/specification/validation.py +0 -0
  409. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  410. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  411. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  412. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  413. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  414. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  415. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  416. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
  417. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  418. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  419. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
  420. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  421. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  422. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  423. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  424. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  425. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  426. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  427. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  428. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/query.py +0 -0
  429. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  430. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  431. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  432. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  433. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  434. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  435. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/state.py +0 -0
  436. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  437. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  438. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  439. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  440. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  441. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  442. {agent_lifecycle_kit-2.13.0 → agent_lifecycle_kit-2.15.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.13.0
3
+ Version: 2.15.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.13.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.15.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
47
47
 
48
48
  For a quick start, run:
49
49
 
@@ -69,7 +69,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
69
69
  - The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
70
70
  - Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
71
71
  - Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
72
- - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
72
+ - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), compare only compatible evidence through [workflow economics](docs/reference/workflow-economics.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
73
73
  ## What it gives you
74
74
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
75
75
  - One process for different CLIs: adapter-specific commands stay outside the
@@ -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.13.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.15.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
25
25
 
26
26
  For a quick start, run:
27
27
 
@@ -47,7 +47,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
47
47
  - The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
48
48
  - Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
49
49
  - Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
50
- - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
50
+ - For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), compare only compatible evidence through [workflow economics](docs/reference/workflow-economics.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
51
51
  ## What it gives you
52
52
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
53
53
  - One process for different CLIs: adapter-specific commands stay outside the
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "2.13.0"
7
+ version = "2.15.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.13.0"
3
+ __version__ = "2.15.0"
@@ -313,7 +313,7 @@ def request_external_job_cancel(
313
313
  job_root: Path | None = None,
314
314
  now: Clock | None = None,
315
315
  ) -> dict[str, Any]:
316
- """Create an idempotent, source-bound cancellation request for a running attempt."""
316
+ """Acknowledge cancellation-request publication, not process termination."""
317
317
 
318
318
  require_external_job_pass(validate_external_job_request(request), "request")
319
319
  attempt_root = external_job_attempt_path(request, job_root=job_root)
@@ -345,8 +345,7 @@ def request_external_job_cancel(
345
345
  except FileExistsError:
346
346
  existing = _load_private_json(path, "external job cancel request")
347
347
  return _cancel_receipt(request, latest, requested_at=existing.get("requestedAt"), idempotent=True)
348
- if completion_path.exists():
349
- return _cancel_receipt(request, latest, requested_at=requested_at, idempotent=True, terminal=True)
348
+ # Completion after publication cannot turn this creator into a no-op retry.
350
349
  return _cancel_receipt(request, latest, requested_at=requested_at, idempotent=False)
351
350
 
352
351
 
@@ -69,10 +69,9 @@ def pre_action_gate(
69
69
  policy=policy,
70
70
  next_action=next_action,
71
71
  task_id=task_id,
72
- expected_state_revision=(
73
- expected_state_revision if expected_state_revision is not None else 0
74
- ),
72
+ expected_state_revision=(expected_state_revision if expected_state_revision is not None else 0),
75
73
  package_integrity=package_integrity,
74
+ repository_root=repository_root,
76
75
  )
77
76
 
78
77
 
@@ -92,6 +91,7 @@ def post_action_gate(
92
91
  actual_status: str = "PASS",
93
92
  event: dict[str, Any] | None = None,
94
93
  policy_path: Path | None = None,
94
+ repository_root: Path | None = None,
95
95
  ) -> dict[str, Any]:
96
96
  """Validate host output and changed paths after an authorized action."""
97
97
 
@@ -99,6 +99,7 @@ def post_action_gate(
99
99
  policy = load_lifecycle_control_policy(policy_path) if policy_path else None
100
100
  return evaluate_post_action_gate(
101
101
  pre_action=pre_action,
102
+ repository_root=repository_root,
102
103
  manifest=manifest,
103
104
  actual_changed_paths=actual_changed_paths,
104
105
  outcome=outcome,
@@ -7,6 +7,7 @@ from typing import Any
7
7
 
8
8
  from agent_lifecycle.audit.ownership import build_ownership_report, report_has_category
9
9
  from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object
10
+ from agent_lifecycle.contracts.authority_text import require_review_text
10
11
  from agent_lifecycle.contracts.paths import normalize_repo_path
11
12
  from agent_lifecycle.contracts.review_verdict import (
12
13
  BLOCKING_REVIEW_SEVERITIES,
@@ -218,6 +219,7 @@ def validate_implementation_audit_report(
218
219
  ) -> dict[str, Any]:
219
220
  blockers: list[dict[str, Any]] = []
220
221
  compatibility_validation: dict[str, Any] | None = None
222
+ require_review_text(report)
221
223
  if report.get("schemaVersion") != IMPLEMENTATION_AUDIT_SCHEMA:
222
224
  blockers.append(
223
225
  {"code": "implementation-audit-schema", "message": "unsupported implementation audit schemaVersion"}
@@ -389,6 +391,7 @@ def build_final_implementation_audit(
389
391
  def validate_final_implementation_audit(
390
392
  audit: dict[str, Any], *, state: dict[str, Any] | None = None
391
393
  ) -> dict[str, Any]:
394
+ require_review_text(audit)
392
395
  blockers: list[dict[str, Any]] = []
393
396
  if audit.get("schemaVersion") != FINAL_IMPLEMENTATION_AUDIT_SCHEMA:
394
397
  blockers.append(
@@ -6,8 +6,13 @@ from collections import Counter
6
6
  from pathlib import Path
7
7
  from typing import Any
8
8
 
9
- from agent_lifecycle.contracts import read_json_object
10
- from agent_lifecycle.contracts.ownership_paths import is_under_authority_path, normalize_authority_path
9
+ from agent_lifecycle.contracts import LifecycleError, read_json_object
10
+ from agent_lifecycle.contracts.ownership_paths import (
11
+ is_under_authority_path,
12
+ normalize_authority_path,
13
+ observed_authority_paths,
14
+ require_manifest_authority_paths,
15
+ )
11
16
  from agent_lifecycle.contracts.paths import normalize_repo_path
12
17
 
13
18
 
@@ -16,9 +21,16 @@ def build_ownership_report(
16
21
  paths: list[str],
17
22
  *,
18
23
  base: str | None = None,
24
+ repository_root: Path | None = None,
19
25
  ) -> dict[str, Any]:
20
26
  manifest = read_json_object(manifest_path, label="plan manifest")
21
- return build_ownership_report_from_manifest(manifest, paths, manifest_path=manifest_path, base=base)
27
+ return build_ownership_report_from_manifest(
28
+ manifest,
29
+ paths,
30
+ manifest_path=manifest_path,
31
+ base=base,
32
+ repository_root=repository_root if repository_root is not None else Path.cwd(),
33
+ )
22
34
 
23
35
 
24
36
  def build_ownership_report_from_manifest(
@@ -27,11 +39,16 @@ def build_ownership_report_from_manifest(
27
39
  *,
28
40
  manifest_path: Path | None = None,
29
41
  base: str | None = None,
42
+ repository_root: Path | None = None,
30
43
  ) -> dict[str, Any]:
31
44
  """Classify changed paths against an already loaded frozen manifest."""
32
45
 
33
- classifiers = _classifiers(manifest, manifest_path)
34
- entries = [_classify_path(path, classifiers) for path in sorted(set(paths))]
46
+ require_manifest_authority_paths(manifest, operation_root=repository_root)
47
+ classifiers = _classifiers(manifest, manifest_path, repository_root=repository_root)
48
+ entries = [
49
+ _classify_path(path, classifiers, repository_root=repository_root)
50
+ for path in observed_authority_paths(paths, operation_root=repository_root)
51
+ ]
35
52
  categories = Counter(entry["category"] for entry in entries)
36
53
  owners = Counter(owner for entry in entries for owner in entry.get("owners", []))
37
54
  return {
@@ -57,15 +74,13 @@ def declared_ownership_paths(manifest: dict[str, Any]) -> list[str]:
57
74
  """Return literal workstream ownership paths for read-only projections."""
58
75
 
59
76
  classifiers = _classifiers(manifest, None)
60
- paths = {
61
- path
62
- for roots in classifiers["workstreams"].values()
63
- for path in roots
64
- }
77
+ paths = {path for roots in classifiers["workstreams"].values() for path in roots}
65
78
  return sorted(paths)
66
79
 
67
80
 
68
- def _classifiers(manifest: dict[str, Any], manifest_path: Path | None) -> dict[str, Any]:
81
+ def _classifiers(
82
+ manifest: dict[str, Any], manifest_path: Path | None, *, repository_root: Path | None = None
83
+ ) -> dict[str, Any]:
69
84
  package_value = manifest.get("package")
70
85
  package = package_value if isinstance(package_value, dict) else {}
71
86
  plan_root = package.get("planArtifactRoot")
@@ -97,7 +112,7 @@ def _classifiers(manifest: dict[str, Any], manifest_path: Path | None) -> dict[s
97
112
  ],
98
113
  }
99
114
  return {
100
- "manifestPath": _repo_relative(manifest_path),
115
+ "manifestPath": _repo_relative(manifest_path, repository_root=repository_root),
101
116
  "planArtifactRoot": normalize_authority_path(plan_root, label="planArtifactRoot")
102
117
  if isinstance(plan_root, str)
103
118
  else None,
@@ -134,28 +149,48 @@ def _classifiers(manifest: dict[str, Any], manifest_path: Path | None) -> dict[s
134
149
  }
135
150
 
136
151
 
137
- def _classify_path(path: str, classifiers: dict[str, Any]) -> dict[str, Any]:
152
+ def _classify_path(path: str, classifiers: dict[str, Any], *, repository_root: Path | None = None) -> dict[str, Any]:
138
153
  normalized = normalize_repo_path(path)
139
154
  manifest_path = classifiers["manifestPath"]
140
- if isinstance(manifest_path, str) and normalized == manifest_path:
155
+ if (
156
+ isinstance(manifest_path, str)
157
+ and normalized.count("/") == manifest_path.count("/")
158
+ and is_under_authority_path(normalized, manifest_path, operation_root=repository_root)
159
+ ):
141
160
  return _entry(normalized, "plan-authority", ["controller"])
142
161
  plan_root = classifiers["planArtifactRoot"]
143
- if isinstance(plan_root, str) and is_under_authority_path(normalized, plan_root):
162
+ if isinstance(plan_root, str) and is_under_authority_path(normalized, plan_root, operation_root=repository_root):
144
163
  return _entry(normalized, "plan-authority", ["controller"])
145
- lead = [root for root in classifiers["leadOwned"] if is_under_authority_path(normalized, root)]
164
+ lead = [
165
+ root
166
+ for root in classifiers["leadOwned"]
167
+ if is_under_authority_path(normalized, root, operation_root=repository_root)
168
+ ]
146
169
  if lead:
147
170
  return _entry(normalized, "lead-owned", ["controller"], matched=lead)
148
- forbidden = [root for root in classifiers["forbiddenWrites"] if is_under_authority_path(normalized, root)]
171
+ forbidden = [
172
+ root
173
+ for root in classifiers["forbiddenWrites"]
174
+ if is_under_authority_path(normalized, root, operation_root=repository_root)
175
+ ]
149
176
  if forbidden:
150
177
  return _entry(normalized, "forbidden", [], matched=forbidden)
151
- read_only = [root for root in classifiers["readOnly"] if is_under_authority_path(normalized, root)]
178
+ read_only = [
179
+ root
180
+ for root in classifiers["readOnly"]
181
+ if is_under_authority_path(normalized, root, operation_root=repository_root)
182
+ ]
152
183
  if read_only:
153
184
  return _entry(normalized, "read-only", [], matched=read_only)
154
- owners = [
155
- owner
156
- for owner, roots in classifiers["workstreams"].items()
157
- if any(is_under_authority_path(normalized, root) for root in roots)
158
- ]
185
+ owners = []
186
+ for owner, roots in classifiers["workstreams"].items():
187
+ for root in roots:
188
+ if not is_under_authority_path(normalized, root, operation_root=repository_root):
189
+ continue
190
+ if repository_root is not None and not is_under_authority_path(normalized, root):
191
+ raise LifecycleError("ambiguous-authority-path", "filesystem alias would broaden a write grant")
192
+ if owner not in owners:
193
+ owners.append(owner)
159
194
  if owners:
160
195
  return _entry(normalized, "workstream-owned", owners)
161
196
  return _entry(normalized, "unowned", [])
@@ -174,11 +209,12 @@ def _entry(
174
209
  return value
175
210
 
176
211
 
177
- def _repo_relative(path: Path | None) -> str | None:
212
+ def _repo_relative(path: Path | None, *, repository_root: Path | None = None) -> str | None:
178
213
  if path is None:
179
214
  return None
180
215
  try:
181
- return normalize_repo_path(str(path.resolve().relative_to(Path.cwd().resolve())))
216
+ root = repository_root if repository_root is not None else Path.cwd()
217
+ return normalize_repo_path(path.absolute().relative_to(root.absolute()).as_posix())
182
218
  except ValueError:
183
219
  return None
184
220
 
@@ -13,6 +13,8 @@ from agent_lifecycle.audit.implementation import (
13
13
  from agent_lifecycle.audit.ownership import build_ownership_report, report_has_category
14
14
  from agent_lifecycle.changesets import changed_files
15
15
  from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object
16
+ from agent_lifecycle.contracts.authority_text import require_review_text
17
+ from agent_lifecycle.contracts.ownership_paths import require_manifest_authority_paths
16
18
  from agent_lifecycle.contracts.paths import normalize_repo_path
17
19
  from agent_lifecycle.freeze import plan_integrity_required, verify_plan_lock, verify_plan_package_integrity
18
20
  from agent_lifecycle.planning import (
@@ -79,9 +81,16 @@ def build_package_audit(
79
81
  package_files = _package_file_check(package_dir, manifest=manifest, repository_root=repository_root)
80
82
  _capture_check_failure("package-files", package_files, findings, blockers)
81
83
 
84
+ authority_check = _run_check(
85
+ lambda: require_manifest_authority_paths(manifest, operation_root=repository_root)
86
+ )
87
+ _capture_check_failure("authority-paths", authority_check, findings, blockers)
88
+
82
89
  profile = _load_profile(completeness_profile_path)
83
90
  manifest_check = _run_check(lambda: validate_plan_manifest(manifest))
84
- completeness_check = _run_check(lambda: validate_plan_completeness(manifest, profile=profile))
91
+ completeness_check = _run_check(
92
+ lambda: validate_plan_completeness(manifest, profile=profile, operation_root=repository_root)
93
+ )
85
94
  _capture_check_failure("manifest", manifest_check, findings, blockers)
86
95
  _capture_check_failure("completeness", completeness_check, findings, blockers)
87
96
 
@@ -121,6 +130,7 @@ def build_package_audit(
121
130
  "packageFiles": package_files,
122
131
  "manifest": manifest_check,
123
132
  "completeness": completeness_check,
133
+ "authorityPaths": authority_check,
124
134
  "lock": lock_check,
125
135
  "acceptance": acceptance_check,
126
136
  "references": references_check,
@@ -170,6 +180,7 @@ def build_package_audit(
170
180
  "packageFiles": package_files,
171
181
  "manifest": manifest_check,
172
182
  "completeness": completeness_check,
183
+ "authorityPaths": authority_check,
173
184
  "lock": lock_check,
174
185
  "acceptance": acceptance_check,
175
186
  "references": references_check,
@@ -219,6 +230,7 @@ def build_finding_check_adoption_audit(
219
230
  def validate_package_audit(audit: dict[str, Any]) -> dict[str, Any]:
220
231
  """Validate the integrity and top-level semantics of a package receipt."""
221
232
 
233
+ require_review_text(audit)
222
234
  blockers: list[dict[str, Any]] = []
223
235
  if audit.get("schemaVersion") != PACKAGE_AUDIT_SCHEMA:
224
236
  blockers.append({"code": "package-audit-schema", "message": "unsupported package audit schemaVersion"})
@@ -24,6 +24,7 @@ def changed_files(cwd: Path, *, base: str | None = None) -> list[str]:
24
24
  "diff",
25
25
  "--no-ext-diff",
26
26
  "--no-textconv",
27
+ "--no-renames",
27
28
  "--name-only",
28
29
  "-z",
29
30
  "--end-of-options",
@@ -36,13 +37,23 @@ def changed_files(cwd: Path, *, base: str | None = None) -> list[str]:
36
37
  paths.update(
37
38
  _git_paths(
38
39
  cwd,
39
- ["git", "diff", "--no-ext-diff", "--no-textconv", "--name-only", "-z", "--"],
40
+ ["git", "diff", "--no-ext-diff", "--no-textconv", "--no-renames", "--name-only", "-z", "--"],
40
41
  )
41
42
  )
42
43
  paths.update(
43
44
  _git_paths(
44
45
  cwd,
45
- ["git", "diff", "--no-ext-diff", "--no-textconv", "--name-only", "-z", "--cached", "--"],
46
+ [
47
+ "git",
48
+ "diff",
49
+ "--no-ext-diff",
50
+ "--no-textconv",
51
+ "--no-renames",
52
+ "--name-only",
53
+ "-z",
54
+ "--cached",
55
+ "--",
56
+ ],
46
57
  )
47
58
  )
48
59
  paths.update(_git_paths(cwd, ["git", "ls-files", "--others", "--exclude-standard", "-z"]))
@@ -11,7 +11,11 @@ from typing import Any
11
11
 
12
12
  from agent_lifecycle.changesets.git import GIT_TIMEOUT_SECONDS, changed_files, resolve_revision
13
13
  from agent_lifecycle.contracts import LifecycleError, canonical_digest
14
- from agent_lifecycle.contracts.ownership_paths import is_under_authority_path, normalize_authority_path
14
+ from agent_lifecycle.contracts.ownership_paths import (
15
+ is_under_authority_path,
16
+ normalize_authority_path,
17
+ observed_authority_paths,
18
+ )
15
19
  from agent_lifecycle.contracts.paths import normalize_repo_path, read_stable_repository_file
16
20
 
17
21
  MAX_CHANGED_FILES = 10_000
@@ -38,7 +42,12 @@ def capture_task_change_set(
38
42
  "changed file count exceeds the task snapshot limit",
39
43
  {"count": len(all_changed), "maxFiles": MAX_CHANGED_FILES},
40
44
  )
41
- scoped = [path for path in all_changed if any(is_under_authority_path(path, prefix) for prefix in authority)]
45
+ all_changed = observed_authority_paths(all_changed, operation_root=root)
46
+ scoped = [
47
+ path
48
+ for path in all_changed
49
+ if any(is_under_authority_path(path, prefix, operation_root=root) for prefix in authority)
50
+ ]
42
51
  transitions: list[dict[str, Any]] = []
43
52
  current_entries: list[dict[str, Any]] = []
44
53
  total_bytes = 0
@@ -0,0 +1,85 @@
1
+ """Metrics-specific dispatch helpers for the observability facade."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+ from pathlib import Path
7
+ from typing import Any
8
+
9
+ from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object, write_json_create
10
+ from agent_lifecycle.metrics import require_lifecycle_recommendation_pass
11
+ from agent_lifecycle.metrics.recommendations import recommend_from_workflow_comparison
12
+ from agent_lifecycle.metrics.regression_signals import (
13
+ compare_workflow_economics,
14
+ validate_workflow_economics_comparison_view,
15
+ workflow_comparison_context_from_fixture,
16
+ )
17
+ from agent_lifecycle.reporting.execution_resources import (
18
+ build_execution_resource_report,
19
+ validate_execution_resource_report,
20
+ )
21
+
22
+
23
+ def _dispatch_execution_report(args: argparse.Namespace) -> dict[str, Any]:
24
+ receipts: list[dict[str, Any]] = []
25
+ for item in args.receipt:
26
+ payload = read_json_object(Path(item), label="process execution receipt")
27
+ raw_receipt = payload.get("processReceipt")
28
+ candidate = raw_receipt if isinstance(raw_receipt, dict) else payload
29
+ receipts.append(candidate)
30
+ lineage = {"operationId": args.operation_id} if args.operation_id else None
31
+ report = build_execution_resource_report(receipts, lineage=lineage)
32
+ validation = validate_execution_resource_report(report)
33
+ write_json_create(Path(args.out), report)
34
+ return {
35
+ "schemaVersion": "agent-execution-resource-report-generation.v1",
36
+ "status": validation["status"],
37
+ "reportPath": args.out,
38
+ "reportDigest": canonical_digest(report),
39
+ "validation": validation,
40
+ "liveCallsStarted": False,
41
+ "productionPromotionClaimed": False,
42
+ }
43
+
44
+
45
+ def _dispatch_workflow_compare(args: argparse.Namespace) -> dict[str, Any]:
46
+ before = workflow_comparison_context_from_fixture(
47
+ read_json_object(Path(args.before), label="workflow comparison before fixture")
48
+ )
49
+ after = workflow_comparison_context_from_fixture(
50
+ read_json_object(Path(args.after), label="workflow comparison after fixture")
51
+ )
52
+ comparison_pair = (
53
+ read_json_object(Path(args.comparison_pair), label="workflow comparison pair") if args.comparison_pair else None
54
+ )
55
+ comparison = compare_workflow_economics(before, after, comparison_pair=comparison_pair)
56
+ validation = validate_workflow_economics_comparison_view(comparison)
57
+ if validation["status"] != "PASS":
58
+ raise LifecycleError(
59
+ "workflow-comparison-invalid",
60
+ "workflow economics comparison failed validation",
61
+ {"validation": validation},
62
+ )
63
+ write_json_create(Path(args.out), comparison)
64
+ return comparison
65
+
66
+
67
+ def _dispatch_workflow_recommend(args: argparse.Namespace) -> dict[str, Any]:
68
+ comparison = read_json_object(Path(args.comparison), label="workflow economics comparison")
69
+ validation = validate_workflow_economics_comparison_view(comparison)
70
+ if validation["status"] != "PASS":
71
+ raise LifecycleError(
72
+ "workflow-comparison-invalid",
73
+ "workflow economics comparison failed validation",
74
+ {"validation": validation},
75
+ )
76
+ recommendation = recommend_from_workflow_comparison(
77
+ comparison=comparison,
78
+ task_shape=args.task_shape,
79
+ current_mode=args.current_mode,
80
+ required_mode=args.required_mode,
81
+ protected_work=args.protected_work,
82
+ )
83
+ require_lifecycle_recommendation_pass(recommendation)
84
+ write_json_create(Path(args.out), recommendation)
85
+ return recommendation
@@ -7,7 +7,11 @@ from datetime import UTC, datetime
7
7
  from pathlib import Path
8
8
  from typing import Any
9
9
 
10
- from agent_lifecycle.cli.dispatch_metrics import _dispatch_execution_report
10
+ from agent_lifecycle.cli.dispatch_metrics import (
11
+ _dispatch_execution_report,
12
+ _dispatch_workflow_compare,
13
+ _dispatch_workflow_recommend,
14
+ )
11
15
  from agent_lifecycle.context import check_context, load_context_profile, render_context
12
16
  from agent_lifecycle.context.checkpoint_store import (
13
17
  restore_context_checkpoint,
@@ -452,18 +456,14 @@ def _dispatch_model(args: argparse.Namespace) -> dict[str, Any]:
452
456
  if args.model_command == "route":
453
457
  routing_profile = read_json_object(Path(args.profile), label="model routing profile")
454
458
  host_profile = (
455
- read_json_object(Path(args.host_profile), label="host model profile")
456
- if args.host_profile
457
- else None
459
+ read_json_object(Path(args.host_profile), label="host model profile") if args.host_profile else None
458
460
  )
459
461
  request = read_json_object(Path(args.request), label="model route request")
460
462
  return resolve_model_route(request, routing_profile, host_profile=host_profile)
461
463
  if args.model_command == "usage-check":
462
464
  receipt = read_json_object(Path(args.receipt), label="model usage receipt")
463
465
  decision = (
464
- read_json_object(Path(args.route_decision), label="model route decision")
465
- if args.route_decision
466
- else None
466
+ read_json_object(Path(args.route_decision), label="model route decision") if args.route_decision else None
467
467
  )
468
468
  targets = read_json_object(Path(args.budget_targets), label="budget targets") if args.budget_targets else None
469
469
  result = validate_usage_receipt(receipt, budget_targets=targets, route_decision=decision)
@@ -512,6 +512,10 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
512
512
  return _dispatch_phase_resources(args)
513
513
  if args.metrics_command == "release-accounting":
514
514
  return _dispatch_release_accounting(args)
515
+ if args.metrics_command == "workflow-compare":
516
+ return _dispatch_workflow_compare(args)
517
+ if args.metrics_command == "workflow-recommend":
518
+ return _dispatch_workflow_recommend(args)
515
519
  if args.metrics_command == "usage-export":
516
520
  export = build_usage_export(
517
521
  artifact_paths=[Path(item) for item in args.artifact],
@@ -591,9 +595,7 @@ def _dispatch_metrics(args: argparse.Namespace) -> dict[str, Any] | str:
591
595
  if args.metrics_command == "audit-proposal":
592
596
  report = read_json_object(Path(args.report), label="audit optimization report")
593
597
  raw_recommendation = report.get("recommendation")
594
- proposal_recommendation: dict[str, Any] = (
595
- raw_recommendation if isinstance(raw_recommendation, dict) else {}
596
- )
598
+ proposal_recommendation: dict[str, Any] = raw_recommendation if isinstance(raw_recommendation, dict) else {}
597
599
  proposal = build_optimization_proposal(
598
600
  proposal_recommendation,
599
601
  approved=args.approved,
@@ -648,9 +650,7 @@ def _dispatch_phase_resources(args: argparse.Namespace) -> dict[str, Any]:
648
650
 
649
651
  def _dispatch_release_accounting(args: argparse.Namespace) -> dict[str, Any]:
650
652
  declared_provenance = (
651
- read_json_object(Path(args.provenance), label="release accounting provenance")
652
- if args.provenance
653
- else None
653
+ read_json_object(Path(args.provenance), label="release accounting provenance") if args.provenance else None
654
654
  )
655
655
  accounting = build_release_accounting(
656
656
  args.release_id,
@@ -31,6 +31,24 @@ def add_metrics_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentP
31
31
  release_accounting.add_argument("--project-root", default=".")
32
32
  release_accounting.add_argument("--provenance")
33
33
  release_accounting.add_argument("--out", required=True)
34
+ workflow_compare = metrics_sub.add_parser(
35
+ "workflow-compare",
36
+ help="compare two explicitly bound workflow economics fixtures",
37
+ )
38
+ workflow_compare.add_argument("--before", required=True)
39
+ workflow_compare.add_argument("--after", required=True)
40
+ workflow_compare.add_argument("--comparison-pair")
41
+ workflow_compare.add_argument("--out", required=True)
42
+ workflow_recommend = metrics_sub.add_parser(
43
+ "workflow-recommend",
44
+ help="build an advisory recommendation from a workflow comparison",
45
+ )
46
+ workflow_recommend.add_argument("--comparison", required=True)
47
+ workflow_recommend.add_argument("--task-shape", default="feature")
48
+ workflow_recommend.add_argument("--current-mode", choices=MODES, required=True)
49
+ workflow_recommend.add_argument("--required-mode", choices=MODES, required=True)
50
+ workflow_recommend.add_argument("--protected-work", action="store_true")
51
+ workflow_recommend.add_argument("--out", required=True)
34
52
  usage_export = metrics_sub.add_parser("usage-export")
35
53
  usage_export.add_argument("--artifact", action="append", default=[])
36
54
  usage_export.add_argument("--project-root", default=".")