agent-lifecycle-kit 2.21.0__tar.gz → 2.23.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 (522) hide show
  1. {agent_lifecycle_kit-2.21.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.23.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/_version.py +1 -1
  5. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/audit/delta_review.py +113 -0
  6. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/cli/compact_plan_commands.py +197 -0
  7. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_planning.py +167 -0
  8. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/plan_lock_commands.py +1 -1
  9. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/planning_parsers.py +15 -0
  10. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/contracts/compact_plan_schemas.py +261 -0
  11. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +124 -0
  12. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/schemas.py +22 -1
  13. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/package_integrity.py +257 -6
  14. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_efficiency.py +81 -1
  15. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/metrics/plan_package_comparison.py +156 -0
  16. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/planning/compact_packages.py +312 -0
  17. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/deltas.py +9 -0
  18. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/traceability.py +10 -0
  19. agent_lifecycle_kit-2.23.0/src/agent_lifecycle/review/validation.py +909 -0
  20. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  21. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +5 -0
  22. agent_lifecycle_kit-2.21.0/src/agent_lifecycle/review/validation.py +0 -50
  23. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/LICENSE +0 -0
  24. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/NOTICE +0 -0
  25. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/README.md +0 -0
  26. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/manifest.json +0 -0
  27. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  28. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  29. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  30. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  31. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  32. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  33. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  34. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  35. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  36. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  37. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/setup.cfg +0 -0
  38. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/__init__.py +0 -0
  39. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/__main__.py +0 -0
  40. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/__init__.py +0 -0
  41. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_admission.py +0 -0
  42. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_policy.py +0 -0
  43. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_recovery.py +0 -0
  44. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resources.py +0 -0
  45. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/contracts.py +0 -0
  46. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger.py +0 -0
  47. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger_legacy.py +0 -0
  48. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger_records.py +0 -0
  49. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/host_bridge.py +0 -0
  50. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/input_fit.py +0 -0
  51. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/journal.py +0 -0
  52. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/normalization.py +0 -0
  53. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/opening_balances.py +0 -0
  54. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/profile_schema.py +0 -0
  55. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/source_usage_context.py +0 -0
  56. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/support_profiles.py +0 -0
  57. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_authority_store.py +0 -0
  58. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_state_store.py +0 -0
  59. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_store.py +0 -0
  60. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  61. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  62. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/attempt_authority.py +0 -0
  63. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/bootstrap_r11.py +0 -0
  64. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_exact_prompt.py +0 -0
  65. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_input_diagnostics.py +0 -0
  66. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_prompt_preparation.py +0 -0
  67. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_source_exposure.py +0 -0
  68. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_source_subject.py +0 -0
  69. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  70. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  71. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
  72. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
  73. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/immutable_input.py +0 -0
  74. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/input_lifecycle.py +0 -0
  75. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
  76. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
  77. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  78. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  79. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/limited_native_evidence.py +0 -0
  80. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  81. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/managed_process.py +0 -0
  82. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/ordinary_audit.py +0 -0
  83. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  84. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  85. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/private_input.py +0 -0
  86. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  87. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_admission.py +0 -0
  88. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  89. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  90. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  91. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  92. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  93. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  94. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  95. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_contracts.py +0 -0
  96. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_history.py +0 -0
  97. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_inputs.py +0 -0
  98. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_preparation_records.py +0 -0
  99. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_roles.py +0 -0
  100. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_shards.py +0 -0
  101. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_support.py +0 -0
  102. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_transcript.py +0 -0
  103. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
  104. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  105. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
  106. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  107. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
  108. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/windows_pipe.py +0 -0
  109. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  110. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  111. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  112. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  113. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/delta.py +0 -0
  114. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  115. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  116. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/implementation.py +0 -0
  117. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  118. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/package.py +0 -0
  119. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  120. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  121. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  122. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  123. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  124. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  125. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  126. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  127. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  128. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  129. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  130. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  131. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  132. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  133. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/git.py +0 -0
  134. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/git_io.py +0 -0
  135. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  136. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  137. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  138. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  139. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  140. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  141. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  142. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
  143. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  144. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
  145. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  146. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
  147. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  148. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/errors.py +0 -0
  149. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/followup.py +0 -0
  150. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  151. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
  152. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/main.py +0 -0
  153. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  154. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  155. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  156. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/policy.py +0 -0
  157. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  158. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/project.py +0 -0
  159. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/research.py +0 -0
  160. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/start.py +0 -0
  161. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  162. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/workflow_task_parsers.py +0 -0
  163. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  164. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  165. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  166. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
  167. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  168. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  169. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/__init__.py +0 -0
  170. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  171. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  172. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  173. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  174. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/profiles.py +0 -0
  175. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/rendering.py +0 -0
  176. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  177. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  178. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  179. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  180. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  181. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  182. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  183. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/artifact_authoring_schemas.py +0 -0
  184. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  185. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  186. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/authority_io.py +0 -0
  187. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/authority_text.py +0 -0
  188. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  189. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/bounded_json.py +0 -0
  190. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  191. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  192. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/closing_resource_schemas.py +0 -0
  193. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/closing_window_schemas.py +0 -0
  194. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  195. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  196. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  197. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  198. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  199. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/deadline_schemas.py +0 -0
  200. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/deadlines.py +0 -0
  201. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/display_identity.py +0 -0
  202. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  203. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  204. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/ed25519.py +0 -0
  205. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  206. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  207. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/evidence_receipt_schemas.py +0 -0
  208. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  209. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/execution_target.py +0 -0
  210. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  211. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
  212. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  213. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  214. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  215. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/immutable_input_schemas.py +0 -0
  216. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
  217. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  218. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  219. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  220. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  221. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  222. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  223. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  224. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  225. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  226. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  227. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/model_classes.py +0 -0
  228. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
  229. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  230. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  231. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  232. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  233. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
  234. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  235. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
  236. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  237. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  238. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/preparation_policy.py +0 -0
  239. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/private_storage.py +0 -0
  240. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  241. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_lock.py +0 -0
  242. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  243. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  244. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  245. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  246. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  247. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  248. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  249. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  250. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  251. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
  252. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  253. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  254. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  255. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  256. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  257. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  258. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  259. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  260. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/reviewer_identity_schemas.py +0 -0
  261. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  262. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  263. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  264. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  265. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/scoped_usage_schemas.py +0 -0
  266. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  267. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  268. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  269. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  270. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  271. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  272. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  273. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  274. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  275. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  276. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  277. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
  278. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/windows_security.py +0 -0
  279. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  280. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authority.py +0 -0
  281. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authority_schemas.py +0 -0
  282. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  283. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
  284. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
  285. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
  286. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  287. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
  288. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/__init__.py +0 -0
  289. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  290. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  291. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  292. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  293. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  294. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  295. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  296. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  297. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  298. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
  299. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  300. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  301. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  302. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  303. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  304. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  305. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  306. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  307. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  308. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/followup/records.py +0 -0
  309. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  310. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  311. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  312. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/records.py +0 -0
  313. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/view.py +0 -0
  314. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  315. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  316. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  317. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  318. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  319. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  320. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  321. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  322. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
  323. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  324. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  325. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  326. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  327. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  328. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  329. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  330. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  331. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  332. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  333. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  334. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  335. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
  336. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  337. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/opencode_compatibility.py +0 -0
  338. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  339. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  340. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  341. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  342. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  343. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  344. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  345. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  346. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  347. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  348. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  349. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  350. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  351. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  352. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  353. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  354. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  355. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  356. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/planning.py +0 -0
  357. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  358. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  359. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  360. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  361. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  362. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  363. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/command_resources.py +0 -0
  364. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  365. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  366. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/goal_progress.py +0 -0
  367. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  368. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  369. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  370. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  371. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  372. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  373. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/workflow_economics.py +0 -0
  374. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  375. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  376. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  377. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  378. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  379. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  380. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  381. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  382. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  383. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  384. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  385. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  386. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  387. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  388. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
  389. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  390. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  391. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  392. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  393. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  394. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  395. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  396. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  397. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/completeness.py +0 -0
  398. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  399. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/manifest_contract.py +0 -0
  400. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/prerequisites.py +0 -0
  401. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  402. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/templates.py +0 -0
  403. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  404. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/validation.py +0 -0
  405. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/verification.py +0 -0
  406. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  407. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  408. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/apply.py +0 -0
  409. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  410. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  411. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  412. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  413. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  414. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  415. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/__init__.py +0 -0
  416. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  417. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/guidance.py +0 -0
  418. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/merge.py +0 -0
  419. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/presets.py +0 -0
  420. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/principles.py +0 -0
  421. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/profile.py +0 -0
  422. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/py.typed +0 -0
  423. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  424. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  425. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  426. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  427. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  428. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
  429. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
  430. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  431. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/packs.py +0 -0
  432. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  433. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
  434. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  435. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  436. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  437. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  438. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  439. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  440. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  441. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  442. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  443. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  444. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  445. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  446. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/__init__.py +0 -0
  447. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/evidence.py +0 -0
  448. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/provenance.py +0 -0
  449. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/validation.py +0 -0
  450. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/resources.py +0 -0
  451. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review/__init__.py +0 -0
  452. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review/provenance.py +0 -0
  453. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  454. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  455. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  456. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  457. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  458. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/preflight.py +0 -0
  459. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  460. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  461. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  462. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  463. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/validation_helpers.py +0 -0
  464. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  465. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/core.py +0 -0
  466. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  467. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  468. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  469. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  470. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  471. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/validation.py +0 -0
  472. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  473. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/artifact_builders.py +0 -0
  474. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  475. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/audit_evidence.py +0 -0
  476. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  477. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  478. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  479. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  480. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  481. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  482. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/closing_policy.py +0 -0
  483. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/closing_window.py +0 -0
  484. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
  485. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
  486. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  487. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/deadline_guards.py +0 -0
  488. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/events.py +0 -0
  489. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  490. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
  491. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  492. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/immutable_input.py +0 -0
  493. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  494. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  495. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  496. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/limited_usage.py +0 -0
  497. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  498. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  499. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  500. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  501. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  502. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
  503. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/query.py +0 -0
  504. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  505. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
  506. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  507. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/run.py +0 -0
  508. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  509. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  510. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  511. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  512. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/state.py +0 -0
  513. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  514. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_start.py +0 -0
  515. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
  516. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/transactions.py +0 -0
  517. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  518. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  519. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  520. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  521. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  522. {agent_lifecycle_kit-2.21.0 → agent_lifecycle_kit-2.23.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.21.0
3
+ Version: 2.23.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.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 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).
44
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.23 adds [compact S0/S1 authoring](docs/reference/tier-proportional-plan-packages.md) with explicit checklist completion and unchanged approval gates. Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 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.21.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.23.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.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 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).
22
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.23 adds [compact S0/S1 authoring](docs/reference/tier-proportional-plan-packages.md) with explicit checklist completion and unchanged approval gates. Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 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.21.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.23.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.21.0"
7
+ version = "2.23.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.21.0"
3
+ __version__ = "2.23.0"
@@ -0,0 +1,113 @@
1
+ """Bounded read-only plan review selection, without model orchestration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from agent_lifecycle.contracts import LifecycleError, canonical_bytes, canonical_digest
8
+ from agent_lifecycle.contracts.plan_delta_schemas import DELTA_REVIEW_SCHEMA
9
+ from agent_lifecycle.review.validation import (
10
+ build_review_impact_graph,
11
+ derive_delta_selection,
12
+ make_review_scope,
13
+ validate_bound_plan_review,
14
+ validate_review_composition,
15
+ )
16
+
17
+ MAX_PACKET_BYTES = 98304
18
+
19
+
20
+ def build_delta_review_packet(
21
+ subject: dict[str, Any],
22
+ *,
23
+ baseline: dict[str, Any] | None = None,
24
+ reports: dict[str, dict[str, Any]] | None = None,
25
+ report_sizes: dict[str, int] | None = None,
26
+ max_bytes: int = MAX_PACKET_BYTES,
27
+ ) -> dict[str, Any]:
28
+ """Select eligible impact; FULL_REQUIRED never starts a full audit.
29
+
30
+ The caller still needs existing admission, independent review and freeze
31
+ verification. A digest or eligibility decision grants none of those rights.
32
+ """
33
+ if type(max_bytes) is not int or max_bytes < 1024:
34
+ raise LifecycleError("review-packet-limit", "Invalid packet limit")
35
+ cap = min(max_bytes, MAX_PACKET_BYTES)
36
+ try:
37
+ scope = make_review_scope(subject)
38
+ except LifecycleError as exc:
39
+ return _input_refusal(subject, exc.code)
40
+ body = {
41
+ "schemaVersion": DELTA_REVIEW_SCHEMA,
42
+ "mode": "FULL",
43
+ "reasons": ["NO_BASELINE"],
44
+ "baseHash": None,
45
+ "candidateHash": scope["candidateHash"],
46
+ "graphDigest": scope["graphDigest"],
47
+ "changedNodes": [],
48
+ "closure": scope["coveredNodes"],
49
+ "readOnly": True,
50
+ "modelCallsStarted": False,
51
+ "admissionRequired": True,
52
+ }
53
+ if baseline is not None:
54
+ try:
55
+ previous = _baseline_subject(baseline, reports, report_sizes)
56
+ body.update(derive_delta_selection(previous, subject))
57
+ body["schemaVersion"] = DELTA_REVIEW_SCHEMA
58
+ except LifecycleError as exc:
59
+ body.update(mode="FULL_REQUIRED", reasons=[exc.code])
60
+ if body["mode"] == "DELTA_ELIGIBLE":
61
+ graph = build_review_impact_graph(subject["manifest"], file_digests=subject["fileDigests"])
62
+ selected = set(body["closure"])
63
+ body["selectedNodes"] = [n for n in graph["nodes"] if n["id"] in selected]
64
+ body["unchangedNodes"] = [
65
+ {"id": n["id"], "digest": n["digest"]} for n in graph["nodes"] if n["id"] not in selected
66
+ ]
67
+ body["baselineDigest"] = canonical_digest(baseline)
68
+ if len(canonical_bytes(body)) + 100 > cap:
69
+ body = {
70
+ key: body[key]
71
+ for key in ("schemaVersion", "candidateHash", "readOnly", "modelCallsStarted", "admissionRequired")
72
+ }
73
+ body.update(mode="FULL_REQUIRED", reasons=["PACKET_LIMIT_EXCEEDED"], baseHash=None, changedNodes=[], closure=[])
74
+ return {**body, "packetDigest": canonical_digest(body)}
75
+
76
+
77
+ def _input_refusal(subject: dict[str, Any], reason: str) -> dict[str, Any]:
78
+ manifest = subject.get("manifest") if isinstance(subject, dict) else None
79
+ body = {
80
+ "schemaVersion": DELTA_REVIEW_SCHEMA,
81
+ "mode": "FULL_REQUIRED",
82
+ "reasons": [reason],
83
+ "baseHash": None,
84
+ "candidateHash": canonical_digest(manifest),
85
+ "changedNodes": [],
86
+ "closure": [],
87
+ "readOnly": True,
88
+ "modelCallsStarted": False,
89
+ "admissionRequired": True,
90
+ }
91
+ return {**body, "packetDigest": canonical_digest(body)}
92
+
93
+
94
+ def _baseline_subject(
95
+ baseline: dict[str, Any],
96
+ reports: dict[str, dict[str, Any]] | None,
97
+ sizes: dict[str, int] | None,
98
+ ) -> dict[str, Any]:
99
+ if baseline.get("schemaVersion") == "agent-plan-composite-review.v1":
100
+ if not reports or not sizes:
101
+ raise LifecycleError("review-set-incomplete", "Composite evidence needed")
102
+ current_paths = baseline.get("currentReports")
103
+ if not isinstance(current_paths, list) or not current_paths:
104
+ raise LifecycleError("review-set-incomplete", "Current selectors needed")
105
+ candidate = reports.get(current_paths[0], {}).get("subject", {})
106
+ result = validate_review_composition(candidate.get("manifest", {}), baseline, reports, report_sizes=sizes)
107
+ return result["seats"][0]["subject"]
108
+ bound = validate_bound_plan_review(baseline)
109
+ if bound["scope"]["kind"] != "FULL":
110
+ raise LifecycleError("review-incomplete", "Complete baseline needed")
111
+ if len(canonical_bytes(baseline)) > 8 * 1024 * 1024:
112
+ raise LifecycleError("review-chain-limit", "Baseline exceeds cap")
113
+ return bound["subject"]
@@ -0,0 +1,197 @@
1
+ """Create-only compact authoring and read-only explanations; no lifecycle authority."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import stat
7
+ import unicodedata
8
+ from pathlib import Path
9
+ from typing import Any
10
+
11
+ from agent_lifecycle.compiler.task_packets import packet_publication_lock
12
+ from agent_lifecycle.contracts import LifecycleError, canonical_bytes, canonical_digest, load_json_object
13
+ from agent_lifecycle.contracts.authority_io import hold_authority_directory
14
+ from agent_lifecycle.contracts.compact_plan_schemas import MAX_COMPACT_INPUT_BYTES
15
+ from agent_lifecycle.contracts.execution_target import discard_created_output
16
+ from agent_lifecycle.contracts.ownership_paths import (
17
+ normalize_authority_path,
18
+ repository_authority_name,
19
+ require_manifest_authority_paths,
20
+ )
21
+ from agent_lifecycle.contracts.paths import read_stable_repository_file
22
+ from agent_lifecycle.planning.compact_packages import (
23
+ build_plan_package_profiles,
24
+ compile_compact_plan,
25
+ explain_compact_plan,
26
+ )
27
+
28
+ _FD_PATH_IDENTITY_FIELDS = 5 if os.name == "nt" else 6
29
+
30
+ _DRAFT_PREREQUISITE = (
31
+ "Before freeze-prepare: author acceptance-criteria.md from the explicit AC/EV facts "
32
+ "and add it to planFiles. The prepared candidate still needs current independent review before lock-create"
33
+ )
34
+
35
+
36
+ def compact_package_profiles() -> dict[str, Any]:
37
+ """Include filesystem authoring prerequisites in the user-facing tier view."""
38
+ body = build_plan_package_profiles()
39
+ body.pop("profileDigest")
40
+ body["draftCompletionPrerequisites"] = [_DRAFT_PREREQUISITE]
41
+ for profile in body["profiles"]:
42
+ if profile["compactSupported"]:
43
+ profile["requiredArtifacts"].append("acceptance-criteria.md explicitly added to planFiles before freeze")
44
+ return {**body, "profileDigest": canonical_digest(body)}
45
+
46
+
47
+ def compact_plan_command(
48
+ *, input_path: str, repository_root: Path, output_path: str | None = None, explain: bool = False
49
+ ) -> dict[str, Any]:
50
+ """Consume one stable bounded source; publishing never overwrites an artifact."""
51
+ root = repository_root.resolve(strict=True)
52
+ source_name = _name(root, input_path)
53
+ _inspect_path(root, source_name)
54
+ source_version = _version(root / source_name)
55
+ raw = _read(root, source_name)
56
+ if _version(root / source_name) != source_version:
57
+ raise LifecycleError("compact-plan-source-changed", "Compact source changed while being read")
58
+ source = load_json_object(raw, label="compact source")
59
+ package = source.get("package")
60
+ plan_root = package.get("planArtifactRoot") if isinstance(package, dict) else None
61
+ default_output = plan_root + "/plan.manifest.json" if isinstance(plan_root, str) else "plan.manifest.json"
62
+ destination = _name(root, output_path or default_output)
63
+ explanation = None
64
+ if explain:
65
+ explanation = explain_compact_plan(source, source_path=source_name, manifest_path=destination)
66
+ if explanation["status"] != "PASS":
67
+ return explanation
68
+ manifest = compile_compact_plan(source, source_path=source_name, manifest_path=destination)
69
+ require_manifest_authority_paths(manifest, operation_root=root)
70
+ _inspect_manifest_paths(root, manifest)
71
+ if explanation is not None:
72
+ return {**explanation, "nextCommands": [_DRAFT_PREREQUISITE, *explanation["nextCommands"]]}
73
+ prepared = canonical_bytes(manifest) + b"\n"
74
+ _publish(root, source_name, raw, source_version, destination, prepared)
75
+ return {
76
+ "schemaVersion": "agent-compact-plan-compilation.v1",
77
+ "status": "DRAFT",
78
+ "manifestPath": destination,
79
+ "manifestDigest": canonical_digest(manifest),
80
+ "sourcePath": source_name,
81
+ "sourceBytes": len(raw),
82
+ "canonicalOutputBytes": len(prepared),
83
+ "filesWritten": [destination],
84
+ "authorityClaimed": False,
85
+ "modelCallsStarted": False,
86
+ "nextCommands": [_DRAFT_PREREQUISITE, "plan freeze-prepare", "independent plan review", "plan lock-create"],
87
+ }
88
+
89
+
90
+ def _name(root: Path, name: str) -> str:
91
+ return normalize_authority_path(repository_authority_name(root / name, root))
92
+
93
+
94
+ def _read(root: Path, name: str) -> bytes:
95
+ return read_stable_repository_file(root, name, max_bytes=MAX_COMPACT_INPUT_BYTES, label="compact source")
96
+
97
+
98
+ def _inspect_path(root: Path, name: str) -> None:
99
+ """Reject observed link/name ambiguity without probing filesystem rules by writing."""
100
+ current = root
101
+ for part in normalize_authority_path(name).split("/"):
102
+ matches = []
103
+ try:
104
+ with os.scandir(current) as entries:
105
+ for index, entry in enumerate(entries):
106
+ if index >= 10_000:
107
+ raise LifecycleError("compact-plan-directory-too-large", "Directory inspection exceeds limit")
108
+ if unicodedata.normalize("NFC", entry.name).casefold() == part.casefold():
109
+ matches.append(entry.name)
110
+ except FileNotFoundError:
111
+ return
112
+ if not matches:
113
+ return
114
+ if len(matches) != 1 or unicodedata.normalize("NFC", matches[0]) != part:
115
+ raise LifecycleError("compact-plan-path-alias", "Authority path has an ambiguous or aliased name")
116
+ current = current / part
117
+ info = current.lstat()
118
+ if stat.S_ISLNK(info.st_mode) or getattr(info, "st_file_attributes", 0) & 0x400:
119
+ raise LifecycleError("compact-plan-path-alias", "Authority path cannot contain a link")
120
+ if stat.S_ISREG(info.st_mode) and info.st_nlink != 1:
121
+ raise LifecycleError("compact-plan-path-alias", "Authority file has multiple hard links")
122
+
123
+
124
+ def _inspect_manifest_paths(root: Path, manifest: dict[str, Any]) -> None:
125
+ names = [*manifest["planFiles"], manifest["package"]["artifactRoot"]]
126
+ names.extend(manifest["readOnly"])
127
+ names.extend(manifest["forbiddenWrites"])
128
+ for task in manifest["workstreams"]:
129
+ names.extend(task["writes"])
130
+ names.extend(entry["artifactPath"] for entry in manifest["acceptance"]["evidence"])
131
+ for name in sorted(set(names)):
132
+ _inspect_path(root, name)
133
+
134
+
135
+ def _version(path: Path) -> tuple[int, ...]:
136
+ info = path.lstat()
137
+ return (*_identity(info), info.st_nlink)
138
+
139
+
140
+ def _identity(info: os.stat_result) -> tuple[int, ...]:
141
+ """Capture the created descriptor's exact fingerprint for guarded rollback."""
142
+ return info.st_dev, info.st_ino, info.st_mode, info.st_size, info.st_mtime_ns, info.st_ctime_ns
143
+
144
+
145
+ def _created_identity(fd: int, path_info: os.stat_result) -> tuple[int, ...]:
146
+ """Join fd/path metadata, retaining a full path fingerprint for rollback.
147
+
148
+ Windows fstat ctime can be change time while path stat reports birth time.
149
+ All comparable fields must agree before using the path API's fingerprint.
150
+ """
151
+ descriptor = _identity(os.fstat(fd))
152
+ observed = _identity(path_info)
153
+ fields = _FD_PATH_IDENTITY_FIELDS
154
+ return observed if descriptor[:fields] == observed[:fields] else descriptor
155
+
156
+
157
+ def _require_same_source(root: Path, name: str, raw: bytes, version: tuple[int, ...]) -> None:
158
+ _inspect_path(root, name)
159
+ if _version(root / name) != version or _read(root, name) != raw or _version(root / name) != version:
160
+ raise LifecycleError("compact-plan-source-changed", "Compact source changed before publication completed")
161
+
162
+
163
+ def _publish(root: Path, source: str, raw: bytes, version: tuple[int, ...], destination: str, prepared: bytes) -> None:
164
+ path = root / destination
165
+ with packet_publication_lock(path.parent):
166
+ _inspect_path(root, destination)
167
+ if path.exists():
168
+ raise LifecycleError("compact-plan-output-exists", "Canonical output must not already exist")
169
+ _require_same_source(root, source, raw, version)
170
+ created = False
171
+ created_identity = None
172
+ try:
173
+ with hold_authority_directory(path.parent, writable=True) as directory:
174
+ fd = directory.write_child(path.name, append=False, mode=0o644)
175
+ created = True
176
+ created_identity = _created_identity(fd, directory.stat_child(path.name))
177
+ with os.fdopen(fd, "wb") as stream:
178
+ try:
179
+ stream.write(prepared)
180
+ stream.flush()
181
+ os.fsync(stream.fileno())
182
+ finally:
183
+ created_identity = _created_identity(stream.fileno(), directory.stat_child(path.name))
184
+ directory.sync()
185
+ _require_same_source(root, source, raw, version)
186
+ except FileExistsError:
187
+ if created and created_identity is not None:
188
+ discard_created_output(
189
+ root, destination, [prepared], expected_identity=created_identity, allow_partial=True
190
+ )
191
+ raise LifecycleError("compact-plan-output-exists", "Canonical output must not already exist") from None
192
+ except BaseException:
193
+ if created and created_identity is not None:
194
+ discard_created_output(
195
+ root, destination, [prepared], expected_identity=created_identity, allow_partial=True
196
+ )
197
+ raise
@@ -6,21 +6,40 @@ import argparse
6
6
  from pathlib import Path
7
7
  from typing import Any
8
8
 
9
+ from agent_lifecycle.audit.delta_review import (
10
+ _input_refusal,
11
+ build_delta_review_packet,
12
+ )
13
+ from agent_lifecycle.changesets.snapshot import _baseline_entries
14
+ from agent_lifecycle.cli.compact_plan_commands import compact_package_profiles, compact_plan_command
9
15
  from agent_lifecycle.cli.plan_lock_commands import create_reviewed_plan_lock, prepare_freeze_candidate
10
16
  from agent_lifecycle.compiler import build_phase_packet, compile_small_model_packets, compile_task_packets
11
17
  from agent_lifecycle.contracts import (
12
18
  LifecycleError,
13
19
  canonical_digest,
20
+ load_json_object,
14
21
  read_json_object,
22
+ sha256_hex,
15
23
  write_json_create,
16
24
  )
25
+ from agent_lifecycle.contracts.authority_io import create_authority_bytes
26
+ from agent_lifecycle.contracts.canonical import canonical_bytes
17
27
  from agent_lifecycle.contracts.finding_check_schemas import (
18
28
  validate_finding_check_binding,
19
29
  validate_finding_check_evidence,
20
30
  validate_finding_check_proposal,
21
31
  )
32
+ from agent_lifecycle.contracts.ownership_paths import require_output_footprint
33
+ from agent_lifecycle.contracts.paths import normalize_repo_path
22
34
  from agent_lifecycle.contracts.phase_packet_schemas import PLANNING_HANDOFF_PAYLOAD_SCHEMA
23
35
  from agent_lifecycle.freeze import verify_plan_lock
36
+ from agent_lifecycle.freeze.package_integrity import (
37
+ _bind_review_inputs,
38
+ _read_composite_reports,
39
+ _read_review_artifact,
40
+ _runtime_paths,
41
+ _verify_runtime_inventory,
42
+ )
24
43
  from agent_lifecycle.planning import (
25
44
  build_plan_delta,
26
45
  build_plan_snapshot,
@@ -42,6 +61,12 @@ from agent_lifecycle.planning.verification import (
42
61
  require_plan_verification_pass,
43
62
  )
44
63
  from agent_lifecycle.policy.proposals import accept_finding_check_proposal, build_finding_check_proposal
64
+ from agent_lifecycle.review.validation import (
65
+ make_review_subject,
66
+ review_output_paths,
67
+ validate_bound_plan_review,
68
+ validate_review_composition,
69
+ )
45
70
  from agent_lifecycle.specification import (
46
71
  build_completion_gate_receipt,
47
72
  validate_specification,
@@ -102,6 +127,15 @@ def _dispatch_specification(args: argparse.Namespace) -> dict[str, Any]:
102
127
 
103
128
 
104
129
  def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
130
+ if args.plan_command == "package-profiles":
131
+ return compact_package_profiles()
132
+ if args.plan_command in {"compact-compile", "compact-explain"}:
133
+ return compact_plan_command(
134
+ input_path=args.input,
135
+ output_path=getattr(args, "out", None),
136
+ repository_root=Path(args.repository_root),
137
+ explain=args.plan_command == "compact-explain",
138
+ )
105
139
  if args.plan_command == "freeze-prepare":
106
140
  return prepare_freeze_candidate(
107
141
  manifest_path=args.manifest,
@@ -218,6 +252,8 @@ def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
218
252
  if args.out:
219
253
  write_json_create(Path(args.out), payload)
220
254
  return payload
255
+ if args.plan_command == "review-packet":
256
+ return _plan_review_packet(args)
221
257
  if args.plan_command in {"delta-check", "delta-validate"}:
222
258
  payload = validate_plan_delta(read_json_object(Path(args.delta), label="plan delta"))
223
259
  if args.out:
@@ -228,6 +264,137 @@ def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
228
264
  raise LifecycleError("command-not-implemented", "plan command is not implemented")
229
265
 
230
266
 
267
+ def _plan_review_packet(args: argparse.Namespace) -> dict[str, Any]:
268
+ """Bind physical inputs before advisory selection; refusal writes nothing."""
269
+ root = Path(args.repository_root).resolve(strict=True)
270
+ if type(args.max_bytes) is not int or args.max_bytes < 1024:
271
+ raise LifecycleError("review-packet-limit", "Invalid packet limit")
272
+ subject: dict[str, Any] = {}
273
+ try:
274
+ manifest = load_json_object(_read_review_artifact(root, args.manifest), label="review manifest")
275
+ subject = {"manifest": manifest}
276
+ package = manifest.get("package")
277
+ if not isinstance(package, dict):
278
+ raise LifecycleError("review-input-incomplete", "Package needed")
279
+ expected = package.get("planArtifactRoot", "")
280
+ if not isinstance(expected, str) or not expected:
281
+ raise LifecycleError("review-input-incomplete", "Plan root needed")
282
+ if args.manifest != expected + "/plan.manifest.json":
283
+ raise LifecycleError("review-subject-mismatch", "Manifest location")
284
+ baseline, reports, sizes = _packet_baseline(root, args.baseline)
285
+ subject = _packet_subject(root, manifest, reports)
286
+ # A stable second read detects changes during inventory collection.
287
+ _bind_review_inputs(
288
+ {
289
+ "subject": subject,
290
+ "reviewAuthority": {"evidence": []},
291
+ },
292
+ root,
293
+ {},
294
+ )
295
+ _verify_runtime_inventory(
296
+ {**reports, "candidate": {"subject": subject}},
297
+ root,
298
+ require_current=True,
299
+ )
300
+ payload = build_delta_review_packet(
301
+ subject,
302
+ baseline=baseline,
303
+ reports=reports or None,
304
+ report_sizes=sizes or None,
305
+ max_bytes=args.max_bytes,
306
+ )
307
+ except LifecycleError as exc:
308
+ return _input_refusal(subject, exc.code)
309
+ if payload["mode"] == "FULL_REQUIRED":
310
+ return payload
311
+ outputs = [(args.out, payload, ".review-packet.json")]
312
+ if args.subject_out:
313
+ outputs.append((args.subject_out, subject, ".review-subject.json"))
314
+ names = [name for name, _, _ in outputs if name]
315
+ require_output_footprint(manifest, names, repository_root=root)
316
+ for name, _, suffix in outputs:
317
+ if name:
318
+ _packet_output_preflight(root, name, suffix, manifest)
319
+ for name, value, _ in outputs:
320
+ if name:
321
+ create_authority_bytes(root / name, canonical_bytes(value) + b"\n", root=root)
322
+ return payload
323
+
324
+
325
+ def _packet_baseline(
326
+ root: Path,
327
+ path: str | None,
328
+ ) -> tuple[dict[str, Any] | None, dict[str, dict[str, Any]], dict[str, int]]:
329
+ if path is None:
330
+ return None, {}, {}
331
+ raw = _read_review_artifact(root, path)
332
+ baseline = load_json_object(raw, label="review baseline")
333
+ evidence: dict[str, dict[str, Any]] = {}
334
+ if baseline.get("schemaVersion") == "agent-plan-composite-review.v1":
335
+ current = baseline.get("currentReports")
336
+ if not isinstance(current, list) or not current:
337
+ raise LifecycleError("review-set-incomplete", "Current report needed")
338
+ report = load_json_object(_read_review_artifact(root, current[0]))
339
+ bound = validate_bound_plan_review(report)
340
+ manifest = bound["subject"]["manifest"]
341
+ reports, sizes = _read_composite_reports(manifest, baseline, root, evidence)
342
+ validate_review_composition(manifest, baseline, reports, report_sizes=sizes)
343
+ else:
344
+ bound = validate_bound_plan_review(baseline)
345
+ if bound["scope"]["kind"] != "FULL":
346
+ raise LifecycleError("review-incomplete", "Full baseline needed")
347
+ reports, sizes = {path: baseline}, {path: len(raw)}
348
+ for report in reports.values():
349
+ _bind_review_inputs(report, root, evidence)
350
+ return baseline, reports, sizes
351
+
352
+
353
+ def _packet_subject(
354
+ root: Path,
355
+ manifest: dict[str, Any],
356
+ reports: dict[str, dict[str, Any]],
357
+ ) -> dict[str, Any]:
358
+ subjects = [r["subject"] for r in reports.values()]
359
+ manifests = [manifest, *(s["manifest"] for s in subjects)]
360
+ roots = {normalize_repo_path(m["package"]["planArtifactRoot"]) + "/" for m in manifests}
361
+ base = manifest.get("baseRevision")
362
+ source = base.get("sha") if isinstance(base, dict) else None
363
+ if not isinstance(source, str) or len(source) not in {40, 64}:
364
+ raise LifecycleError("review-source-unavailable", "Exact source needed")
365
+ if any(c not in "0123456789abcdef" for c in source):
366
+ raise LifecycleError("review-source-unavailable", "Invalid source hash")
367
+ paths = _runtime_paths(root, ["ls-tree", "-r", "--name-only", "-z", source], roots)
368
+ if len(paths) > 4096:
369
+ raise LifecycleError("review-input-limit", "Runtime inventory cap")
370
+ blobs = _baseline_entries(root, source, sorted(paths))
371
+ files = manifest.get("planFiles")
372
+ if not isinstance(files, list) or any(not isinstance(p, str) for p in files):
373
+ raise LifecycleError("review-input-incomplete", "Plan inventory needed")
374
+ if len(files) > 4096:
375
+ raise LifecycleError("review-input-limit", "Plan inventory cap")
376
+ digests = {p: sha256_hex(_read_review_artifact(root, p)) for p in set(files) - review_output_paths(manifest)}
377
+ return make_review_subject(manifest, digests, {p: entry["sha256"] for p, entry in blobs.items()})
378
+
379
+
380
+ def _packet_output_preflight(
381
+ root: Path,
382
+ path: str,
383
+ suffix: str,
384
+ manifest: dict[str, Any],
385
+ ) -> None:
386
+ name = normalize_repo_path(path)
387
+ if name != path or not name.endswith(suffix):
388
+ raise LifecycleError("review-output-invalid", "Advisory suffix required")
389
+ forbidden = {".git", ".alk", ".claude", ".codex"}
390
+ if any(p.casefold() in forbidden for p in Path(name).parts):
391
+ raise LifecycleError("review-output-invalid", "Protected destination")
392
+ policy = manifest.get("orchestration", {})
393
+ declared = {value for value in policy.values() if isinstance(value, str)} if isinstance(policy, dict) else set()
394
+ if name in declared or (root / name).exists():
395
+ raise LifecycleError("review-output-invalid", "Destination reserved")
396
+
397
+
231
398
  def _verify_plan(args: argparse.Namespace) -> dict[str, Any]:
232
399
  if args.compact and not args.out:
233
400
  raise LifecycleError("plan-compact-output-required", "Compact display requires --out for the full receipt")
@@ -64,7 +64,7 @@ def create_reviewed_plan_lock(
64
64
  )
65
65
  # Reject malformed or drifting package bytes before creating the
66
66
  # no-replace authority artifact. The second check still detects drift.
67
- verify_plan_package_integrity(manifest, lock, repository_root=root)
67
+ verify_plan_package_integrity(manifest, lock, repository_root=root, require_current_review_source=True)
68
68
  lock_rel = f"{plan_root}/plan.lock.json"
69
69
  lock_path = root.joinpath(*PurePosixPath(lock_rel).parts)
70
70
  try:
@@ -12,6 +12,14 @@ _SMALL_CONTEXT_PROFILE = builtin_profile_path("small-context-profile.v1.json")
12
12
  def _add_plan_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
13
13
  plan = subparsers.add_parser("plan", help="plan commands")
14
14
  plan_sub = plan.add_subparsers(dest="plan_command", required=True)
15
+ plan_sub.add_parser("package-profiles", help="describe tier obligations without granting authority")
16
+ compact = plan_sub.add_parser("compact-compile", help="create a canonical DRAFT from bounded compact input")
17
+ compact.add_argument("--input", required=True)
18
+ compact.add_argument("--out", required=True)
19
+ compact.add_argument("--repository-root", default=".")
20
+ explain = plan_sub.add_parser("compact-explain", help="explain compact input without writing or executing")
21
+ explain.add_argument("--input", required=True)
22
+ explain.add_argument("--repository-root", default=".")
15
23
  prepare = plan_sub.add_parser("freeze-prepare", help="create a new review candidate; never a review or lock")
16
24
  prepare.add_argument("--manifest", required=True)
17
25
  prepare.add_argument("--out", required=True)
@@ -72,6 +80,13 @@ def _add_plan_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentPar
72
80
  delta.add_argument("--language-before", help="optional previous project domain language artifact")
73
81
  delta.add_argument("--language-after", help="optional current project domain language artifact")
74
82
  delta.add_argument("--out")
83
+ review_packet = plan_sub.add_parser("review-packet", help="select bounded review scope; never start a review")
84
+ review_packet.add_argument("--manifest", required=True)
85
+ review_packet.add_argument("--baseline")
86
+ review_packet.add_argument("--repository-root", default=".")
87
+ review_packet.add_argument("--max-bytes", type=int, default=98304)
88
+ review_packet.add_argument("--subject-out")
89
+ review_packet.add_argument("--out")
75
90
  delta_check = plan_sub.add_parser("delta-check", aliases=["delta-validate"])
76
91
  delta_check.add_argument("--delta", required=True)
77
92
  delta_check.add_argument("--out")