alysis-code 0.13.0__tar.gz → 0.13.1__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.
- {alysis_code-0.13.0 → alysis_code-0.13.1}/CHANGELOG.md +15 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/PKG-INFO +1 -1
- {alysis_code-0.13.0 → alysis_code-0.13.1}/pyproject.toml +1 -1
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/__init__.py +1 -1
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/core.py +31 -3
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/budget_policy.py +46 -3
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/app.py +476 -44
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/config_overlay.py +3 -2
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/owl.py +21 -9
- alysis_code-0.13.1/src/alysis_code/cli_impl/tui/selection_bindings.py +39 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/setup_app.py +38 -6
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/workspace_guard.py +3 -2
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/crash_diagnostics.py +9 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/openai_compat.py +5 -1
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/provider_limits.py +50 -7
- alysis_code-0.13.1/src/alysis_code/transport_retry.py +244 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/.gitignore +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/LICENSE +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/NOTICE +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/__main__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/_build_info.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/account_login.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/acceptance_contract.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/blast_radius.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/cache_keepalive.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/completion_certificate.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/completion_gate.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/empty_response_stall.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/errors.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/llm_calls.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/mutation_classification.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/prompt_context.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/read_ledger.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/regression_baseline.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/reproduction_first.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/sensitive_output.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/session.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/steering.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/subagent_execution.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/subagent_workspace.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/tools_assembly.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/events.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/exploration.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/interventions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/read_cache.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn/snapshot.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn_contract.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/turn_path.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/verification.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/verification_commands.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent/verification_evidence.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_loop.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/base.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/builtins.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/codex_cli.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/host.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/registry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agent_runtimes/service.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agentbox_client.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/agentbox_integration.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/alysis_cloud.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/approval_scope.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/asset_read_core.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/budget_allocator.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/comprehender.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/index.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/ingestion.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/legacy_migration.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/ocr.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/index.html +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/owl/show-owl.sh +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/paths.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/plan_binding.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/planner_context.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/planner_tools.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/prompts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/replanner_context.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/untrusted_content.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/usage_logger.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/worker_mirror.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/worker_section.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/assets/worker_tools.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/atomic_io.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/auth_diagnostics.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/background_runner.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/branding.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/build_identity.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/builtin_hooks/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/bwrap_etc.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cancellation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/capabilities.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/assets_cli.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/assets_modal.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/commands.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/loop.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/rendering.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat/state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat_resume.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/chat_slash_completer.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/auth.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/chat_state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/chat_status.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/chat_terminal.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/cli_common.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/execution_helpers.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/extensions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/forge.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/forge_helpers.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/mcp.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/profile.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/prompt_helpers.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/report.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/root.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/server.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/skills.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/startup.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/tools.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/update.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/commands/welcome.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/config_menu.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/forge.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/setup_wizard.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/config_flow.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/content.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/footer.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/markdown.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/setup_flow.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/subagent_identity.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/subagent_panel.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/transcript.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/clipboard.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/code_review.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/compaction/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/compaction/conversation_compactor.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/compaction/importance.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/compaction/settings.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/compaction/tool_output_offload.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/conflict_auto_resolver.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/context/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/discovery.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/runtime.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/session.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/custom_tools/trust.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/diff_paths.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/direction_change.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/dispatch_timing.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/durable_service_manager.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/edit_discipline.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/error_text.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/execution_budget.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/execution_context.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/execution_deadline.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/execution_shared.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/activation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/install.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/manifest.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/paths.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/registry.json +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/registry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/extensions/workspace_trust.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/failed_task_evidence.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/failure_category.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/feedback_report.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/file_classification.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/forge.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/forge_completion.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/forge_events.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/frontmatter_utils.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/git_evidence.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/git_ops.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/git_safe.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/git_worktrees.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/audit.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/dispatcher.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/hooks/trust.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/host_actions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/host_browser.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/activity_events.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/approvals.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/artifacts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/change_ledger.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/context_blocks.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/event_stream.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/forge_protocol.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/forge_request_ledger.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/health.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/managed_browser.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/management_protocol.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/prompt_queue.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/protocol.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/resumable_swarm.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/session_search.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/stdio_bridge.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/structured_state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/ide/swarm_protocol.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/integration_gate.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/interactive_input_guard.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/interactive_plan_mode.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/internal_artifacts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/knowledge_base.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/knowledge_capture.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/knowledge_librarian.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/language_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/litellm_static_provider.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/anthropic_messages.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/base.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/cache_capabilities.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/cache_control_blocks.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/cache_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/factory.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/gemini_generate_content.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/gemini_interactions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/metadata.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/openai_responses.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/protocols.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/request_plan.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/request_shape.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/streaming.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/temperature_compat.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/types.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm/usage_normalization.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/llm_error_display.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/logging_redaction.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/managed_host_deadline.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/client.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/errors.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/forge_scope.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/jsonrpc.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/manager.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/oauth.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/oauth_runtime.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/oauth_store.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/prompts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/resources.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/roots.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/server_requests.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/token_store.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/transport_http.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/transport_stdio.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/mcp/untrusted_content.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/merge_conflict_reviewer.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_catalog/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_metadata_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_metadata_utils.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_registry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/model_router.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/permission_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/personas.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/pipeline_facts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/plan_assistant.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/plan_mode.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/plan_reconciliation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/plan_repair.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/plan_validation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/planning_constraints.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/preview_server.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/process_reaping.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/profile_presets.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/profiles.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_auth/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_auth/base.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_auth/openai_codex.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_auth/registry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_auth/store.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_diagnostics.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_model_catalog.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_telemetry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/provider_url.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/reasoning_contracts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/remote_sync.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/replanning.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/repo_scan.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/request_estimation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/review_gate.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/run_lock.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/run_outcome.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/run_provenance.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/run_state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/runtime_artifacts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/runtime_context_features.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/runtime_kind.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/safety/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/safety/mcp_sanitize.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/safety/safe_http.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/safety/subagent_report.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/sandbox_doctor.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/sandbox_runner.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/sandbox_settings.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/serialized_paths.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/app.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/auth.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/job_config.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/settings.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/store.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/server/worker_runner.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/service_persistence.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/session_artifacts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/session_metrics.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/session_store.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/conventions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/discovery.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/eval_models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/eval_runner.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/evals.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/install.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/loader.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/matching.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/models.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/paths.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/prompting.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/scaffold.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/state.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/transactions.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/skills/validation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/step_budget.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/subagent_labels.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/subagents.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/base.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/console.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/events.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/hidden_surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/noop_surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/rich_surface.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/styles.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/theme.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/surface/types.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_backend.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_orchestrator.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_scheduler.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_trace.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_worker.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/swarm_write_guard.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/task_dependencies.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/task_readiness.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/task_scope.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/terminal_manager.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/terminal_ownership.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/text_normalization.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/token_budget.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/README.md +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/__init__.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/artifacts.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/availability.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/fs.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/git.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/history.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/http_timeout.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/image_generation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/registry.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/repo_map.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/search.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/shell.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/symbols.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/test_discovery.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web_search.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web_search_dashscope.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web_search_ddgs.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/tools/web_search_tavily.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/updates.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/usage_tracker.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/verification_command_analysis.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/verification_contract.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/verification_failure_summary.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/verification_repair.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/verify_gate.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/web_research.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/web_search_adapters.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/web_search_policy.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/workspace_binding.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/workspace_binding_ui.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/workspace_context.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/workspace_isolation.py +0 -0
- {alysis_code-0.13.0 → alysis_code-0.13.1}/src/alysis_code/workspace_provisioning.py +0 -0
|
@@ -408,6 +408,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
408
408
|
Workspace-target extraction also keeps extensionless dotfiles such as `.npmrc` available to
|
|
409
409
|
verification selection.
|
|
410
410
|
|
|
411
|
+
## [0.13.1] - 2026-08-27
|
|
412
|
+
|
|
413
|
+
Input usability and runtime reliability improvements.
|
|
414
|
+
|
|
415
|
+
### Fixed
|
|
416
|
+
|
|
417
|
+
- The TUI now keeps input geometry, selection editing, paste-token hints,
|
|
418
|
+
dragged-selection scrolling, and terminal-theme styling consistent across
|
|
419
|
+
chat, configuration, setup, and workspace-guard surfaces.
|
|
420
|
+
- Intentional clean stops now exit successfully and retain a machine-readable
|
|
421
|
+
`stop_reason`; genuine failures and unknown stop reasons remain non-zero.
|
|
422
|
+
- Connections dropped mid-response receive a dedicated bounded retry schedule,
|
|
423
|
+
preserve caller-configured larger budgets, respect wall-clock caps, and emit
|
|
424
|
+
consistent retry, stream-restart, and terminal diagnostic reasons.
|
|
425
|
+
|
|
411
426
|
## [0.13.0] - 2026-08-22
|
|
412
427
|
|
|
413
428
|
The reliability wave. Six stacked fixes (PR1-PR6) targeting the failure modes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alysis-code
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.1
|
|
4
4
|
Summary: Local CLI coding agent powered by any API.
|
|
5
5
|
Project-URL: Changelog, https://github.com/AlysisAi/alysis-code/blob/main/CHANGELOG.md
|
|
6
6
|
Project-URL: Documentation, https://github.com/AlysisAi/alysis-code/tree/main/docs
|
|
@@ -21,6 +21,7 @@ from ...budget_policy import (
|
|
|
21
21
|
STOP_REASON_RUN_BUDGET_EXHAUSTED,
|
|
22
22
|
ProgressCheckpoint,
|
|
23
23
|
exit_code_for_stop,
|
|
24
|
+
is_clean_stop,
|
|
24
25
|
resolve_budget_grace_seconds,
|
|
25
26
|
)
|
|
26
27
|
from ...edit_discipline import scratch_summary_line
|
|
@@ -3055,13 +3056,26 @@ def run_turn(
|
|
|
3055
3056
|
)
|
|
3056
3057
|
material_work_persisted = bool(salvaged_paths or durable_service_ids)
|
|
3057
3058
|
missing_action = _outstanding_turn_action()
|
|
3058
|
-
|
|
3059
|
+
# A stop the run chose for itself is an outcome, not a failure, whether
|
|
3060
|
+
# or not it had anything to show for itself -- exiting non-zero made
|
|
3061
|
+
# automation interpret an intentional stop as a process failure.
|
|
3062
|
+
# Every other degraded stop keeps the "exit 0 only when work persisted"
|
|
3063
|
+
# rule, because there the run did not decide anything: it was stopped.
|
|
3064
|
+
clean_stop = is_clean_stop(trigger)
|
|
3065
|
+
if clean_stop:
|
|
3066
|
+
exit_code = exit_code_for_stop(trigger)
|
|
3067
|
+
# Surfaces in the run_finished crash event, so callers can name
|
|
3068
|
+
# the stop without parsing the summary prose.
|
|
3069
|
+
self.stop_reason = trigger
|
|
3070
|
+
else:
|
|
3071
|
+
exit_code = 0 if material_work_persisted else 1
|
|
3059
3072
|
degraded_payload = {
|
|
3060
3073
|
"step": step,
|
|
3061
3074
|
"runtime_kind": self.runtime_kind.value,
|
|
3062
3075
|
"reason": reason,
|
|
3063
3076
|
"trigger": trigger,
|
|
3064
3077
|
"exit_code": exit_code,
|
|
3078
|
+
**({"stop_reason": trigger} if clean_stop else {}),
|
|
3065
3079
|
"material_work_persisted": material_work_persisted,
|
|
3066
3080
|
"salvaged_paths": salvaged_paths,
|
|
3067
3081
|
"durable_service_ids": durable_service_ids,
|
|
@@ -3200,6 +3214,9 @@ def run_turn(
|
|
|
3200
3214
|
**_controller_intervention_event_fields(),
|
|
3201
3215
|
"degraded": True,
|
|
3202
3216
|
"degraded_reason": "empty_response_stall",
|
|
3217
|
+
# Present only for a self-stop, so an ordinary degraded stop's
|
|
3218
|
+
# event stays byte-identical to before.
|
|
3219
|
+
**({"stop_reason": trigger} if is_clean_stop(trigger) else {}),
|
|
3203
3220
|
},
|
|
3204
3221
|
)
|
|
3205
3222
|
assistant_message_emitted = True
|
|
@@ -6923,10 +6940,21 @@ def run_turn(
|
|
|
6923
6940
|
explicit_language_override=turn_language_explicit,
|
|
6924
6941
|
prior_visible_text=last_visible_assistant_text,
|
|
6925
6942
|
streamed_text_emitted=streamed_text_emitted,
|
|
6926
|
-
final_event_payload=
|
|
6943
|
+
final_event_payload={
|
|
6944
|
+
**_controller_intervention_event_fields(),
|
|
6945
|
+
**({"stop_reason": reason} if is_clean_stop(reason) else {}),
|
|
6946
|
+
},
|
|
6927
6947
|
)
|
|
6928
6948
|
assistant_message_emitted = True
|
|
6929
|
-
|
|
6949
|
+
if is_clean_stop(reason):
|
|
6950
|
+
self.stop_reason = reason
|
|
6951
|
+
# Reached only when the shared stall resolution is disabled, so
|
|
6952
|
+
# it is the same self-stop as the salvage path above and has to
|
|
6953
|
+
# exit the same way. The decision goes through the stop-reason
|
|
6954
|
+
# table rather than a literal, so both paths stay in step.
|
|
6955
|
+
return _finish_turn(
|
|
6956
|
+
exit_code_for_stop(reason), reason=reason, final_text=local_summary
|
|
6957
|
+
)
|
|
6930
6958
|
|
|
6931
6959
|
empty_response_anomaly_state.attempts = next_anomaly_attempt
|
|
6932
6960
|
empty_response_anomaly_state.last_missing_action = missing_action
|
|
@@ -58,6 +58,11 @@ BUDGET_CHECKPOINT_FRACTION_ENV = "ALYSIS_BUDGET_CHECKPOINT_FRACTION"
|
|
|
58
58
|
# without parsing prose.
|
|
59
59
|
STOP_REASON_RUN_BUDGET_EXHAUSTED = "run_budget_exhausted"
|
|
60
60
|
|
|
61
|
+
# The model stopped returning usable responses and the targeted recovery for
|
|
62
|
+
# that was spent. The run then reports what it has and ends. Same shape of
|
|
63
|
+
# outcome as a budget stop: chosen by the run, not a crash.
|
|
64
|
+
STOP_REASON_EMPTY_RESPONSE_ANOMALY_RETRY_EXHAUSTED = "empty_response_anomaly_retry_exhausted"
|
|
65
|
+
|
|
61
66
|
PROGRESS_CHECKPOINT_FAILED_EVENT = "progress_checkpoint_failed"
|
|
62
67
|
|
|
63
68
|
# A budget stop is a normal outcome, not a failure: the agent did what it could
|
|
@@ -73,16 +78,40 @@ BUDGET_CHECKPOINT_NOTICE = (
|
|
|
73
78
|
"Reassess approach or report the concrete blocker."
|
|
74
79
|
)
|
|
75
80
|
|
|
76
|
-
#
|
|
77
|
-
|
|
81
|
+
# Reasons for which the run *decided* to stop: it hit a limit it owns, wound
|
|
82
|
+
# down deliberately, reported what it had, and exited. These are outcomes, not
|
|
83
|
+
# failures, and every one of them must exit zero -- a non-zero code makes a
|
|
84
|
+
# harness record NonZeroAgentExitCodeError and throw the trial away.
|
|
85
|
+
#
|
|
86
|
+
# This is a registry rather than a special case per stop path. The budget stop
|
|
87
|
+
# was fixed first and got bespoke plumbing; the empty-response stop then had to
|
|
88
|
+
# be fixed the same way, separately, because there was nothing to join. A
|
|
89
|
+
# future graceful stop joins by adding its constant here.
|
|
90
|
+
#
|
|
91
|
+
# The bar for membership: the run chose to end and said so honestly. An
|
|
92
|
+
# exception escaping, a provider that never came back, a user abort -- none of
|
|
93
|
+
# those are self-stops, and they keep their non-zero codes.
|
|
94
|
+
CLEAN_STOP_REASONS = frozenset(
|
|
95
|
+
{
|
|
96
|
+
STOP_REASON_RUN_BUDGET_EXHAUSTED,
|
|
97
|
+
STOP_REASON_EMPTY_RESPONSE_ANOMALY_RETRY_EXHAUSTED,
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Ordinary terminal states, which were never failures to begin with. Separate
|
|
102
|
+
# from CLEAN_STOP_REASONS because "the turn ended" is not a self-stop and
|
|
103
|
+
# nothing should record it as one.
|
|
104
|
+
NORMAL_COMPLETION_REASONS = frozenset(
|
|
78
105
|
{
|
|
79
106
|
"",
|
|
80
107
|
"completed",
|
|
81
108
|
"session_close",
|
|
82
|
-
STOP_REASON_RUN_BUDGET_EXHAUSTED,
|
|
83
109
|
}
|
|
84
110
|
)
|
|
85
111
|
|
|
112
|
+
# Terminal reasons that are *not* failures. Everything else exits non-zero.
|
|
113
|
+
GRACEFUL_STOP_REASONS = NORMAL_COMPLETION_REASONS | CLEAN_STOP_REASONS
|
|
114
|
+
|
|
86
115
|
|
|
87
116
|
class RunBudgetCancelled(Exception):
|
|
88
117
|
"""Fallback cancellation error used when no error class is injected.
|
|
@@ -202,6 +231,20 @@ def exit_code_for_stop(
|
|
|
202
231
|
return int(failure_exit_code)
|
|
203
232
|
|
|
204
233
|
|
|
234
|
+
def is_clean_stop(stop_reason: str | None) -> bool:
|
|
235
|
+
"""True when ``stop_reason`` names a stop the run chose for itself.
|
|
236
|
+
|
|
237
|
+
The predicate a stop path should consult before deciding an exit code, so
|
|
238
|
+
joining the clean-stop set is a one-line change to
|
|
239
|
+
:data:`CLEAN_STOP_REASONS` rather than new plumbing at the stop site.
|
|
240
|
+
|
|
241
|
+
Note this is narrower than :data:`GRACEFUL_STOP_REASONS`: an ordinary
|
|
242
|
+
completion exits zero but is not a self-stop, and must not be recorded as
|
|
243
|
+
one.
|
|
244
|
+
"""
|
|
245
|
+
return str(stop_reason or "").strip().lower() in CLEAN_STOP_REASONS
|
|
246
|
+
|
|
247
|
+
|
|
205
248
|
def is_budget_stop(stop_reason: str | None) -> bool:
|
|
206
249
|
return str(stop_reason or "").strip().lower() == STOP_REASON_RUN_BUDGET_EXHAUSTED
|
|
207
250
|
|