agent-lifecycle-kit 1.63.2__tar.gz → 1.64.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 (288) hide show
  1. {agent_lifecycle_kit-1.63.2/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-1.64.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/README.md +2 -2
  3. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/pyproject.toml +1 -1
  4. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/_version.py +1 -1
  5. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/session_store.py +2 -0
  6. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +7 -4
  7. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch_observability.py +68 -0
  8. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/parsers.py +19 -0
  9. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/context/__init__.py +18 -0
  10. agent_lifecycle_kit-1.64.0/src/agent_lifecycle/context/checkpoint_store.py +198 -0
  11. agent_lifecycle_kit-1.64.0/src/agent_lifecycle/context/checkpoints.py +378 -0
  12. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/compatibility.py +3 -0
  13. agent_lifecycle_kit-1.64.0/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +163 -0
  14. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/redaction.py +14 -1
  15. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/schemas.py +2 -0
  16. agent_lifecycle_kit-1.64.0/src/agent_lifecycle/host_protocol/context_events.py +122 -0
  17. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/__init__.py +6 -0
  18. agent_lifecycle_kit-1.64.0/src/agent_lifecycle/workflow/checkpoint_gate.py +196 -0
  19. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/operation_kernel.py +9 -0
  20. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/plan_adoption.py +2 -0
  21. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  22. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +5 -0
  23. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/LICENSE +0 -0
  24. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/NOTICE +0 -0
  25. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/README.md +0 -0
  26. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/manifest.json +0 -0
  27. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  28. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  29. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  30. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  31. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  32. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  33. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  34. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  35. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  36. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  37. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/setup.cfg +0 -0
  38. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/__init__.py +0 -0
  39. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/__main__.py +0 -0
  40. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  41. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  42. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  43. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  44. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  45. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
  46. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  47. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
  48. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  49. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  50. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  51. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
  52. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  53. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  54. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/implementation.py +0 -0
  55. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  56. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/package.py +0 -0
  57. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  58. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  59. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  60. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  61. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  62. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  63. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  64. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  65. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  66. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/changesets/git.py +0 -0
  67. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  68. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  69. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  70. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  71. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  72. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
  73. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
  74. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  75. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/followup.py +0 -0
  76. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
  77. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/main.py +0 -0
  78. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  79. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/policy.py +0 -0
  80. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  81. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/project.py +0 -0
  82. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/start.py +0 -0
  83. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/strategy.py +0 -0
  84. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  85. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  86. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  87. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  88. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  89. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  90. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/context/profiles.py +0 -0
  91. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/context/rendering.py +0 -0
  92. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  93. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  94. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
  95. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  96. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  97. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  98. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  99. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  100. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  101. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  102. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  103. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  104. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  105. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  106. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  107. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  108. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  109. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  110. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  111. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  112. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  113. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  114. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  115. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  116. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  117. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  118. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  119. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  120. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
  121. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  122. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  123. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  124. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  125. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  126. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  127. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  128. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  129. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  130. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  131. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  132. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  133. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  134. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  135. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  136. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  137. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
  138. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  139. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/followup/records.py +0 -0
  140. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  141. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  142. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  143. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/goal/records.py +0 -0
  144. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/goal/view.py +0 -0
  145. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  146. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  147. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  148. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  149. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
  150. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  151. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  152. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  153. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  154. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  155. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  156. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  157. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  158. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  159. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  160. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  161. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  162. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  163. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  164. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  165. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  166. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  167. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  168. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  169. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  170. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  171. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  172. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  173. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  174. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  175. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/planning.py +0 -0
  176. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  177. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  178. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  179. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  180. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  181. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  182. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  183. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  184. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  185. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  186. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  187. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
  188. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
  189. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  190. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  191. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  192. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  193. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  194. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  195. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
  196. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  197. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  198. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  199. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  200. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  201. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  202. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  203. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  204. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  205. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/completeness.py +0 -0
  206. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  207. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  208. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/templates.py +0 -0
  209. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  210. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/planning/validation.py +0 -0
  211. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  212. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  213. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/apply.py +0 -0
  214. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
  215. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  216. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  217. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
  218. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  219. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/project/__init__.py +0 -0
  220. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/project/guidance.py +0 -0
  221. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/project/merge.py +0 -0
  222. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/project/profile.py +0 -0
  223. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/py.typed +0 -0
  224. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  225. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  226. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  227. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  228. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
  229. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  230. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/quality/packs.py +0 -0
  231. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  232. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  233. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  234. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  235. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  236. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  237. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  238. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  239. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  240. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review/__init__.py +0 -0
  241. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review/validation.py +0 -0
  242. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  243. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  244. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
  245. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  246. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  247. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  248. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
  249. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  250. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  251. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/runner/attempt_snapshots.py +0 -0
  252. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/runner/core.py +0 -0
  253. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  254. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  255. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  256. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  257. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  258. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/specification/validation.py +0 -0
  259. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  260. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  261. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  262. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  263. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  264. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  265. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/events.py +0 -0
  266. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  267. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
  268. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  269. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
  270. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  271. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  272. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  273. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
  274. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  275. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/query.py +0 -0
  276. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  277. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
  278. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
  279. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  280. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  281. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  282. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/state.py +0 -0
  283. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
  284. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  285. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  286. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  287. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  288. {agent_lifecycle_kit-1.63.2 → agent_lifecycle_kit-1.64.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: 1.63.2
3
+ Version: 1.64.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
@@ -61,7 +61,7 @@ and start a task with:
61
61
  agent-lifecycle start --adapter <adapter-id> --file task.md
62
62
  ```
63
63
 
64
- The published [PyPI package](https://pypi.org/project/agent-lifecycle-kit/) supports Python 3.11-3.14; install it with `python -m pip install agent-lifecycle-kit==1.63.2`.
64
+ The published [PyPI package](https://pypi.org/project/agent-lifecycle-kit/) supports Python 3.11-3.14; install it with `python -m pip install agent-lifecycle-kit==1.64.0`.
65
65
  Use [Quickstart](docs/guides/quickstart.md) for the first task and [Commands by task](docs/guides/commands-by-task.md) for detailed operations.
66
66
  Continue with [task workflows](docs/guides/how-alk-works.md) and
67
67
  [project profile init](docs/reference/project-workflow-profile.md),
@@ -69,7 +69,7 @@ Continue with [task workflows](docs/guides/how-alk-works.md) and
69
69
  [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md). The [planning-only](docs/reference/planning-only-launch.md)
70
70
  and [qualified frozen-task](docs/reference/qualified-host-launch.md) guides define launch boundaries.
71
71
  See [System architecture](docs/architecture/system-architecture.md), [Project comparison](docs/reference/project-comparison.md),
72
- and [Документация на русском](docs/ru/README.md).
72
+ [context checkpoints](docs/reference/context-checkpoints.md), and [Документация на русском](docs/ru/README.md).
73
73
 
74
74
  ## What it gives you
75
75
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
@@ -39,7 +39,7 @@ and start a task with:
39
39
  agent-lifecycle start --adapter <adapter-id> --file task.md
40
40
  ```
41
41
 
42
- The published [PyPI package](https://pypi.org/project/agent-lifecycle-kit/) supports Python 3.11-3.14; install it with `python -m pip install agent-lifecycle-kit==1.63.2`.
42
+ The published [PyPI package](https://pypi.org/project/agent-lifecycle-kit/) supports Python 3.11-3.14; install it with `python -m pip install agent-lifecycle-kit==1.64.0`.
43
43
  Use [Quickstart](docs/guides/quickstart.md) for the first task and [Commands by task](docs/guides/commands-by-task.md) for detailed operations.
44
44
  Continue with [task workflows](docs/guides/how-alk-works.md) and
45
45
  [project profile init](docs/reference/project-workflow-profile.md),
@@ -47,7 +47,7 @@ Continue with [task workflows](docs/guides/how-alk-works.md) and
47
47
  [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md). The [planning-only](docs/reference/planning-only-launch.md)
48
48
  and [qualified frozen-task](docs/reference/qualified-host-launch.md) guides define launch boundaries.
49
49
  See [System architecture](docs/architecture/system-architecture.md), [Project comparison](docs/reference/project-comparison.md),
50
- and [Документация на русском](docs/ru/README.md).
50
+ [context checkpoints](docs/reference/context-checkpoints.md), and [Документация на русском](docs/ru/README.md).
51
51
 
52
52
  ## What it gives you
53
53
  - A finish-oriented lifecycle: plan, execute, review, and prove the result.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lifecycle-kit"
7
- version = "1.63.2"
7
+ version = "1.64.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__ = "1.63.2"
3
+ __version__ = "1.64.0"
@@ -32,6 +32,7 @@ def create_session(
32
32
  session_root: Path | None = None,
33
33
  state_identity: dict[str, Any] | None = None,
34
34
  managed_workflow_proof: dict[str, Any] | None = None,
35
+ context_checkpoint_policy: dict[str, Any] | None = None,
35
36
  ) -> dict[str, Any]:
36
37
  session_id = uuid.uuid4().hex
37
38
  session = {
@@ -46,6 +47,7 @@ def create_session(
46
47
  },
47
48
  "stateIdentity": state_identity,
48
49
  "managedWorkflowProof": managed_workflow_proof,
50
+ "contextCheckpointPolicy": context_checkpoint_policy,
49
51
  "secretValuesStored": False,
50
52
  "nativeConfigWritten": False,
51
53
  }
@@ -224,7 +224,7 @@ def _resume(*, adapter_id: str, session_id: str, session_root: Path | None) -> d
224
224
  requested_mode="auto",
225
225
  action="BLOCKED",
226
226
  input_summary=input_summary,
227
- delegate_summary=_resume_summary(receipt),
227
+ delegate_summary=_resume_summary(receipt, session=session),
228
228
  blockers=_blocker_summaries(receipt.get("blockers")),
229
229
  )
230
230
  return build_lifecycle_start_receipt(
@@ -233,7 +233,7 @@ def _resume(*, adapter_id: str, session_id: str, session_root: Path | None) -> d
233
233
  requested_mode="auto",
234
234
  action="RESUME",
235
235
  input_summary=input_summary,
236
- delegate_summary=_resume_summary(receipt),
236
+ delegate_summary=_resume_summary(receipt, session=session),
237
237
  lifecycle_coverage_claimed=status == "PASS" and bool(receipt.get("lifecycleCoverageClaimed")),
238
238
  )
239
239
 
@@ -997,8 +997,8 @@ def _task_summary(receipt: dict[str, Any]) -> dict[str, Any]:
997
997
  }
998
998
 
999
999
 
1000
- def _resume_summary(receipt: dict[str, Any]) -> dict[str, Any]:
1001
- return {
1000
+ def _resume_summary(receipt: dict[str, Any], *, session: dict[str, Any] | None = None) -> dict[str, Any]:
1001
+ summary = {
1002
1002
  "schemaVersion": receipt.get("schemaVersion"),
1003
1003
  "status": receipt.get("status"),
1004
1004
  "lineageStatus": receipt.get("lineageStatus"),
@@ -1006,6 +1006,9 @@ def _resume_summary(receipt: dict[str, Any]) -> dict[str, Any]:
1006
1006
  "lifecycleCoverageClaimed": bool(receipt.get("lifecycleCoverageClaimed")),
1007
1007
  "receiptDigest": receipt.get("receiptDigest"),
1008
1008
  }
1009
+ if session and isinstance(session.get("contextCheckpointPolicy"), dict):
1010
+ summary["contextCheckpointPolicy"] = session["contextCheckpointPolicy"]
1011
+ return summary
1009
1012
 
1010
1013
 
1011
1014
  def _claims_execution(receipt: dict[str, Any]) -> bool:
@@ -7,6 +7,8 @@ from pathlib import Path
7
7
  from typing import Any
8
8
 
9
9
  from agent_lifecycle.context import check_context, load_context_profile, render_context
10
+ from agent_lifecycle.context.checkpoint_store import restore_context_checkpoint, write_context_checkpoint
11
+ from agent_lifecycle.context.checkpoints import build_context_checkpoint
10
12
  from agent_lifecycle.context.external_memory import build_episode_retrieval_with_external_context, import_external_memory_context
11
13
  from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object, write_json_create
12
14
  from agent_lifecycle.goal import build_goal_progress_view, build_objective_snapshot, update_goal_record, validate_goal_record
@@ -176,9 +178,75 @@ def _dispatch_context(args: argparse.Namespace) -> dict[str, Any]:
176
178
  if args.out:
177
179
  write_json_create(Path(args.out), payload)
178
180
  return payload
181
+ if args.context_command == "checkpoint":
182
+ return _dispatch_context_checkpoint(args)
183
+ if args.context_command == "restore":
184
+ state = read_json_object(Path(args.state), label="workflow state")
185
+ payload = restore_context_checkpoint(
186
+ Path(args.checkpoint),
187
+ state=state,
188
+ session_id=args.session,
189
+ target_tokens=args.target_tokens,
190
+ )
191
+ if args.out:
192
+ write_json_create(Path(args.out), payload)
193
+ if payload.get("status") == "BLOCKED":
194
+ raise LifecycleError(
195
+ "context-restore-blocked",
196
+ "context checkpoint cannot be restored against the current workflow state",
197
+ {"continuation": payload},
198
+ )
199
+ return payload
179
200
  raise LifecycleError("command-not-implemented", "context command is not implemented")
180
201
 
181
202
 
203
+ def _dispatch_context_checkpoint(args: argparse.Namespace) -> dict[str, Any]:
204
+ state = read_json_object(Path(args.state), label="workflow state")
205
+ manifest = read_json_object(Path(args.plan), label="context checkpoint plan")
206
+ input_payload = read_json_object(Path(args.input), label="context checkpoint input")
207
+ reason = str(args.reason)
208
+ mode = args.capture_mode
209
+ reason_mode = {
210
+ "native-hook": "NATIVE_HOOK",
211
+ "milestone": "MILESTONE",
212
+ "agent-requested": "AGENT_REQUESTED",
213
+ "unavailable": "UNAVAILABLE",
214
+ }.get(reason.lower().replace("_", "-"))
215
+ if mode is None and reason_mode:
216
+ mode = reason_mode
217
+ if mode is None:
218
+ mode = "AGENT_REQUESTED"
219
+ target = Path(args.out) if args.out else Path(".alk/context/checkpoints") / "checkpoint.json"
220
+ root = target.parent
221
+ _require_checkpoint_output_root(root)
222
+ summary = dict(input_payload)
223
+ capture_evidence = summary.pop("nativeHookEvidence", None) if mode == "NATIVE_HOOK" else None
224
+ checkpoint = build_context_checkpoint(
225
+ session_id=args.session,
226
+ run_id=str(state.get("runId", "run")),
227
+ adapter_id=str(args.adapter or input_payload.get("adapterId") or state.get("adapterId") or "unknown-adapter"),
228
+ package_id=str(manifest.get("package", {}).get("id") or state.get("packageId") or "unknown-package"),
229
+ plan_revision=int(manifest.get("planRevision", state.get("planRevision", 1))),
230
+ plan_digest=canonical_digest(manifest),
231
+ state_revision=int(state.get("stateRevision", 1)),
232
+ source_revision=str(state.get("sourceRevision", "unknown-source")),
233
+ capture_mode=mode,
234
+ reason=reason,
235
+ summary=summary,
236
+ capture_evidence=capture_evidence,
237
+ checkpoint_id=target.stem if args.out else None,
238
+ created_at=str(state.get("updatedAt") or "1970-01-01T00:00:00Z"),
239
+ )
240
+ stored = write_context_checkpoint(checkpoint, root=root)
241
+ return {**checkpoint, "storage": stored}
242
+
243
+
244
+ def _require_checkpoint_output_root(root: Path) -> None:
245
+ resolved = root.resolve()
246
+ if ".alk" not in resolved.parts or not resolved.name == "checkpoints":
247
+ raise LifecycleError("context-checkpoint-output-root-invalid", "checkpoint output must remain in a .alk/context/checkpoints directory")
248
+
249
+
182
250
  def _dispatch_goal(args: argparse.Namespace) -> dict[str, Any] | str:
183
251
  record = read_json_object(Path(args.record), label="goal record")
184
252
  if args.goal_command == "check":
@@ -610,6 +610,25 @@ def _add_context_parser(subparsers: argparse._SubParsersAction[argparse.Argument
610
610
  episode_retrieve.add_argument("--max-external-context-hints", type=int, default=4)
611
611
  episode_retrieve.add_argument("--target-tokens", type=int, default=2048)
612
612
  episode_retrieve.add_argument("--out")
613
+ checkpoint = context_sub.add_parser("checkpoint", help="write a bounded context checkpoint")
614
+ checkpoint.add_argument("--session", required=True)
615
+ checkpoint.add_argument("--state", required=True)
616
+ checkpoint.add_argument("--plan", required=True)
617
+ checkpoint.add_argument("--input", required=True)
618
+ checkpoint.add_argument("--reason", required=True)
619
+ checkpoint.add_argument(
620
+ "--capture-mode",
621
+ choices=["NATIVE_HOOK", "MILESTONE", "AGENT_REQUESTED", "UNAVAILABLE"],
622
+ default=None,
623
+ )
624
+ checkpoint.add_argument("--adapter")
625
+ checkpoint.add_argument("--out")
626
+ restore = context_sub.add_parser("restore", help="restore a bounded context continuation")
627
+ restore.add_argument("--checkpoint", required=True)
628
+ restore.add_argument("--state", required=True)
629
+ restore.add_argument("--session")
630
+ restore.add_argument("--target-tokens", type=int, default=2048)
631
+ restore.add_argument("--out")
613
632
 
614
633
 
615
634
  def _add_goal_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
@@ -2,13 +2,31 @@
2
2
 
3
3
  from agent_lifecycle.context.profiles import load_context_profile, validate_context_profile
4
4
  from agent_lifecycle.context.rendering import check_context, render_context
5
+ from agent_lifecycle.context.checkpoints import (
6
+ build_context_checkpoint,
7
+ require_context_checkpoint_pass,
8
+ validate_context_checkpoint,
9
+ )
10
+ from agent_lifecycle.context.checkpoint_store import (
11
+ list_context_checkpoints,
12
+ load_context_checkpoint,
13
+ restore_context_checkpoint,
14
+ write_context_checkpoint,
15
+ )
5
16
 
6
17
  __all__ = [
7
18
  "build_episode_context",
8
19
  "check_context",
20
+ "build_context_checkpoint",
9
21
  "load_context_profile",
22
+ "list_context_checkpoints",
23
+ "load_context_checkpoint",
10
24
  "render_context",
25
+ "restore_context_checkpoint",
26
+ "require_context_checkpoint_pass",
27
+ "validate_context_checkpoint",
11
28
  "validate_context_profile",
29
+ "write_context_checkpoint",
12
30
  ]
13
31
 
14
32
 
@@ -0,0 +1,198 @@
1
+ """Contained local storage and bounded restoration for context checkpoints."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from pathlib import Path
7
+ from typing import Any
8
+
9
+ from agent_lifecycle.contracts import LifecycleError, canonical_bytes, canonical_digest, read_json_object
10
+ from agent_lifecycle.contracts.redaction import redact_value
11
+ from agent_lifecycle.context.checkpoints import (
12
+ CHECKPOINT_SCHEMA,
13
+ DEFAULT_MAX_CHECKPOINT_BYTES,
14
+ DEFAULT_TARGET_TOKENS,
15
+ require_context_checkpoint_pass,
16
+ validate_context_checkpoint,
17
+ )
18
+
19
+ DEFAULT_CHECKPOINT_ROOT = Path(".alk/context/checkpoints")
20
+ MAX_CHECKPOINTS_PER_RUN = 64
21
+
22
+
23
+ def checkpoint_path(checkpoint_id: str, *, root: Path | None = None) -> Path:
24
+ """Return a path contained by the configured checkpoint directory."""
25
+
26
+ if not isinstance(checkpoint_id, str) or not checkpoint_id or checkpoint_id in {".", ".."}:
27
+ raise LifecycleError("context-checkpoint-id-invalid", "checkpoint id is required")
28
+ if "/" in checkpoint_id or "\\" in checkpoint_id or "\x00" in checkpoint_id:
29
+ raise LifecycleError("context-checkpoint-id-invalid", "checkpoint id must be a single path component")
30
+ directory = root or DEFAULT_CHECKPOINT_ROOT
31
+ path = directory / f"{checkpoint_id}.json"
32
+ if not path.resolve().is_relative_to(directory.resolve()):
33
+ raise LifecycleError("context-checkpoint-path-escape", "checkpoint path escapes the checkpoint root")
34
+ return path
35
+
36
+
37
+ def write_context_checkpoint(
38
+ checkpoint: dict[str, Any],
39
+ *,
40
+ root: Path | None = None,
41
+ max_checkpoints_per_run: int = MAX_CHECKPOINTS_PER_RUN,
42
+ ) -> dict[str, Any]:
43
+ """Write a checkpoint once and retain only the latest bounded set per run."""
44
+
45
+ validation = validate_context_checkpoint(checkpoint)
46
+ require_context_checkpoint_pass(validation)
47
+ path = checkpoint_path(str(checkpoint["checkpointId"]), root=root)
48
+ path.parent.mkdir(parents=True, exist_ok=True)
49
+ data = canonical_bytes(checkpoint) + b"\n"
50
+ created = not path.exists()
51
+ if not created:
52
+ existing = read_json_object(path, label="existing context checkpoint")
53
+ if canonical_digest(existing) != canonical_digest(checkpoint):
54
+ raise LifecycleError("context-checkpoint-conflict", "checkpoint id already contains a different artifact")
55
+ else:
56
+ _write_atomic(path, data)
57
+ _retain_latest(path.parent, run_id=str(checkpoint["runId"]), limit=max_checkpoints_per_run)
58
+ return {
59
+ "status": "PASS",
60
+ "path": path.as_posix(),
61
+ "checkpointId": checkpoint["checkpointId"],
62
+ "checkpointDigest": checkpoint["checkpointDigest"],
63
+ "created": created,
64
+ "retentionPolicy": "retain-latest-with-explicit-delete",
65
+ "maxCheckpointsPerRun": max_checkpoints_per_run,
66
+ "productionPromotionClaimed": False,
67
+ }
68
+
69
+
70
+ def load_context_checkpoint(checkpoint_id: str, *, root: Path | None = None) -> dict[str, Any]:
71
+ return read_json_object(checkpoint_path(checkpoint_id, root=root), label="context checkpoint")
72
+
73
+
74
+ def list_context_checkpoints(*, root: Path | None = None, run_id: str | None = None) -> list[dict[str, Any]]:
75
+ directory = (root or DEFAULT_CHECKPOINT_ROOT).resolve()
76
+ if not directory.exists():
77
+ return []
78
+ if not directory.is_dir():
79
+ raise LifecycleError("context-checkpoint-root-invalid", "checkpoint root is not a directory")
80
+ result: list[dict[str, Any]] = []
81
+ for path in sorted(directory.glob("*.json")):
82
+ if not path.resolve().is_relative_to(directory):
83
+ raise LifecycleError("context-checkpoint-path-escape", "checkpoint listing escaped the checkpoint root")
84
+ value = read_json_object(path, label="context checkpoint")
85
+ if run_id is None or value.get("runId") == run_id:
86
+ result.append(value)
87
+ return sorted(result, key=lambda item: (str(item.get("createdAt", "")), str(item.get("checkpointId", ""))))
88
+
89
+
90
+ def restore_context_checkpoint(
91
+ checkpoint_path_value: Path,
92
+ *,
93
+ state: dict[str, Any],
94
+ session_id: str | None = None,
95
+ target_tokens: int = DEFAULT_TARGET_TOKENS,
96
+ max_checkpoint_bytes: int = DEFAULT_MAX_CHECKPOINT_BYTES,
97
+ ) -> dict[str, Any]:
98
+ """Return a bounded continuation packet after checking current lineage."""
99
+
100
+ checkpoint = read_json_object(checkpoint_path_value, label="context checkpoint")
101
+ expected = _lineage_from_state(state, session_id=session_id)
102
+ validation = validate_context_checkpoint(
103
+ checkpoint,
104
+ expected_lineage=expected,
105
+ max_checkpoint_bytes=max_checkpoint_bytes,
106
+ target_tokens=target_tokens,
107
+ )
108
+ if validation["status"] == "FAIL":
109
+ return {
110
+ "schemaVersion": "agent-context-continuation.v1",
111
+ "status": "BLOCKED",
112
+ "checkpointId": checkpoint.get("checkpointId"),
113
+ "validation": validation,
114
+ "implementationAuthorized": False,
115
+ "proofAuthority": "none",
116
+ "productionPromotionClaimed": False,
117
+ }
118
+ summary, redaction_applied = redact_value(checkpoint["summary"])
119
+ if redaction_applied:
120
+ return {
121
+ "schemaVersion": "agent-context-continuation.v1",
122
+ "status": "BLOCKED",
123
+ "checkpointId": checkpoint.get("checkpointId"),
124
+ "validation": {
125
+ **validation,
126
+ "status": "FAIL",
127
+ "blockers": [{"code": "context-restore-unredacted-sensitive-input"}],
128
+ },
129
+ "implementationAuthorized": False,
130
+ "proofAuthority": "none",
131
+ "productionPromotionClaimed": False,
132
+ }
133
+ continuation = {
134
+ "schemaVersion": "agent-context-continuation.v1",
135
+ "status": "PASS",
136
+ "checkpointId": checkpoint["checkpointId"],
137
+ "checkpointDigest": checkpoint["checkpointDigest"],
138
+ "lineage": {
139
+ key: checkpoint[key]
140
+ for key in ("sessionId", "runId", "adapterId", "packageId", "planRevision", "planDigest", "stateRevision", "sourceRevision")
141
+ },
142
+ "captureMode": checkpoint["captureMode"],
143
+ "summary": summary,
144
+ "referencedArtifacts": checkpoint["referencedArtifacts"],
145
+ "implementationAuthorized": False,
146
+ "proofAuthority": "none",
147
+ "contextLimits": {"targetTokens": target_tokens, "maxBytes": max_checkpoint_bytes},
148
+ "validationDigest": validation["validationDigest"],
149
+ "productionPromotionClaimed": False,
150
+ }
151
+ continuation["continuationDigest"] = canonical_digest(continuation)
152
+ if (len(canonical_bytes(continuation)) + 3) // 4 > target_tokens * 2:
153
+ return {
154
+ "schemaVersion": "agent-context-continuation.v1",
155
+ "status": "BLOCKED",
156
+ "checkpointId": checkpoint.get("checkpointId"),
157
+ "validation": {
158
+ **validation,
159
+ "status": "FAIL",
160
+ "blockers": [{"code": "context-restore-token-limit"}],
161
+ },
162
+ "implementationAuthorized": False,
163
+ "proofAuthority": "none",
164
+ "productionPromotionClaimed": False,
165
+ }
166
+ return continuation
167
+
168
+
169
+ def _lineage_from_state(state: dict[str, Any], *, session_id: str | None) -> dict[str, Any]:
170
+ fields = ("runId", "packageId", "planRevision", "planDigest", "stateRevision", "sourceRevision")
171
+ expected = {key: state.get(key) for key in fields if key in state}
172
+ if session_id is not None:
173
+ expected["sessionId"] = session_id
174
+ return expected
175
+
176
+
177
+ def _retain_latest(directory: Path, *, run_id: str, limit: int) -> None:
178
+ if not isinstance(limit, int) or limit < 1 or limit > MAX_CHECKPOINTS_PER_RUN:
179
+ raise LifecycleError("context-checkpoint-retention-invalid", "retention limit must be between 1 and 64")
180
+ items = list_context_checkpoints(root=directory, run_id=run_id)
181
+ for item in items[:-limit]:
182
+ path = checkpoint_path(str(item["checkpointId"]), root=directory)
183
+ if path.resolve().is_relative_to(directory.resolve()):
184
+ path.unlink()
185
+
186
+
187
+ def _write_atomic(path: Path, data: bytes) -> None:
188
+ temporary = path.with_name(f".{path.name}.{os.getpid()}.tmp")
189
+ flags = os.O_WRONLY | os.O_CREAT | os.O_EXCL
190
+ try:
191
+ with os.fdopen(os.open(temporary, flags, 0o644), "wb") as handle:
192
+ handle.write(data)
193
+ handle.flush()
194
+ os.fsync(handle.fileno())
195
+ os.replace(temporary, path)
196
+ finally:
197
+ if temporary.exists():
198
+ temporary.unlink()