agent-lifecycle-kit 2.12.0__tar.gz → 2.13.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.12.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.13.0}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/README.md +2 -2
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/pyproject.toml +1 -1
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/_version.py +1 -1
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +24 -156
- agent_lifecycle_kit-2.13.0/src/agent_lifecycle/adapter_sessions/start_routing.py +255 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +81 -32
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +15 -53
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +101 -6
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/adapter.py +60 -17
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +32 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +4 -64
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/project.py +26 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/start.py +1 -0
- agent_lifecycle_kit-2.13.0/src/agent_lifecycle/cli/workflow_task_parsers.py +95 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +2 -1
- agent_lifecycle_kit-2.13.0/src/agent_lifecycle/policy/execution_strategy.py +695 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/continuation.py +76 -2
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +33 -13
- agent_lifecycle_kit-2.13.0/src/agent_lifecycle/workflow/task_start.py +550 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/task_transitions.py +13 -159
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +2 -0
- agent_lifecycle_kit-2.12.0/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -17
- agent_lifecycle_kit-2.12.0/src/agent_lifecycle/policy/execution_strategy.py +0 -332
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/LICENSE +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/NOTICE +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/README.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/manifest.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/setup.cfg +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/__main__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/delta.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/implementation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/ownership.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/package.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/git.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_planning.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/errors.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/followup.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/main.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/parsers.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/planning_parsers.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/policy.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/research.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/strategy.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/cli/worktree.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/external_memory.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/profiles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/rendering.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/errors.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/paths.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/followup/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/followup/records.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/locks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/records.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/goal/view.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/planning.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/costs.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/migration/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/completeness.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/continuity.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/deltas.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/manifest_contract.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/templates.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/tiering.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/traceability.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/planning/verification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/apply.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/proposals.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/domain_language.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/guidance.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/merge.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/presets.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/principles.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/project/profile.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/py.typed +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/packs.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/attention.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/evidence.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/provenance.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/research/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/resources.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/core.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/specification/validation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/controller.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/events.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/gates.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/leases.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/query.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/run.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/state.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
- {agent_lifecycle_kit-2.12.0 → agent_lifecycle_kit-2.13.0}/src/agent_lifecycle_kit.egg-info/top_level.txt +0 -0
{agent_lifecycle_kit-2.12.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.13.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.13.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.13.0`, and common `agent-lifecycle version` errors.
|
|
47
47
|
|
|
48
48
|
For a quick start, run:
|
|
49
49
|
|
|
@@ -77,7 +77,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
77
77
|
- Small-model friendly packets: compact context, clear next actions, and
|
|
78
78
|
deterministic checks for local or cheaper models.
|
|
79
79
|
- Quality without overengineering: one provider-neutral execution strategy
|
|
80
|
-
composes risk, model class, packet size, review and resource limits.
|
|
80
|
+
composes risk, model class, packet size, review and resource limits, then binds the decision to one exact task attempt without giving it workflow authority.
|
|
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.
|
|
@@ -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.13.0`, and common `agent-lifecycle version` errors.
|
|
25
25
|
|
|
26
26
|
For a quick start, run:
|
|
27
27
|
|
|
@@ -55,7 +55,7 @@ agent-lifecycle start --adapter <adapter-id> --file task.md
|
|
|
55
55
|
- Small-model friendly packets: compact context, clear next actions, and
|
|
56
56
|
deterministic checks for local or cheaper models.
|
|
57
57
|
- Quality without overengineering: one provider-neutral execution strategy
|
|
58
|
-
composes risk, model class, packet size, review and resource limits.
|
|
58
|
+
composes risk, model class, packet size, review and resource limits, then binds the decision to one exact task attempt without giving it workflow authority.
|
|
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.
|
|
@@ -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.13.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"
|
|
@@ -6,57 +6,10 @@ from pathlib import Path
|
|
|
6
6
|
from typing import Any
|
|
7
7
|
|
|
8
8
|
from agent_lifecycle.adapter_sessions.contracts import build_lifecycle_start_receipt
|
|
9
|
-
from agent_lifecycle.
|
|
10
|
-
from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object, sha256_hex
|
|
9
|
+
from agent_lifecycle.contracts import canonical_digest, sha256_hex
|
|
11
10
|
from agent_lifecycle.contracts.project_profile_schemas import GUIDED_ACTION_RECEIPT_SCHEMA
|
|
12
|
-
from agent_lifecycle.policy.execution_strategy import (
|
|
13
|
-
deferred_execution_strategy_summary,
|
|
14
|
-
execution_strategy_summary,
|
|
15
|
-
resolve_execution_strategy,
|
|
16
|
-
)
|
|
17
11
|
from agent_lifecycle.project.guidance import build_stage_guidance_projection
|
|
18
12
|
|
|
19
|
-
def _profile_plan_authority(
|
|
20
|
-
*,
|
|
21
|
-
task_file: Path | None,
|
|
22
|
-
task_text: str | None,
|
|
23
|
-
lock_path: Path | None,
|
|
24
|
-
) -> tuple[dict[str, Any] | None, dict[str, Any] | None]:
|
|
25
|
-
"""Read plan authority only from a structured frozen file input.
|
|
26
|
-
|
|
27
|
-
Raw text and Markdown remain draft-only and do not cause ALK to inspect
|
|
28
|
-
arbitrary project files. Frozen manifests and adapter run requests already
|
|
29
|
-
carry explicit plan paths, so their profile merge can enforce the same
|
|
30
|
-
plan/lock precedence as the atomic commands.
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
if task_file is None or task_text is not None or not task_file.is_file():
|
|
34
|
-
return None, None
|
|
35
|
-
try:
|
|
36
|
-
payload = read_json_object(task_file, label="project-profile start input")
|
|
37
|
-
except (LifecycleError, OSError):
|
|
38
|
-
return None, None
|
|
39
|
-
schema = payload.get("schemaVersion")
|
|
40
|
-
if schema == "agent-adapter-task-run-request.v1":
|
|
41
|
-
manifest_value = payload.get("manifest")
|
|
42
|
-
request_lock = payload.get("lock")
|
|
43
|
-
if not isinstance(manifest_value, str) or not manifest_value:
|
|
44
|
-
return None, None
|
|
45
|
-
manifest_path = Path(manifest_value)
|
|
46
|
-
lock_value = request_lock if isinstance(request_lock, str) and request_lock else None
|
|
47
|
-
selected_lock = Path(lock_value) if lock_value else lock_path
|
|
48
|
-
elif schema == "agent-plan-manifest.v1":
|
|
49
|
-
manifest_path = task_file
|
|
50
|
-
selected_lock = lock_path
|
|
51
|
-
else:
|
|
52
|
-
return None, None
|
|
53
|
-
try:
|
|
54
|
-
plan = read_json_object(manifest_path, label="project-profile plan manifest")
|
|
55
|
-
lock = read_json_object(selected_lock, label="project-profile plan lock") if selected_lock is not None else None
|
|
56
|
-
except (LifecycleError, OSError):
|
|
57
|
-
return None, None
|
|
58
|
-
return plan, lock
|
|
59
|
-
|
|
60
13
|
|
|
61
14
|
def _build_guided_action_receipt(
|
|
62
15
|
base: dict[str, Any],
|
|
@@ -110,12 +63,13 @@ def _guided_stage(base: dict[str, Any]) -> str:
|
|
|
110
63
|
"""Map the public start mode to the stable project-profile stage."""
|
|
111
64
|
|
|
112
65
|
mode = base.get("requestedMode")
|
|
113
|
-
|
|
66
|
+
stages: dict[str, str] = {
|
|
114
67
|
"research": "research",
|
|
115
68
|
"plan": "planning",
|
|
116
69
|
"review": "review",
|
|
117
70
|
"implement": "implementation",
|
|
118
|
-
}
|
|
71
|
+
}
|
|
72
|
+
return stages.get(mode, "intake") if isinstance(mode, str) else "intake"
|
|
119
73
|
|
|
120
74
|
|
|
121
75
|
def _effective_profile_summary(effective: dict[str, Any]) -> dict[str, Any]:
|
|
@@ -135,92 +89,6 @@ def _effective_profile_summary(effective: dict[str, Any]) -> dict[str, Any]:
|
|
|
135
89
|
}
|
|
136
90
|
|
|
137
91
|
|
|
138
|
-
def _strategy_summary_for_receipt(
|
|
139
|
-
receipt: dict[str, Any],
|
|
140
|
-
*,
|
|
141
|
-
adapter_id: str,
|
|
142
|
-
descriptor_path: Path | None,
|
|
143
|
-
requested_risk: str,
|
|
144
|
-
risk_policy_path: Path | None,
|
|
145
|
-
routing_profile_path: Path | None,
|
|
146
|
-
baseline_profile_path: Path | None,
|
|
147
|
-
host_model_profile_path: Path | None,
|
|
148
|
-
project_profile_digest: str | None = None,
|
|
149
|
-
) -> dict[str, Any]:
|
|
150
|
-
if receipt.get("status") != "READY" or receipt.get("action") != "MANAGED_RUN":
|
|
151
|
-
return deferred_execution_strategy_summary()
|
|
152
|
-
binding = receipt.get("workflowBinding") if isinstance(receipt.get("workflowBinding"), dict) else {}
|
|
153
|
-
try:
|
|
154
|
-
manifest_path = _required_binding_path(binding, "manifest")
|
|
155
|
-
lock_path = _required_binding_path(binding, "lock")
|
|
156
|
-
state_path = _required_binding_path(binding, "state")
|
|
157
|
-
_descriptor_file, descriptor = load_adapter_descriptor(adapter_id, descriptor_path)
|
|
158
|
-
strategy = resolve_execution_strategy(
|
|
159
|
-
manifest=read_json_object(manifest_path, label="frozen plan manifest"),
|
|
160
|
-
lock=read_json_object(lock_path, label="plan lock"),
|
|
161
|
-
state=read_json_object(state_path, label="workflow state"),
|
|
162
|
-
task_id=_required_binding_string(binding, "task"),
|
|
163
|
-
adapter_id=adapter_id,
|
|
164
|
-
adapter_host=str(descriptor.get("host", "")),
|
|
165
|
-
operation_id=_required_binding_string(binding, "operationId"),
|
|
166
|
-
expected_revision=_required_binding_revision(binding),
|
|
167
|
-
source_revision=_required_binding_string(binding, "sourceRevision"),
|
|
168
|
-
requested_risk=requested_risk,
|
|
169
|
-
risk_policy=read_json_object(
|
|
170
|
-
risk_policy_path or Path("profiles/risk-execution-policy.v1.json"),
|
|
171
|
-
label="risk execution policy",
|
|
172
|
-
),
|
|
173
|
-
routing_profile=read_json_object(
|
|
174
|
-
routing_profile_path or Path("profiles/model-routing-profile.v1.json"),
|
|
175
|
-
label="model routing profile",
|
|
176
|
-
),
|
|
177
|
-
baseline_profile=read_json_object(
|
|
178
|
-
baseline_profile_path or Path("profiles/lifecycle-baselines.v1.json"),
|
|
179
|
-
label="lifecycle baseline profile",
|
|
180
|
-
),
|
|
181
|
-
host_profile=(
|
|
182
|
-
read_json_object(host_model_profile_path, label="host model profile")
|
|
183
|
-
if host_model_profile_path is not None
|
|
184
|
-
else None
|
|
185
|
-
),
|
|
186
|
-
project_profile_digest=project_profile_digest,
|
|
187
|
-
)
|
|
188
|
-
return execution_strategy_summary(strategy)
|
|
189
|
-
except (LifecycleError, OSError) as exc:
|
|
190
|
-
code = exc.code if isinstance(exc, LifecycleError) else "strategy-input-read-failed"
|
|
191
|
-
return {
|
|
192
|
-
**deferred_execution_strategy_summary(reason=code),
|
|
193
|
-
"status": "BLOCKED",
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
def _required_binding_path(binding: dict[str, Any], field: str) -> Path:
|
|
198
|
-
value = _required_binding_string(binding, field)
|
|
199
|
-
return Path(value)
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
def _required_binding_string(binding: dict[str, Any], field: str) -> str:
|
|
203
|
-
value = binding.get(field)
|
|
204
|
-
if not isinstance(value, str) or not value:
|
|
205
|
-
raise LifecycleError("strategy-binding-missing", "managed strategy binding is missing", {"field": field})
|
|
206
|
-
return value
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
def _required_binding_revision(binding: dict[str, Any]) -> int:
|
|
210
|
-
value = binding.get("expectedRevision")
|
|
211
|
-
if not isinstance(value, int) or isinstance(value, bool) or value < 1:
|
|
212
|
-
raise LifecycleError(
|
|
213
|
-
"strategy-binding-revision-invalid",
|
|
214
|
-
"managed strategy expected revision is invalid",
|
|
215
|
-
)
|
|
216
|
-
return value
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
def _binding_path(binding: dict[str, Any], field: str) -> Path | None:
|
|
220
|
-
value = binding.get(field)
|
|
221
|
-
return Path(value) if isinstance(value, str) and value else None
|
|
222
|
-
|
|
223
|
-
|
|
224
92
|
def _planning_launch_blocked_receipt(
|
|
225
93
|
*,
|
|
226
94
|
adapter_id: str,
|
|
@@ -271,20 +139,15 @@ def _planning_launch_blocked_receipt(
|
|
|
271
139
|
return {**body, "receiptDigest": canonical_digest(body)}
|
|
272
140
|
|
|
273
141
|
|
|
274
|
-
def _binding_string(binding: dict[str, Any], field: str) -> str | None:
|
|
275
|
-
value = binding.get(field)
|
|
276
|
-
return value if isinstance(value, str) and value else None
|
|
277
|
-
|
|
278
|
-
|
|
279
142
|
def _task_summary(receipt: dict[str, Any]) -> dict[str, Any]:
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
)
|
|
143
|
+
planning_value = receipt.get("planningImport")
|
|
144
|
+
planning: dict[str, Any] = planning_value if isinstance(planning_value, dict) else {}
|
|
145
|
+
session_value = receipt.get("adapterSessionReceipt")
|
|
146
|
+
session: dict[str, Any] = session_value if isinstance(session_value, dict) else {}
|
|
147
|
+
next_action_value = session.get("nextAction")
|
|
148
|
+
next_action: dict[str, Any] = next_action_value if isinstance(next_action_value, dict) else {}
|
|
149
|
+
recommendation_value = receipt.get("reviewMeshRecommendation")
|
|
150
|
+
recommendation: dict[str, Any] = recommendation_value if isinstance(recommendation_value, dict) else {}
|
|
288
151
|
return {
|
|
289
152
|
"schemaVersion": receipt.get("schemaVersion"),
|
|
290
153
|
"status": receipt.get("status"),
|
|
@@ -326,7 +189,9 @@ def _resume_summary(receipt: dict[str, Any], *, session: dict[str, Any] | None =
|
|
|
326
189
|
|
|
327
190
|
|
|
328
191
|
def _claims_execution(receipt: dict[str, Any]) -> bool:
|
|
329
|
-
return any(
|
|
192
|
+
return any(
|
|
193
|
+
bool(receipt.get(field)) for field in ("executionStarted", "hostLaunchStarted", "lifecycleCoverageClaimed")
|
|
194
|
+
)
|
|
330
195
|
|
|
331
196
|
|
|
332
197
|
def _safe_input(value: Any) -> dict[str, Any]:
|
|
@@ -379,16 +244,19 @@ def _redact_task_echo(value: Any, *, task_text: str) -> Any:
|
|
|
379
244
|
if isinstance(value, list):
|
|
380
245
|
return [_redact_task_echo(item, task_text=task_text) for item in value]
|
|
381
246
|
if isinstance(value, dict):
|
|
382
|
-
return {
|
|
383
|
-
str(key): _redact_task_echo(item, task_text=task_text)
|
|
384
|
-
for key, item in value.items()
|
|
385
|
-
}
|
|
247
|
+
return {str(key): _redact_task_echo(item, task_text=task_text) for key, item in value.items()}
|
|
386
248
|
return value
|
|
387
249
|
|
|
388
250
|
|
|
389
251
|
def _session_input(session_id: str) -> dict[str, Any]:
|
|
390
252
|
encoded = session_id.encode("utf-8")
|
|
391
|
-
return {
|
|
253
|
+
return {
|
|
254
|
+
"type": "SESSION",
|
|
255
|
+
"label": session_id,
|
|
256
|
+
"digest": sha256_hex(encoded),
|
|
257
|
+
"byteCount": len(encoded),
|
|
258
|
+
"rawTextStored": False,
|
|
259
|
+
}
|
|
392
260
|
|
|
393
261
|
|
|
394
262
|
def _empty_input() -> dict[str, Any]:
|
|
@@ -401,7 +269,7 @@ def _blocker_summaries(value: Any) -> list[dict[str, Any]]:
|
|
|
401
269
|
summaries: list[dict[str, Any]] = []
|
|
402
270
|
for item in value:
|
|
403
271
|
if isinstance(item, dict):
|
|
404
|
-
summary = {"code": str(item.get("code", "start-delegate-blocked"))}
|
|
272
|
+
summary: dict[str, Any] = {"code": str(item.get("code", "start-delegate-blocked"))}
|
|
405
273
|
if isinstance(item.get("field"), str):
|
|
406
274
|
summary["field"] = item["field"]
|
|
407
275
|
if isinstance(item.get("fields"), list):
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"""Binding and execution-strategy helpers for the unified start facade."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
from agent_lifecycle.adapter_sessions.launcher import load_adapter_descriptor
|
|
9
|
+
from agent_lifecycle.contracts import LifecycleError, canonical_digest, read_json_object
|
|
10
|
+
from agent_lifecycle.policy.execution_strategy import (
|
|
11
|
+
deferred_execution_strategy_summary,
|
|
12
|
+
execution_strategy_summary,
|
|
13
|
+
resolve_execution_strategy,
|
|
14
|
+
)
|
|
15
|
+
from agent_lifecycle.resources import builtin_profile_path
|
|
16
|
+
from agent_lifecycle.workflow.artifacts import next_available_attempt, package_root
|
|
17
|
+
from agent_lifecycle.workflow.selectors import find_task
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def resolve_managed_execution_strategy(
|
|
21
|
+
*,
|
|
22
|
+
adapter_id: str,
|
|
23
|
+
state_path: Path,
|
|
24
|
+
manifest_path: Path,
|
|
25
|
+
lock_path: Path | None,
|
|
26
|
+
task_id: str,
|
|
27
|
+
operation_id: str,
|
|
28
|
+
expected_revision: int,
|
|
29
|
+
source_revision: str,
|
|
30
|
+
requested_risk: str,
|
|
31
|
+
descriptor_path: Path | None = None,
|
|
32
|
+
risk_policy_path: Path | None = None,
|
|
33
|
+
routing_profile_path: Path | None = None,
|
|
34
|
+
baseline_profile_path: Path | None = None,
|
|
35
|
+
host_model_profile_path: Path | None = None,
|
|
36
|
+
project_profile: dict[str, Any] | None = None,
|
|
37
|
+
project_profile_path: Path | None = None,
|
|
38
|
+
) -> dict[str, Any]:
|
|
39
|
+
"""Resolve one adoption-eligible strategy from the managed-run inputs."""
|
|
40
|
+
|
|
41
|
+
if lock_path is None:
|
|
42
|
+
raise LifecycleError("strategy-lock-required", "managed strategy adoption requires a plan lock")
|
|
43
|
+
state = read_json_object(state_path, label="workflow state")
|
|
44
|
+
root = package_root(state_path, state)
|
|
45
|
+
descriptor_file, descriptor = load_adapter_descriptor(adapter_id, descriptor_path)
|
|
46
|
+
capability_file = _capability_manifest_path(root, descriptor_file, descriptor)
|
|
47
|
+
capability = read_json_object(capability_file, label="capability manifest")
|
|
48
|
+
profile_file = project_profile_path or root / ".alk/project-profile.json"
|
|
49
|
+
if project_profile is None and profile_file.is_file():
|
|
50
|
+
project_profile = read_json_object(profile_file, label="project profile")
|
|
51
|
+
profile_digest = canonical_digest(project_profile) if project_profile is not None else None
|
|
52
|
+
risk_file = risk_policy_path or builtin_profile_path("risk-execution-policy.v1.json")
|
|
53
|
+
routing_file = routing_profile_path or builtin_profile_path("model-routing-profile.v1.json")
|
|
54
|
+
baseline_file = baseline_profile_path or builtin_profile_path("lifecycle-baselines.v1.json")
|
|
55
|
+
task = find_task(state, task_id)
|
|
56
|
+
selected_attempt = next_available_attempt(state_path, state, task)
|
|
57
|
+
strategy = resolve_execution_strategy(
|
|
58
|
+
manifest=read_json_object(manifest_path, label="frozen plan manifest"),
|
|
59
|
+
lock=read_json_object(lock_path, label="plan lock"),
|
|
60
|
+
state=state,
|
|
61
|
+
task_id=task_id,
|
|
62
|
+
adapter_id=adapter_id,
|
|
63
|
+
adapter_host=str(descriptor.get("host", "")),
|
|
64
|
+
operation_id=operation_id,
|
|
65
|
+
expected_revision=expected_revision,
|
|
66
|
+
source_revision=source_revision,
|
|
67
|
+
requested_risk=requested_risk,
|
|
68
|
+
risk_policy=read_json_object(risk_file, label="risk execution policy"),
|
|
69
|
+
routing_profile=read_json_object(routing_file, label="model routing profile"),
|
|
70
|
+
baseline_profile=read_json_object(baseline_file, label="lifecycle baseline profile"),
|
|
71
|
+
host_profile=(
|
|
72
|
+
read_json_object(host_model_profile_path, label="host model profile")
|
|
73
|
+
if host_model_profile_path is not None
|
|
74
|
+
else None
|
|
75
|
+
),
|
|
76
|
+
project_profile_digest=profile_digest,
|
|
77
|
+
descriptor=descriptor,
|
|
78
|
+
capability_manifest=capability,
|
|
79
|
+
target_attempt=selected_attempt,
|
|
80
|
+
descriptor_path=_repo_relative(root, descriptor_file, label="adapter descriptor"),
|
|
81
|
+
capability_manifest_path=_repo_relative(root, capability_file, label="capability manifest"),
|
|
82
|
+
project_profile_path=_repo_relative(root, profile_file, label="project profile"),
|
|
83
|
+
)
|
|
84
|
+
return {
|
|
85
|
+
"strategy": strategy,
|
|
86
|
+
"summary": execution_strategy_projection(strategy),
|
|
87
|
+
"inputs": {
|
|
88
|
+
"requestedRisk": requested_risk,
|
|
89
|
+
"riskPolicyPath": risk_file.as_posix(),
|
|
90
|
+
"routingProfilePath": routing_file.as_posix(),
|
|
91
|
+
"baselineProfilePath": baseline_file.as_posix(),
|
|
92
|
+
"hostProfilePath": host_model_profile_path.as_posix() if host_model_profile_path else None,
|
|
93
|
+
"descriptorPath": strategy["adoptionBinding"]["descriptorPath"],
|
|
94
|
+
"capabilityManifestPath": strategy["adoptionBinding"]["capabilityManifestPath"],
|
|
95
|
+
"projectProfilePath": strategy["adoptionBinding"]["projectProfileIdentity"]["path"],
|
|
96
|
+
},
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def execution_strategy_projection(strategy: dict[str, Any]) -> dict[str, Any]:
|
|
101
|
+
"""Return the common transparent projection used by start and continuation."""
|
|
102
|
+
|
|
103
|
+
projection = execution_strategy_summary(strategy)
|
|
104
|
+
projection["selectedValidationMode"] = strategy["quality"]["selectedMode"]
|
|
105
|
+
projection["sourceDecisionDigests"] = dict(strategy["sourceDecisionDigests"])
|
|
106
|
+
projection["selectionReasons"] = {
|
|
107
|
+
"quality": "frozen-plan-and-risk-policy",
|
|
108
|
+
"packet": "validated-quality-floor",
|
|
109
|
+
"review": "frozen-plan-review-policy",
|
|
110
|
+
"route": "validated-model-routing-profile",
|
|
111
|
+
}
|
|
112
|
+
projection["blockers"] = list(strategy.get("blockers", []))
|
|
113
|
+
projection["modelCallsStarted"] = False
|
|
114
|
+
return projection
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def strategy_projection_for_receipt(receipt: dict[str, Any]) -> dict[str, Any]:
|
|
118
|
+
"""Read the already resolved strategy projection from a managed receipt."""
|
|
119
|
+
|
|
120
|
+
if receipt.get("status") != "READY" or receipt.get("action") != "MANAGED_RUN":
|
|
121
|
+
return deferred_execution_strategy_summary()
|
|
122
|
+
session = receipt.get("adapterSessionReceipt")
|
|
123
|
+
next_action = session.get("nextAction") if isinstance(session, dict) else None
|
|
124
|
+
strategy = next_action.get("executionStrategy") if isinstance(next_action, dict) else None
|
|
125
|
+
if not isinstance(strategy, dict):
|
|
126
|
+
return {**deferred_execution_strategy_summary(reason="strategy-adoption-unavailable"), "status": "BLOCKED"}
|
|
127
|
+
return execution_strategy_projection(strategy)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _capability_manifest_path(root: Path, descriptor_path: Path, descriptor: dict[str, Any]) -> Path:
|
|
131
|
+
raw = descriptor.get("capabilityManifest")
|
|
132
|
+
if not isinstance(raw, str) or not raw:
|
|
133
|
+
raise LifecycleError(
|
|
134
|
+
"strategy-capability-manifest-missing",
|
|
135
|
+
"adapter descriptor must declare a capability manifest",
|
|
136
|
+
)
|
|
137
|
+
configured = Path(raw)
|
|
138
|
+
candidates = [configured if configured.is_absolute() else root / configured]
|
|
139
|
+
candidates.append(descriptor_path.parent / configured.name)
|
|
140
|
+
for candidate in candidates:
|
|
141
|
+
if candidate.is_file():
|
|
142
|
+
return candidate
|
|
143
|
+
raise LifecycleError(
|
|
144
|
+
"strategy-capability-manifest-missing",
|
|
145
|
+
"configured capability manifest was not found",
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def _repo_relative(root: Path, path: Path, *, label: str) -> str:
|
|
150
|
+
candidate = path if path.is_absolute() else Path.cwd() / path
|
|
151
|
+
try:
|
|
152
|
+
return candidate.resolve(strict=False).relative_to(root.resolve()).as_posix()
|
|
153
|
+
except ValueError as exc:
|
|
154
|
+
raise LifecycleError(
|
|
155
|
+
"strategy-binding-path-outside-package",
|
|
156
|
+
f"{label} must stay inside the workflow package root",
|
|
157
|
+
) from exc
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def _profile_plan_authority(
|
|
161
|
+
*,
|
|
162
|
+
task_file: Path | None,
|
|
163
|
+
task_text: str | None,
|
|
164
|
+
lock_path: Path | None,
|
|
165
|
+
) -> tuple[dict[str, Any] | None, dict[str, Any] | None]:
|
|
166
|
+
"""Read plan authority only from a structured frozen file input."""
|
|
167
|
+
|
|
168
|
+
if task_file is None or task_text is not None or not task_file.is_file():
|
|
169
|
+
return None, None
|
|
170
|
+
try:
|
|
171
|
+
payload = read_json_object(task_file, label="project-profile start input")
|
|
172
|
+
except (LifecycleError, OSError):
|
|
173
|
+
return None, None
|
|
174
|
+
schema = payload.get("schemaVersion")
|
|
175
|
+
if schema == "agent-adapter-task-run-request.v1":
|
|
176
|
+
manifest_value = payload.get("manifest")
|
|
177
|
+
request_lock = payload.get("lock")
|
|
178
|
+
if not isinstance(manifest_value, str) or not manifest_value:
|
|
179
|
+
return None, None
|
|
180
|
+
manifest_path = Path(manifest_value)
|
|
181
|
+
lock_value = request_lock if isinstance(request_lock, str) and request_lock else None
|
|
182
|
+
selected_lock = Path(lock_value) if lock_value else lock_path
|
|
183
|
+
elif schema == "agent-plan-manifest.v1":
|
|
184
|
+
manifest_path = task_file
|
|
185
|
+
selected_lock = lock_path
|
|
186
|
+
else:
|
|
187
|
+
return None, None
|
|
188
|
+
try:
|
|
189
|
+
plan = read_json_object(manifest_path, label="project-profile plan manifest")
|
|
190
|
+
lock = read_json_object(selected_lock, label="project-profile plan lock") if selected_lock else None
|
|
191
|
+
except (LifecycleError, OSError):
|
|
192
|
+
return None, None
|
|
193
|
+
return plan, lock
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def _missing_frozen_bindings(
|
|
197
|
+
payload: dict[str, Any] | None,
|
|
198
|
+
*,
|
|
199
|
+
state_path: Path | None,
|
|
200
|
+
lock_path: Path | None,
|
|
201
|
+
task_id: str | None,
|
|
202
|
+
operation_id: str | None,
|
|
203
|
+
expected_revision: int | None,
|
|
204
|
+
source_revision: str | None,
|
|
205
|
+
) -> list[str]:
|
|
206
|
+
"""Return missing exact bindings for an implementation start."""
|
|
207
|
+
|
|
208
|
+
if not isinstance(payload, dict):
|
|
209
|
+
return ["frozenInput"]
|
|
210
|
+
if payload.get("schemaVersion") == "agent-adapter-task-run-request.v1":
|
|
211
|
+
values = {
|
|
212
|
+
"state": payload.get("state"),
|
|
213
|
+
"manifest": payload.get("manifest"),
|
|
214
|
+
"lock": payload.get("lock"),
|
|
215
|
+
"task": payload.get("task"),
|
|
216
|
+
"operationId": payload.get("operationId"),
|
|
217
|
+
"expectedRevision": payload.get("expectedRevision"),
|
|
218
|
+
"sourceRevision": payload.get("sourceRevision"),
|
|
219
|
+
}
|
|
220
|
+
else:
|
|
221
|
+
values = {
|
|
222
|
+
"state": state_path,
|
|
223
|
+
"manifest": "provided-input",
|
|
224
|
+
"lock": lock_path,
|
|
225
|
+
"task": task_id,
|
|
226
|
+
"operationId": operation_id,
|
|
227
|
+
"expectedRevision": expected_revision,
|
|
228
|
+
"sourceRevision": source_revision,
|
|
229
|
+
}
|
|
230
|
+
missing = [field for field, value in values.items() if value in {None, ""}]
|
|
231
|
+
revision = values.get("expectedRevision")
|
|
232
|
+
if revision is not None and (not isinstance(revision, int) or isinstance(revision, bool) or revision < 1):
|
|
233
|
+
missing.append("expectedRevision")
|
|
234
|
+
return sorted(set(missing))
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
def _binding_path(binding: dict[str, Any], field: str) -> Path | None:
|
|
238
|
+
value = binding.get(field)
|
|
239
|
+
return Path(value) if isinstance(value, str) and value else None
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def _binding_string(binding: dict[str, Any], field: str) -> str | None:
|
|
243
|
+
value = binding.get(field)
|
|
244
|
+
return value if isinstance(value, str) and value else None
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
__all__ = [
|
|
248
|
+
"_binding_path",
|
|
249
|
+
"_binding_string",
|
|
250
|
+
"_missing_frozen_bindings",
|
|
251
|
+
"_profile_plan_authority",
|
|
252
|
+
"execution_strategy_projection",
|
|
253
|
+
"resolve_managed_execution_strategy",
|
|
254
|
+
"strategy_projection_for_receipt",
|
|
255
|
+
]
|