agent-lifecycle-kit 2.16.0__tar.gz → 2.17.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 (509) hide show
  1. {agent_lifecycle_kit-2.16.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.17.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/pyproject.toml +4 -4
  4. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch.py +12 -1
  6. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +1 -0
  7. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_planning.py +1 -1
  8. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +1 -0
  9. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/main.py +2 -1
  10. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/compiler/task_packets.py +2 -0
  11. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/canonical.py +8 -0
  12. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/contracts/persistence.py +52 -0
  13. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +33 -2
  14. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/contracts/process_lock.py +124 -0
  15. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/completeness.py +24 -13
  16. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/manifest_contract.py +65 -0
  17. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/planning/prerequisites.py +105 -0
  18. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/validation.py +8 -2
  19. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/quality/dependency_impact.py +609 -0
  20. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/authorization.py +5 -1
  21. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/budget_decisions.py +10 -5
  22. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +99 -24
  23. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/events.py +58 -8
  24. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/finalization.py +35 -17
  25. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/initialization.py +10 -3
  26. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/limited_usage.py +67 -13
  27. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/workflow/operation_kernel.py +152 -0
  28. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/plan_adoption.py +13 -5
  29. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/reviews.py +149 -1
  30. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/workflow/run_transitions.py +329 -0
  31. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/state.py +20 -1
  32. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/task_outcomes.py +2 -0
  33. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/task_start.py +2 -0
  34. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/task_transitions.py +8 -1
  35. agent_lifecycle_kit-2.17.0/src/agent_lifecycle/workflow/transactions.py +57 -0
  36. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  37. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +3 -0
  38. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/persistence.py +0 -33
  39. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/quality/dependency_impact.py +0 -339
  40. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/operation_kernel.py +0 -91
  41. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/run_transitions.py +0 -185
  42. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/LICENSE +0 -0
  43. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/NOTICE +0 -0
  44. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/README.md +0 -0
  45. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/manifest.json +0 -0
  46. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  47. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  48. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  49. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  50. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  51. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  52. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  53. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  54. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  55. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  56. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/setup.cfg +0 -0
  57. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/__init__.py +0 -0
  58. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/__main__.py +0 -0
  59. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/__init__.py +0 -0
  60. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/closing_resource_admission.py +0 -0
  61. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/closing_resource_policy.py +0 -0
  62. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/closing_resource_recovery.py +0 -0
  63. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/closing_resources.py +0 -0
  64. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/contracts.py +0 -0
  65. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/declared_ledger.py +0 -0
  66. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/declared_ledger_legacy.py +0 -0
  67. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/declared_ledger_records.py +0 -0
  68. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/host_bridge.py +0 -0
  69. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/input_fit.py +0 -0
  70. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/journal.py +0 -0
  71. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/normalization.py +0 -0
  72. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/opening_balances.py +0 -0
  73. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/profile_schema.py +0 -0
  74. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/source_usage_context.py +0 -0
  75. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/support_profiles.py +0 -0
  76. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/workflow_authority_store.py +0 -0
  77. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/workflow_state_store.py +0 -0
  78. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/accounting/workflow_store.py +0 -0
  79. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  80. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  81. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/attempt_authority.py +0 -0
  82. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/bootstrap_r11.py +0 -0
  83. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/codex_exact_prompt.py +0 -0
  84. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/codex_input_diagnostics.py +0 -0
  85. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/codex_prompt_preparation.py +0 -0
  86. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/codex_source_exposure.py +0 -0
  87. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/codex_source_subject.py +0 -0
  88. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  89. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  90. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  91. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  92. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/immutable_input.py +0 -0
  93. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/input_lifecycle.py +0 -0
  94. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  95. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  96. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  97. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  98. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/limited_native_evidence.py +0 -0
  99. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  100. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/managed_process.py +0 -0
  101. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/ordinary_audit.py +0 -0
  102. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  103. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  104. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/private_input.py +0 -0
  105. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  106. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  107. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  108. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  109. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  110. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  111. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  112. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  113. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_contracts.py +0 -0
  114. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_history.py +0 -0
  115. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_inputs.py +0 -0
  116. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_preparation_records.py +0 -0
  117. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_roles.py +0 -0
  118. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_shards.py +0 -0
  119. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_support.py +0 -0
  120. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/source_review_transcript.py +0 -0
  121. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  122. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  123. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  124. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  125. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  126. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/windows_pipe.py +0 -0
  127. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  128. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  129. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  130. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  131. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/delta.py +0 -0
  132. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  133. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  134. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/implementation.py +0 -0
  135. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  136. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/package.py +0 -0
  137. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  138. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  139. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  140. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  141. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  142. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  143. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  144. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  145. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  146. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  147. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  148. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  149. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  150. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  151. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/changesets/git.py +0 -0
  152. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  153. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  154. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  155. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  156. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  157. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  158. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
  159. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  160. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  161. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
  162. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  163. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/errors.py +0 -0
  164. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/followup.py +0 -0
  165. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  166. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  167. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  168. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  169. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  170. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  171. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/policy.py +0 -0
  172. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  173. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/project.py +0 -0
  174. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/research.py +0 -0
  175. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/start.py +0 -0
  176. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  177. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/workflow_task_parsers.py +0 -0
  178. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  179. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  180. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  181. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
  182. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  183. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/__init__.py +0 -0
  184. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  185. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  186. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  187. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  188. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/profiles.py +0 -0
  189. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/rendering.py +0 -0
  190. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  191. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  192. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  194. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  195. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  196. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  198. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/authority_io.py +0 -0
  200. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/authority_text.py +0 -0
  201. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  202. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/bounded_json.py +0 -0
  203. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/closing_resource_schemas.py +0 -0
  205. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/closing_window_schemas.py +0 -0
  206. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  207. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  208. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  210. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/deadline_schemas.py +0 -0
  212. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/deadlines.py +0 -0
  213. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  214. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  215. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/ed25519.py +0 -0
  216. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  217. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  218. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/evidence_receipt_schemas.py +0 -0
  219. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  220. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  221. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  222. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  223. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  224. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  225. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/immutable_input_schemas.py +0 -0
  226. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
  227. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  228. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  229. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  230. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  231. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  232. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  233. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  234. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  235. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  236. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  237. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/model_classes.py +0 -0
  238. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  239. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  240. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  241. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  242. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
  243. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  244. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  245. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  246. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  247. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/private_storage.py +0 -0
  248. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  249. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  250. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  251. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  252. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  253. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  254. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  255. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  256. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  257. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  258. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  259. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  260. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  261. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  262. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  263. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  264. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  265. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  266. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  267. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/reviewer_identity_schemas.py +0 -0
  268. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  269. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  270. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  271. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  272. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/schemas.py +0 -0
  273. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/scoped_usage_schemas.py +0 -0
  274. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  275. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  276. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  277. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  278. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  279. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  280. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  281. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  282. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  283. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  284. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  285. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
  286. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/windows_security.py +0 -0
  287. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  288. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_authority.py +0 -0
  289. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_authority_schemas.py +0 -0
  290. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  291. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
  292. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
  293. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
  294. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  295. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  296. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/__init__.py +0 -0
  297. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  298. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  299. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  300. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  301. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  302. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  303. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  304. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  305. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  306. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  307. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  308. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  309. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  310. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  311. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  312. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  313. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  314. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  315. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  316. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/followup/records.py +0 -0
  317. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  318. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  319. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
  320. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  321. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/goal/records.py +0 -0
  322. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/goal/view.py +0 -0
  323. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  324. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  325. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  326. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  327. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  328. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  329. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  330. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  331. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  332. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  333. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  334. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  335. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  336. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  337. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  338. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  339. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  340. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  341. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  342. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  343. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  344. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  345. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  346. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  347. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  348. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  349. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  350. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  351. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  352. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  353. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  354. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  355. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  356. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  357. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  358. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  359. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  360. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  361. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  362. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  363. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  364. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/planning.py +0 -0
  365. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  366. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  367. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  368. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  369. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
  370. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  371. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  372. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  373. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  374. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  375. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  376. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  377. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  378. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  379. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  380. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/metrics/workflow_economics.py +0 -0
  381. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  382. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  383. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  384. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  385. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  386. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  387. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  388. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  389. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  390. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  391. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  392. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  393. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  394. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  395. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  396. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  397. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  398. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  399. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  400. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  401. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  402. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  403. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  404. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  405. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  406. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  407. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/templates.py +0 -0
  408. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  409. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  410. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/planning/verification.py +0 -0
  411. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  412. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  413. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/apply.py +0 -0
  414. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  415. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  416. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  417. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  418. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  419. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  420. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/__init__.py +0 -0
  421. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  422. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/guidance.py +0 -0
  423. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/merge.py +0 -0
  424. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/presets.py +0 -0
  425. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/principles.py +0 -0
  426. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/project/profile.py +0 -0
  427. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/py.typed +0 -0
  428. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  429. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  430. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  431. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  432. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  433. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  434. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  435. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/packs.py +0 -0
  436. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  437. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
  438. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  439. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  440. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  441. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  442. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  443. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  444. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  445. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  446. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  447. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  448. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  449. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  450. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/research/__init__.py +0 -0
  451. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/research/evidence.py +0 -0
  452. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/research/provenance.py +0 -0
  453. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/research/validation.py +0 -0
  454. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/resources.py +0 -0
  455. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review/__init__.py +0 -0
  456. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review/provenance.py +0 -0
  457. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review/validation.py +0 -0
  458. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  459. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  460. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  461. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  462. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  463. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  464. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  465. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  466. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  467. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/review_mesh/validation_helpers.py +0 -0
  468. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  469. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/runner/core.py +0 -0
  470. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  471. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  472. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  473. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  474. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  475. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/specification/validation.py +0 -0
  476. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  477. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  478. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/audit_evidence.py +0 -0
  479. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  480. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  481. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  482. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/closing_policy.py +0 -0
  483. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/closing_window.py +0 -0
  484. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
  485. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
  486. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  487. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/deadline_guards.py +0 -0
  488. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  489. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  490. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/immutable_input.py +0 -0
  491. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  492. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  493. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  494. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  495. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  496. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  497. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/query.py +0 -0
  498. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  499. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  500. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/run.py +0 -0
  501. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  502. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  503. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  504. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  505. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  506. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  507. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  508. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  509. {agent_lifecycle_kit-2.16.0 → agent_lifecycle_kit-2.17.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.16.0
3
+ Version: 2.17.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
@@ -41,9 +41,9 @@ and secret handling stay in adapters or host-local profiles.
41
41
  ALK provides a verifiable finish for external-agent work with proportionate control. It adds only the checks and evidence needed for the task; most of the time remains for research, implementation and product verification.
42
42
 
43
43
  ## Quick start
44
- Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.16 adds cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
44
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.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.16.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).
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.17.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
 
@@ -19,9 +19,9 @@ and secret handling stay in adapters or host-local profiles.
19
19
  ALK provides a verifiable finish for external-agent work with proportionate control. It adds only the checks and evidence needed for the task; most of the time remains for research, implementation and product verification.
20
20
 
21
21
  ## Quick start
22
- Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.16 adds cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
22
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.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.16.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).
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.17.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
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "2.16.0"
7
+ version = "2.17.0"
8
8
  description = "Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -41,9 +41,9 @@ dependencies = []
41
41
 
42
42
  [dependency-groups]
43
43
  quality = [
44
- "ruff==0.16.5",
45
- "mypy==2.3.1",
46
- "coverage==7.15.4",
44
+ "ruff==0.17.1",
45
+ "mypy==2.4.0",
46
+ "coverage==7.16.2",
47
47
  "jsonschema==4.26.0",
48
48
  ]
49
49
 
@@ -1,3 +1,3 @@
1
1
  """Package version."""
2
2
 
3
- __version__ = "2.16.0"
3
+ __version__ = "2.17.0"
@@ -73,8 +73,20 @@ def dispatch_benchmark(args: argparse.Namespace) -> dict[str, Any] | str | None:
73
73
  return _lazy_call("agent_lifecycle.cli.benchmarks", "dispatch_benchmark", args)
74
74
 
75
75
 
76
+ def require_known_arguments(args: argparse.Namespace, remainder: list[str]) -> None:
77
+ """Reject unowned arguments before a command can cause side effects."""
78
+ target = COMMAND_DISPATCH.get(args.command)
79
+ if remainder and (target is None or not target[2]):
80
+ raise LifecycleError(
81
+ "cli-unrecognized-arguments",
82
+ "Command contains unrecognized arguments",
83
+ {"argumentCount": len(remainder)},
84
+ )
85
+
86
+
76
87
  def dispatch(args: argparse.Namespace, remainder: list[str]) -> dict[str, Any] | str | None:
77
88
  """Route a parsed command without owning domain behavior or CLI output."""
89
+ require_known_arguments(args, remainder)
78
90
  target = COMMAND_DISPATCH.get(args.command)
79
91
  if target is None:
80
92
  raise LifecycleError(
@@ -84,5 +96,4 @@ def dispatch(args: argparse.Namespace, remainder: list[str]) -> dict[str, Any] |
84
96
  function = globals()[function_name]
85
97
  if accepts_remainder:
86
98
  return function(args, remainder)
87
- del remainder
88
99
  return function(args)
@@ -229,6 +229,7 @@ def _dispatch_workflow_task(args: argparse.Namespace, state_path: Path) -> dict[
229
229
  expected_revision=args.expected_revision,
230
230
  blocker_code=args.blocker_code,
231
231
  reason=args.reason,
232
+ review_task_id=getattr(args, "review_task", None),
232
233
  )
233
234
  if args.workflow_command == "resolve":
234
235
  return resolve_blocker(
@@ -112,7 +112,7 @@ def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
112
112
  "schemaVersion": "agent-plan-check.v1",
113
113
  "manifest": validate_plan_manifest(
114
114
  manifest,
115
- require_completeness=args.require_completeness,
115
+ require_completeness=True,
116
116
  completeness_profile=completeness_profile,
117
117
  ),
118
118
  "lock": verify_plan_lock(manifest, lock) if lock else None,
@@ -678,6 +678,7 @@ def _add_workflow_control_parsers(
678
678
  workflow_block.add_argument("--operation-id", required=True)
679
679
  workflow_block.add_argument("--expected-revision", required=True, type=int)
680
680
  workflow_block.add_argument("--blocker-code", required=True)
681
+ workflow_block.add_argument("--review-task")
681
682
  workflow_block.add_argument("--reason", required=True)
682
683
  workflow_resolve = workflow_sub.add_parser("resolve")
683
684
  workflow_resolve.add_argument("--state", required=True)
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import sys
6
6
 
7
- from agent_lifecycle.cli.dispatch import dispatch
7
+ from agent_lifecycle.cli.dispatch import dispatch, require_known_arguments
8
8
  from agent_lifecycle.cli.errors import to_lifecycle_error
9
9
  from agent_lifecycle.cli.parsers import build_parser
10
10
  from agent_lifecycle.contracts import LifecycleError, canonical_bytes
@@ -19,6 +19,7 @@ def main(argv: list[str] | None = None) -> int:
19
19
  from agent_lifecycle.neutrality.cli import main as neutrality_main
20
20
 
21
21
  return neutrality_main(remainder)
22
+ require_known_arguments(args, remainder)
22
23
  payload = dispatch(args, remainder)
23
24
  except LifecycleError as exc:
24
25
  _write(exc.to_json())
@@ -20,6 +20,7 @@ from agent_lifecycle.contracts.ownership_paths import (
20
20
  require_output_footprint,
21
21
  )
22
22
  from agent_lifecycle.freeze import verify_plan_package_integrity
23
+ from agent_lifecycle.planning.validation import validate_plan_manifest
23
24
  from agent_lifecycle.policy.execution_strategy import validate_execution_strategy
24
25
 
25
26
 
@@ -59,6 +60,7 @@ def compile_task_packets(
59
60
  def _verify_manifest(root: Path, manifest: dict[str, Any]) -> str:
60
61
  if manifest.get("status") != "FROZEN":
61
62
  raise LifecycleError("plan-not-frozen", "only FROZEN plans can be compiled")
63
+ validate_plan_manifest(manifest, require_completeness=True)
62
64
  package = manifest.get("package", {})
63
65
  plan_root = package.get("planArtifactRoot")
64
66
  if not isinstance(plan_root, str) or not plan_root:
@@ -94,6 +94,14 @@ def read_json_object(path: Path, *, label: str | None = None) -> dict[str, Any]:
94
94
  return load_json_object(data, label=label or "JSON document")
95
95
 
96
96
 
97
+ def prepare_json_object(value: Any, *, label: str = "JSON output") -> bytes:
98
+ """Prepare the exact stored bytes and prove they fit the existing reader."""
99
+ _validate_json_nesting(value)
100
+ data = canonical_bytes(value) + b"\n"
101
+ load_json_object(data, label=label)
102
+ return data
103
+
104
+
97
105
  def write_json_create(path: Path, value: Any) -> bytes:
98
106
  data = canonical_bytes(value) + b"\n"
99
107
  try:
@@ -0,0 +1,52 @@
1
+ """Shared private persistence primitives for local lifecycle state."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Any
7
+
8
+ from agent_lifecycle.contracts.canonical import (
9
+ canonical_digest,
10
+ prepare_json_object,
11
+ require_private_file,
12
+ write_json_create,
13
+ write_json_create_private,
14
+ write_json_replace_private,
15
+ )
16
+ from agent_lifecycle.contracts.errors import LifecycleError
17
+ from agent_lifecycle.contracts.paths import normalize_repo_path
18
+
19
+
20
+ def prepared_artifact_identity(path: str, value: dict[str, Any]) -> dict[str, Any]:
21
+ """Derive a bounded canonical artifact identity without touching storage."""
22
+ path = normalize_repo_path(path)
23
+ data = prepare_json_object(value, label="prospective workflow artifact")
24
+ return {"path": path, "sha256": canonical_digest(value), "bytes": len(data)}
25
+
26
+
27
+ def persist_json_artifact(root: Path, identity: dict[str, Any], value: dict[str, Any]) -> None:
28
+ """Create the exact preflighted artifact using the existing authority writer."""
29
+ if prepared_artifact_identity(identity["path"], value) != identity:
30
+ raise LifecycleError("workflow-artifact-preparation-mismatch", "prepared artifact changed before persistence")
31
+ write_json_create(root / identity["path"], value)
32
+
33
+
34
+ def create_private_json(path: Path, value: Any) -> bytes:
35
+ """Create one owner-only JSON artifact without replacing an existing file."""
36
+
37
+ return write_json_create_private(path, value)
38
+
39
+
40
+ def replace_private_json(path: Path, value: Any) -> bytes:
41
+ """Atomically replace one owner-only JSON artifact and sync its directory."""
42
+
43
+ return write_json_replace_private(path, value)
44
+
45
+
46
+ def require_private_json(path: Path) -> Path:
47
+ """Require a regular owner-only JSON path before reading or replacing it."""
48
+
49
+ return require_private_file(path)
50
+
51
+
52
+ __all__ = ["create_private_json", "replace_private_json", "require_private_json"]
@@ -50,7 +50,10 @@ PLAN_MANIFEST_SCHEMAS: dict[str, dict[str, Any]] = {
50
50
  "readOnly": _STRING_LIST,
51
51
  "forbiddenWrites": _STRING_LIST,
52
52
  "leadOwned": {"type": "array", "items": {"type": "object"}},
53
- "workstreams": {"type": "array", "items": {"type": "object"}},
53
+ "workstreams": {
54
+ "type": "array",
55
+ "items": {"type": "object", "properties": {"artifactPaths": {"$ref": "#/$defs/artifactPaths"}}},
56
+ },
54
57
  "acceptance": _OBJECT,
55
58
  "acceptanceCriteria": {"type": "array", "items": {"type": "object"}},
56
59
  "validation": _OBJECT,
@@ -95,6 +98,12 @@ PLAN_MANIFEST_SCHEMAS: dict[str, dict[str, Any]] = {
95
98
  }
96
99
 
97
100
  PLAN_MANIFEST_SCHEMAS[MANIFEST_SCHEMA]["$defs"] = {
101
+ "artifactPaths": _closed_object_schema(
102
+ "agent-plan-artifact-paths.v1",
103
+ required=["result", "review"],
104
+ include_schema_version=False,
105
+ properties={"result": {"type": "string", "minLength": 1}, "review": {"type": "string", "minLength": 1}},
106
+ ),
98
107
  "package": _closed_object_schema(
99
108
  "agent-plan-package.v1",
100
109
  required=["id"],
@@ -151,6 +160,28 @@ PLAN_MANIFEST_SCHEMAS[MANIFEST_SCHEMA]["$defs"] = {
151
160
  "type": "object",
152
161
  "additionalProperties": True,
153
162
  "properties": {
163
+ "prerequisiteAcceptance": {
164
+ "type": "object",
165
+ "additionalProperties": False,
166
+ "required": ["required", "dependencies"],
167
+ "properties": {
168
+ "required": {"type": "boolean"},
169
+ "dependencies": {
170
+ "type": "array",
171
+ "items": {
172
+ "type": "object",
173
+ "additionalProperties": False,
174
+ "required": ["packageId", "sourceRevision", "evidencePath", "sha256"],
175
+ "properties": {
176
+ "packageId": {"type": "string", "minLength": 1},
177
+ "sourceRevision": {"type": "string", "minLength": 1},
178
+ "evidencePath": {"type": "string", "minLength": 1},
179
+ "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
180
+ },
181
+ },
182
+ },
183
+ },
184
+ },
154
185
  "securityAnalysis": {
155
186
  "type": "object",
156
187
  "required": ["profileId", "activation", "implementationAudit"],
@@ -161,7 +192,7 @@ PLAN_MANIFEST_SCHEMAS[MANIFEST_SCHEMA]["$defs"] = {
161
192
  "implementationAudit": {"type": "object"},
162
193
  "verificationEvidence": {"type": "object"},
163
194
  },
164
- }
195
+ },
165
196
  },
166
197
  },
167
198
  }
@@ -0,0 +1,124 @@
1
+ """Bounded OS locks for cooperating processes on one local file."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import errno
6
+ import math
7
+ import os
8
+ import stat
9
+ import threading
10
+ import time
11
+ from collections.abc import Iterator
12
+ from contextlib import contextmanager
13
+ from pathlib import Path
14
+ from typing import Protocol, cast
15
+
16
+ from agent_lifecycle.contracts.authority_io import authority_location, ensure_authority_directory
17
+ from agent_lifecycle.contracts.errors import LifecycleError
18
+
19
+ _FD_GUARD = threading.Lock()
20
+ _LOCK_FDS: set[int] = set()
21
+ DEFAULT_LOCK_TIMEOUT_SECONDS = 30.0
22
+
23
+
24
+ class _WindowsLock(Protocol):
25
+ LK_NBLCK: int
26
+
27
+ def locking(self, fd: int, mode: int, nbytes: int) -> None: ...
28
+
29
+
30
+ def _after_fork_child() -> None:
31
+ for fd in _LOCK_FDS:
32
+ os.close(fd)
33
+ _LOCK_FDS.clear()
34
+ _FD_GUARD.release()
35
+
36
+
37
+ if hasattr(os, "register_at_fork"):
38
+ os.register_at_fork(
39
+ before=_FD_GUARD.acquire,
40
+ after_in_parent=_FD_GUARD.release,
41
+ after_in_child=_after_fork_child,
42
+ )
43
+
44
+
45
+ def _identity(path: Path, fd: int) -> tuple[int, int]:
46
+ actual = os.fstat(fd)
47
+ named = path.lstat()
48
+ if (
49
+ not stat.S_ISREG(named.st_mode)
50
+ or not stat.S_ISREG(actual.st_mode)
51
+ or actual.st_nlink != 1
52
+ or (actual.st_dev, actual.st_ino) != (named.st_dev, named.st_ino)
53
+ or (os.name != "nt" and stat.S_IMODE(actual.st_mode) != 0o600)
54
+ ):
55
+ raise LifecycleError("process-lock-unsafe", "process lock must remain a private regular file")
56
+ return actual.st_dev, actual.st_ino
57
+
58
+
59
+ def _try_lock(fd: int) -> bool:
60
+ try:
61
+ if os.name == "posix":
62
+ import fcntl
63
+
64
+ fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
65
+ elif os.name == "nt":
66
+ import msvcrt
67
+
68
+ windows = cast("_WindowsLock", msvcrt)
69
+ os.lseek(fd, 0, os.SEEK_SET)
70
+ windows.locking(fd, windows.LK_NBLCK, 1)
71
+ else:
72
+ raise LifecycleError("process-lock-unsupported", "local process locking is unsupported")
73
+ return True
74
+ except OSError as error:
75
+ if error.errno in {errno.EACCES, errno.EAGAIN}:
76
+ return False
77
+ raise
78
+
79
+
80
+ @contextmanager
81
+ def exclusive_process_lock(
82
+ path: Path,
83
+ *,
84
+ timeout_seconds: float = DEFAULT_LOCK_TIMEOUT_SECONDS,
85
+ ) -> Iterator[None]:
86
+ """Hold a stable lock through the caller's operation; never remove its file.
87
+
88
+ Closing the OS handle releases a crashed process's lock. File age, PID text
89
+ and elapsed time never authorize stealing a live lock.
90
+ """
91
+ if (
92
+ not isinstance(timeout_seconds, (int, float))
93
+ or isinstance(timeout_seconds, bool)
94
+ or not math.isfinite(timeout_seconds)
95
+ or timeout_seconds < 0
96
+ ):
97
+ raise LifecycleError("process-lock-timeout-invalid", "lock timeout must be nonnegative")
98
+ root, relative = authority_location(path)
99
+ path = root / relative
100
+ ensure_authority_directory(path.parent)
101
+ owner_pid = os.getpid()
102
+ fd = -1
103
+ try:
104
+ with _FD_GUARD:
105
+ fd = os.open(path, os.O_RDWR | os.O_CREAT | getattr(os, "O_NOFOLLOW", 0), 0o600)
106
+ _LOCK_FDS.add(fd)
107
+ identity = _identity(path, fd)
108
+ deadline = time.monotonic() + timeout_seconds
109
+ while not _try_lock(fd):
110
+ remaining = deadline - time.monotonic()
111
+ if remaining <= 0:
112
+ raise LifecycleError("process-lock-timeout", "another process holds the operation lock")
113
+ time.sleep(min(0.01, remaining))
114
+ if _identity(path, fd) != identity:
115
+ raise LifecycleError("process-lock-unsafe", "process lock identity changed")
116
+ except OSError as error:
117
+ raise LifecycleError("process-lock-unavailable", "local process lock is unavailable") from error
118
+ else:
119
+ yield
120
+ finally:
121
+ if fd >= 0 and owner_pid == os.getpid():
122
+ with _FD_GUARD:
123
+ _LOCK_FDS.discard(fd)
124
+ os.close(fd)
@@ -138,12 +138,11 @@ def validate_plan_completeness(
138
138
  required_checks = _required_checks(active_profile, tier)
139
139
  for check in required_checks:
140
140
  _CHECKS[check](manifest, tier, blockers)
141
- if tier == "S2" and _canonical_authority_enabled(manifest):
142
- # Plans carrying packageIntegrity use the closed graph and path rules.
143
- # Older frozen plans remain readable under their historical profile.
141
+ if tier == "S2":
142
+ _check_s2_integrity(manifest, blockers)
144
143
  _check_traceability(manifest, tier, blockers)
145
144
  _check_path_authority(manifest, tier, blockers)
146
- required_checks = [*required_checks, "traceability", "path-authority"]
145
+ required_checks = [*required_checks, "package-integrity", "traceability", "path-authority"]
147
146
  if operation_root is not None:
148
147
  required_checks = [*required_checks, "filesystem-path-authority"]
149
148
  try:
@@ -176,12 +175,13 @@ def require_plan_completeness_pass(validation: dict[str, Any]) -> dict[str, Any]
176
175
  return validation
177
176
 
178
177
 
179
- def _tier(manifest: dict[str, Any]) -> str:
178
+ def _tier(manifest: dict[str, Any]) -> str | None:
180
179
  specification = manifest.get("specification")
181
- if isinstance(specification, dict) and isinstance(specification.get("tier"), str):
182
- return specification["tier"]
180
+ if isinstance(specification, dict) and "tier" in specification:
181
+ value = specification["tier"]
182
+ return value if isinstance(value, str) else None
183
183
  raw = manifest.get("tier")
184
- return raw if isinstance(raw, str) else "S1"
184
+ return raw if isinstance(raw, str) else None
185
185
 
186
186
 
187
187
  def _package_id(manifest: dict[str, Any]) -> str | None:
@@ -193,7 +193,22 @@ def _required_checks(profile: dict[str, Any], tier: str) -> list[str]:
193
193
  profiles = profile.get("profiles") if isinstance(profile.get("profiles"), dict) else {}
194
194
  tier_profile = profiles.get(tier) if isinstance(profiles, dict) else None
195
195
  required = tier_profile.get("requiredChecks") if isinstance(tier_profile, dict) else []
196
- return _strings(required)
196
+ baseline = DEFAULT_PROFILE["profiles"][tier]["requiredChecks"]
197
+ return list(dict.fromkeys([*baseline, *_strings(required)]))
198
+
199
+
200
+ def _check_s2_integrity(manifest: dict[str, Any], blockers: list[dict[str, Any]]) -> None:
201
+ integrity = manifest.get("packageIntegrity")
202
+ if not isinstance(integrity, dict) or integrity.get("required") is not True:
203
+ blockers.append(_blocker("missing-package-integrity", "S2 requires packageIntegrity.required=true"))
204
+ return
205
+ if integrity.get("lockSchemaVersion") != "agent-plan-lock.v2":
206
+ blockers.append(_blocker("s2-lock-schema-invalid", "S2 requires a v2 inventory lock"))
207
+ paths = manifest.get("planFiles")
208
+ if not isinstance(paths, list) or not paths or any(not isinstance(p, str) or not p for p in paths):
209
+ blockers.append(_blocker("plan-files-missing", "S2 requires a nonempty planFiles inventory"))
210
+ elif paths != sorted(set(paths)):
211
+ blockers.append(_blocker("plan-files-unsorted", "planFiles must be unique and sorted lexicographically"))
197
212
 
198
213
 
199
214
  def _check_single_workstream(manifest: dict[str, Any], tier: str, blockers: list[dict[str, Any]]) -> None:
@@ -313,10 +328,6 @@ def _check_write_ownership(manifest: dict[str, Any], tier: str, blockers: list[d
313
328
  )
314
329
 
315
330
 
316
- def _canonical_authority_enabled(manifest: dict[str, Any]) -> bool:
317
- return isinstance(manifest.get("packageIntegrity"), dict)
318
-
319
-
320
331
  def _validation_ladder_enabled(manifest: dict[str, Any]) -> bool:
321
332
  validation = manifest.get("validation")
322
333
  return isinstance(validation, dict) and ("checkCatalog" in validation or "validationLadderProfile" in validation)
@@ -8,13 +8,17 @@ from agent_lifecycle.contracts import LifecycleError, canonical_digest
8
8
  from agent_lifecycle.contracts.authority_text import require_manifest_text
9
9
  from agent_lifecycle.contracts.immutable_input_schemas import validate_a5_plan_policy, validate_a5_policy
10
10
  from agent_lifecycle.contracts.ownership_paths import (
11
+ authority_paths_overlap,
12
+ normalize_authority_path,
11
13
  require_declared_output_footprint,
12
14
  require_manifest_authority_paths,
15
+ require_output_footprint,
13
16
  )
14
17
  from agent_lifecycle.contracts.plan_manifest_schemas import (
15
18
  MANIFEST_SCHEMA,
16
19
  MANIFEST_VALIDATION_SCHEMA,
17
20
  )
21
+ from agent_lifecycle.planning.prerequisites import prerequisite_dependencies
18
22
 
19
23
  _TOP_LEVEL = {
20
24
  "schemaVersion",
@@ -191,6 +195,10 @@ def validate_plan_manifest_contract(manifest: dict[str, Any]) -> dict[str, Any]:
191
195
  return _result(manifest, blockers)
192
196
  require_manifest_text(manifest)
193
197
  require_manifest_authority_paths(manifest)
198
+ try:
199
+ prerequisite_dependencies(manifest)
200
+ except LifecycleError as exc:
201
+ blockers.append(_blocker(exc.code, exc.message))
194
202
  try:
195
203
  require_declared_output_footprint(manifest)
196
204
  except LifecycleError as exc:
@@ -211,6 +219,7 @@ def validate_plan_manifest_contract(manifest: dict[str, Any]) -> dict[str, Any]:
211
219
  if not isinstance(package.get("id"), str) or not package["id"].strip():
212
220
  blockers.append(_blocker("plan-manifest-package-id-missing", "package.id is required"))
213
221
  _validate_nested(manifest, blockers)
222
+ blockers.extend(_artifact_path_blockers(manifest))
214
223
  _validate_immutable_input_policy(manifest, blockers)
215
224
  _validate_extensions(manifest.get("extensions"), blockers)
216
225
  return _result(manifest, blockers)
@@ -229,6 +238,62 @@ def require_plan_manifest_contract(manifest: dict[str, Any]) -> dict[str, Any]:
229
238
  return result
230
239
 
231
240
 
241
+ def require_plan_artifact_paths(manifest: dict[str, Any]) -> None:
242
+ """Apply the same closed artifact roles to legacy executable envelopes."""
243
+ blockers = _artifact_path_blockers(manifest)
244
+ if blockers:
245
+ raise LifecycleError("plan-artifact-paths-invalid", "plan artifact paths are invalid", {"blockers": blockers})
246
+
247
+
248
+ def _artifact_path_blockers(manifest: dict[str, Any]) -> list[dict[str, Any]]:
249
+ blockers: list[dict[str, Any]] = []
250
+ outputs: list[str] = []
251
+ seen: set[str] = set()
252
+ protected = [
253
+ p
254
+ for key in ("readOnly", "forbiddenWrites")
255
+ for values in [manifest.get(key, [])]
256
+ if isinstance(values, list)
257
+ for p in values
258
+ if isinstance(p, str)
259
+ ]
260
+ workstreams = manifest.get("workstreams", [])
261
+ if not isinstance(workstreams, list):
262
+ return blockers
263
+ for task in workstreams:
264
+ if not isinstance(task, dict) or "artifactPaths" not in task:
265
+ continue
266
+ roles = task["artifactPaths"]
267
+ if not isinstance(roles, dict) or set(roles) != {"result", "review"}:
268
+ blockers.append(
269
+ _blocker("plan-artifact-roles-invalid", "artifactPaths must contain result and review only")
270
+ )
271
+ continue
272
+ for raw in roles.values():
273
+ try:
274
+ if (
275
+ not isinstance(raw, str)
276
+ or "{" in raw.replace("{attempt}", "")
277
+ or "}" in raw.replace("{attempt}", "")
278
+ ):
279
+ raise LifecycleError("plan-artifact-path-invalid", "artifact path or attempt template is invalid")
280
+ path = normalize_authority_path(raw, label="artifact path")
281
+ key = path.casefold()
282
+ if key in seen:
283
+ raise LifecycleError("plan-artifact-path-duplicate", "artifact paths must be distinct")
284
+ if any(authority_paths_overlap(key, normalize_authority_path(p).casefold()) for p in protected):
285
+ raise LifecycleError("plan-output-conflict", "artifact path overlaps protected authority")
286
+ seen.add(key)
287
+ outputs.append(path)
288
+ except LifecycleError as exc:
289
+ blockers.append(_blocker(exc.code, exc.message))
290
+ try:
291
+ require_output_footprint(manifest, outputs)
292
+ except LifecycleError as exc:
293
+ blockers.append(_blocker(exc.code, exc.message))
294
+ return blockers
295
+
296
+
232
297
  def _validate_nested(manifest: dict[str, Any], blockers: list[dict[str, Any]]) -> None:
233
298
  _object_keys(manifest.get("author"), _AUTHOR, "author", blockers)
234
299
  _object_keys(manifest.get("baseRevision"), _BASE_REVISION, "baseRevision", blockers)