agent-lifecycle-kit 2.22.0__tar.gz → 2.23.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.22.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.23.0}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/README.md +2 -2
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/pyproject.toml +1 -1
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/_version.py +1 -1
- agent_lifecycle_kit-2.23.0/src/agent_lifecycle/cli/compact_plan_commands.py +197 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_planning.py +10 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/planning_parsers.py +8 -0
- agent_lifecycle_kit-2.23.0/src/agent_lifecycle/contracts/compact_plan_schemas.py +261 -0
- agent_lifecycle_kit-2.23.0/src/agent_lifecycle/metrics/plan_package_comparison.py +156 -0
- agent_lifecycle_kit-2.23.0/src/agent_lifecycle/planning/compact_packages.py +312 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0/src/agent_lifecycle_kit.egg-info}/PKG-INFO +3 -3
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/SOURCES.txt +4 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/LICENSE +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/NOTICE +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/README.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/manifest.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt01-planning/oracle.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt01-planning/task.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt02-architecture-review/oracle.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt02-architecture-review/task.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt03-bug-forensics/oracle.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt03-bug-forensics/task.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt04-s1-managed-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt04-s1-managed-task/task.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/oracle.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/benchmarks/reference-tasks/rt05-s2-evidence-task/task.md +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/setup.cfg +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/__main__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_admission.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resource_recovery.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/closing_resources.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger_legacy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/declared_ledger_records.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/host_bridge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/input_fit.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/journal.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/normalization.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/opening_balances.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/profile_schema.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/source_usage_context.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/support_profiles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_authority_store.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_state_store.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/accounting/workflow_store.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/agent_plugin_probe.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/attempt_authority.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/bootstrap_r11.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_exact_prompt.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_input_diagnostics.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_prompt_preparation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_source_exposure.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/codex_source_subject.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/env.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/external_check.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/immutable_input.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/input_lifecycle.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launch_execution.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launch_preflight.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/launcher.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/limited_native_evidence.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/local_launch_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/managed_process.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/ordinary_audit.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/planning_launch.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/planning_session.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/private_input.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_admission.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_capture.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_control.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_groups.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/process_telemetry.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/qualification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/redaction.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/session_store.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_history.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_inputs.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_preparation_records.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_roles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_shards.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_support.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/source_review_transcript.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_input.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/start_routing.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/task_intake.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/unified_start.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/windows_pipe.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/workflow_bridge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/adapter_sessions/worktree_identity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/delta.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/delta_review.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/domain_language.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/external_checks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/implementation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/ownership.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/package.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_chain.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_findings.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/audit/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/comparison.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/evaluator.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/oracles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/qualification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/reporting.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/benchmarks/stratification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/git.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/git_io.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/changesets/snapshot.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/adapter.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/benchmarks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/command_registry.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_adapters.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_audit.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_lifecycle.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_metrics.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_observability.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/dispatch_research.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/errors.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/followup.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/host_launch.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/lifecycle_parsers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/main.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/metrics_parser.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/observability_parsers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/parsers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/plan_lock_commands.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/project.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/research.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/start.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/strategy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/workflow_task_parsers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/cli/worktree.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/output_contract.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/phase_packets.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/small_model_packets.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/compiler/task_packets.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/checkpoint_store.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/checkpoints.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/episode_retrieval.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/external_memory.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/profiles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/rendering.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/context/thread_bridge_context.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_event_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_session_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/adapter_task_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/agent_plugin_qualification_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/artifact_authoring_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/audit_optimization_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/audit_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/authority_io.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/authority_text.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/benchmark_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/bounded_json.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/bug_forensics_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/canonical.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/closing_resource_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/closing_window_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/compatibility.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/context_checkpoint_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/context_model_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/core_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/cross_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/deadline_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/deadlines.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/display_identity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/domain_language.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/domain_language_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/ed25519.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/errors.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/evidence_import_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/evidence_receipt_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/execution_strategy_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/execution_target.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/external_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/external_job_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/finding_check_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/goal_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/host_capability_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/immutable_input_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/implementation_audit_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/import_dialect_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/independent_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/launch_qualification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/legacy_runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_action_catalog.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_definitions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/lifecycle_control_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/local_launch_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/metric_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/model_classes.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/multi_run_view_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/ownership_paths.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/paths.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/performance_limits.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/persistence.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/phase_packet_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_delta_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/plan_manifest_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/planning_launch_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/policy_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/preparation_policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/private_storage.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_execution_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_lock.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/process_redaction.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/progress_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/progress_hook_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/project_profile_preset_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/project_profile_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/proof_integrity_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/proof_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/public_locators.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/quality_modes.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/redaction.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/release_accounting_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/release_contract_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/research_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_mesh_recommendation_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_mesh_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_quality_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_round_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/review_verdict.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/reviewer_identity_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/runner_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/runner_worktree_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/sandbox_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/schema_builders.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/scoped_usage_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/security_analysis_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/statistical_evidence_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/status_goal_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/structured_result_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/task_template_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_schema_definitions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/thread_bridge_validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/token_estimation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/usage_export_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/validation_ladder_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/windows_security.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_artifact_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authority.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authority_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_authorization_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_continuation_batch_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_continuation_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_economics_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_run_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/contracts/workflow_state_schemas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/declared-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/import-boundaries.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/external-checks/module-dependencies.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/lifecycle-baselines.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/model-routing-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/feature-implementation.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/quick-change.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/project-workflow-presets/research-review.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/risk-execution-policy.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/data/profiles/small-context-profile.v1.json +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/bundles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/installation_catalog.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/diagnostics/readiness.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/core.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/episode_index.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/evidence_index/external_context.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/followup/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/followup/records.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/locks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/freeze/package_integrity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/records.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/goal/view.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/acp_capability.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/agent_plugin_qualification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/capabilities.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/context_events.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/event_capture.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/events.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/external_jobs.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_claude.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_codex.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_common.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_cursor.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_gemini_cli.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_hermes.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_kimi_code.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_opencode.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/inspection_qwen_code.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_control.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_control_qualification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/lifecycle_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/opencode_compatibility.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/process_port.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/scaffold.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/structured_results.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/usage_normalizers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/host_protocol/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/agentskills_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/bmad_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/constitution_adr.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/dialect_profiles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_agent.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_dialects.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/external_workflow.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/multi_markdown.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/openspec_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/planning.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/security_findings.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/spec_kit_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/imports/spec_kitty_profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_efficiency.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_optimization.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/audit_samples.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/command_resources.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/cost_collection.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/costs.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/goal_progress.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/outcome_index.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/phase_resources.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/recommendations.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/regression_signals.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/release_accounting.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/usage_export.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/metrics/workflow_economics.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/migration/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/migration/legacy_runner.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/profiles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/model_routing/resolver.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/__main__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/authority.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/canonical.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/cli.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/ed25519.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/errors.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/git_objects.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/matching.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/paths.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/receipt.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/scanner.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/neutrality/test_runner.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/acceptance_markdown.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/completeness.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/continuity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/deltas.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/manifest_contract.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/prerequisites.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/task_compatibility.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/templates.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/tiering.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/traceability.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/planning/verification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/adaptive_lifecycle.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/apply.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/execution_strategy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/proposals.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/quality_floor.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/risk_execution.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/runtime_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/policy/thread_bridge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/domain_language.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/guidance.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/merge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/presets.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/principles.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/project/profile.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/py.typed +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics_advisor.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/bug_forensics_recipes.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/cross_check.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/dependency_impact.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/external_checks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/failure_classification.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/packs.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/security_analysis.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/quality/validation_ladder.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/attention.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/change_summary.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/event_feed.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/execution_resources.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/multi_run.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_bridge.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_hooks.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_terminal.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/progress_view.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/status_view.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/reporting/usage_export.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/evidence.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/provenance.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/research/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/resources.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review/provenance.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/assignments.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/contracts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/independence.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/operator_templates.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/preflight.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/quorum.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/recommendation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/results.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/synthesis.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/review_mesh/validation_helpers.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/core.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/runner/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_check.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/completion_signal.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/specification/validation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/artifact_builders.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/artifacts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/audit_evidence.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/authorization.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_decisions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/budget_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/bug_forensics_gates.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/checkpoint_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/closing_policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/closing_window.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/continuation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/continuation_batch.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/controller.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/deadline_guards.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/events.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/final_proof_integrity.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/finalization.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/gates.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/immutable_input.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/implementation_audit_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/initialization.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/leases.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/limited_usage.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/lineage.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/managed_runner.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/model_usage.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/next_action.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/operation_kernel.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/plan_adoption.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/query.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/review_mesh_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/reviews.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/risk_execution_gate.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/run.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/run_transitions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/sandbox_policy.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/sandbox_receipts.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/selectors.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/state.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_outcomes.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_start.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/task_transitions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/transactions.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/workflow/transition_contract.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/worktree/__init__.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle/worktree/isolation.py +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/dependency_links.txt +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/entry_points.txt +0 -0
- {agent_lifecycle_kit-2.22.0 → agent_lifecycle_kit-2.23.0}/src/agent_lifecycle_kit.egg-info/top_level.txt +0 -0
{agent_lifecycle_kit-2.22.0/src/agent_lifecycle_kit.egg-info → agent_lifecycle_kit-2.23.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.23.0
|
|
4
4
|
Summary: Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion.
|
|
5
5
|
Author: Agent Lifecycle Kit contributors
|
|
6
6
|
License: Apache-2.0
|
|
@@ -41,9 +41,9 @@ and secret handling stay in adapters or host-local profiles.
|
|
|
41
41
|
ALK provides a verifiable finish for external-agent work with proportionate control. It adds only the checks and evidence needed for the task; most of the time remains for research, implementation and product verification.
|
|
42
42
|
|
|
43
43
|
## Quick start
|
|
44
|
-
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
|
|
44
|
+
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.23 adds [compact S0/S1 authoring](docs/reference/tier-proportional-plan-packages.md) with explicit checklist completion and unchanged approval gates. Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
|
|
45
45
|
|
|
46
|
-
It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.
|
|
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.23.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
|
|
47
47
|
|
|
48
48
|
For a quick start, run:
|
|
49
49
|
|
|
@@ -19,9 +19,9 @@ and secret handling stay in adapters or host-local profiles.
|
|
|
19
19
|
ALK provides a verifiable finish for external-agent work with proportionate control. It adds only the checks and evidence needed for the task; most of the time remains for research, implementation and product verification.
|
|
20
20
|
|
|
21
21
|
## Quick start
|
|
22
|
-
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
|
|
22
|
+
Start with [install ALK and make the first run](docs/guides/install-and-first-run.md). Release 2.23 adds [compact S0/S1 authoring](docs/reference/tier-proportional-plan-packages.md) with explicit checklist completion and unchanged approval gates. Release 2.22 adds [conservative plan-review reuse](docs/reference/conservative-delta-review.md) with independent current applicability and no automatic full reruns. Release 2.21 adds [command accounting, bounded preparation and response recovery](docs/reference/source-native-workflow-accounting.md). Release 2.20 adds [target-bound initialization](docs/reference/cli.md#release-220-composed-initialization-and-digest-display), [bounded local continuation](docs/reference/workflow-continuation.md) and batched Git snapshots. Release 2.19 adds [safe artifact authoring and planning preflight](docs/reference/safe-artifact-authoring.md), [bounded review handoff](docs/reference/review-mesh.md#bounded-review-handoff) and thin skills with complete references. Release 2.18 bounds process/Git diagnostics, hardens signing and distinguishes OpenCode 1.x/2.x compatibility ([adapter notes](docs/adapters/opencode.md)); 2.17 strengthens [workflow validation and recovery](docs/reference/workflow-completeness.md). Release 2.16 introduced cumulative accounting within verified host capabilities; see [retention maintenance](docs/operations/retention-maintenance.md).
|
|
23
23
|
|
|
24
|
-
It includes macOS, Linux and Windows instructions, Python 3.11-3.14, [PyPI](https://pypi.org/project/agent-lifecycle-kit/) installation with `python -m pip install agent-lifecycle-kit==2.
|
|
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.23.0`, and common `agent-lifecycle version` errors. See [2.15 migration notes](docs/reference/cli.md#migrating-authority-artifacts-to-215) and [authority boundaries](docs/reference/authority-artifact-boundaries.md).
|
|
25
25
|
|
|
26
26
|
For a quick start, run:
|
|
27
27
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agent-lifecycle-kit"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.23.0"
|
|
8
8
|
description = "Provider-neutral lifecycle control layer that helps coding agents plan, execute, validate, and prove software tasks to completion."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11,<3.15"
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"""Create-only compact authoring and read-only explanations; no lifecycle authority."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import stat
|
|
7
|
+
import unicodedata
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from agent_lifecycle.compiler.task_packets import packet_publication_lock
|
|
12
|
+
from agent_lifecycle.contracts import LifecycleError, canonical_bytes, canonical_digest, load_json_object
|
|
13
|
+
from agent_lifecycle.contracts.authority_io import hold_authority_directory
|
|
14
|
+
from agent_lifecycle.contracts.compact_plan_schemas import MAX_COMPACT_INPUT_BYTES
|
|
15
|
+
from agent_lifecycle.contracts.execution_target import discard_created_output
|
|
16
|
+
from agent_lifecycle.contracts.ownership_paths import (
|
|
17
|
+
normalize_authority_path,
|
|
18
|
+
repository_authority_name,
|
|
19
|
+
require_manifest_authority_paths,
|
|
20
|
+
)
|
|
21
|
+
from agent_lifecycle.contracts.paths import read_stable_repository_file
|
|
22
|
+
from agent_lifecycle.planning.compact_packages import (
|
|
23
|
+
build_plan_package_profiles,
|
|
24
|
+
compile_compact_plan,
|
|
25
|
+
explain_compact_plan,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
_FD_PATH_IDENTITY_FIELDS = 5 if os.name == "nt" else 6
|
|
29
|
+
|
|
30
|
+
_DRAFT_PREREQUISITE = (
|
|
31
|
+
"Before freeze-prepare: author acceptance-criteria.md from the explicit AC/EV facts "
|
|
32
|
+
"and add it to planFiles. The prepared candidate still needs current independent review before lock-create"
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def compact_package_profiles() -> dict[str, Any]:
|
|
37
|
+
"""Include filesystem authoring prerequisites in the user-facing tier view."""
|
|
38
|
+
body = build_plan_package_profiles()
|
|
39
|
+
body.pop("profileDigest")
|
|
40
|
+
body["draftCompletionPrerequisites"] = [_DRAFT_PREREQUISITE]
|
|
41
|
+
for profile in body["profiles"]:
|
|
42
|
+
if profile["compactSupported"]:
|
|
43
|
+
profile["requiredArtifacts"].append("acceptance-criteria.md explicitly added to planFiles before freeze")
|
|
44
|
+
return {**body, "profileDigest": canonical_digest(body)}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def compact_plan_command(
|
|
48
|
+
*, input_path: str, repository_root: Path, output_path: str | None = None, explain: bool = False
|
|
49
|
+
) -> dict[str, Any]:
|
|
50
|
+
"""Consume one stable bounded source; publishing never overwrites an artifact."""
|
|
51
|
+
root = repository_root.resolve(strict=True)
|
|
52
|
+
source_name = _name(root, input_path)
|
|
53
|
+
_inspect_path(root, source_name)
|
|
54
|
+
source_version = _version(root / source_name)
|
|
55
|
+
raw = _read(root, source_name)
|
|
56
|
+
if _version(root / source_name) != source_version:
|
|
57
|
+
raise LifecycleError("compact-plan-source-changed", "Compact source changed while being read")
|
|
58
|
+
source = load_json_object(raw, label="compact source")
|
|
59
|
+
package = source.get("package")
|
|
60
|
+
plan_root = package.get("planArtifactRoot") if isinstance(package, dict) else None
|
|
61
|
+
default_output = plan_root + "/plan.manifest.json" if isinstance(plan_root, str) else "plan.manifest.json"
|
|
62
|
+
destination = _name(root, output_path or default_output)
|
|
63
|
+
explanation = None
|
|
64
|
+
if explain:
|
|
65
|
+
explanation = explain_compact_plan(source, source_path=source_name, manifest_path=destination)
|
|
66
|
+
if explanation["status"] != "PASS":
|
|
67
|
+
return explanation
|
|
68
|
+
manifest = compile_compact_plan(source, source_path=source_name, manifest_path=destination)
|
|
69
|
+
require_manifest_authority_paths(manifest, operation_root=root)
|
|
70
|
+
_inspect_manifest_paths(root, manifest)
|
|
71
|
+
if explanation is not None:
|
|
72
|
+
return {**explanation, "nextCommands": [_DRAFT_PREREQUISITE, *explanation["nextCommands"]]}
|
|
73
|
+
prepared = canonical_bytes(manifest) + b"\n"
|
|
74
|
+
_publish(root, source_name, raw, source_version, destination, prepared)
|
|
75
|
+
return {
|
|
76
|
+
"schemaVersion": "agent-compact-plan-compilation.v1",
|
|
77
|
+
"status": "DRAFT",
|
|
78
|
+
"manifestPath": destination,
|
|
79
|
+
"manifestDigest": canonical_digest(manifest),
|
|
80
|
+
"sourcePath": source_name,
|
|
81
|
+
"sourceBytes": len(raw),
|
|
82
|
+
"canonicalOutputBytes": len(prepared),
|
|
83
|
+
"filesWritten": [destination],
|
|
84
|
+
"authorityClaimed": False,
|
|
85
|
+
"modelCallsStarted": False,
|
|
86
|
+
"nextCommands": [_DRAFT_PREREQUISITE, "plan freeze-prepare", "independent plan review", "plan lock-create"],
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _name(root: Path, name: str) -> str:
|
|
91
|
+
return normalize_authority_path(repository_authority_name(root / name, root))
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def _read(root: Path, name: str) -> bytes:
|
|
95
|
+
return read_stable_repository_file(root, name, max_bytes=MAX_COMPACT_INPUT_BYTES, label="compact source")
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _inspect_path(root: Path, name: str) -> None:
|
|
99
|
+
"""Reject observed link/name ambiguity without probing filesystem rules by writing."""
|
|
100
|
+
current = root
|
|
101
|
+
for part in normalize_authority_path(name).split("/"):
|
|
102
|
+
matches = []
|
|
103
|
+
try:
|
|
104
|
+
with os.scandir(current) as entries:
|
|
105
|
+
for index, entry in enumerate(entries):
|
|
106
|
+
if index >= 10_000:
|
|
107
|
+
raise LifecycleError("compact-plan-directory-too-large", "Directory inspection exceeds limit")
|
|
108
|
+
if unicodedata.normalize("NFC", entry.name).casefold() == part.casefold():
|
|
109
|
+
matches.append(entry.name)
|
|
110
|
+
except FileNotFoundError:
|
|
111
|
+
return
|
|
112
|
+
if not matches:
|
|
113
|
+
return
|
|
114
|
+
if len(matches) != 1 or unicodedata.normalize("NFC", matches[0]) != part:
|
|
115
|
+
raise LifecycleError("compact-plan-path-alias", "Authority path has an ambiguous or aliased name")
|
|
116
|
+
current = current / part
|
|
117
|
+
info = current.lstat()
|
|
118
|
+
if stat.S_ISLNK(info.st_mode) or getattr(info, "st_file_attributes", 0) & 0x400:
|
|
119
|
+
raise LifecycleError("compact-plan-path-alias", "Authority path cannot contain a link")
|
|
120
|
+
if stat.S_ISREG(info.st_mode) and info.st_nlink != 1:
|
|
121
|
+
raise LifecycleError("compact-plan-path-alias", "Authority file has multiple hard links")
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def _inspect_manifest_paths(root: Path, manifest: dict[str, Any]) -> None:
|
|
125
|
+
names = [*manifest["planFiles"], manifest["package"]["artifactRoot"]]
|
|
126
|
+
names.extend(manifest["readOnly"])
|
|
127
|
+
names.extend(manifest["forbiddenWrites"])
|
|
128
|
+
for task in manifest["workstreams"]:
|
|
129
|
+
names.extend(task["writes"])
|
|
130
|
+
names.extend(entry["artifactPath"] for entry in manifest["acceptance"]["evidence"])
|
|
131
|
+
for name in sorted(set(names)):
|
|
132
|
+
_inspect_path(root, name)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def _version(path: Path) -> tuple[int, ...]:
|
|
136
|
+
info = path.lstat()
|
|
137
|
+
return (*_identity(info), info.st_nlink)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def _identity(info: os.stat_result) -> tuple[int, ...]:
|
|
141
|
+
"""Capture the created descriptor's exact fingerprint for guarded rollback."""
|
|
142
|
+
return info.st_dev, info.st_ino, info.st_mode, info.st_size, info.st_mtime_ns, info.st_ctime_ns
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def _created_identity(fd: int, path_info: os.stat_result) -> tuple[int, ...]:
|
|
146
|
+
"""Join fd/path metadata, retaining a full path fingerprint for rollback.
|
|
147
|
+
|
|
148
|
+
Windows fstat ctime can be change time while path stat reports birth time.
|
|
149
|
+
All comparable fields must agree before using the path API's fingerprint.
|
|
150
|
+
"""
|
|
151
|
+
descriptor = _identity(os.fstat(fd))
|
|
152
|
+
observed = _identity(path_info)
|
|
153
|
+
fields = _FD_PATH_IDENTITY_FIELDS
|
|
154
|
+
return observed if descriptor[:fields] == observed[:fields] else descriptor
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def _require_same_source(root: Path, name: str, raw: bytes, version: tuple[int, ...]) -> None:
|
|
158
|
+
_inspect_path(root, name)
|
|
159
|
+
if _version(root / name) != version or _read(root, name) != raw or _version(root / name) != version:
|
|
160
|
+
raise LifecycleError("compact-plan-source-changed", "Compact source changed before publication completed")
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _publish(root: Path, source: str, raw: bytes, version: tuple[int, ...], destination: str, prepared: bytes) -> None:
|
|
164
|
+
path = root / destination
|
|
165
|
+
with packet_publication_lock(path.parent):
|
|
166
|
+
_inspect_path(root, destination)
|
|
167
|
+
if path.exists():
|
|
168
|
+
raise LifecycleError("compact-plan-output-exists", "Canonical output must not already exist")
|
|
169
|
+
_require_same_source(root, source, raw, version)
|
|
170
|
+
created = False
|
|
171
|
+
created_identity = None
|
|
172
|
+
try:
|
|
173
|
+
with hold_authority_directory(path.parent, writable=True) as directory:
|
|
174
|
+
fd = directory.write_child(path.name, append=False, mode=0o644)
|
|
175
|
+
created = True
|
|
176
|
+
created_identity = _created_identity(fd, directory.stat_child(path.name))
|
|
177
|
+
with os.fdopen(fd, "wb") as stream:
|
|
178
|
+
try:
|
|
179
|
+
stream.write(prepared)
|
|
180
|
+
stream.flush()
|
|
181
|
+
os.fsync(stream.fileno())
|
|
182
|
+
finally:
|
|
183
|
+
created_identity = _created_identity(stream.fileno(), directory.stat_child(path.name))
|
|
184
|
+
directory.sync()
|
|
185
|
+
_require_same_source(root, source, raw, version)
|
|
186
|
+
except FileExistsError:
|
|
187
|
+
if created and created_identity is not None:
|
|
188
|
+
discard_created_output(
|
|
189
|
+
root, destination, [prepared], expected_identity=created_identity, allow_partial=True
|
|
190
|
+
)
|
|
191
|
+
raise LifecycleError("compact-plan-output-exists", "Canonical output must not already exist") from None
|
|
192
|
+
except BaseException:
|
|
193
|
+
if created and created_identity is not None:
|
|
194
|
+
discard_created_output(
|
|
195
|
+
root, destination, [prepared], expected_identity=created_identity, allow_partial=True
|
|
196
|
+
)
|
|
197
|
+
raise
|
|
@@ -11,6 +11,7 @@ from agent_lifecycle.audit.delta_review import (
|
|
|
11
11
|
build_delta_review_packet,
|
|
12
12
|
)
|
|
13
13
|
from agent_lifecycle.changesets.snapshot import _baseline_entries
|
|
14
|
+
from agent_lifecycle.cli.compact_plan_commands import compact_package_profiles, compact_plan_command
|
|
14
15
|
from agent_lifecycle.cli.plan_lock_commands import create_reviewed_plan_lock, prepare_freeze_candidate
|
|
15
16
|
from agent_lifecycle.compiler import build_phase_packet, compile_small_model_packets, compile_task_packets
|
|
16
17
|
from agent_lifecycle.contracts import (
|
|
@@ -126,6 +127,15 @@ def _dispatch_specification(args: argparse.Namespace) -> dict[str, Any]:
|
|
|
126
127
|
|
|
127
128
|
|
|
128
129
|
def _dispatch_plan(args: argparse.Namespace) -> dict[str, Any]:
|
|
130
|
+
if args.plan_command == "package-profiles":
|
|
131
|
+
return compact_package_profiles()
|
|
132
|
+
if args.plan_command in {"compact-compile", "compact-explain"}:
|
|
133
|
+
return compact_plan_command(
|
|
134
|
+
input_path=args.input,
|
|
135
|
+
output_path=getattr(args, "out", None),
|
|
136
|
+
repository_root=Path(args.repository_root),
|
|
137
|
+
explain=args.plan_command == "compact-explain",
|
|
138
|
+
)
|
|
129
139
|
if args.plan_command == "freeze-prepare":
|
|
130
140
|
return prepare_freeze_candidate(
|
|
131
141
|
manifest_path=args.manifest,
|
|
@@ -12,6 +12,14 @@ _SMALL_CONTEXT_PROFILE = builtin_profile_path("small-context-profile.v1.json")
|
|
|
12
12
|
def _add_plan_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
|
|
13
13
|
plan = subparsers.add_parser("plan", help="plan commands")
|
|
14
14
|
plan_sub = plan.add_subparsers(dest="plan_command", required=True)
|
|
15
|
+
plan_sub.add_parser("package-profiles", help="describe tier obligations without granting authority")
|
|
16
|
+
compact = plan_sub.add_parser("compact-compile", help="create a canonical DRAFT from bounded compact input")
|
|
17
|
+
compact.add_argument("--input", required=True)
|
|
18
|
+
compact.add_argument("--out", required=True)
|
|
19
|
+
compact.add_argument("--repository-root", default=".")
|
|
20
|
+
explain = plan_sub.add_parser("compact-explain", help="explain compact input without writing or executing")
|
|
21
|
+
explain.add_argument("--input", required=True)
|
|
22
|
+
explain.add_argument("--repository-root", default=".")
|
|
15
23
|
prepare = plan_sub.add_parser("freeze-prepare", help="create a new review candidate; never a review or lock")
|
|
16
24
|
prepare.add_argument("--manifest", required=True)
|
|
17
25
|
prepare.add_argument("--out", required=True)
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"""Closed, bounded compact authoring input; no review or execution authority."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import re
|
|
7
|
+
from typing import Any, NoReturn
|
|
8
|
+
|
|
9
|
+
from agent_lifecycle.contracts.canonical import canonical_bytes
|
|
10
|
+
from agent_lifecycle.contracts.errors import LifecycleError
|
|
11
|
+
from agent_lifecycle.contracts.paths import normalize_repo_path
|
|
12
|
+
|
|
13
|
+
COMPACT_PLAN_SCHEMA = "agent-compact-plan.v1"
|
|
14
|
+
MAX_COMPACT_INPUT_BYTES = 65536
|
|
15
|
+
MAX_COMPACT_OUTPUT_BYTES = 262144
|
|
16
|
+
MAX_COMPACT_CHANGES = 12
|
|
17
|
+
MAX_COMPACT_COMMANDS = 32
|
|
18
|
+
COMPACT_RISKS = frozenset(
|
|
19
|
+
(
|
|
20
|
+
"architecture",
|
|
21
|
+
"security",
|
|
22
|
+
"performance",
|
|
23
|
+
"browser",
|
|
24
|
+
"externalEnvironment",
|
|
25
|
+
"data",
|
|
26
|
+
"release",
|
|
27
|
+
"externalSpecification",
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
ORCHESTRATION_FIELDS = frozenset(
|
|
31
|
+
(
|
|
32
|
+
"startMode",
|
|
33
|
+
"remediationMode",
|
|
34
|
+
"maxPlanReviewRounds",
|
|
35
|
+
"maxTaskAttempts",
|
|
36
|
+
"maxParallelTasks",
|
|
37
|
+
"maxValidationRunsPerTask",
|
|
38
|
+
"maxToolCallsPerIteration",
|
|
39
|
+
"maxUsageIterationsPerAttempt",
|
|
40
|
+
"maxToolCallsPerTask",
|
|
41
|
+
"maxToolCallsPerRun",
|
|
42
|
+
"maxReportedTokensPerTask",
|
|
43
|
+
"maxReportedTokensPerRun",
|
|
44
|
+
"maxEvidenceArtifactBytes",
|
|
45
|
+
"maxEvidenceBytesPerTask",
|
|
46
|
+
"maxEvidenceBytesPerRun",
|
|
47
|
+
"maxTaskWallSeconds",
|
|
48
|
+
"maxRunWallSeconds",
|
|
49
|
+
"maxContextBytes",
|
|
50
|
+
"maxRenderedPacketBytes",
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
_ROOT_FIELDS = frozenset(
|
|
54
|
+
(
|
|
55
|
+
"schemaVersion",
|
|
56
|
+
"tier",
|
|
57
|
+
"mechanical",
|
|
58
|
+
"package",
|
|
59
|
+
"author",
|
|
60
|
+
"baseRevision",
|
|
61
|
+
"owner",
|
|
62
|
+
"riskFlags",
|
|
63
|
+
"changes",
|
|
64
|
+
"orchestration",
|
|
65
|
+
"releaseImpact",
|
|
66
|
+
"readOnly",
|
|
67
|
+
"forbiddenWrites",
|
|
68
|
+
"securityGates",
|
|
69
|
+
"contextLimits",
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
_CHANGE_FIELDS = frozenset(
|
|
73
|
+
("id", "title", "requirement", "acceptance", "evidenceDescription", "evidencePath", "writes", "validationCommands")
|
|
74
|
+
)
|
|
75
|
+
_ID = re.compile(r"[A-Za-z][A-Za-z0-9_-]{0,39}\Z")
|
|
76
|
+
_SHA = re.compile(r"[0-9a-f]{40}\Z")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def load_compact_plan_input(raw: bytes) -> dict[str, Any]:
|
|
80
|
+
"""Parse only bounded UTF-8 JSON with unique keys and finite numbers."""
|
|
81
|
+
if not isinstance(raw, bytes) or len(raw) > MAX_COMPACT_INPUT_BYTES:
|
|
82
|
+
_fail("input-too-large", "Compact input must be bytes within 65536 bytes")
|
|
83
|
+
try:
|
|
84
|
+
value = json.loads(raw.decode("utf-8"), object_pairs_hook=_unique_object, parse_constant=_nonfinite)
|
|
85
|
+
except (UnicodeError, ValueError, RecursionError):
|
|
86
|
+
_fail("json-invalid", "Compact input must be finite, bounded UTF-8 JSON")
|
|
87
|
+
return require_compact_plan_input(value)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def require_compact_plan_input(value: Any) -> dict[str, Any]:
|
|
91
|
+
"""Validate the exact source shape without inferring low risk or missing facts."""
|
|
92
|
+
source = _object(value, _ROOT_FIELDS, "input")
|
|
93
|
+
if source["schemaVersion"] != COMPACT_PLAN_SCHEMA:
|
|
94
|
+
_fail("schema-unsupported", "Unsupported compact input schema")
|
|
95
|
+
if source["tier"] not in ("S0", "S1"):
|
|
96
|
+
_fail("full-s2-required", "Compact authoring requires explicit S0/S1; use the full S2 route")
|
|
97
|
+
if type(source["mechanical"]) is not bool:
|
|
98
|
+
_fail("mechanical-invalid", "mechanical must be a boolean")
|
|
99
|
+
if source["tier"] == "S0" and source["mechanical"] is not True:
|
|
100
|
+
_fail("full-s2-required", "S0 requires explicitly bounded mechanical work")
|
|
101
|
+
package = _object(source["package"], {"id", "title", "planArtifactRoot", "artifactRoot"}, "package")
|
|
102
|
+
for field in ("id", "title"):
|
|
103
|
+
_text(package[field], "package." + field, 200)
|
|
104
|
+
for field in ("planArtifactRoot", "artifactRoot"):
|
|
105
|
+
_path(package[field], "package." + field)
|
|
106
|
+
for field in ("author", "owner"):
|
|
107
|
+
_text(source[field], field, 200)
|
|
108
|
+
base = _object(source["baseRevision"], {"ref", "sha"}, "baseRevision")
|
|
109
|
+
_text(base["ref"], "baseRevision.ref", 200)
|
|
110
|
+
if not isinstance(base["sha"], str) or _SHA.fullmatch(base["sha"]) is None:
|
|
111
|
+
_fail("base-invalid", "baseRevision.sha must be exactly 40 lowercase hex characters")
|
|
112
|
+
risks = _object(source["riskFlags"], COMPACT_RISKS, "riskFlags")
|
|
113
|
+
if any(type(flag) is not bool for flag in risks.values()):
|
|
114
|
+
_fail("risk-invalid", "Every risk flag must be a strict boolean")
|
|
115
|
+
if any(risks.values()):
|
|
116
|
+
_fail("full-s2-required", "Elevated risk requires the full S2 route")
|
|
117
|
+
changes = _list(source["changes"], "changes", 1, MAX_COMPACT_CHANGES)
|
|
118
|
+
if source["tier"] == "S0" and len(changes) != 1:
|
|
119
|
+
_fail("full-s2-required", "S0 requires exactly one change")
|
|
120
|
+
_changes(changes)
|
|
121
|
+
_orchestration(source["orchestration"])
|
|
122
|
+
_text(source["releaseImpact"], "releaseImpact")
|
|
123
|
+
_paths(source["readOnly"], "readOnly", 0)
|
|
124
|
+
_paths(source["forbiddenWrites"], "forbiddenWrites", 0)
|
|
125
|
+
for gate in _list(source["securityGates"], "securityGates", 1, 32):
|
|
126
|
+
_text(gate, "securityGates[]")
|
|
127
|
+
_context(source["contextLimits"])
|
|
128
|
+
if len(canonical_bytes(source)) > MAX_COMPACT_INPUT_BYTES:
|
|
129
|
+
_fail("input-too-large", "Compact input exceeds 65536 UTF-8 bytes")
|
|
130
|
+
return source
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _changes(changes: list[Any]) -> None:
|
|
134
|
+
seen: set[str] = set()
|
|
135
|
+
command_count = 0
|
|
136
|
+
for item in changes:
|
|
137
|
+
change = _object(item, _CHANGE_FIELDS, "change")
|
|
138
|
+
identity = change["id"]
|
|
139
|
+
if not isinstance(identity, str) or _ID.fullmatch(identity) is None:
|
|
140
|
+
_fail("change-id-invalid", "Change id must be a bounded literal identifier")
|
|
141
|
+
if identity.casefold() in seen:
|
|
142
|
+
_fail("change-id-duplicate", "Change ids must be unique without ambiguous case aliases")
|
|
143
|
+
seen.add(identity.casefold())
|
|
144
|
+
_text(change["title"], "change.title", 200)
|
|
145
|
+
for name in ("requirement", "acceptance", "evidenceDescription"):
|
|
146
|
+
_text(change[name], "change." + name)
|
|
147
|
+
_path(change["evidencePath"], "change.evidencePath")
|
|
148
|
+
_paths(change["writes"], "change.writes", 1)
|
|
149
|
+
commands = _list(change["validationCommands"], "change.validationCommands", 1, MAX_COMPACT_COMMANDS)
|
|
150
|
+
for command in commands:
|
|
151
|
+
_text(command, "change.validationCommands[]")
|
|
152
|
+
command_count += len(commands)
|
|
153
|
+
if command_count > MAX_COMPACT_COMMANDS:
|
|
154
|
+
_fail("commands-too-many", "Total validation command occurrences exceed 32")
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def _orchestration(value: Any) -> None:
|
|
158
|
+
policy = _object(value, ORCHESTRATION_FIELDS, "orchestration")
|
|
159
|
+
if policy["startMode"] != "manual-after-freeze" or policy["remediationMode"] not in ("ask", "bounded-auto"):
|
|
160
|
+
_fail("execution-mode-invalid", "Compact plans require reviewed freeze and separate manual authorization")
|
|
161
|
+
for field in ORCHESTRATION_FIELDS - {"startMode", "remediationMode"}:
|
|
162
|
+
_positive_integer(policy[field], "orchestration." + field)
|
|
163
|
+
if policy["maxParallelTasks"] != 1 or policy["maxTaskAttempts"] > 3 or policy["maxPlanReviewRounds"] > 4:
|
|
164
|
+
_fail("execution-limits-invalid", "Compact work is serial with at most 3 attempts and 4 review rounds")
|
|
165
|
+
pairs = (
|
|
166
|
+
("maxToolCallsPerTask", "maxToolCallsPerRun"),
|
|
167
|
+
("maxReportedTokensPerTask", "maxReportedTokensPerRun"),
|
|
168
|
+
("maxTaskWallSeconds", "maxRunWallSeconds"),
|
|
169
|
+
("maxEvidenceArtifactBytes", "maxEvidenceBytesPerTask"),
|
|
170
|
+
("maxEvidenceBytesPerTask", "maxEvidenceBytesPerRun"),
|
|
171
|
+
)
|
|
172
|
+
if any(policy[small] > policy[large] for small, large in pairs):
|
|
173
|
+
_fail("execution-limits-invalid", "Per-task and per-artifact caps must fit enclosing caps")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _context(value: Any) -> None:
|
|
177
|
+
limits = _object(
|
|
178
|
+
value,
|
|
179
|
+
{"targetReviewerPacketTokens", "maxReviewerPacketTokens", "smallContextProfilesRequired"},
|
|
180
|
+
"contextLimits",
|
|
181
|
+
)
|
|
182
|
+
for field in ("targetReviewerPacketTokens", "maxReviewerPacketTokens"):
|
|
183
|
+
_positive_integer(limits[field], "contextLimits." + field)
|
|
184
|
+
if limits["targetReviewerPacketTokens"] > limits["maxReviewerPacketTokens"]:
|
|
185
|
+
_fail("context-invalid", "Target reviewer packet must fit its maximum")
|
|
186
|
+
if limits["smallContextProfilesRequired"] is not True:
|
|
187
|
+
_fail("context-invalid", "Small-context profiles must remain required")
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def _object(value: Any, fields: set[str] | frozenset[str], label: str) -> dict[str, Any]:
|
|
191
|
+
if not isinstance(value, dict) or set(value) != fields:
|
|
192
|
+
_fail("fields-invalid", label + " must contain exactly its declared fields")
|
|
193
|
+
return value
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def _list(value: Any, label: str, minimum: int, maximum: int) -> list[Any]:
|
|
197
|
+
if not isinstance(value, list) or not minimum <= len(value) <= maximum:
|
|
198
|
+
_fail("list-invalid", label + " has an invalid type or item count")
|
|
199
|
+
return value
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
def _text(value: Any, label: str, maximum: int = 4096) -> str:
|
|
203
|
+
if not isinstance(value, str) or not value.strip() or len(value) > maximum or "\x00" in value:
|
|
204
|
+
_fail("text-invalid", label + " must be nonempty bounded text without NUL")
|
|
205
|
+
try:
|
|
206
|
+
value.encode("utf-8")
|
|
207
|
+
except UnicodeError:
|
|
208
|
+
_fail("text-invalid", label + " must be valid UTF-8 text")
|
|
209
|
+
return value
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def _positive_integer(value: Any, label: str) -> None:
|
|
213
|
+
if type(value) is not int or value <= 0:
|
|
214
|
+
_fail("integer-invalid", label + " must be a strict positive integer")
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def _path(value: Any, label: str) -> str:
|
|
218
|
+
_text(value, label, 1024)
|
|
219
|
+
if any(character in value for character in "*?[]"):
|
|
220
|
+
_fail("path-invalid", label + " must be a literal path without wildcards")
|
|
221
|
+
normalized = normalize_repo_path(value, label=label)
|
|
222
|
+
if normalized != value:
|
|
223
|
+
_fail("path-invalid", label + " must already be a canonical literal relative path")
|
|
224
|
+
return normalized
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def _paths(value: Any, label: str, minimum: int) -> None:
|
|
228
|
+
paths = _list(value, label, minimum, 128)
|
|
229
|
+
normalized = [_path(path, label + "[]") for path in paths]
|
|
230
|
+
if len({path.casefold() for path in normalized}) != len(normalized):
|
|
231
|
+
_fail("path-duplicate", label + " contains duplicate or ambiguous paths")
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]:
|
|
235
|
+
result: dict[str, Any] = {}
|
|
236
|
+
for key, value in pairs:
|
|
237
|
+
if key in result:
|
|
238
|
+
_fail("json-duplicate-key", "Duplicate JSON keys are forbidden")
|
|
239
|
+
result[key] = value
|
|
240
|
+
return result
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
def _nonfinite(_: str) -> Any:
|
|
244
|
+
_fail("json-nonfinite", "Non-finite JSON numbers are forbidden")
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def _fail(code: str, message: str) -> NoReturn:
|
|
248
|
+
raise LifecycleError("compact-plan-" + code, message)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
__all__ = [
|
|
252
|
+
"COMPACT_PLAN_SCHEMA",
|
|
253
|
+
"COMPACT_RISKS",
|
|
254
|
+
"MAX_COMPACT_CHANGES",
|
|
255
|
+
"MAX_COMPACT_COMMANDS",
|
|
256
|
+
"MAX_COMPACT_INPUT_BYTES",
|
|
257
|
+
"MAX_COMPACT_OUTPUT_BYTES",
|
|
258
|
+
"ORCHESTRATION_FIELDS",
|
|
259
|
+
"load_compact_plan_input",
|
|
260
|
+
"require_compact_plan_input",
|
|
261
|
+
]
|