agent-lifecycle-kit 1.78.0__tar.gz → 1.80.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.
- {agent_lifecycle_kit-1.78.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-1.80.0}/PKG-INFO +7 -7
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/README.md +6 -6
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/pyproject.toml +1 -1
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/_version.py +1 -1
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +158 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +26 -8
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/ownership.py +77 -21
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/adapter.py +82 -23
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_planning.py +27 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/planning_parsers.py +9 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +24 -1
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +66 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +524 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/contracts/lifecycle_control_validation.py +729 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/contracts/ownership_paths.py +43 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +51 -3
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/contracts/plan_manifest_schemas.py +139 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/schemas.py +267 -5
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/capabilities.py +72 -20
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/event_capture.py +249 -14
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/host_protocol/lifecycle_control.py +155 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +356 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/host_protocol/lifecycle_gate.py +701 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/external_dialects.py +38 -15
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/planning.py +6 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/completeness.py +192 -24
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/planning/manifest_contract.py +321 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/planning/traceability.py +282 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/validation.py +5 -0
- agent_lifecycle_kit-1.80.0/src/agent_lifecycle/planning/verification.py +293 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/finalization.py +73 -7
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/managed_runner.py +143 -2
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/plan_adoption.py +58 -40
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/task_transitions.py +124 -20
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +7 -7
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +12 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/LICENSE +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/NOTICE +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/README.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/manifest.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/setup.cfg +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/__main__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/implementation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/package.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/changesets/git.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/errors.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/followup.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/main.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/parsers.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/policy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/project.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/research.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/start.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/strategy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/cli/worktree.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/external_memory.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/profiles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/rendering.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/errors.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/paths.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/contracts/validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/followup/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/followup/records.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/freeze/locks.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/goal/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/goal/records.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/goal/view.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/costs.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/continuity.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/deltas.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/templates.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/planning/tiering.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/apply.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/proposals.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/guidance.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/merge.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/presets.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/principles.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/project/profile.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/py.typed +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/quality/packs.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/research/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/research/evidence.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/research/provenance.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/research/validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/resources.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review/validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/runner/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/runner/attempt_snapshots.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/runner/core.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/specification/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/specification/validation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/controller.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/events.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/gates.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/leases.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/query.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/workflow/state.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
- {agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle_kit.egg-info/top_level.txt +0 -0
{agent_lifecycle_kit-1.78.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-1.80.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-lifecycle-kit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.80.0
|
|
4
4
|
Summary: Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion.
|
|
5
5
|
Author: Agent Lifecycle Kit contributors
|
|
6
6
|
License: Apache-2.0
|
|
@@ -43,7 +43,7 @@ ALK provides a verifiable finish for external-agent work with proportionate cont
|
|
|
43
43
|
## Quick start
|
|
44
44
|
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md).
|
|
45
45
|
|
|
46
|
-
It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==1.
|
|
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==1.80.0`, and common `agent-lifecycle version` errors.
|
|
47
47
|
|
|
48
48
|
For a quick start, run:
|
|
49
49
|
|
|
@@ -81,11 +81,11 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
81
81
|
- Usage visibility: tokens, time, resource counters and structured execution records without sensitive data are native; monetary cost is optional and only used when a metered host reports it.
|
|
82
82
|
- Project-specific workflow settings: ALK can discover and validate uncommitted local defaults, or apply a built-in workflow preset for a common route, while the frozen plan remains authoritative.
|
|
83
83
|
- Reproducible Python maintenance: pinned development-only Ruff, mypy and coverage checks, a non-growing quality ratchet, stable redacted CLI errors, installed package resources, an explicit documented Python API, and bounded performance controls that preserve security and evidence rules.
|
|
84
|
+
- Optional adapter lifecycle control: operation-level `GUIDANCE_ONLY`, `OBSERVED` and `ENFORCED` declarations remain separate from general adapter support; bundled adapters currently publish `GUIDANCE_ONLY` with `NO_RECOMMENDATION`, and managed launch remains `WRAPPER_ONLY`. See [optional adapter lifecycle control](docs/adapters/lifecycle-control.md).
|
|
84
85
|
- Project principles and plan deltas keep long-running work understandable: principles provide bounded defaults, while a digest-bound delta shows which plan authority changed and whether review and a new lock are required. CI also checks an acyclic module/package graph, layer direction and source-size limits; adapter inspection uses bounded literal profiles and fails closed without executing adapter code.
|
|
85
|
-
- Read-only progress and managed sessions
|
|
86
|
-
|
|
87
|
-
Markdown, frozen
|
|
88
|
-
review/freeze boundaries.
|
|
86
|
+
- Read-only progress and managed sessions preserve review/freeze boundaries;
|
|
87
|
+
host UIs show lifecycle state and counters, `start` accepts task text,
|
|
88
|
+
Markdown, frozen requests or stored sessions, and `plan verify` only checks plan data.
|
|
89
89
|
|
|
90
90
|
## Feature areas
|
|
91
91
|
### Plan and execute
|
|
@@ -194,7 +194,7 @@ Adapter installation and support-level details live in [Adapter install](docs/ad
|
|
|
194
194
|
|
|
195
195
|
- Start: [English documentation](docs/README.md), [Русская документация](docs/ru/README.md), [Install](docs/guides/install-and-first-run.md), [Quickstart](docs/guides/quickstart.md), [Beginner and advanced workflows](docs/guides/beginner-and-advanced-workflows.md), [Commands by task](docs/guides/commands-by-task.md), [Research workflow](docs/guides/research-workflow.md), [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md), and [Code review workflows](docs/guides/code-review-workflows.md).
|
|
196
196
|
- Planning and adapters: [Issue to specification drafts](docs/guides/issue-to-spec.md), [Adapter install](docs/adapters/install.md), and [Adapter support matrix](docs/adapters/support-matrix.md).
|
|
197
|
-
- Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [Research evidence](docs/reference/research-evidence.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
|
|
197
|
+
- Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [Plan verification](docs/reference/plan-verification.md), [Research evidence](docs/reference/research-evidence.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
|
|
198
198
|
- Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
|
|
199
199
|
- Profiles and operations: [Project workflow presets](docs/reference/workflow-presets.md), [Project workflow profile](docs/reference/project-workflow-profile.md), [Read-only status views](docs/reference/read-only-status-view.md), [Adapter progress bridge](docs/reference/automatic-progress-bridge.md), [Sandbox boundaries](docs/reference/sandbox-boundaries.md), [Import mappers](docs/reference/import-mappers.md), [Episode retrieval](docs/reference/episode-retrieval.md), [Runner recovery](docs/reference/runner-recovery.md), [Cross-check profile](docs/reference/cross-check-profile.md), [Review Mesh](docs/reference/review-mesh.md), [Bug Forensics profile](docs/reference/bug-forensics.md), and [Bug Forensics context budget](docs/reference/bug-forensics-context-budget.md).
|
|
200
200
|
- Release assets: [Task templates](templates/tasks/README.md), [Neutrality scanning](docs/reference/neutrality.md), and [Release security](docs/security/release-security.md).
|
|
@@ -21,7 +21,7 @@ ALK provides a verifiable finish for external-agent work with proportionate cont
|
|
|
21
21
|
## Quick start
|
|
22
22
|
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md).
|
|
23
23
|
|
|
24
|
-
It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==1.
|
|
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==1.80.0`, and common `agent-lifecycle version` errors.
|
|
25
25
|
|
|
26
26
|
For a quick start, run:
|
|
27
27
|
|
|
@@ -59,11 +59,11 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
59
59
|
- Usage visibility: tokens, time, resource counters and structured execution records without sensitive data are native; monetary cost is optional and only used when a metered host reports it.
|
|
60
60
|
- Project-specific workflow settings: ALK can discover and validate uncommitted local defaults, or apply a built-in workflow preset for a common route, while the frozen plan remains authoritative.
|
|
61
61
|
- Reproducible Python maintenance: pinned development-only Ruff, mypy and coverage checks, a non-growing quality ratchet, stable redacted CLI errors, installed package resources, an explicit documented Python API, and bounded performance controls that preserve security and evidence rules.
|
|
62
|
+
- Optional adapter lifecycle control: operation-level `GUIDANCE_ONLY`, `OBSERVED` and `ENFORCED` declarations remain separate from general adapter support; bundled adapters currently publish `GUIDANCE_ONLY` with `NO_RECOMMENDATION`, and managed launch remains `WRAPPER_ONLY`. See [optional adapter lifecycle control](docs/adapters/lifecycle-control.md).
|
|
62
63
|
- Project principles and plan deltas keep long-running work understandable: principles provide bounded defaults, while a digest-bound delta shows which plan authority changed and whether review and a new lock are required. CI also checks an acyclic module/package graph, layer direction and source-size limits; adapter inspection uses bounded literal profiles and fails closed without executing adapter code.
|
|
63
|
-
- Read-only progress and managed sessions
|
|
64
|
-
|
|
65
|
-
Markdown, frozen
|
|
66
|
-
review/freeze boundaries.
|
|
64
|
+
- Read-only progress and managed sessions preserve review/freeze boundaries;
|
|
65
|
+
host UIs show lifecycle state and counters, `start` accepts task text,
|
|
66
|
+
Markdown, frozen requests or stored sessions, and `plan verify` only checks plan data.
|
|
67
67
|
|
|
68
68
|
## Feature areas
|
|
69
69
|
### Plan and execute
|
|
@@ -172,7 +172,7 @@ Adapter installation and support-level details live in [Adapter install](docs/ad
|
|
|
172
172
|
|
|
173
173
|
- Start: [English documentation](docs/README.md), [Русская документация](docs/ru/README.md), [Install](docs/guides/install-and-first-run.md), [Quickstart](docs/guides/quickstart.md), [Beginner and advanced workflows](docs/guides/beginner-and-advanced-workflows.md), [Commands by task](docs/guides/commands-by-task.md), [Research workflow](docs/guides/research-workflow.md), [Lifecycle task scenarios](docs/guides/lifecycle-cookbook.md), and [Code review workflows](docs/guides/code-review-workflows.md).
|
|
174
174
|
- Planning and adapters: [Issue to specification drafts](docs/guides/issue-to-spec.md), [Adapter install](docs/adapters/install.md), and [Adapter support matrix](docs/adapters/support-matrix.md).
|
|
175
|
-
- Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [Research evidence](docs/reference/research-evidence.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
|
|
175
|
+
- Reference: [System architecture](docs/architecture/system-architecture.md), [workflow customization and execution controls](docs/reference/workflow-customization.md), [execution strategy](docs/reference/execution-strategy.md), [CLI reference](docs/reference/cli.md), [Plan verification](docs/reference/plan-verification.md), [Research evidence](docs/reference/research-evidence.md), [Source of truth](docs/reference/source-of-truth.md), [Managed lifecycle runner](docs/reference/managed-lifecycle-runner.md), [Managed adapter sessions](docs/reference/managed-adapter-sessions.md), [Portable Agent Plugins](docs/reference/agent-plugins.md), [Plugin publication](docs/reference/plugin-publication.md), [Implementation audit](docs/reference/implementation-audit.md), [Plan completeness](docs/reference/plan-completeness.md), [Public contracts](docs/reference/public-contracts.md), and [Readiness diagnostics](docs/reference/readiness-diagnostics.md).
|
|
176
176
|
- Quality and resources: [Reference-task evaluation](docs/reference/reference-task-evaluation.md), [model routing](docs/reference/model-routing.md), [quality-cost learning](docs/reference/quality-cost-learning.md), [performance and resource budgets](docs/reference/performance-and-resource-budgets.md), [lifecycle cost accounting](docs/reference/lifecycle-cost.md), [host-local token accounting](docs/reference/host-local-token-accounting.md), [process execution observability](docs/reference/process-execution-observability.md), [Usage export](docs/reference/usage-export.md), and [Evidence integrity](docs/reference/evidence-integrity.md).
|
|
177
177
|
- Profiles and operations: [Project workflow presets](docs/reference/workflow-presets.md), [Project workflow profile](docs/reference/project-workflow-profile.md), [Read-only status views](docs/reference/read-only-status-view.md), [Adapter progress bridge](docs/reference/automatic-progress-bridge.md), [Sandbox boundaries](docs/reference/sandbox-boundaries.md), [Import mappers](docs/reference/import-mappers.md), [Episode retrieval](docs/reference/episode-retrieval.md), [Runner recovery](docs/reference/runner-recovery.md), [Cross-check profile](docs/reference/cross-check-profile.md), [Review Mesh](docs/reference/review-mesh.md), [Bug Forensics profile](docs/reference/bug-forensics.md), and [Bug Forensics context budget](docs/reference/bug-forensics-context-budget.md).
|
|
178
178
|
- Release assets: [Task templates](templates/tasks/README.md), [Neutrality scanning](docs/reference/neutrality.md), and [Release security](docs/security/release-security.md).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agent-lifecycle-kit"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.80.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"
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"""Adapter-session bridge for host-owned lifecycle-control gates."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
from agent_lifecycle.contracts import LifecycleError, read_json_object
|
|
9
|
+
from agent_lifecycle.freeze import plan_integrity_required, verify_plan_package_integrity
|
|
10
|
+
from agent_lifecycle.host_protocol.lifecycle_control import load_lifecycle_control_policy
|
|
11
|
+
from agent_lifecycle.host_protocol.lifecycle_gate import (
|
|
12
|
+
evaluate_post_action_gate,
|
|
13
|
+
evaluate_pre_action_gate,
|
|
14
|
+
evaluate_stop_gate,
|
|
15
|
+
lifecycle_control_selection,
|
|
16
|
+
require_lifecycle_gate_pass,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def pre_action_gate(
|
|
21
|
+
*,
|
|
22
|
+
manifest_path: Path,
|
|
23
|
+
lock_path: Path,
|
|
24
|
+
state_path: Path,
|
|
25
|
+
operation: str,
|
|
26
|
+
action_digest: str,
|
|
27
|
+
paths: list[str],
|
|
28
|
+
requested_level: str | None = None,
|
|
29
|
+
policy_path: Path | None = None,
|
|
30
|
+
next_action: dict[str, Any] | None = None,
|
|
31
|
+
task_id: str | None = None,
|
|
32
|
+
expected_state_revision: int | None = None,
|
|
33
|
+
repository_root: Path | None = None,
|
|
34
|
+
) -> dict[str, Any]:
|
|
35
|
+
"""Return a pre-action decision for a host adapter without launching it."""
|
|
36
|
+
|
|
37
|
+
manifest = read_json_object(manifest_path, label="frozen plan manifest")
|
|
38
|
+
lock = read_json_object(lock_path, label="plan lock")
|
|
39
|
+
state = read_json_object(state_path, label="workflow state")
|
|
40
|
+
selected_level, selected_policy, _ = lifecycle_control_selection(state)
|
|
41
|
+
policy = selected_policy or (load_lifecycle_control_policy(policy_path) if policy_path else None)
|
|
42
|
+
package_integrity: dict[str, Any] | None = None
|
|
43
|
+
if plan_integrity_required(manifest):
|
|
44
|
+
if repository_root is None:
|
|
45
|
+
package_integrity = {
|
|
46
|
+
"status": "FAIL",
|
|
47
|
+
"blockers": [{"code": "repository-root-required"}],
|
|
48
|
+
}
|
|
49
|
+
else:
|
|
50
|
+
try:
|
|
51
|
+
package_integrity = verify_plan_package_integrity(
|
|
52
|
+
manifest,
|
|
53
|
+
lock,
|
|
54
|
+
repository_root=repository_root,
|
|
55
|
+
)
|
|
56
|
+
except LifecycleError as exc:
|
|
57
|
+
package_integrity = {
|
|
58
|
+
"status": "FAIL",
|
|
59
|
+
"blockers": [{"code": exc.code, "message": exc.message}],
|
|
60
|
+
}
|
|
61
|
+
return evaluate_pre_action_gate(
|
|
62
|
+
manifest=manifest,
|
|
63
|
+
lock=lock,
|
|
64
|
+
state=state,
|
|
65
|
+
operation=operation,
|
|
66
|
+
action_digest=action_digest,
|
|
67
|
+
paths=paths,
|
|
68
|
+
requested_level=requested_level or selected_level,
|
|
69
|
+
policy=policy,
|
|
70
|
+
next_action=next_action,
|
|
71
|
+
task_id=task_id,
|
|
72
|
+
expected_state_revision=(
|
|
73
|
+
expected_state_revision if expected_state_revision is not None else 0
|
|
74
|
+
),
|
|
75
|
+
package_integrity=package_integrity,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def require_pre_action(**kwargs: Any) -> dict[str, Any]:
|
|
80
|
+
"""Raise before the host action when the selected gate blocks it."""
|
|
81
|
+
|
|
82
|
+
gate = pre_action_gate(**kwargs)
|
|
83
|
+
return require_lifecycle_gate_pass(gate, gate_type="pre-action")
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def post_action_gate(
|
|
87
|
+
*,
|
|
88
|
+
pre_action: dict[str, Any],
|
|
89
|
+
manifest_path: Path,
|
|
90
|
+
actual_changed_paths: list[str],
|
|
91
|
+
outcome: dict[str, Any] | None = None,
|
|
92
|
+
actual_status: str = "PASS",
|
|
93
|
+
event: dict[str, Any] | None = None,
|
|
94
|
+
policy_path: Path | None = None,
|
|
95
|
+
) -> dict[str, Any]:
|
|
96
|
+
"""Validate host output and changed paths after an authorized action."""
|
|
97
|
+
|
|
98
|
+
manifest = read_json_object(manifest_path, label="frozen plan manifest")
|
|
99
|
+
policy = load_lifecycle_control_policy(policy_path) if policy_path else None
|
|
100
|
+
return evaluate_post_action_gate(
|
|
101
|
+
pre_action=pre_action,
|
|
102
|
+
manifest=manifest,
|
|
103
|
+
actual_changed_paths=actual_changed_paths,
|
|
104
|
+
outcome=outcome,
|
|
105
|
+
actual_status=actual_status,
|
|
106
|
+
event=event,
|
|
107
|
+
policy=policy,
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def require_post_action(**kwargs: Any) -> dict[str, Any]:
|
|
112
|
+
"""Raise when selected post-action evidence does not match the action."""
|
|
113
|
+
|
|
114
|
+
gate = post_action_gate(**kwargs)
|
|
115
|
+
return require_lifecycle_gate_pass(gate, gate_type="post-action")
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def stop_gate(
|
|
119
|
+
*,
|
|
120
|
+
state_path: Path,
|
|
121
|
+
final_audit: dict[str, Any] | None = None,
|
|
122
|
+
final_proof: dict[str, Any] | None = None,
|
|
123
|
+
pre_action: dict[str, Any] | None = None,
|
|
124
|
+
post_action: dict[str, Any] | None = None,
|
|
125
|
+
requested_level: str | None = None,
|
|
126
|
+
policy_path: Path | None = None,
|
|
127
|
+
) -> dict[str, Any]:
|
|
128
|
+
"""Evaluate the stop boundary from a durable workflow state snapshot."""
|
|
129
|
+
|
|
130
|
+
state = read_json_object(state_path, label="workflow state")
|
|
131
|
+
selected_level, selected_policy, _ = lifecycle_control_selection(state)
|
|
132
|
+
policy = selected_policy or (load_lifecycle_control_policy(policy_path) if policy_path else None)
|
|
133
|
+
return evaluate_stop_gate(
|
|
134
|
+
state=state,
|
|
135
|
+
final_audit=final_audit,
|
|
136
|
+
final_proof=final_proof,
|
|
137
|
+
pre_action=pre_action,
|
|
138
|
+
post_action=post_action,
|
|
139
|
+
requested_level=requested_level or selected_level,
|
|
140
|
+
policy=policy,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def require_stop(**kwargs: Any) -> dict[str, Any]:
|
|
145
|
+
"""Raise when selected stop evidence is incomplete or inconsistent."""
|
|
146
|
+
|
|
147
|
+
gate = stop_gate(**kwargs)
|
|
148
|
+
return require_lifecycle_gate_pass(gate, gate_type="stop")
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
__all__ = [
|
|
152
|
+
"post_action_gate",
|
|
153
|
+
"pre_action_gate",
|
|
154
|
+
"require_post_action",
|
|
155
|
+
"require_pre_action",
|
|
156
|
+
"require_stop",
|
|
157
|
+
"stop_gate",
|
|
158
|
+
]
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import os
|
|
6
6
|
import signal
|
|
7
7
|
import subprocess
|
|
8
|
+
import time
|
|
8
9
|
from contextlib import suppress
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
from typing import Any
|
|
@@ -37,16 +38,19 @@ class ProcessGroupOwner:
|
|
|
37
38
|
"""Terminate the owned group and return bounded cleanup evidence."""
|
|
38
39
|
|
|
39
40
|
escalation = "none"
|
|
40
|
-
if
|
|
41
|
-
if
|
|
41
|
+
if os.name == "posix":
|
|
42
|
+
if self.process.poll() is None:
|
|
42
43
|
with suppress(ProcessLookupError):
|
|
43
44
|
os.killpg(self.pid, signal.SIGTERM)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
_wait_process(self.process, grace_seconds)
|
|
46
|
+
if not _wait_process_group_exit(self.pid, grace_seconds):
|
|
47
|
+
escalation = "SIGKILL"
|
|
48
|
+
with suppress(ProcessLookupError):
|
|
49
|
+
os.killpg(self.pid, signal.SIGKILL)
|
|
50
|
+
_wait_process(self.process, grace_seconds)
|
|
51
|
+
_wait_process_group_exit(self.pid, grace_seconds)
|
|
52
|
+
elif self.process.poll() is None:
|
|
53
|
+
if self._job_handle is not None:
|
|
50
54
|
_terminate_windows_job(self._job_handle)
|
|
51
55
|
_wait_process(self.process, grace_seconds)
|
|
52
56
|
escalation = "job-terminate"
|
|
@@ -121,6 +125,20 @@ def _wait_process(process: subprocess.Popen[Any], timeout: float) -> bool:
|
|
|
121
125
|
return False
|
|
122
126
|
|
|
123
127
|
|
|
128
|
+
def _wait_process_group_exit(group_id: int, timeout: float) -> bool:
|
|
129
|
+
"""Wait for every observable member of a POSIX process group to exit."""
|
|
130
|
+
|
|
131
|
+
deadline = time.monotonic() + max(0.01, timeout)
|
|
132
|
+
while True:
|
|
133
|
+
alive = _posix_group_has_live_processes(group_id)
|
|
134
|
+
if alive is False:
|
|
135
|
+
return True
|
|
136
|
+
remaining = deadline - time.monotonic()
|
|
137
|
+
if remaining <= 0:
|
|
138
|
+
return False
|
|
139
|
+
time.sleep(min(0.02, remaining))
|
|
140
|
+
|
|
141
|
+
|
|
124
142
|
def _create_windows_job(process: subprocess.Popen[Any]) -> int | None:
|
|
125
143
|
if os.name != "nt":
|
|
126
144
|
return None
|
{agent_lifecycle_kit-1.78.0 → agent_lifecycle_kit-1.80.0}/src/agent_lifecycle/audit/ownership.py
RENAMED
|
@@ -7,7 +7,8 @@ from pathlib import Path
|
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
9
|
from agent_lifecycle.contracts import read_json_object
|
|
10
|
-
from agent_lifecycle.contracts.
|
|
10
|
+
from agent_lifecycle.contracts.ownership_paths import is_under_authority_path, normalize_authority_path
|
|
11
|
+
from agent_lifecycle.contracts.paths import normalize_repo_path
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def build_ownership_report(
|
|
@@ -17,6 +18,18 @@ def build_ownership_report(
|
|
|
17
18
|
base: str | None = None,
|
|
18
19
|
) -> dict[str, Any]:
|
|
19
20
|
manifest = read_json_object(manifest_path, label="plan manifest")
|
|
21
|
+
return build_ownership_report_from_manifest(manifest, paths, manifest_path=manifest_path, base=base)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def build_ownership_report_from_manifest(
|
|
25
|
+
manifest: dict[str, Any],
|
|
26
|
+
paths: list[str],
|
|
27
|
+
*,
|
|
28
|
+
manifest_path: Path | None = None,
|
|
29
|
+
base: str | None = None,
|
|
30
|
+
) -> dict[str, Any]:
|
|
31
|
+
"""Classify changed paths against an already loaded frozen manifest."""
|
|
32
|
+
|
|
20
33
|
classifiers = _classifiers(manifest, manifest_path)
|
|
21
34
|
entries = [_classify_path(path, classifiers) for path in sorted(set(paths))]
|
|
22
35
|
categories = Counter(entry["category"] for entry in entries)
|
|
@@ -40,34 +53,70 @@ def report_has_category(report: dict[str, Any], categories: set[str]) -> bool:
|
|
|
40
53
|
return any(entry.get("category") in categories for entry in report.get("entries", []))
|
|
41
54
|
|
|
42
55
|
|
|
43
|
-
def _classifiers(manifest: dict[str, Any], manifest_path: Path) -> dict[str, Any]:
|
|
44
|
-
|
|
56
|
+
def _classifiers(manifest: dict[str, Any], manifest_path: Path | None) -> dict[str, Any]:
|
|
57
|
+
package_value = manifest.get("package")
|
|
58
|
+
package = package_value if isinstance(package_value, dict) else {}
|
|
45
59
|
plan_root = package.get("planArtifactRoot")
|
|
60
|
+
workstreams = _list_value(manifest.get("workstreams"))
|
|
61
|
+
manifest_lead_owned = _list_value(manifest.get("leadOwned"))
|
|
62
|
+
manifest_read_only = _list_value(manifest.get("readOnly"))
|
|
63
|
+
manifest_forbidden = _list_value(manifest.get("forbiddenWrites"))
|
|
64
|
+
workstream_paths = {
|
|
65
|
+
"readOnly": [
|
|
66
|
+
path
|
|
67
|
+
for workstream in workstreams
|
|
68
|
+
if isinstance(workstream, dict)
|
|
69
|
+
for path in _list_value(workstream.get("readOnly"))
|
|
70
|
+
if isinstance(path, str)
|
|
71
|
+
],
|
|
72
|
+
"forbiddenWrites": [
|
|
73
|
+
path
|
|
74
|
+
for workstream in workstreams
|
|
75
|
+
if isinstance(workstream, dict)
|
|
76
|
+
for path in _list_value(workstream.get("forbiddenWrites"))
|
|
77
|
+
if isinstance(path, str)
|
|
78
|
+
],
|
|
79
|
+
"leadOwned": [
|
|
80
|
+
item["path"]
|
|
81
|
+
for workstream in workstreams
|
|
82
|
+
if isinstance(workstream, dict)
|
|
83
|
+
for item in _list_value(workstream.get("leadOwned"))
|
|
84
|
+
if isinstance(item, dict) and isinstance(item.get("path"), str)
|
|
85
|
+
],
|
|
86
|
+
}
|
|
46
87
|
return {
|
|
47
88
|
"manifestPath": _repo_relative(manifest_path),
|
|
48
|
-
"planArtifactRoot":
|
|
89
|
+
"planArtifactRoot": normalize_authority_path(plan_root, label="planArtifactRoot")
|
|
90
|
+
if isinstance(plan_root, str)
|
|
91
|
+
else None,
|
|
49
92
|
"leadOwned": [
|
|
50
|
-
|
|
51
|
-
for item in
|
|
93
|
+
normalize_authority_path(item["path"], label="leadOwned path")
|
|
94
|
+
for item in manifest_lead_owned
|
|
52
95
|
if isinstance(item, dict) and isinstance(item.get("path"), str)
|
|
53
|
-
]
|
|
96
|
+
]
|
|
97
|
+
+ [normalize_authority_path(path, label="workstream leadOwned path") for path in workstream_paths["leadOwned"]],
|
|
54
98
|
"readOnly": [
|
|
55
|
-
|
|
56
|
-
for path in
|
|
99
|
+
normalize_authority_path(path, label="readOnly path")
|
|
100
|
+
for path in manifest_read_only
|
|
57
101
|
if isinstance(path, str)
|
|
58
|
-
]
|
|
102
|
+
]
|
|
103
|
+
+ [normalize_authority_path(path, label="workstream readOnly path") for path in workstream_paths["readOnly"]],
|
|
59
104
|
"forbiddenWrites": [
|
|
60
|
-
|
|
61
|
-
for path in
|
|
105
|
+
normalize_authority_path(path, label="forbiddenWrites path")
|
|
106
|
+
for path in manifest_forbidden
|
|
62
107
|
if isinstance(path, str)
|
|
108
|
+
]
|
|
109
|
+
+ [
|
|
110
|
+
normalize_authority_path(path, label="workstream forbiddenWrites path")
|
|
111
|
+
for path in workstream_paths["forbiddenWrites"]
|
|
63
112
|
],
|
|
64
113
|
"workstreams": {
|
|
65
114
|
workstream["id"]: [
|
|
66
|
-
|
|
67
|
-
for path in workstream.get("writes"
|
|
115
|
+
normalize_authority_path(path, label="workstream write path")
|
|
116
|
+
for path in _list_value(workstream.get("writes"))
|
|
68
117
|
if isinstance(path, str)
|
|
69
118
|
]
|
|
70
|
-
for workstream in
|
|
119
|
+
for workstream in workstreams
|
|
71
120
|
if isinstance(workstream, dict) and isinstance(workstream.get("id"), str)
|
|
72
121
|
},
|
|
73
122
|
}
|
|
@@ -79,21 +128,21 @@ def _classify_path(path: str, classifiers: dict[str, Any]) -> dict[str, Any]:
|
|
|
79
128
|
if isinstance(manifest_path, str) and normalized == manifest_path:
|
|
80
129
|
return _entry(normalized, "plan-authority", ["controller"])
|
|
81
130
|
plan_root = classifiers["planArtifactRoot"]
|
|
82
|
-
if isinstance(plan_root, str) and
|
|
131
|
+
if isinstance(plan_root, str) and is_under_authority_path(normalized, plan_root):
|
|
83
132
|
return _entry(normalized, "plan-authority", ["controller"])
|
|
84
|
-
lead = [root for root in classifiers["leadOwned"] if
|
|
133
|
+
lead = [root for root in classifiers["leadOwned"] if is_under_authority_path(normalized, root)]
|
|
85
134
|
if lead:
|
|
86
135
|
return _entry(normalized, "lead-owned", ["controller"], matched=lead)
|
|
87
|
-
forbidden = [root for root in classifiers["forbiddenWrites"] if
|
|
136
|
+
forbidden = [root for root in classifiers["forbiddenWrites"] if is_under_authority_path(normalized, root)]
|
|
88
137
|
if forbidden:
|
|
89
138
|
return _entry(normalized, "forbidden", [], matched=forbidden)
|
|
90
|
-
read_only = [root for root in classifiers["readOnly"] if
|
|
139
|
+
read_only = [root for root in classifiers["readOnly"] if is_under_authority_path(normalized, root)]
|
|
91
140
|
if read_only:
|
|
92
141
|
return _entry(normalized, "read-only", [], matched=read_only)
|
|
93
142
|
owners = [
|
|
94
143
|
owner
|
|
95
144
|
for owner, roots in classifiers["workstreams"].items()
|
|
96
|
-
if any(
|
|
145
|
+
if any(is_under_authority_path(normalized, root) for root in roots)
|
|
97
146
|
]
|
|
98
147
|
if owners:
|
|
99
148
|
return _entry(normalized, "workstream-owned", owners)
|
|
@@ -112,8 +161,15 @@ def _entry(
|
|
|
112
161
|
value["matched"] = matched
|
|
113
162
|
return value
|
|
114
163
|
|
|
115
|
-
|
|
164
|
+
|
|
165
|
+
def _repo_relative(path: Path | None) -> str | None:
|
|
166
|
+
if path is None:
|
|
167
|
+
return None
|
|
116
168
|
try:
|
|
117
169
|
return normalize_repo_path(str(path.resolve().relative_to(Path.cwd().resolve())))
|
|
118
170
|
except ValueError:
|
|
119
171
|
return None
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def _list_value(value: Any) -> list[Any]:
|
|
175
|
+
return value if isinstance(value, list) else []
|