agent-lifecycle-kit 2.15.0__tar.gz → 2.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. {agent_lifecycle_kit-2.15.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.16.0}/PKG-INFO +3 -3
  2. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/README.md +2 -2
  3. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/pyproject.toml +2 -1
  4. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/_version.py +1 -1
  5. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/__init__.py +17 -0
  6. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/closing_resource_admission.py +420 -0
  7. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/closing_resource_policy.py +791 -0
  8. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/closing_resource_recovery.py +893 -0
  9. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/closing_resources.py +1007 -0
  10. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/contracts.py +841 -0
  11. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/declared_ledger.py +768 -0
  12. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/declared_ledger_legacy.py +494 -0
  13. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/declared_ledger_records.py +408 -0
  14. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/host_bridge.py +1006 -0
  15. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/input_fit.py +371 -0
  16. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/journal.py +760 -0
  17. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/normalization.py +803 -0
  18. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/opening_balances.py +779 -0
  19. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/profile_schema.py +258 -0
  20. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/source_usage_context.py +589 -0
  21. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/support_profiles.py +469 -0
  22. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/workflow_authority_store.py +713 -0
  23. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/workflow_state_store.py +867 -0
  24. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/accounting/workflow_store.py +790 -0
  25. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/attempt_authority.py +457 -0
  26. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/bootstrap_r11.py +656 -0
  27. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/codex_exact_prompt.py +674 -0
  28. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/codex_input_diagnostics.py +674 -0
  29. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/codex_prompt_preparation.py +1192 -0
  30. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/codex_source_exposure.py +923 -0
  31. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/codex_source_subject.py +1096 -0
  32. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/external_check.py +1 -2
  33. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +16 -5
  34. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/immutable_input.py +230 -0
  35. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/input_lifecycle.py +621 -0
  36. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +243 -6
  37. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/launch_preflight.py +1043 -0
  38. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/limited_native_evidence.py +588 -0
  39. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/managed_process.py +333 -0
  40. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/ordinary_audit.py +1053 -0
  41. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +64 -9
  42. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/private_input.py +145 -0
  43. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/process.py +1169 -0
  44. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_contracts.py +1141 -0
  45. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_history.py +1053 -0
  46. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_inputs.py +898 -0
  47. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_preparation_records.py +1013 -0
  48. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_roles.py +1012 -0
  49. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_shards.py +956 -0
  50. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_support.py +1127 -0
  51. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/source_review_transcript.py +1153 -0
  52. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/start_input.py +120 -0
  53. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +12 -1
  54. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +332 -154
  55. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/adapter_sessions/windows_pipe.py +187 -0
  56. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +16 -2
  57. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/implementation.py +137 -42
  58. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/package.py +2 -4
  59. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_contracts.py +1 -3
  60. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +29 -3
  61. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/cli/host_launch.py +55 -0
  62. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +30 -0
  63. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/strategy.py +17 -2
  64. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +1 -3
  65. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/authority_io.py +203 -28
  66. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/bounded_json.py +157 -0
  67. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/closing_resource_schemas.py +555 -0
  68. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/closing_window_schemas.py +489 -0
  69. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/deadline_schemas.py +230 -0
  70. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/deadlines.py +586 -0
  71. {agent_lifecycle_kit-2.15.0/src/agent_lifecycle/neutrality → agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts}/ed25519.py +3 -0
  72. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/evidence_receipt_schemas.py +778 -0
  73. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/external_job_schemas.py +181 -71
  74. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/immutable_input_schemas.py +479 -0
  75. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +7 -5
  76. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/model_classes.py +16 -0
  77. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +11 -9
  78. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +1 -0
  79. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/private_storage.py +466 -0
  80. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/redaction.py +414 -0
  81. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +19 -1
  82. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/reviewer_identity_schemas.py +245 -0
  83. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/schemas.py +22 -10
  84. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/scoped_usage_schemas.py +880 -0
  85. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/windows_security.py +222 -0
  86. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/workflow_authority.py +228 -0
  87. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/workflow_authority_schemas.py +804 -0
  88. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/contracts/workflow_state_schemas.py +1011 -0
  89. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +1 -1
  90. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/evidence_index/external_context.py +51 -15
  91. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/event_capture.py +5 -12
  92. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/external_jobs.py +3 -13
  93. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +1 -3
  94. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/model_routing/profiles.py +27 -17
  95. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/model_routing/receipts.py +40 -16
  96. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/neutrality/ed25519.py +55 -0
  97. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/git_objects.py +2 -2
  98. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/manifest_contract.py +45 -0
  99. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/execution_strategy.py +7 -0
  100. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/risk_execution.py +61 -10
  101. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/merge.py +1 -3
  102. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/cross_check.py +67 -17
  103. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/external_checks.py +1 -3
  104. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/review/provenance.py +189 -0
  105. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review/validation.py +24 -0
  106. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/contracts.py +241 -225
  107. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/review_mesh/results.py +371 -0
  108. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/review_mesh/validation_helpers.py +246 -0
  109. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/audit_evidence.py +420 -0
  110. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/closing_policy.py +64 -0
  111. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/closing_window.py +381 -0
  112. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/deadline_guards.py +106 -0
  113. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/finalization.py +43 -106
  114. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/immutable_input.py +420 -0
  115. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +187 -0
  116. agent_lifecycle_kit-2.16.0/src/agent_lifecycle/workflow/limited_usage.py +912 -0
  117. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/model_usage.py +32 -3
  118. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/plan_adoption.py +247 -38
  119. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/reviews.py +54 -14
  120. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +66 -3
  121. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/task_start.py +65 -1
  122. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/task_transitions.py +93 -9
  123. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
  124. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +65 -0
  125. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -455
  126. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/adapter_sessions/process.py +0 -141
  127. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/adapter_sessions/start_input.py +0 -21
  128. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/cli/host_launch.py +0 -22
  129. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/redaction.py +0 -250
  130. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -226
  131. agent_lifecycle_kit-2.15.0/src/agent_lifecycle/review_mesh/results.py +0 -193
  132. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/LICENSE +0 -0
  133. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/NOTICE +0 -0
  134. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/README.md +0 -0
  135. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/manifest.json +0 -0
  136. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
  137. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
  138. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
  139. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
  140. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
  141. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
  142. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
  143. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
  144. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
  145. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
  146. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/setup.cfg +0 -0
  147. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/__init__.py +0 -0
  148. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/__main__.py +0 -0
  149. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
  150. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
  151. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
  152. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
  153. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
  154. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
  155. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
  156. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
  157. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
  158. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
  159. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
  160. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
  161. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
  162. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
  163. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
  164. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
  165. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
  166. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
  167. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/__init__.py +0 -0
  168. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
  169. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/delta.py +0 -0
  170. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
  171. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
  172. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/ownership.py +0 -0
  173. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
  174. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
  175. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
  176. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
  177. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
  178. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
  179. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
  180. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
  181. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
  182. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
  183. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
  184. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
  185. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
  186. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
  187. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/changesets/git.py +0 -0
  188. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
  189. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/__init__.py +0 -0
  190. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/adapter.py +0 -0
  191. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
  192. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
  193. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
  194. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
  195. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
  196. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
  197. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
  198. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
  199. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
  200. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/errors.py +0 -0
  201. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/followup.py +0 -0
  202. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/main.py +0 -0
  203. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
  204. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
  205. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/parsers.py +0 -0
  206. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
  207. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
  208. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/policy.py +0 -0
  209. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
  210. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/project.py +0 -0
  211. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/research.py +0 -0
  212. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/start.py +0 -0
  213. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/workflow_task_parsers.py +0 -0
  214. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/cli/worktree.py +0 -0
  215. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
  216. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
  217. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
  218. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
  219. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
  220. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/__init__.py +0 -0
  221. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
  222. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
  223. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
  224. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/external_memory.py +0 -0
  225. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/profiles.py +0 -0
  226. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/rendering.py +0 -0
  227. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
  228. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
  229. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
  230. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
  231. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
  232. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
  233. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
  234. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
  235. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/authority_text.py +0 -0
  236. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
  237. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
  238. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
  239. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
  240. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
  241. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
  242. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
  243. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
  244. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
  245. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
  246. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/errors.py +0 -0
  247. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
  248. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
  249. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
  250. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
  251. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
  252. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
  253. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
  254. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
  255. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
  256. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
  257. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
  258. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
  259. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
  260. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
  261. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
  262. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
  263. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
  264. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/paths.py +0 -0
  265. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
  266. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
  267. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
  268. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
  269. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
  270. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
  271. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
  272. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
  273. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
  274. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
  275. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
  276. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
  277. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
  278. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
  279. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
  280. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
  281. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
  282. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
  283. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
  284. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
  285. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
  286. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
  287. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
  288. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
  289. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
  290. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
  291. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
  292. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
  293. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
  294. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
  295. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
  296. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
  297. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
  298. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
  299. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
  300. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
  301. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
  302. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
  303. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/validation.py +0 -0
  304. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
  305. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
  306. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
  307. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
  308. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
  309. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
  310. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
  311. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/__init__.py +0 -0
  312. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
  313. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
  314. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
  315. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
  316. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
  317. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
  318. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
  319. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
  320. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
  321. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
  322. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
  323. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
  324. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
  325. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
  326. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
  327. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
  328. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/followup/__init__.py +0 -0
  329. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/followup/records.py +0 -0
  330. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
  331. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/freeze/locks.py +0 -0
  332. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
  333. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/goal/__init__.py +0 -0
  334. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/goal/records.py +0 -0
  335. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/goal/view.py +0 -0
  336. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
  337. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
  338. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
  339. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
  340. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
  341. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
  342. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
  343. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
  344. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
  345. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
  346. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
  347. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
  348. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
  349. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
  350. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
  351. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
  352. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
  353. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
  354. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
  355. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
  356. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
  357. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
  358. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
  359. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
  360. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
  361. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
  362. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
  363. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
  364. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/__init__.py +0 -0
  365. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
  366. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
  367. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
  368. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
  369. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
  370. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
  371. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
  372. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
  373. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
  374. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/planning.py +0 -0
  375. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
  376. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
  377. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
  378. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
  379. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
  380. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
  381. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
  382. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
  383. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/costs.py +0 -0
  384. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
  385. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
  386. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
  387. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
  388. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
  389. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
  390. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/metrics/workflow_economics.py +0 -0
  391. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/migration/__init__.py +0 -0
  392. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
  393. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
  394. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
  395. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
  396. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
  397. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
  398. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
  399. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
  400. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
  401. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
  402. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
  403. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
  404. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
  405. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
  406. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
  407. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
  408. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/__init__.py +0 -0
  409. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
  410. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/completeness.py +0 -0
  411. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/continuity.py +0 -0
  412. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/deltas.py +0 -0
  413. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
  414. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/templates.py +0 -0
  415. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/tiering.py +0 -0
  416. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/traceability.py +0 -0
  417. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/validation.py +0 -0
  418. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/planning/verification.py +0 -0
  419. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/__init__.py +0 -0
  420. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
  421. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/apply.py +0 -0
  422. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/proposals.py +0 -0
  423. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
  424. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
  425. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
  426. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/__init__.py +0 -0
  427. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/domain_language.py +0 -0
  428. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/guidance.py +0 -0
  429. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/presets.py +0 -0
  430. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/principles.py +0 -0
  431. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/project/profile.py +0 -0
  432. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/py.typed +0 -0
  433. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/__init__.py +0 -0
  434. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
  435. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
  436. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
  437. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
  438. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
  439. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/packs.py +0 -0
  440. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
  441. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
  442. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
  443. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/attention.py +0 -0
  444. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
  445. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
  446. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
  447. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
  448. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
  449. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
  450. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
  451. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
  452. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
  453. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
  454. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/research/__init__.py +0 -0
  455. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/research/evidence.py +0 -0
  456. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/research/provenance.py +0 -0
  457. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/research/validation.py +0 -0
  458. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/resources.py +0 -0
  459. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review/__init__.py +0 -0
  460. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
  461. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
  462. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
  463. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
  464. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
  465. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
  466. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
  467. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/runner/__init__.py +0 -0
  468. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/runner/core.py +0 -0
  469. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
  470. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/specification/__init__.py +0 -0
  471. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
  472. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
  473. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
  474. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/specification/validation.py +0 -0
  475. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
  476. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
  477. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
  478. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
  479. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
  480. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
  481. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
  482. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
  483. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
  484. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
  485. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/controller.py +0 -0
  486. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/events.py +0 -0
  487. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
  488. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/gates.py +0 -0
  489. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
  490. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/leases.py +0 -0
  491. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
  492. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
  493. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
  494. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
  495. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/query.py +0 -0
  496. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
  497. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/run.py +0 -0
  498. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
  499. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
  500. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
  501. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
  502. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/state.py +0 -0
  503. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
  504. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
  505. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
  506. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
  507. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
  508. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
  509. {agent_lifecycle_kit-2.15.0 → agent_lifecycle_kit-2.16.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.15.0
3
+ Version: 2.16.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).
44
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.16 adds cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
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.15.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
46
+ It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.16.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
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).
22
+ Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.16 adds cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
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.15.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
24
+ It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.16.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
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.15.0"
7
+ version = "2.16.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"
@@ -44,6 +44,7 @@ quality = [
44
44
  "ruff==0.16.5",
45
45
  "mypy==2.3.1",
46
46
  "coverage==7.15.4",
47
+ "jsonschema==4.26.0",
47
48
  ]
48
49
 
49
50
  [project.scripts]
@@ -1,3 +1,3 @@
1
1
  """Package version."""
2
2
 
3
- __version__ = "2.15.0"
3
+ __version__ = "2.16.0"
@@ -0,0 +1,17 @@
1
+ """Internal accounting journal primitives; no host dispatch or usage attestation."""
2
+
3
+ from .contracts import CloseoutLineage as CloseoutLineage
4
+ from .contracts import CounterMembership as CounterMembership
5
+ from .contracts import CoverageAtom as CoverageAtom
6
+ from .contracts import HistoricalCharge as HistoricalCharge
7
+ from .contracts import ImportAmendment as ImportAmendment
8
+ from .contracts import OpeningImport as OpeningImport
9
+ from .contracts import PendingImport as PendingImport
10
+ from .contracts import SourceBaseline as SourceBaseline
11
+ from .contracts import SourceProfile as SourceProfile
12
+ from .contracts import UsageObservation as UsageObservation
13
+ from .contracts import UsageOutcome as UsageOutcome
14
+ from .journal import Journal, JournalUnavailable, RevisionConflict
15
+ from .workflow_state_store import WorkflowStore
16
+
17
+ __all__ = ["Journal", "JournalUnavailable", "RevisionConflict", "WorkflowStore"]
@@ -0,0 +1,420 @@
1
+ """Closed-run admission and retained financial evidence for the journal."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import copy
6
+ import json
7
+ from dataclasses import asdict
8
+ from datetime import timedelta
9
+ from typing import Any
10
+ from typing import cast as _validated_cast
11
+
12
+ from .contracts import (
13
+ ROLES,
14
+ ClosureOutcome,
15
+ RunClosure,
16
+ _JournalStoragePort,
17
+ canonical,
18
+ digest,
19
+ identity,
20
+ uint,
21
+ utc_instant,
22
+ )
23
+ from .workflow_store import RETENTION_TABLES, JournalUnavailable, RevisionConflict, _BindingConflict
24
+
25
+
26
+ class ClosureAdmissionMixin(_JournalStoragePort):
27
+ @property
28
+ def journal_identity(self) -> str:
29
+ return self._db.execute("SELECT journal_id FROM retention_metadata WHERE singleton=1").fetchone()[0]
30
+
31
+ def _retained(self, table: str, key: str) -> dict | None:
32
+ if table not in RETENTION_TABLES:
33
+ raise ValueError("Unknown retention table")
34
+ row = self._db.execute(f"SELECT * FROM {table} WHERE key=?", (key,)).fetchone()
35
+ if row is None:
36
+ return None
37
+ try:
38
+ value = json.loads(row["payload"])
39
+ if digest(value) != row["digest"] or canonical(value) != row["payload"]:
40
+ raise ValueError("Retained digest mismatch")
41
+ return value
42
+ except (ValueError, TypeError, RecursionError) as exc:
43
+ raise JournalUnavailable("Invalid retained financial record") from exc
44
+
45
+ def _retain(self, table: str, key: str, scope: str, owner: str, payload: dict) -> None:
46
+ old = self._retained(table, key)
47
+ if old is not None:
48
+ row = self._db.execute(f"SELECT scope,owner FROM {table} WHERE key=?", (key,)).fetchone()
49
+ if canonical(old) != canonical(payload) or tuple(row) != (scope, owner):
50
+ raise JournalUnavailable("Retained immutable binding conflict")
51
+ return
52
+ self._db.execute(
53
+ f"INSERT INTO {table} VALUES(?,?,?,?,?)", (key, scope, owner, digest(payload), canonical(payload))
54
+ )
55
+
56
+ def _closed_scope(self, scope: str):
57
+ return self._db.execute("SELECT * FROM closed_scopes WHERE scope=?", (scope,)).fetchone()
58
+
59
+ def closed_run(self, run_id: str) -> dict | None:
60
+ identity(run_id)
61
+ value = self._retained("run_closures", run_id)
62
+ if value is None:
63
+ return None
64
+ record = value["closure"]
65
+ if record["run_id"] != run_id or digest(value["summary"]) != value["summary_digest"]:
66
+ raise JournalUnavailable("Closed run binding mismatch")
67
+ expected = {s: r + 1 for s, r in record["scope_revisions"]}
68
+ actual = {r["scope"]: r for r in self._db.execute("SELECT * FROM closed_scopes WHERE run_id=?", (run_id,))}
69
+ if set(actual) != set(expected) or any(
70
+ actual[s]["revision"] != revision
71
+ or actual[s]["closure_id"] != record["closure_id"]
72
+ or actual[s]["summary_digest"] != value["summary_digest"]
73
+ for s, revision in expected.items()
74
+ ):
75
+ raise JournalUnavailable("Closed scope registry mismatch")
76
+ return value
77
+
78
+ def close_run(self, closure: RunClosure, now_utc: str) -> ClosureOutcome:
79
+ closure.__post_init__()
80
+ now = utc_instant(now_utc)
81
+ closed_at = utc_instant(closure.closed_at_utc)
82
+ if closed_at > now:
83
+ raise JournalUnavailable("Closure cannot precede final accounting or be in the future")
84
+ data = json.loads(canonical(asdict(closure)))
85
+ with self._transaction():
86
+ prior = self.closed_run(closure.run_id)
87
+ if prior is not None:
88
+ if prior["closure"] != data:
89
+ raise JournalUnavailable("Run closure identity/content changed")
90
+ return self._closure_outcome(prior, "ALREADY_CLOSED")
91
+ inventory = {
92
+ r["scope"]: r
93
+ for r in self._db.execute("SELECT * FROM scope_state")
94
+ if json.loads(r["data"])["scope"]["run_id"] == closure.run_id
95
+ }
96
+ if set(inventory) != {s for s, _ in closure.scope_revisions}:
97
+ raise JournalUnavailable("Full-run scope inventory mismatch")
98
+ summaries: dict[str, dict[str, Any]] = {}
99
+ states = {}
100
+ for scope, expected_revision in closure.scope_revisions:
101
+ state, revision, _, _ = self._live_facts(scope)
102
+ if revision != expected_revision or revision != inventory[scope]["revision"]:
103
+ raise RevisionConflict("Stale closure revision")
104
+ if canonical(state) != canonical(json.loads(inventory[scope]["data"])):
105
+ raise JournalUnavailable("Closure projection differs from immutable replay")
106
+ if state["scope"]["unit_definition_id"] != closure.unit_definition_id or self._closed_scope(scope):
107
+ raise JournalUnavailable("Closed scope unit/inventory mismatch")
108
+ latest = self._db.execute(
109
+ "SELECT observed_at FROM events WHERE scope=? ORDER BY revision DESC LIMIT 1", (scope,)
110
+ ).fetchone()[0]
111
+ if utc_instant(latest) > closed_at:
112
+ raise JournalUnavailable("Closure precedes the last committed accounting observation")
113
+ totals = self._financial_totals(state, revision)
114
+ after = copy.deepcopy(state)
115
+ after.update(gate="CLOSED", closure_id=closure.closure_id, original_gate=state["gate"])
116
+ summaries[scope] = {
117
+ "revision": revision + 1,
118
+ "totals": totals,
119
+ "financial_digest": digest(self._financial_state(after)),
120
+ }
121
+ states[scope] = (state, revision, after)
122
+ summary: dict[str, Any] = {
123
+ "scopes": summaries,
124
+ "known_spent": sum(v["totals"]["known_spent"] for v in summaries.values()),
125
+ "roles": {role: sum(v["totals"]["roles"][role] for v in summaries.values()) for role in ROLES},
126
+ }
127
+ uint(summary["known_spent"])
128
+ value = {
129
+ "closure": data,
130
+ "summary": summary,
131
+ "summary_digest": digest(summary),
132
+ "eligible_after": (closed_at + timedelta(days=30)).isoformat(),
133
+ }
134
+ self._retain("run_closures", closure.run_id, closure.run_id, closure.closure_id, value)
135
+ for scope, (state, revision, after) in states.items():
136
+ self._db.execute(
137
+ "INSERT INTO closed_scopes VALUES(?,?,?,?,?)",
138
+ (scope, closure.run_id, closure.closure_id, revision + 1, value["summary_digest"]),
139
+ )
140
+ self._commit_v2(
141
+ scope,
142
+ state,
143
+ revision,
144
+ "RUN_CLOSED",
145
+ after,
146
+ [],
147
+ [],
148
+ {"closure_id": closure.closure_id, "summary_digest": value["summary_digest"]},
149
+ )
150
+ if self.fault_hook:
151
+ self.fault_hook("after_run_closure")
152
+ return self._closure_outcome(value, "CLOSED")
153
+
154
+ @staticmethod
155
+ def _binding_equal(left: dict, right: dict) -> bool:
156
+ if left.get("ambiguous") or right.get("ambiguous"):
157
+ return False
158
+ fields = ("namespace", "key", "scope", "owner", "digest")
159
+ if any(left.get(k) != right.get(k) for k in fields):
160
+ return False
161
+ return left["namespace"] != "raw" or all(left.get(k) == right.get(k) for k in ("raw_digest", "finals"))
162
+
163
+ @staticmethod
164
+ def _binding_scopes(binding: dict) -> set[str]:
165
+ return {c["scope"] for c in binding["ambiguous"]} if binding.get("ambiguous") else {binding["scope"]}
166
+
167
+ def _observed_lookup(self, namespace: str, key: str) -> dict | None:
168
+ candidates = []
169
+ if namespace == "final":
170
+ for row in self._db.execute(
171
+ "SELECT * FROM identities WHERE kind IN ('source','observed_final') AND key=?", (key,)
172
+ ):
173
+ candidates.append(
174
+ {
175
+ "namespace": namespace,
176
+ "key": key,
177
+ "scope": row["scope"],
178
+ "owner": row["owner"],
179
+ "digest": row["digest"],
180
+ }
181
+ )
182
+ else:
183
+ row = self._db.execute("SELECT * FROM source_observations WHERE key=?", (key,)).fetchone()
184
+ if row:
185
+ value = json.loads(row["payload"])
186
+ candidates.append(
187
+ {
188
+ "namespace": "raw",
189
+ "key": key,
190
+ "scope": row["scope"],
191
+ "owner": "observation",
192
+ "digest": value["observation_digest"],
193
+ "raw_digest": value["raw_digest"],
194
+ "finals": value.get("finals", {}),
195
+ }
196
+ )
197
+ archived = self._retained("archive_observation_keys", key)
198
+ if archived:
199
+ candidates.append(archived["binding"])
200
+ extra = self._retained("exception_identity_keys", canonical([namespace, key]))
201
+ if extra:
202
+ record = self._retained("financial_exceptions", extra["exception_id"])
203
+ if (
204
+ record is None
205
+ or extra["binding"] not in record["new_bindings"]
206
+ or extra["declaration_digest"] != digest(extra["binding"])
207
+ ):
208
+ raise JournalUnavailable("Exception index has no original declaration")
209
+ candidates.append(extra["binding"])
210
+ # Missing projections are a recovery requirement, never evidence of a fresh key.
211
+ declared = self._db.execute(
212
+ "SELECT e.key FROM financial_exceptions e, json_each(e.payload,'$.new_bindings') b "
213
+ "WHERE json_extract(b.value,'$.namespace')=? AND json_extract(b.value,'$.key')=? LIMIT 1",
214
+ (namespace, key),
215
+ ).fetchone()
216
+ if declared and extra is None:
217
+ raise JournalUnavailable("Missing exception identity projection; explicit rebuild required")
218
+ if namespace == "raw" and not candidates:
219
+ declared = self._db.execute(
220
+ "SELECT a.key FROM archive_records a, json_each(a.payload,'$.protection.observations') o "
221
+ "WHERE json_extract(o.value,'$.key')=? LIMIT 1",
222
+ (key,),
223
+ ).fetchone()
224
+ if declared:
225
+ raise JournalUnavailable("Missing archived observation projection; explicit rebuild required")
226
+ if namespace == "final" and not candidates:
227
+ for record in self._db.execute(
228
+ "SELECT a.key,i.value FROM archive_records a, json_each(a.payload,'$.protection.identities') i "
229
+ "WHERE json_extract(i.value,'$[0]') IN ('source','observed_final')"
230
+ ):
231
+ if canonical(json.loads(record[1])[1]) == key:
232
+ raise JournalUnavailable("Missing archived source projection; explicit rebuild required")
233
+ if not candidates:
234
+ return None
235
+ first = candidates[0]
236
+ for other in candidates[1:]:
237
+ if canonical(first) != canonical(other) and not self._binding_equal(first, other):
238
+ raise JournalUnavailable("Disagreeing global observation representations")
239
+ return first
240
+
241
+ def _exception_chain(self, run_id: str, *, restore: bool = False) -> list[dict]:
242
+ records = [
243
+ _validated_cast(dict, self._retained("financial_exceptions", r[0]))
244
+ for r in self._db.execute("SELECT key FROM financial_exceptions WHERE scope=?", (run_id,))
245
+ ]
246
+ records.sort(key=lambda r: r["ordinal"])
247
+ previous, declarations = None, {}
248
+ closure = self.closed_run(run_id)
249
+ for ordinal, record in enumerate(records, 1):
250
+ if (
251
+ record["ordinal"] != ordinal
252
+ or record["previous_digest"] != previous
253
+ or record["closure_id"] != _validated_cast(dict, closure)["closure"]["closure_id"]
254
+ ):
255
+ raise JournalUnavailable("Broken immutable financial exception chain")
256
+ previous = digest(record)
257
+ for binding in record["new_bindings"]:
258
+ key = canonical([binding["namespace"], binding["key"]])
259
+ if key in declarations:
260
+ raise JournalUnavailable("Financial exception redeclares an immutable owner")
261
+ payload = {
262
+ "binding": binding,
263
+ "exception_id": record["exception_id"],
264
+ "declaration_digest": digest(binding),
265
+ }
266
+ declarations[key] = payload
267
+ actual = self._retained("exception_identity_keys", key)
268
+ if actual is None and restore:
269
+ self._retain("exception_identity_keys", key, run_id, record["exception_id"], payload)
270
+ elif actual != payload:
271
+ raise JournalUnavailable("Financial exception identity projection mismatch")
272
+ head = self._db.execute("SELECT ordinal,digest FROM exception_heads WHERE run_id=?", (run_id,)).fetchone()
273
+ if (records and (head is None or tuple(head) != (len(records), previous))) or (
274
+ not records and head is not None
275
+ ):
276
+ raise JournalUnavailable("Financial exception head mismatch")
277
+ actual_keys = {
278
+ r[0] for r in self._db.execute("SELECT key FROM exception_identity_keys WHERE scope=?", (run_id,))
279
+ }
280
+ if actual_keys != set(declarations):
281
+ raise JournalUnavailable("Undeclared financial exception identity")
282
+ return records
283
+
284
+ def _append_exception(self, scope: str, evidence: dict, reason: str) -> str:
285
+ closed = self._closed_scope(scope)
286
+ if closed is None:
287
+ raise JournalUnavailable("Closed owner required for financial exception")
288
+ run_id = closed["run_id"]
289
+ prior = self._exception_chain(run_id)
290
+ event_id = digest([closed["closure_id"], scope, self._observation_scope or scope, digest(evidence)])
291
+ saved = self._retained("financial_exceptions", event_id)
292
+ if saved is not None:
293
+ return event_id
294
+ origin = self._observation_scope or scope
295
+ candidates = self._observed_candidates(origin, evidence)
296
+ groups: dict[tuple[str, str], dict[str, dict]] = {}
297
+ affected, declarations, claims = {scope}, [], []
298
+ for candidate in candidates:
299
+ groups.setdefault((candidate["namespace"], candidate["key"]), {})[canonical(candidate)] = candidate
300
+ affected.update(self._binding_scopes(candidate))
301
+ try:
302
+ self._check_observed(candidate)
303
+ except _BindingConflict as exc:
304
+ affected.update(exc.scopes)
305
+ original = self._observed_lookup(candidate["namespace"], candidate["key"])
306
+ claims.append({"candidate": candidate, "original": original})
307
+ for (namespace, key), group in sorted(groups.items()):
308
+ if self._observed_lookup(namespace, key) is not None:
309
+ continue
310
+ values = [group[k] for k in sorted(group)]
311
+ binding = (
312
+ values[0]
313
+ if len(values) == 1
314
+ else {"namespace": namespace, "key": key, "ambiguous": values, "digest": digest(values)}
315
+ )
316
+ declarations.append(binding)
317
+
318
+ # Preserve amounts and lineage references without retaining raw body copies.
319
+ def compact(value):
320
+ if isinstance(value, dict):
321
+ return {k: compact(v) for k, v in value.items() if k != "raw"}
322
+ if isinstance(value, list):
323
+ return [compact(v) for v in value]
324
+ return value
325
+
326
+ record = {
327
+ "exception_id": event_id,
328
+ "closure_id": closed["closure_id"],
329
+ "scope": scope,
330
+ "ordinal": len(prior) + 1,
331
+ "previous_digest": digest(prior[-1]) if prior else None,
332
+ "evidence_digest": digest(evidence),
333
+ "evidence_scope": origin,
334
+ "evidence": compact(evidence),
335
+ "reason": reason,
336
+ "claims": claims,
337
+ "new_bindings": declarations,
338
+ "qualification": "ACCOUNTING_RECONCILIATION_REQUIRED",
339
+ }
340
+ self._retain("financial_exceptions", event_id, run_id, scope, record)
341
+ if self.fault_hook:
342
+ self.fault_hook("after_financial_exception")
343
+ for binding in declarations:
344
+ key = canonical([binding["namespace"], binding["key"]])
345
+ self._retain(
346
+ "exception_identity_keys",
347
+ key,
348
+ run_id,
349
+ event_id,
350
+ {"binding": binding, "exception_id": event_id, "declaration_digest": digest(binding)},
351
+ )
352
+ self._db.execute(
353
+ "INSERT INTO exception_heads VALUES(?,?,?) ON CONFLICT(run_id) "
354
+ "DO UPDATE SET ordinal=excluded.ordinal,digest=excluded.digest",
355
+ (run_id, record["ordinal"], digest(record)),
356
+ )
357
+ if self.fault_hook:
358
+ self.fault_hook("after_exception_keys")
359
+ for owner_scope in sorted(affected):
360
+ if self._closed_scope(owner_scope):
361
+ continue
362
+ state, revision = self._load(owner_scope)
363
+ if state is not None and state["gate"] != "CONFLICT":
364
+ self._record(
365
+ owner_scope,
366
+ state,
367
+ revision,
368
+ "CONFLICT",
369
+ {"reason": "Closed-owner financial collision", "exception_id": event_id},
370
+ )
371
+ if self.fault_hook:
372
+ self.fault_hook("after_exception_quarantine")
373
+ return event_id
374
+
375
+ def _closed_evidence(self, scope: str, evidence: dict) -> str:
376
+ self._exception_chain(self._closed_scope(scope)["run_id"])
377
+ loaded_state, _ = self._load(scope)
378
+ state = _validated_cast(dict, loaded_state)
379
+ candidates = self._observed_candidates(scope, evidence)
380
+ conflicts = {scope}
381
+ problems = []
382
+ for candidate in candidates:
383
+ conflicts.update(self._binding_scopes(candidate))
384
+ try:
385
+ self._check_observed(candidate)
386
+ except _BindingConflict as exc:
387
+ conflicts.update(exc.scopes)
388
+ problems.append(str(exc))
389
+ # An exact previous raw observation or first/alias final is a historical repeat.
390
+ previous_exception = self._retained(
391
+ "financial_exceptions",
392
+ digest(
393
+ [self._closed_scope(scope)["closure_id"], scope, self._observation_scope or scope, digest(evidence)]
394
+ ),
395
+ )
396
+ if (
397
+ not previous_exception
398
+ and not problems
399
+ and candidates
400
+ and all(
401
+ (old := self._observed_lookup(c["namespace"], c["key"])) is not None and self._binding_equal(old, c)
402
+ for c in candidates
403
+ )
404
+ ):
405
+ receipts = evidence.get("receipts", [evidence] if "receipt_id" in evidence else [])
406
+ if receipts and all(
407
+ state.get("accepted_finals", {}).get(r["operation_id"], {}).get("receipt") == r for r in receipts
408
+ ):
409
+ return "ALREADY_SETTLED"
410
+ if receipts and all(
411
+ canonical([r["source_id"], r["source_event_id"]]) in state.get("aliases", {}) for r in receipts
412
+ ):
413
+ return "ALREADY_CORROBORATED"
414
+ if not receipts:
415
+ return "OBSERVATION_RECORDED"
416
+ self._append_exception(scope, evidence, "Post-closure financial evidence")
417
+ for other in sorted(conflicts - {scope}):
418
+ if self._closed_scope(other):
419
+ self._append_exception(other, evidence, "Post-closure source identity collision")
420
+ return "ACCOUNTING_RECONCILIATION_REQUIRED"