agent-lifecycle-kit 2.10.0__tar.gz → 2.11.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-2.10.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.11.0}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/README.md +2 -2
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/pyproject.toml +1 -1
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/_version.py +1 -1
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +285 -5
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_planning.py +119 -1
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +15 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/planning_parsers.py +2 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/compiler/__init__.py +3 -0
- agent_lifecycle_kit-2.11.0/src/agent_lifecycle/compiler/phase_packets.py +474 -0
- agent_lifecycle_kit-2.11.0/src/agent_lifecycle/contracts/phase_packet_schemas.py +264 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/schemas.py +6 -6
- agent_lifecycle_kit-2.11.0/src/agent_lifecycle/contracts/validation_ladder_schemas.py +154 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/completeness.py +9 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/manifest_contract.py +53 -6
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/__init__.py +22 -0
- agent_lifecycle_kit-2.11.0/src/agent_lifecycle/quality/validation_ladder.py +682 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/finalization.py +149 -64
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +4 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/LICENSE +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/NOTICE +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/README.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/manifest.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/setup.cfg +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/__main__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/implementation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/ownership.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/package.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/changesets/git.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/adapter.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/errors.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/followup.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/main.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/parsers.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/policy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/project.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/research.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/start.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/strategy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/cli/worktree.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/external_memory.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/profiles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/rendering.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/errors.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/paths.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/followup/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/followup/records.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/freeze/locks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/goal/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/goal/records.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/goal/view.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/planning.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/costs.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/migration/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/continuity.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/deltas.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/templates.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/tiering.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/traceability.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/planning/verification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/apply.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/proposals.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/domain_language.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/guidance.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/merge.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/presets.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/principles.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/project/profile.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/py.typed +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/packs.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/attention.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/research/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/research/evidence.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/research/provenance.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/research/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/resources.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/runner/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/runner/core.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/specification/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/specification/validation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/controller.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/events.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/gates.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/leases.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/query.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/run.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/state.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
- {agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle_kit.egg-info/top_level.txt +0 -0
{agent_lifecycle_kit-2.10.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.11.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-lifecycle-kit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.11.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==2.
|
|
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.11.0`, and common `agent-lifecycle version` errors.
|
|
47
47
|
|
|
48
48
|
For a quick start, run:
|
|
49
49
|
|
|
@@ -69,7 +69,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
69
69
|
- The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
|
|
70
70
|
- Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
|
|
71
71
|
- Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
|
|
72
|
-
- For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md),
|
|
72
|
+
- For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
|
|
73
73
|
## What it gives you
|
|
74
74
|
- A finish-oriented lifecycle: plan, execute, review, and prove the result.
|
|
75
75
|
- One process for different CLIs: adapter-specific commands stay outside the
|
|
@@ -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==2.
|
|
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.11.0`, and common `agent-lifecycle version` errors.
|
|
25
25
|
|
|
26
26
|
For a quick start, run:
|
|
27
27
|
|
|
@@ -47,7 +47,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
47
47
|
- The [system architecture](docs/architecture/system-architecture.md) page explains how the project is organized, and [project comparison](docs/reference/project-comparison.md) shows how it differs from similar tools.
|
|
48
48
|
- Multiple-agent boundaries, workflow configuration, model choice, prompts, timeouts and retries are described in [workflow customization and execution controls](docs/reference/workflow-customization.md).
|
|
49
49
|
- Create a local project profile with `agent-lifecycle project profile init`; see [project workflow profile](docs/reference/project-workflow-profile.md). Explain the selected profile, plan constraints and adapter capability lineage with [effective configuration](docs/reference/effective-configuration.md), [structured result qualification](docs/reference/structured-result-qualification.md) and [adapter action evidence](docs/reference/adapter-action-evidence.md). Add optional project-owned architecture and dependency evidence with [external verification checks](docs/reference/external-verification-checks.md), run longer specialized adapter work through [bounded external tool jobs](docs/reference/external-tool-jobs.md), track bounded terminology with [project domain language](docs/reference/project-domain-language.md), coordinate several runs with the read-only [multi-run attention view](docs/reference/multi-run-attention-view.md), or use the optional [security analysis profile](docs/reference/security-analysis-profile.md) for untrusted findings and independently verified remediation.
|
|
50
|
-
- For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md),
|
|
50
|
+
- For long sessions, use [context checkpoints and compaction recovery](docs/reference/context-checkpoints.md). They preserve a bounded local continuation package without changing plan authority. Measure phases and releases with [release accounting](docs/reference/release-accounting.md), follow the bounded [phase-to-session handoff](docs/guides/phase-session-handoff.md) with [phase packets](docs/reference/phase-packets.md), and choose focused checks through the read-only [validation ladder](docs/reference/validation-ladder.md).
|
|
51
51
|
## What it gives you
|
|
52
52
|
- A finish-oriented lifecycle: plan, execute, review, and prove the result.
|
|
53
53
|
- One process for different CLIs: adapter-specific commands stay outside the
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agent-lifecycle-kit"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.11.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"
|
|
@@ -21,7 +21,15 @@ from agent_lifecycle.cli.progress_hooks import (
|
|
|
21
21
|
maybe_emit_workflow_progress_hook,
|
|
22
22
|
validate_workflow_progress_hook_request,
|
|
23
23
|
)
|
|
24
|
-
from agent_lifecycle.
|
|
24
|
+
from agent_lifecycle.compiler import build_phase_packet
|
|
25
|
+
from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object, write_json_create
|
|
26
|
+
from agent_lifecycle.contracts.phase_packet_schemas import (
|
|
27
|
+
IMPLEMENTATION_PAYLOAD_SCHEMA,
|
|
28
|
+
REMEDIATION_PAYLOAD_SCHEMA,
|
|
29
|
+
TASK_AUDIT_PAYLOAD_SCHEMA,
|
|
30
|
+
)
|
|
31
|
+
from agent_lifecycle.freeze import verify_plan_lock
|
|
32
|
+
from agent_lifecycle.quality import build_validation_selection
|
|
25
33
|
from agent_lifecycle.workflow import (
|
|
26
34
|
accept_task,
|
|
27
35
|
adopt_plan,
|
|
@@ -92,6 +100,8 @@ def _dispatch_workflow(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
92
100
|
return status(state_path, full=args.full)
|
|
93
101
|
if args.workflow_command == "next":
|
|
94
102
|
return next_action(status(state_path, full=True)["state"])
|
|
103
|
+
if args.workflow_command == "validation-select":
|
|
104
|
+
return _dispatch_validation_select(args, state_path)
|
|
95
105
|
if args.workflow_command == "run":
|
|
96
106
|
validate_workflow_progress_hook_request(args, command="workflow run")
|
|
97
107
|
payload = run_workflow_step(
|
|
@@ -184,6 +194,7 @@ def _dispatch_workflow(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
184
194
|
follow_up_register_path=args.follow_up_register,
|
|
185
195
|
completion_gate_receipt_path=args.completion_gate_receipt,
|
|
186
196
|
final_implementation_audit_path=args.final_implementation_audit,
|
|
197
|
+
release_full_receipt_path=args.release_full_receipt,
|
|
187
198
|
review_mesh_quorum_paths=args.review_mesh_quorum,
|
|
188
199
|
reason=args.reason,
|
|
189
200
|
)
|
|
@@ -194,10 +205,7 @@ def _dispatch_workflow(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
194
205
|
|
|
195
206
|
def _dispatch_workflow_task(args: argparse.Namespace, state_path: Path) -> dict[str, Any]:
|
|
196
207
|
if args.workflow_command == "task-snapshot":
|
|
197
|
-
|
|
198
|
-
if args.out:
|
|
199
|
-
write_json_create(Path(args.out), payload)
|
|
200
|
-
return payload
|
|
208
|
+
return _dispatch_task_snapshot(args, state_path)
|
|
201
209
|
if args.workflow_command == "block":
|
|
202
210
|
return block_run(
|
|
203
211
|
state_path,
|
|
@@ -323,6 +331,278 @@ def _dispatch_workflow_task(args: argparse.Namespace, state_path: Path) -> dict[
|
|
|
323
331
|
raise LifecycleError("command-not-implemented", "workflow command is not implemented")
|
|
324
332
|
|
|
325
333
|
|
|
334
|
+
def _dispatch_task_snapshot(args: argparse.Namespace, state_path: Path) -> dict[str, Any]:
|
|
335
|
+
packet_args = (args.manifest, args.lock, args.phase_packet_purpose, args.phase_packet_out)
|
|
336
|
+
packet_requested = any(value is not None for value in packet_args)
|
|
337
|
+
if packet_requested and not all(value is not None for value in packet_args):
|
|
338
|
+
raise LifecycleError(
|
|
339
|
+
"phase-packet-required-fact-missing",
|
|
340
|
+
"task snapshot phase packet requires --manifest, --lock, --phase-packet-purpose and --phase-packet-out",
|
|
341
|
+
)
|
|
342
|
+
state = read_json_object(state_path, label="workflow state") if packet_requested else None
|
|
343
|
+
task = _state_task(state, args.task) if isinstance(state, dict) else None
|
|
344
|
+
if args.phase_packet_purpose == "TASK_AUDIT" and isinstance(task, dict) and task.get("status") == "VERIFYING":
|
|
345
|
+
assert state is not None
|
|
346
|
+
payload = _result_bound_task_change_set(state, task)
|
|
347
|
+
else:
|
|
348
|
+
payload = build_current_task_change_set(state_path, task_id=args.task)
|
|
349
|
+
if args.out:
|
|
350
|
+
write_json_create(Path(args.out), payload)
|
|
351
|
+
if packet_requested:
|
|
352
|
+
assert state is not None
|
|
353
|
+
manifest = read_json_object(Path(args.manifest), label="plan manifest")
|
|
354
|
+
lock = read_json_object(Path(args.lock), label="plan lock")
|
|
355
|
+
verify_plan_lock(manifest, lock)
|
|
356
|
+
packet = _build_task_phase_packet(
|
|
357
|
+
manifest=manifest,
|
|
358
|
+
lock=lock,
|
|
359
|
+
state=state,
|
|
360
|
+
task_id=args.task,
|
|
361
|
+
purpose=args.phase_packet_purpose,
|
|
362
|
+
snapshot=payload,
|
|
363
|
+
)
|
|
364
|
+
write_json_create(Path(args.phase_packet_out), packet)
|
|
365
|
+
return payload
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
def _result_bound_task_change_set(state: dict[str, Any], task: dict[str, Any]) -> dict[str, Any]:
|
|
369
|
+
evidence = task.get("resultChangeSetEvidence")
|
|
370
|
+
if not isinstance(evidence, dict):
|
|
371
|
+
raise LifecycleError("phase-packet-required-fact-missing", "task audit result change-set evidence is missing")
|
|
372
|
+
required = ("provider", "baselineSha", "fileSetHash", "diffHash", "snapshotHash")
|
|
373
|
+
if any(not isinstance(evidence.get(field), str) or not evidence[field] for field in required):
|
|
374
|
+
raise LifecycleError(
|
|
375
|
+
"phase-packet-required-fact-missing", "task audit result change-set evidence is incomplete"
|
|
376
|
+
)
|
|
377
|
+
return {
|
|
378
|
+
**evidence,
|
|
379
|
+
"runId": state.get("runId"),
|
|
380
|
+
"packageId": state.get("packageId"),
|
|
381
|
+
"taskId": task.get("id"),
|
|
382
|
+
"attempt": task.get("attempt"),
|
|
383
|
+
"planDigest": state.get("planDigest"),
|
|
384
|
+
"sourceRevision": state.get("sourceRevision"),
|
|
385
|
+
"readOnly": True,
|
|
386
|
+
"stateWritten": False,
|
|
387
|
+
"modelCallsStarted": False,
|
|
388
|
+
"productionPromotionClaimed": False,
|
|
389
|
+
"claim": {
|
|
390
|
+
"schemaVersion": "agent-task-change-set-claim.v1",
|
|
391
|
+
**{key: evidence[key] for key in required},
|
|
392
|
+
},
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
def _dispatch_validation_select(args: argparse.Namespace, state_path: Path) -> dict[str, Any]:
|
|
397
|
+
state = read_json_object(state_path, label="workflow state")
|
|
398
|
+
task = _state_task(state, args.task)
|
|
399
|
+
snapshot = read_json_object(Path(args.snapshot), label="task snapshot")
|
|
400
|
+
if snapshot.get("taskId") != task.get("id"):
|
|
401
|
+
raise LifecycleError("task-snapshot-lineage-mismatch", "task snapshot does not match the requested task")
|
|
402
|
+
payload = build_validation_selection(
|
|
403
|
+
manifest=read_json_object(Path(args.manifest), label="plan manifest"),
|
|
404
|
+
lock=read_json_object(Path(args.lock), label="plan lock"),
|
|
405
|
+
state=state,
|
|
406
|
+
snapshot=snapshot,
|
|
407
|
+
repository_root=Path.cwd(),
|
|
408
|
+
)
|
|
409
|
+
if args.out:
|
|
410
|
+
write_json_create(Path(args.out), payload)
|
|
411
|
+
return payload
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
def _build_task_phase_packet(
|
|
415
|
+
*,
|
|
416
|
+
manifest: dict[str, Any],
|
|
417
|
+
lock: dict[str, Any],
|
|
418
|
+
state: dict[str, Any],
|
|
419
|
+
task_id: str,
|
|
420
|
+
purpose: str,
|
|
421
|
+
snapshot: dict[str, Any],
|
|
422
|
+
) -> dict[str, Any]:
|
|
423
|
+
task = _state_task(state, task_id)
|
|
424
|
+
workstream = _manifest_workstream(manifest, task_id)
|
|
425
|
+
plan_digest = canonical_digest(manifest)
|
|
426
|
+
if state.get("planDigest") != plan_digest:
|
|
427
|
+
raise LifecycleError("phase-packet-required-fact-missing", "workflow state plan lineage is stale")
|
|
428
|
+
attempt = task.get("attempt")
|
|
429
|
+
if not isinstance(attempt, int) or isinstance(attempt, bool) or attempt < 1:
|
|
430
|
+
raise LifecycleError("phase-packet-required-fact-missing", "task attempt is required")
|
|
431
|
+
writes = _task_scope(manifest, workstream, task, "writes")
|
|
432
|
+
read_only = _task_scope(manifest, workstream, task, "readOnly")
|
|
433
|
+
forbidden = _task_scope(manifest, workstream, task, "forbiddenWrites")
|
|
434
|
+
acceptance = _task_acceptance(manifest, workstream)
|
|
435
|
+
evidence = _task_evidence(workstream)
|
|
436
|
+
active_blockers = _task_active_blockers(state, task)
|
|
437
|
+
payload = _task_phase_payload(
|
|
438
|
+
purpose=purpose,
|
|
439
|
+
manifest=manifest,
|
|
440
|
+
task=task,
|
|
441
|
+
task_id=task_id,
|
|
442
|
+
attempt=attempt,
|
|
443
|
+
snapshot=snapshot,
|
|
444
|
+
writes=writes,
|
|
445
|
+
read_only=read_only,
|
|
446
|
+
forbidden=forbidden,
|
|
447
|
+
acceptance=acceptance,
|
|
448
|
+
evidence=evidence,
|
|
449
|
+
active_blockers=active_blockers,
|
|
450
|
+
)
|
|
451
|
+
state_revision = state.get("stateRevision")
|
|
452
|
+
source_revision = state.get("sourceRevision")
|
|
453
|
+
if not isinstance(state_revision, int) or isinstance(state_revision, bool) or state_revision < 1:
|
|
454
|
+
raise LifecycleError("phase-packet-required-fact-missing", "workflow state revision is required")
|
|
455
|
+
if not isinstance(source_revision, str) or not source_revision:
|
|
456
|
+
raise LifecycleError("phase-packet-required-fact-missing", "workflow source revision is required")
|
|
457
|
+
return build_phase_packet(
|
|
458
|
+
purpose=purpose,
|
|
459
|
+
payload=payload,
|
|
460
|
+
plan_digest=plan_digest,
|
|
461
|
+
plan_lock_digest=canonical_digest(lock),
|
|
462
|
+
state_revision=state_revision,
|
|
463
|
+
source_revision=source_revision,
|
|
464
|
+
write_scope_digest=canonical_digest({"writes": writes, "readOnly": read_only, "forbiddenWrites": forbidden}),
|
|
465
|
+
acceptance_digest=canonical_digest(acceptance),
|
|
466
|
+
evidence_digest=canonical_digest(evidence),
|
|
467
|
+
active_blocker_ids=active_blockers,
|
|
468
|
+
)
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
def _task_phase_payload(
|
|
472
|
+
*,
|
|
473
|
+
purpose: str,
|
|
474
|
+
manifest: dict[str, Any],
|
|
475
|
+
task: dict[str, Any],
|
|
476
|
+
task_id: str,
|
|
477
|
+
attempt: int,
|
|
478
|
+
snapshot: dict[str, Any],
|
|
479
|
+
writes: list[str],
|
|
480
|
+
read_only: list[str],
|
|
481
|
+
forbidden: list[str],
|
|
482
|
+
acceptance: list[dict[str, Any]],
|
|
483
|
+
evidence: list[dict[str, Any]],
|
|
484
|
+
active_blockers: list[str],
|
|
485
|
+
) -> dict[str, Any]:
|
|
486
|
+
common = {
|
|
487
|
+
"taskId": task_id,
|
|
488
|
+
"attempt": attempt,
|
|
489
|
+
"writes": writes,
|
|
490
|
+
"readOnly": read_only,
|
|
491
|
+
"forbiddenWrites": forbidden,
|
|
492
|
+
"acceptanceCriteria": acceptance,
|
|
493
|
+
"activeBlockerIds": active_blockers,
|
|
494
|
+
}
|
|
495
|
+
if purpose == "IMPLEMENTATION":
|
|
496
|
+
packet = task.get("packet")
|
|
497
|
+
task_packet_digest = packet.get("sha256") if isinstance(packet, dict) else None
|
|
498
|
+
return {
|
|
499
|
+
"schemaVersion": IMPLEMENTATION_PAYLOAD_SCHEMA,
|
|
500
|
+
**common,
|
|
501
|
+
"taskPacketDigest": task_packet_digest,
|
|
502
|
+
"evidenceRequirements": evidence,
|
|
503
|
+
}
|
|
504
|
+
changed_paths = _task_strings(snapshot.get("changedFiles"))
|
|
505
|
+
if purpose == "TASK_AUDIT":
|
|
506
|
+
result = task.get("result")
|
|
507
|
+
result_digest = result.get("sha256") if isinstance(result, dict) else None
|
|
508
|
+
return {
|
|
509
|
+
"schemaVersion": TASK_AUDIT_PAYLOAD_SCHEMA,
|
|
510
|
+
**common,
|
|
511
|
+
"resultDigest": result_digest,
|
|
512
|
+
"changeSetDigest": snapshot.get("snapshotHash"),
|
|
513
|
+
"changedPaths": changed_paths,
|
|
514
|
+
"reviewRequirements": {
|
|
515
|
+
"independentRequired": True,
|
|
516
|
+
"minimumVerdict": "ACCEPTED",
|
|
517
|
+
"requiredReviewerIds": _required_reviewer_ids(task),
|
|
518
|
+
},
|
|
519
|
+
"evidenceReferences": [item["id"] for item in evidence],
|
|
520
|
+
}
|
|
521
|
+
if purpose != "REMEDIATION":
|
|
522
|
+
raise LifecycleError("phase-packet-required-fact-missing", "phase packet purpose is unsupported")
|
|
523
|
+
history = task.get("attemptHistory")
|
|
524
|
+
prior = history[-1] if isinstance(history, list) and history and isinstance(history[-1], dict) else None
|
|
525
|
+
prior_result = prior.get("result") if isinstance(prior, dict) else None
|
|
526
|
+
prior_review = prior.get("review") if isinstance(prior, dict) else None
|
|
527
|
+
return {
|
|
528
|
+
"schemaVersion": REMEDIATION_PAYLOAD_SCHEMA,
|
|
529
|
+
**common,
|
|
530
|
+
"priorResultDigest": prior_result.get("sha256") if isinstance(prior_result, dict) else None,
|
|
531
|
+
"priorReviewDigest": prior_review.get("sha256") if isinstance(prior_review, dict) else None,
|
|
532
|
+
"changedPaths": changed_paths,
|
|
533
|
+
"openFindingIds": _task_strings(task.get("remediationFindingIds")),
|
|
534
|
+
"remainingAttempts": max(1, _max_task_attempts(manifest) - attempt + 1),
|
|
535
|
+
"evidenceRequirements": evidence,
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
def _state_task(state: dict[str, Any], task_id: str) -> dict[str, Any]:
|
|
540
|
+
tasks = state.get("tasks")
|
|
541
|
+
if isinstance(tasks, list):
|
|
542
|
+
for task in tasks:
|
|
543
|
+
if isinstance(task, dict) and task.get("id") == task_id:
|
|
544
|
+
return task
|
|
545
|
+
raise LifecycleError("task-not-found", "workflow task does not exist", {"taskId": task_id})
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
def _manifest_workstream(manifest: dict[str, Any], task_id: str) -> dict[str, Any]:
|
|
549
|
+
workstreams = manifest.get("workstreams")
|
|
550
|
+
if isinstance(workstreams, list):
|
|
551
|
+
for workstream in workstreams:
|
|
552
|
+
if isinstance(workstream, dict) and workstream.get("id") == task_id:
|
|
553
|
+
return workstream
|
|
554
|
+
raise LifecycleError("phase-packet-required-fact-missing", "manifest workstream is missing", {"taskId": task_id})
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
def _task_acceptance(manifest: dict[str, Any], workstream: dict[str, Any]) -> list[dict[str, Any]]:
|
|
558
|
+
acceptance = manifest.get("acceptance")
|
|
559
|
+
criteria = acceptance.get("criteria") if isinstance(acceptance, dict) else []
|
|
560
|
+
criteria = criteria if isinstance(criteria, list) else []
|
|
561
|
+
by_id = {item.get("id"): item for item in criteria if isinstance(item, dict) and isinstance(item.get("id"), str)}
|
|
562
|
+
return [dict(by_id.get(item, {"id": item})) for item in _task_strings(workstream.get("acceptanceIds"))]
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
def _task_evidence(workstream: dict[str, Any]) -> list[dict[str, Any]]:
|
|
566
|
+
return [{"id": item, "required": True} for item in _task_strings(workstream.get("evidenceIds"))]
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
def _task_scope(manifest: dict[str, Any], workstream: dict[str, Any], task: dict[str, Any], field: str) -> list[str]:
|
|
570
|
+
return sorted(
|
|
571
|
+
set(_task_strings(manifest.get(field)) + _task_strings(workstream.get(field)) + _task_strings(task.get(field)))
|
|
572
|
+
)
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
def _task_active_blockers(state: dict[str, Any], task: dict[str, Any]) -> list[str]:
|
|
576
|
+
blockers = _task_strings(task.get("remediationFindingIds"))
|
|
577
|
+
blocker = state.get("blocker")
|
|
578
|
+
if isinstance(blocker, dict):
|
|
579
|
+
value = blocker.get("id") or blocker.get("code")
|
|
580
|
+
if isinstance(value, str) and value:
|
|
581
|
+
blockers.append(value)
|
|
582
|
+
return sorted(set(blockers))
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
def _required_reviewer_ids(task: dict[str, Any]) -> list[str]:
|
|
586
|
+
reviewer = task.get("reviewer")
|
|
587
|
+
if isinstance(reviewer, str) and reviewer:
|
|
588
|
+
return [reviewer]
|
|
589
|
+
if isinstance(reviewer, dict) and isinstance(reviewer.get("id"), str) and reviewer["id"]:
|
|
590
|
+
return [reviewer["id"]]
|
|
591
|
+
return []
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
def _max_task_attempts(manifest: dict[str, Any]) -> int:
|
|
595
|
+
orchestration = manifest.get("orchestration")
|
|
596
|
+
value = orchestration.get("maxTaskAttempts") if isinstance(orchestration, dict) else None
|
|
597
|
+
return value if isinstance(value, int) and not isinstance(value, bool) and value > 0 else 1
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
def _task_strings(value: Any) -> list[str]:
|
|
601
|
+
if not isinstance(value, list):
|
|
602
|
+
return []
|
|
603
|
+
return sorted({item for item in value if isinstance(item, str) and item})
|
|
604
|
+
|
|
605
|
+
|
|
326
606
|
def _require_args(args: argparse.Namespace, names: list[str], *, mode: str) -> None:
|
|
327
607
|
missing = [name.replace("_", "-") for name in names if not getattr(args, name, None)]
|
|
328
608
|
if missing:
|
|
@@ -7,9 +7,10 @@ from pathlib import Path
|
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
9
|
from agent_lifecycle.cli.plan_lock_commands import create_reviewed_plan_lock
|
|
10
|
-
from agent_lifecycle.compiler import compile_small_model_packets, compile_task_packets
|
|
10
|
+
from agent_lifecycle.compiler import build_phase_packet, compile_small_model_packets, compile_task_packets
|
|
11
11
|
from agent_lifecycle.contracts import (
|
|
12
12
|
LifecycleError,
|
|
13
|
+
canonical_digest,
|
|
13
14
|
read_json_object,
|
|
14
15
|
write_json_create,
|
|
15
16
|
)
|
|
@@ -18,6 +19,7 @@ from agent_lifecycle.contracts.finding_check_schemas import (
|
|
|
18
19
|
validate_finding_check_evidence,
|
|
19
20
|
validate_finding_check_proposal,
|
|
20
21
|
)
|
|
22
|
+
from agent_lifecycle.contracts.phase_packet_schemas import PLANNING_HANDOFF_PAYLOAD_SCHEMA
|
|
21
23
|
from agent_lifecycle.freeze import verify_plan_lock
|
|
22
24
|
from agent_lifecycle.planning import (
|
|
23
25
|
build_plan_delta,
|
|
@@ -181,6 +183,25 @@ def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
181
183
|
)
|
|
182
184
|
if args.out:
|
|
183
185
|
write_json_create(Path(args.out), payload)
|
|
186
|
+
if args.phase_packet_out:
|
|
187
|
+
if not args.snapshot or not args.lock:
|
|
188
|
+
raise LifecycleError(
|
|
189
|
+
"phase-packet-required-fact-missing",
|
|
190
|
+
"plan handoff phase packet requires --snapshot and --lock",
|
|
191
|
+
)
|
|
192
|
+
lock = read_json_object(Path(args.lock), label="plan lock")
|
|
193
|
+
verify_plan_lock(manifest, lock)
|
|
194
|
+
packet = _build_planning_handoff_phase_packet(
|
|
195
|
+
manifest,
|
|
196
|
+
lock,
|
|
197
|
+
handoff_snapshot,
|
|
198
|
+
selected_workstream_ids=[
|
|
199
|
+
item["id"]
|
|
200
|
+
for item in payload.get("workstreams", [])
|
|
201
|
+
if isinstance(item, dict) and isinstance(item.get("id"), str)
|
|
202
|
+
],
|
|
203
|
+
)
|
|
204
|
+
write_json_create(Path(args.phase_packet_out), packet)
|
|
184
205
|
return payload
|
|
185
206
|
if args.plan_command == "delta":
|
|
186
207
|
|
|
@@ -215,6 +236,103 @@ def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
215
236
|
raise LifecycleError("command-not-implemented", "plan command is not implemented")
|
|
216
237
|
|
|
217
238
|
|
|
239
|
+
def _build_planning_handoff_phase_packet(
|
|
240
|
+
manifest: dict[str, Any],
|
|
241
|
+
lock: dict[str, Any],
|
|
242
|
+
snapshot: dict[str, Any] | None,
|
|
243
|
+
*,
|
|
244
|
+
selected_workstream_ids: list[str],
|
|
245
|
+
) -> dict[str, Any]:
|
|
246
|
+
if not isinstance(snapshot, dict):
|
|
247
|
+
raise LifecycleError("phase-packet-required-fact-missing", "plan handoff snapshot is required")
|
|
248
|
+
all_workstreams = [item for item in manifest.get("workstreams", []) if isinstance(item, dict)]
|
|
249
|
+
by_id = {item.get("id"): item for item in all_workstreams if isinstance(item.get("id"), str)}
|
|
250
|
+
selected: list[dict[str, Any]] = []
|
|
251
|
+
for workstream_id in selected_workstream_ids:
|
|
252
|
+
workstream = by_id.get(workstream_id)
|
|
253
|
+
if not isinstance(workstream, dict):
|
|
254
|
+
raise LifecycleError(
|
|
255
|
+
"phase-packet-required-fact-missing",
|
|
256
|
+
"plan handoff selected an unknown workstream",
|
|
257
|
+
{"workstreamId": workstream_id},
|
|
258
|
+
)
|
|
259
|
+
acceptance = _phase_acceptance(manifest, workstream)
|
|
260
|
+
evidence = _phase_evidence(workstream)
|
|
261
|
+
selected.append(
|
|
262
|
+
{
|
|
263
|
+
"id": workstream_id,
|
|
264
|
+
"dependsOn": _string_list(workstream.get("dependsOn")),
|
|
265
|
+
"writes": _string_list(workstream.get("writes")),
|
|
266
|
+
"readOnly": _scope_list(manifest, workstream, "readOnly"),
|
|
267
|
+
"forbiddenWrites": _scope_list(manifest, workstream, "forbiddenWrites"),
|
|
268
|
+
"acceptanceCriteria": acceptance,
|
|
269
|
+
"evidenceRequirements": evidence,
|
|
270
|
+
"activeBlockerIds": _string_list(workstream.get("activeBlockerIds")),
|
|
271
|
+
}
|
|
272
|
+
)
|
|
273
|
+
payload = {
|
|
274
|
+
"schemaVersion": PLANNING_HANDOFF_PAYLOAD_SCHEMA,
|
|
275
|
+
"workstreams": selected,
|
|
276
|
+
"dependencyEdges": [
|
|
277
|
+
{"from": dependency, "to": item["id"]} for item in selected for dependency in item["dependsOn"]
|
|
278
|
+
],
|
|
279
|
+
}
|
|
280
|
+
base_revision = manifest.get("baseRevision")
|
|
281
|
+
source_revision = None
|
|
282
|
+
if isinstance(base_revision, dict):
|
|
283
|
+
source_revision = base_revision.get("sha") or base_revision.get("ref")
|
|
284
|
+
if not isinstance(source_revision, str) or not source_revision:
|
|
285
|
+
source_revision = snapshot.get("sourceDigest")
|
|
286
|
+
if not isinstance(source_revision, str) or not source_revision:
|
|
287
|
+
raise LifecycleError("phase-packet-required-fact-missing", "plan handoff source revision is required")
|
|
288
|
+
acceptance = [criterion for item in selected for criterion in item["acceptanceCriteria"]]
|
|
289
|
+
evidence = [requirement for item in selected for requirement in item["evidenceRequirements"]]
|
|
290
|
+
blockers = [blocker for item in selected for blocker in item["activeBlockerIds"]]
|
|
291
|
+
scopes = [
|
|
292
|
+
{
|
|
293
|
+
"id": item["id"],
|
|
294
|
+
"writes": item["writes"],
|
|
295
|
+
"readOnly": item["readOnly"],
|
|
296
|
+
"forbiddenWrites": item["forbiddenWrites"],
|
|
297
|
+
}
|
|
298
|
+
for item in selected
|
|
299
|
+
]
|
|
300
|
+
return build_phase_packet(
|
|
301
|
+
purpose="PLANNING_HANDOFF",
|
|
302
|
+
payload=payload,
|
|
303
|
+
plan_digest=canonical_digest(manifest),
|
|
304
|
+
plan_lock_digest=canonical_digest(lock),
|
|
305
|
+
state_revision=None,
|
|
306
|
+
source_revision=source_revision,
|
|
307
|
+
write_scope_digest=canonical_digest(scopes),
|
|
308
|
+
acceptance_digest=canonical_digest(acceptance),
|
|
309
|
+
evidence_digest=canonical_digest(evidence),
|
|
310
|
+
active_blocker_ids=blockers,
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
def _phase_acceptance(manifest: dict[str, Any], workstream: dict[str, Any]) -> list[dict[str, Any]]:
|
|
315
|
+
acceptance = manifest.get("acceptance")
|
|
316
|
+
criteria = acceptance.get("criteria") if isinstance(acceptance, dict) else []
|
|
317
|
+
criteria = criteria if isinstance(criteria, list) else []
|
|
318
|
+
by_id = {item.get("id"): item for item in criteria if isinstance(item, dict) and isinstance(item.get("id"), str)}
|
|
319
|
+
return [dict(by_id.get(item, {"id": item})) for item in _string_list(workstream.get("acceptanceIds"))]
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def _phase_evidence(workstream: dict[str, Any]) -> list[dict[str, Any]]:
|
|
323
|
+
return [{"id": item, "required": True} for item in _string_list(workstream.get("evidenceIds"))]
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
def _scope_list(manifest: dict[str, Any], workstream: dict[str, Any], field: str) -> list[str]:
|
|
327
|
+
return sorted(set(_string_list(manifest.get(field)) + _string_list(workstream.get(field))))
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
def _string_list(value: Any) -> list[str]:
|
|
331
|
+
if not isinstance(value, list):
|
|
332
|
+
return []
|
|
333
|
+
return sorted({item for item in value if isinstance(item, str) and item})
|
|
334
|
+
|
|
335
|
+
|
|
218
336
|
def _dispatch_finding_check(args: argparse.Namespace) -> dict[str, Any]:
|
|
219
337
|
def read(path: str, label: str) -> dict[str, Any]:
|
|
220
338
|
return read_json_object(Path(path), label=label)
|
|
@@ -680,6 +680,20 @@ def _add_workflow_task_parsers(
|
|
|
680
680
|
workflow_snapshot.add_argument("--state", required=True)
|
|
681
681
|
workflow_snapshot.add_argument("--task", required=True)
|
|
682
682
|
workflow_snapshot.add_argument("--out")
|
|
683
|
+
workflow_snapshot.add_argument("--manifest")
|
|
684
|
+
workflow_snapshot.add_argument("--lock")
|
|
685
|
+
workflow_snapshot.add_argument(
|
|
686
|
+
"--phase-packet-purpose",
|
|
687
|
+
choices=["IMPLEMENTATION", "TASK_AUDIT", "REMEDIATION"],
|
|
688
|
+
)
|
|
689
|
+
workflow_snapshot.add_argument("--phase-packet-out")
|
|
690
|
+
validation_select = workflow_sub.add_parser("validation-select")
|
|
691
|
+
validation_select.add_argument("--state", required=True)
|
|
692
|
+
validation_select.add_argument("--task", required=True)
|
|
693
|
+
validation_select.add_argument("--manifest", required=True)
|
|
694
|
+
validation_select.add_argument("--lock", required=True)
|
|
695
|
+
validation_select.add_argument("--snapshot", required=True)
|
|
696
|
+
validation_select.add_argument("--out")
|
|
683
697
|
workflow_budget = workflow_sub.add_parser("budget-decision")
|
|
684
698
|
workflow_budget.add_argument("--state", required=True)
|
|
685
699
|
workflow_budget.add_argument("--task", required=True)
|
|
@@ -764,6 +778,7 @@ def _add_workflow_review_parsers(
|
|
|
764
778
|
workflow_finalize.add_argument("--follow-up-register")
|
|
765
779
|
workflow_finalize.add_argument("--completion-gate-receipt")
|
|
766
780
|
workflow_finalize.add_argument("--final-implementation-audit")
|
|
781
|
+
workflow_finalize.add_argument("--release-full-receipt")
|
|
767
782
|
workflow_finalize.add_argument("--review-mesh-quorum", action="append", default=[])
|
|
768
783
|
workflow_finalize.add_argument("--reason", required=True)
|
|
769
784
|
add_progress_hook_args(workflow_finalize)
|
|
@@ -51,6 +51,8 @@ def _add_plan_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentPar
|
|
|
51
51
|
handoff = plan_sub.add_parser("handoff")
|
|
52
52
|
handoff.add_argument("--manifest", required=True)
|
|
53
53
|
handoff.add_argument("--snapshot")
|
|
54
|
+
handoff.add_argument("--lock")
|
|
55
|
+
handoff.add_argument("--phase-packet-out")
|
|
54
56
|
handoff.add_argument("--max-workstreams", type=int, default=12)
|
|
55
57
|
handoff.add_argument("--target-tokens", type=int, default=4096)
|
|
56
58
|
handoff.add_argument("--out")
|
{agent_lifecycle_kit-2.10.0 → agent_lifecycle_kit-2.11.0}/src/agent_lifecycle/compiler/__init__.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Frozen plan to task packet compiler."""
|
|
2
2
|
|
|
3
3
|
from agent_lifecycle.compiler.output_contract import build_output_contract, validate_output_contract
|
|
4
|
+
from agent_lifecycle.compiler.phase_packets import build_phase_packet, validate_phase_packet
|
|
4
5
|
from agent_lifecycle.compiler.small_model_packets import (
|
|
5
6
|
build_small_model_output_contract,
|
|
6
7
|
build_small_model_packet,
|
|
@@ -11,10 +12,12 @@ from agent_lifecycle.compiler.task_packets import compile_task_packets
|
|
|
11
12
|
|
|
12
13
|
__all__ = [
|
|
13
14
|
"build_output_contract",
|
|
15
|
+
"build_phase_packet",
|
|
14
16
|
"build_small_model_output_contract",
|
|
15
17
|
"build_small_model_packet",
|
|
16
18
|
"compile_small_model_packets",
|
|
17
19
|
"compile_task_packets",
|
|
18
20
|
"validate_output_contract",
|
|
21
|
+
"validate_phase_packet",
|
|
19
22
|
"validate_small_model_output",
|
|
20
23
|
]
|