alysis-code 0.13.6.1__tar.gz → 0.13.7__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.6.1 → alysis_code-0.13.7}/PKG-INFO +3 -2
- alysis_code-0.13.7/docs/CHANGELOG.md +290 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/pyproject.toml +3 -2
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/__init__.py +1 -1
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/account_login.py +4 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/README.md +7 -6
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/session.py +11 -34
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/core.py +0 -2
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_loop.py +1 -3
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/loop.py +2 -2
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/startup.py +11 -7
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/config_menu.py +110 -13
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/setup_wizard.py +1 -1
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/app.py +95 -5
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/config_flow.py +52 -23
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/setup_app.py +15 -12
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/setup_flow.py +5 -5
- alysis_code-0.13.7/src/alysis_code/cli_impl/tui/tips.py +35 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/config.py +1 -1
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/personas.py +1 -1
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/usage_tracker.py +13 -6
- alysis_code-0.13.6.1/docs/CHANGELOG.md +0 -1621
- alysis_code-0.13.6.1/src/alysis_code/agentbox_client.py +0 -416
- alysis_code-0.13.6.1/src/alysis_code/agentbox_integration.py +0 -310
- alysis_code-0.13.6.1/src/alysis_code/assets/owl/index.html +0 -98
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/.gitignore +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/LICENSE +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/NOTICE +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/__main__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/_build_info.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/acceptance_contract.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/blast_radius.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/cache_keepalive.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/completion_certificate.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/completion_gate.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/empty_response_stall.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/errors.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/llm_calls.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/mutation_classification.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/prompt_context.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/read_ledger.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/regression_baseline.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/reproduction_first.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/sensitive_output.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/steering.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/subagent_execution.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/subagent_workspace.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/tools_assembly.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/events.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/exploration.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/interventions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/read_cache.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn/snapshot.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn_contract.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/turn_path.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/verification.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/verification_commands.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent/verification_evidence.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/base.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/builtins.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/codex_cli.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/host.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/registry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/agent_runtimes/service.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/alysis_cloud.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/approval_scope.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/asset_read_core.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/budget_allocator.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/comprehender.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/index.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/ingestion.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/legacy_migration.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/ocr.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/owl/show-owl.sh +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/paths.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/plan_binding.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/planner_context.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/planner_tools.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/prompts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/replanner_context.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/untrusted_content.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/usage_logger.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/worker_mirror.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/worker_section.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/assets/worker_tools.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/atomic_io.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/auth_diagnostics.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/background_runner.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/branding.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/budget_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/build_identity.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/builtin_hooks/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/bwrap_etc.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cancellation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/capabilities.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/assets_cli.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/assets_modal.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/commands.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/rendering.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat/state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat_resume.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/chat_slash_completer.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/auth.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/chat_state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/chat_status.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/chat_terminal.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/cli_common.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/config.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/execution_helpers.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/extensions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/forge.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/forge_helpers.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/mcp.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/profile.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/prompt_helpers.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/report.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/root.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/server.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/skills.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/tools.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/update.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/commands/welcome.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/forge.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/config.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/config_overlay.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/content.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/footer.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/markdown.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/owl.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/selection_bindings.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/subagent_identity.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/subagent_panel.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/transcript.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/cli_impl/tui/workspace_guard.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/clipboard.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/code_review.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/compaction/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/compaction/conversation_compactor.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/compaction/importance.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/compaction/settings.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/compaction/tool_output_offload.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/conflict_auto_resolver.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/context/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/crash_diagnostics.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/discovery.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/runtime.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/session.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/custom_tools/trust.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/diff_paths.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/direction_change.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/dispatch_timing.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/durable_service_manager.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/edit_discipline.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/error_text.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/execution_budget.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/execution_context.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/execution_deadline.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/execution_shared.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/activation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/install.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/manifest.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/paths.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/registry.json +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/registry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/extensions/workspace_trust.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/failed_task_evidence.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/failure_category.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/feedback_report.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/file_classification.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/forge.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/forge_completion.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/forge_events.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/frontmatter_utils.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/git_evidence.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/git_ops.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/git_safe.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/git_worktrees.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/audit.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/config.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/dispatcher.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/hooks/trust.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/host_actions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/host_browser.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/activity_events.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/approvals.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/artifacts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/change_ledger.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/context_blocks.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/event_stream.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/forge_protocol.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/forge_request_ledger.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/health.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/managed_browser.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/management_protocol.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/prompt_queue.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/protocol.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/resumable_swarm.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/session_search.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/stdio_bridge.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/structured_state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/ide/swarm_protocol.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/integration_gate.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/interactive_input_guard.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/interactive_plan_mode.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/internal_artifacts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/knowledge_base.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/knowledge_capture.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/knowledge_librarian.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/language_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/litellm_static_provider.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/anthropic_messages.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/base.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/cache_capabilities.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/cache_control_blocks.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/cache_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/factory.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/gemini_generate_content.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/gemini_interactions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/metadata.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/openai_compat.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/openai_responses.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/protocols.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/provider_limits.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/request_plan.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/request_shape.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/streaming.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/temperature_compat.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/types.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm/usage_normalization.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/llm_error_display.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/logging_redaction.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/managed_host_deadline.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/client.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/config.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/errors.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/forge_scope.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/jsonrpc.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/manager.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/oauth.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/oauth_runtime.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/oauth_store.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/prompts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/resources.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/roots.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/server_requests.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/token_store.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/transport_http.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/transport_stdio.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/mcp/untrusted_content.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/merge_conflict_reviewer.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_catalog/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_metadata_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_metadata_utils.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_registry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/model_router.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/permission_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/pipeline_facts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/plan_assistant.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/plan_mode.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/plan_reconciliation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/plan_repair.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/plan_validation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/planning_constraints.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/preview_server.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/process_reaping.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/profile_presets.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/profiles.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_auth/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_auth/base.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_auth/openai_codex.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_auth/registry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_auth/store.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_diagnostics.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_model_catalog.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_telemetry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/provider_url.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/reasoning_contracts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/remote_sync.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/replanning.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/repo_scan.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/request_estimation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/review_gate.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/run_lock.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/run_outcome.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/run_provenance.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/run_state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/runtime_artifacts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/runtime_context_features.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/runtime_kind.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/safety/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/safety/mcp_sanitize.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/safety/safe_http.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/safety/subagent_report.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/sandbox_doctor.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/sandbox_runner.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/sandbox_settings.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/serialized_paths.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/app.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/auth.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/job_config.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/settings.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/store.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/server/worker_runner.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/service_persistence.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/session_artifacts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/session_metrics.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/session_store.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/address-pr-comments/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/code-review/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/commit/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/debug/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/fix-ci/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/release-notes/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/security-review/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/bundled/skill-creator/SKILL.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/conventions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/discovery.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/eval_models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/eval_runner.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/evals.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/install.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/loader.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/matching.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/models.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/paths.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/prompting.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/scaffold.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/selection.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/state.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/transactions.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/skills/validation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/step_budget.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/subagent_labels.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/subagents.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/base.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/console.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/events.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/hidden_surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/noop_surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/rich_surface.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/styles.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/theme.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/surface/types.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_backend.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_orchestrator.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_scheduler.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_trace.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_worker.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/swarm_write_guard.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/task_dependencies.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/task_readiness.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/task_scope.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/terminal_manager.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/terminal_ownership.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/text_normalization.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/token_budget.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/README.md +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/__init__.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/artifacts.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/availability.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/fs.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/git.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/history.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/http_timeout.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/image_generation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/registry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/repo_map.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/search.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/shell.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/symbols.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/test_discovery.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web_search.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web_search_dashscope.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web_search_ddgs.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/tools/web_search_tavily.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/transport_retry.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/updates.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/verification_command_analysis.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/verification_contract.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/verification_failure_summary.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/verification_repair.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/verify_gate.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/web_research.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/web_search_adapters.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/web_search_policy.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/workspace_binding.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/workspace_binding_ui.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/workspace_context.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/workspace_isolation.py +0 -0
- {alysis_code-0.13.6.1 → alysis_code-0.13.7}/src/alysis_code/workspace_provisioning.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alysis-code
|
|
3
|
-
Version: 0.13.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.13.7
|
|
4
|
+
Summary: Open-source coding agent for hosted and local models.
|
|
5
5
|
Project-URL: Changelog, https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md
|
|
6
6
|
Project-URL: Documentation, https://github.com/AlysisAi/alysis-code/tree/main/docs
|
|
7
7
|
Project-URL: Funding, https://github.com/sponsors/AlysisAi
|
|
@@ -37,6 +37,7 @@ Requires-Dist: pillow>=12.3.0
|
|
|
37
37
|
Requires-Dist: platformdirs>=4.2.0
|
|
38
38
|
Requires-Dist: prompt-toolkit>=3.0.43
|
|
39
39
|
Requires-Dist: pydantic>=2.6.0
|
|
40
|
+
Requires-Dist: pygments<3.0.0,>=2.17.0
|
|
40
41
|
Requires-Dist: rich>=13.7.1
|
|
41
42
|
Requires-Dist: tiktoken>=0.7.0
|
|
42
43
|
Requires-Dist: typer>=0.12.0
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Notable user-facing changes to Alysis Code are recorded here. This project follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses
|
|
5
|
+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html) while the public API remains pre-1.0.
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
No user-facing changes yet.
|
|
10
|
+
|
|
11
|
+
## [0.13.7] - 2026-09-11
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Rotating usage tips above the chat input while the agent works, with clickable links.
|
|
16
|
+
Tips hide during dialogs and stay out of conversation history.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- The context footer shows remaining conversation space after startup prompts and tools.
|
|
21
|
+
Provider measurements and calibrated estimates inform the gauge, while capacity warnings
|
|
22
|
+
continue to use the full request budget.
|
|
23
|
+
- Ctrl+J is the multiline input shortcut; Enter submits. The Alt+Enter alias is removed.
|
|
24
|
+
- Updated public documentation and contributor guidance.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Setup continuation hints stay visible above the footer on small terminals and long screens.
|
|
29
|
+
- Benchmark wheel builds preserve local build metadata and existing build artifacts, including
|
|
30
|
+
when a build fails or is interrupted.
|
|
31
|
+
|
|
32
|
+
## [0.13.6.2] - 2026-09-08
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- **Alysis Code account setup and configuration use subscription controls.**
|
|
37
|
+
Setup identifies the Alysis Code endpoint without the retired MiMo label.
|
|
38
|
+
Hosted profiles show Alysis Code subscription access and account sign-in,
|
|
39
|
+
reconnect, and disconnect controls instead of an API-key editor.
|
|
40
|
+
- **Hosted model changes no longer ask for a base URL.** The managed endpoint
|
|
41
|
+
stays in place through model selection and back navigation. Custom and BYOK
|
|
42
|
+
providers keep their endpoint settings.
|
|
43
|
+
- **Switching to an Alysis Code account keeps the correct connection.** Signing
|
|
44
|
+
in refreshes the full active profile before configuration is saved, preventing
|
|
45
|
+
the previous provider's URL from overwriting the hosted endpoint. Login also
|
|
46
|
+
switches back to the native agent from a selected delegated runtime. Account
|
|
47
|
+
status reflects the Alysis login, including after logout when an unrelated
|
|
48
|
+
provider key is still saved.
|
|
49
|
+
|
|
50
|
+
## [0.13.6.1] - 2026-09-08
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- **V4.1 Flash beta on Alysis Code Pro.** The Pro model picker now includes
|
|
55
|
+
`deepseek-v4.1-flash-expires-on-0910` and `deepseek-v4-flash-vision-exp`
|
|
56
|
+
with descriptions. Newly discovered models are captioned "available on your
|
|
57
|
+
Alysis Code Pro plan" instead of the retired MiMo "trial" wording.
|
|
58
|
+
|
|
59
|
+
## [0.13.6] - 2026-09-08
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- **DeepSeek V4.1 Flash internal beta.** `deepseek-v4.1-flash-expires-on-0910`
|
|
64
|
+
(announced 2026-09-08) is now on the DeepSeek preset menu. It is a
|
|
65
|
+
new-architecture model with native multimodal input, served on the unchanged
|
|
66
|
+
`https://api.deepseek.com` base URL under a temporary id that stops resolving
|
|
67
|
+
on 2026-09-10; DeepSeek bills it at the `deepseek-v4-flash` rate and caps
|
|
68
|
+
accounts at 20 concurrent requests. Registry metadata assumes the V4 Flash
|
|
69
|
+
shape (1M context, 384K output, vision, thinking `low|high|max`) until
|
|
70
|
+
DeepSeek publishes the GA id and limits. `deepseek-v4-pro` stays the default.
|
|
71
|
+
|
|
72
|
+
### Changed
|
|
73
|
+
|
|
74
|
+
- **DeepSeek footer labels follow vendor spelling.** Names now appear as
|
|
75
|
+
`DeepSeek-V4-Pro` and `DeepSeek-V4.1-Flash`; dated beta ids omit their
|
|
76
|
+
`-expires-on-<date>` suffix from the displayed label.
|
|
77
|
+
|
|
78
|
+
## [0.13.5] - 2026-09-07
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
|
|
82
|
+
- Ship eight bundled workflow skills: `address-pr-comments`, `code-review`,
|
|
83
|
+
`commit`, `debug`, `fix-ci`, `release-notes`, `security-review`, and `skill-creator`.
|
|
84
|
+
- Select a relevant skill automatically with a bounded, reasoning-off model call;
|
|
85
|
+
read its instructions before other task tools, with ordinary routing as fallback.
|
|
86
|
+
- Invoke skills with `$<name> [task]` at an idle chat prompt, with live completion
|
|
87
|
+
and one-turn attachment. `/skill` remains supported.
|
|
88
|
+
- Add `bundled_skills_enabled` configuration, project and user override precedence,
|
|
89
|
+
and model-in-loop bundled workflow evaluations with launch-readiness checks.
|
|
90
|
+
|
|
91
|
+
### Fixed
|
|
92
|
+
|
|
93
|
+
- Harden skill instruction boundaries, selection ordering, and per-turn cleanup.
|
|
94
|
+
- Preserve resolved skill settings in child agents and restore slash completion.
|
|
95
|
+
- Recognize silent and inline verification results and preserve authoritative
|
|
96
|
+
verification evidence when supplemental checks run.
|
|
97
|
+
- Bound stalled OpenAI-compatible and Responses streams, including traffic that
|
|
98
|
+
contains no meaningful progress.
|
|
99
|
+
|
|
100
|
+
## [0.13.4] - 2026-09-05
|
|
101
|
+
|
|
102
|
+
Model-catalog and TUI-access refresh.
|
|
103
|
+
|
|
104
|
+
### Added
|
|
105
|
+
|
|
106
|
+
- Added GPT-6 Astra as the default OpenAI model, with aliases, pricing, context-window,
|
|
107
|
+
reasoning, OpenRouter, and ChatGPT-subscription metadata.
|
|
108
|
+
- Added newly available first-party and gateway routes for Claude Fable 5.1, Gemini 3.8
|
|
109
|
+
Flash, Qwen 3.8, GLM-5.3, Kimi K3, Doubao Seed 2.1, DeepSeek V4 snapshots, Grok 4.6,
|
|
110
|
+
and related hosted variants.
|
|
111
|
+
|
|
112
|
+
### Changed
|
|
113
|
+
|
|
114
|
+
- Refreshed every hosted preset's model picker, aliases, validation model, retirement
|
|
115
|
+
mappings, pricing, context limits, and reasoning contracts against provider catalogs.
|
|
116
|
+
- Updated TUI model labels to preserve vendor naming and made profile pickers show each
|
|
117
|
+
profile's model, host, active state, retired-model state, and duplicates.
|
|
118
|
+
- Migrated the Perplexity preset from the retiring Sonar Chat Completions endpoint to the
|
|
119
|
+
Agent API, including hosted web search and saved-profile migration.
|
|
120
|
+
- Replaced the OpenAI economy and validation model with GPT-5.6 Luna and kept
|
|
121
|
+
GPT-5.3 Codex limited to the Responses preset.
|
|
122
|
+
|
|
123
|
+
### Fixed
|
|
124
|
+
|
|
125
|
+
- OpenAI Chat Completions now uses `max_completion_tokens` for GPT-5 and newer models.
|
|
126
|
+
- Native Gemini tool and response schemas are projected onto Gemini's supported OpenAPI
|
|
127
|
+
subset before requests are sent.
|
|
128
|
+
|
|
129
|
+
## [0.13.3] - 2026-08-28
|
|
130
|
+
|
|
131
|
+
### Fixed
|
|
132
|
+
|
|
133
|
+
- Restored the Ubuntu Python 3.11 and 3.12 CI jobs after the repository cleanup by aligning Ruff
|
|
134
|
+
formatting, updating moved sandbox contract paths, preserving the security-documentation
|
|
135
|
+
contract, making immediate shell-output coverage independent of thread scheduling, and allowing
|
|
136
|
+
harmless floating-point clock precision in deadline coverage.
|
|
137
|
+
|
|
138
|
+
## [0.13.2] - 2026-08-28
|
|
139
|
+
|
|
140
|
+
Public launch and repository-layout refresh.
|
|
141
|
+
|
|
142
|
+
### Added
|
|
143
|
+
|
|
144
|
+
- A theme-adaptive README banner with dedicated light and dark artwork.
|
|
145
|
+
- `alysis-code` as the canonical executable, while retaining `alysis` as the short alias.
|
|
146
|
+
|
|
147
|
+
### Changed
|
|
148
|
+
|
|
149
|
+
- Simplified the public README around installation, core capabilities, modes, and documentation.
|
|
150
|
+
- Moved governance files under `.github/`, release and changelog documents under `docs/`, and
|
|
151
|
+
sandbox and benchmark sources under `scripts/` for a cleaner repository root.
|
|
152
|
+
- Legacy Sylliptor environment and command compatibility now forwards silently while retaining
|
|
153
|
+
diagnostic logging for support.
|
|
154
|
+
|
|
155
|
+
### Fixed
|
|
156
|
+
|
|
157
|
+
- Device-login approval URLs now remain pinned to the configured Alysis site instead of trusting
|
|
158
|
+
a backend-provided origin.
|
|
159
|
+
|
|
160
|
+
## [0.13.1] - 2026-08-27
|
|
161
|
+
|
|
162
|
+
### Fixed
|
|
163
|
+
|
|
164
|
+
- Kept terminal input, selection, scrolling, paste hints, and theme behavior consistent across
|
|
165
|
+
chat and configuration screens.
|
|
166
|
+
- Made intentional clean stops exit successfully while preserving non-zero exits for genuine
|
|
167
|
+
failures and unknown stop reasons.
|
|
168
|
+
- Added bounded retries for connections interrupted during a response, with consistent deadline
|
|
169
|
+
and diagnostic reporting.
|
|
170
|
+
|
|
171
|
+
## [0.13.0] - 2026-08-26
|
|
172
|
+
|
|
173
|
+
### Changed
|
|
174
|
+
|
|
175
|
+
- Renamed Sylliptor to Alysis Code. The package is now `alysis-code`, the command is `alysis`, and
|
|
176
|
+
the Python module is `alysis_code`.
|
|
177
|
+
- Preserved the deprecated `sylliptor` command and migration support for existing configuration,
|
|
178
|
+
credentials, plugins, and project directories. See the [migration guide](migration-alysis-code.md).
|
|
179
|
+
- Improved run-budget handling, deadline-aware shell waits, persistent services, edit diagnostics,
|
|
180
|
+
sampling controls, and build provenance.
|
|
181
|
+
|
|
182
|
+
### Security
|
|
183
|
+
|
|
184
|
+
- Added redaction at log and telemetry write boundaries for credential-shaped values.
|
|
185
|
+
|
|
186
|
+
## [0.12.0] - 2026-08-18
|
|
187
|
+
|
|
188
|
+
### Added
|
|
189
|
+
|
|
190
|
+
- Added Code, Architect, Ask, and Debug personas.
|
|
191
|
+
- Added provider-neutral Terminal-Bench and Harbor adapters.
|
|
192
|
+
- Added deterministic release builds, dependency auditing, SBOM generation, and provenance
|
|
193
|
+
attestations.
|
|
194
|
+
|
|
195
|
+
### Changed
|
|
196
|
+
|
|
197
|
+
- Improved evidence-based finalization, blocker reporting, provider authentication, model
|
|
198
|
+
discovery, context management, and verification repair.
|
|
199
|
+
- Strengthened boundaries around credentials, protected paths, filesystem access, and sensitive
|
|
200
|
+
tool output.
|
|
201
|
+
|
|
202
|
+
## [0.11.2] - 2026-07-27
|
|
203
|
+
|
|
204
|
+
### Added
|
|
205
|
+
|
|
206
|
+
- Added route arbitration, turn-contract enforcement, regression baselines, and evidence-backed
|
|
207
|
+
completion checks.
|
|
208
|
+
- Added tracked process cleanup, workspace provisioning, incomplete-subagent containment, and new
|
|
209
|
+
Moonshot/Kimi model presets.
|
|
210
|
+
- Added a master switch for web tools and search backends.
|
|
211
|
+
|
|
212
|
+
### Changed
|
|
213
|
+
|
|
214
|
+
- Refreshed the ChatGPT subscription model catalog and provider-reported final-answer handling.
|
|
215
|
+
|
|
216
|
+
## [0.11.1] - 2026-07-20
|
|
217
|
+
|
|
218
|
+
### Changed
|
|
219
|
+
|
|
220
|
+
- Redesigned the interactive configuration screen with grouped settings, clearer summaries, and
|
|
221
|
+
improved provider and model selection.
|
|
222
|
+
- Added provider-specific reasoning controls and clearer per-role model overrides.
|
|
223
|
+
|
|
224
|
+
### Fixed
|
|
225
|
+
|
|
226
|
+
- Applied configuration changes made before the first message without restarting the terminal UI.
|
|
227
|
+
- Corrected input-budget calculations for shared-window models.
|
|
228
|
+
|
|
229
|
+
## [0.11.0] - 2026-07-18
|
|
230
|
+
|
|
231
|
+
### Added
|
|
232
|
+
|
|
233
|
+
- Added specialist subagent roles and capability-aware delegation.
|
|
234
|
+
- Added live subagent progress and result attribution to the terminal UI.
|
|
235
|
+
- Added an opt-in visual designer for image generation.
|
|
236
|
+
|
|
237
|
+
### Security
|
|
238
|
+
|
|
239
|
+
- Constrained child tools, execution modes, deadlines, and result handling so delegated output
|
|
240
|
+
cannot change parent authority or permissions.
|
|
241
|
+
|
|
242
|
+
## [0.10.0] - 2026-07-13
|
|
243
|
+
|
|
244
|
+
### Added
|
|
245
|
+
|
|
246
|
+
- Added ChatGPT Codex subscription login, encrypted refreshable credentials, and live model
|
|
247
|
+
discovery.
|
|
248
|
+
- Added DDGS web search as a keyless fallback and expanded hosted search support.
|
|
249
|
+
- Added repository mapping, focused test discovery, cached update prompts, and safer workspace
|
|
250
|
+
previews.
|
|
251
|
+
|
|
252
|
+
### Changed
|
|
253
|
+
|
|
254
|
+
- Improved provider-aware prompt caching, usage accounting, terminal navigation, Forge planning,
|
|
255
|
+
and OpenAI Responses streaming recovery.
|
|
256
|
+
|
|
257
|
+
## [0.9.8] - 2026-06-29
|
|
258
|
+
|
|
259
|
+
### Added
|
|
260
|
+
|
|
261
|
+
- Added stronger completion contracts and verification evidence for one-shot and managed tasks.
|
|
262
|
+
- Added shell waiting, durable service tools, and stricter web-fetch provenance.
|
|
263
|
+
|
|
264
|
+
### Changed
|
|
265
|
+
|
|
266
|
+
- Improved Forge verification, runtime deadlines, provider adapters, usage tracking, and recovery
|
|
267
|
+
from unknown tool calls.
|
|
268
|
+
|
|
269
|
+
## Earlier releases
|
|
270
|
+
|
|
271
|
+
Release notes for versions before 0.9.8 remain available in the
|
|
272
|
+
[GitHub Releases archive](https://github.com/AlysisAi/alysis-code/releases).
|
|
273
|
+
|
|
274
|
+
[Unreleased]: https://github.com/AlysisAi/alysis-code/compare/v0.13.7...HEAD
|
|
275
|
+
[0.13.7]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.2...v0.13.7
|
|
276
|
+
[0.13.6.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.1...v0.13.6.2
|
|
277
|
+
[0.13.6.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6...v0.13.6.1
|
|
278
|
+
[0.13.6]: https://github.com/AlysisAi/alysis-code/compare/v0.13.5...v0.13.6
|
|
279
|
+
[0.13.5]: https://github.com/AlysisAi/alysis-code/compare/v0.13.4...v0.13.5
|
|
280
|
+
[0.13.4]: https://github.com/AlysisAi/alysis-code/compare/v0.13.3...v0.13.4
|
|
281
|
+
[0.13.3]: https://github.com/AlysisAi/alysis-code/compare/v0.13.2...v0.13.3
|
|
282
|
+
[0.13.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.1...v0.13.2
|
|
283
|
+
[0.13.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.0...v0.13.1
|
|
284
|
+
[0.13.0]: https://github.com/AlysisAi/alysis-code/compare/v0.12.0...v0.13.0
|
|
285
|
+
[0.12.0]: https://github.com/AlysisAi/alysis-code/compare/v0.11.2...v0.12.0
|
|
286
|
+
[0.11.2]: https://github.com/AlysisAi/alysis-code/compare/v0.11.1...v0.11.2
|
|
287
|
+
[0.11.1]: https://github.com/AlysisAi/alysis-code/compare/v0.11.0...v0.11.1
|
|
288
|
+
[0.11.0]: https://github.com/AlysisAi/alysis-code/compare/v0.10.0...v0.11.0
|
|
289
|
+
[0.10.0]: https://github.com/AlysisAi/alysis-code/compare/v0.9.8...v0.10.0
|
|
290
|
+
[0.9.8]: https://github.com/AlysisAi/alysis-code/releases/tag/v0.9.8
|
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "alysis-code"
|
|
7
|
-
version = "0.13.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.13.7"
|
|
8
|
+
description = "Open-source coding agent for hosted and local models."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
license = { text = "Apache-2.0" }
|
|
@@ -44,6 +44,7 @@ dependencies = [
|
|
|
44
44
|
"platformdirs>=4.2.0",
|
|
45
45
|
"pydantic>=2.6.0",
|
|
46
46
|
"prompt-toolkit>=3.0.43",
|
|
47
|
+
"pygments>=2.17.0,<3.0.0",
|
|
47
48
|
"rich>=13.7.1",
|
|
48
49
|
"tiktoken>=0.7.0",
|
|
49
50
|
"typer>=0.12.0",
|
|
@@ -479,6 +479,10 @@ def _activate_alysis_profile(cfg: AppConfig, *, email: str | None) -> LoginResul
|
|
|
479
479
|
|
|
480
480
|
add_profile(cfg, profile)
|
|
481
481
|
set_active_profile(cfg, profile.name)
|
|
482
|
+
# Hosted account access uses the native agent loop. Keep configured
|
|
483
|
+
# delegated runtimes available, but stop routing this session through one.
|
|
484
|
+
cfg.execution.backend = "native"
|
|
485
|
+
cfg.execution.runtime = None
|
|
482
486
|
save_config(cfg)
|
|
483
487
|
|
|
484
488
|
return LoginResult(
|
|
@@ -5,14 +5,15 @@ managed execution flows.
|
|
|
5
5
|
|
|
6
6
|
## Contents
|
|
7
7
|
|
|
8
|
-
-
|
|
8
|
+
- [session.py](session.py) builds session state from configuration, workspace context, and
|
|
9
9
|
runtime kind.
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
10
|
+
- [tools_assembly.py](tools_assembly.py) builds the concrete tool surface for a session.
|
|
11
|
+
- [turn/core.py](turn/core.py) runs the turn loop and tool-call iteration.
|
|
12
|
+
- [turn_path.py](turn_path.py) defines execution posture and reply-language directives.
|
|
13
|
+
- [prompt_context.py](prompt_context.py) prepares workspace, convention, skill, plugin, and
|
|
14
14
|
verification context.
|
|
15
|
-
-
|
|
15
|
+
- [verification.py](verification.py) and [verification_commands.py](verification_commands.py)
|
|
16
|
+
support verification flows.
|
|
16
17
|
|
|
17
18
|
## Scope
|
|
18
19
|
|
|
@@ -17,7 +17,6 @@ from typing import TYPE_CHECKING, Any
|
|
|
17
17
|
|
|
18
18
|
from .. import __version__
|
|
19
19
|
from ..agent import _patchable
|
|
20
|
-
from ..agentbox_integration import AgentBoxTelemetry
|
|
21
20
|
from ..background_runner import (
|
|
22
21
|
DisabledBackgroundRunner,
|
|
23
22
|
LazyBackgroundShellRunner,
|
|
@@ -549,7 +548,7 @@ class AgentSession:
|
|
|
549
548
|
one_shot_execution: bool = False
|
|
550
549
|
# Persona mode (code|architect|ask|debug). A convention layered on the
|
|
551
550
|
# execution-mode gate, never an enforcement layer; "code" is the no-op
|
|
552
|
-
# persona. See docs/
|
|
551
|
+
# persona. See docs/personas.md.
|
|
553
552
|
persona: str = "code"
|
|
554
553
|
# The user's chosen execution mode remembered while a narrowing persona
|
|
555
554
|
# (architect/ask) is active, so switching back to code/debug restores it.
|
|
@@ -629,7 +628,6 @@ class AgentSession:
|
|
|
629
628
|
cache_keepalive: ParentCacheKeepalive | None = None
|
|
630
629
|
crash_diagnostics: CrashDiagnosticLogger | None = None
|
|
631
630
|
crash_diagnostic_log_path: str | None = None
|
|
632
|
-
agentbox_telemetry: AgentBoxTelemetry | None = None
|
|
633
631
|
process_group_registry: ProcessGroupRegistry | None = None
|
|
634
632
|
# Empty-response handling is budgeted per session, not per turn: two failed
|
|
635
633
|
# recovery cycles mean the endpoint is not answering, and re-spending the
|
|
@@ -840,8 +838,6 @@ class AgentSession:
|
|
|
840
838
|
if self.mcp_manager is not None:
|
|
841
839
|
self.mcp_manager.close()
|
|
842
840
|
finally:
|
|
843
|
-
if self.agentbox_telemetry is not None:
|
|
844
|
-
self.agentbox_telemetry.close(error=reason not in {"session_close", "completed"})
|
|
845
841
|
self.store.close()
|
|
846
842
|
|
|
847
843
|
def _hook_warning(self, message: str, *, code: str = "hook_warning") -> None:
|
|
@@ -1154,8 +1150,6 @@ class AgentSession:
|
|
|
1154
1150
|
persistent_has_media=request_contains_media(self.messages),
|
|
1155
1151
|
)
|
|
1156
1152
|
self.store.append("llm_usage", usage_record.to_payload())
|
|
1157
|
-
if self.agentbox_telemetry is not None:
|
|
1158
|
-
self.agentbox_telemetry.record_usage(usage_record)
|
|
1159
1153
|
return usage_record
|
|
1160
1154
|
except Exception as exc: # noqa: BLE001 -- accounting cannot break the agent turn
|
|
1161
1155
|
self.store.append(
|
|
@@ -1709,29 +1703,16 @@ class AgentSession:
|
|
|
1709
1703
|
self._turn_owner_thread_id = turn_thread_id
|
|
1710
1704
|
self._bind_provider_retry_observer(self.client)
|
|
1711
1705
|
try:
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
)
|
|
1723
|
-
self.agentbox_telemetry.task(instruction)
|
|
1724
|
-
with self.agentbox_telemetry.turn():
|
|
1725
|
-
return _run_turn(
|
|
1726
|
-
self,
|
|
1727
|
-
instruction,
|
|
1728
|
-
image_paths=image_paths,
|
|
1729
|
-
routing_mode_override=routing_mode_override,
|
|
1730
|
-
ephemeral_system_messages=ephemeral_system_messages,
|
|
1731
|
-
ephemeral_user_messages=ephemeral_user_messages,
|
|
1732
|
-
cancellation_token=cancellation_token,
|
|
1733
|
-
chat_only=chat_only,
|
|
1734
|
-
)
|
|
1706
|
+
return _run_turn(
|
|
1707
|
+
self,
|
|
1708
|
+
instruction,
|
|
1709
|
+
image_paths=image_paths,
|
|
1710
|
+
routing_mode_override=routing_mode_override,
|
|
1711
|
+
ephemeral_system_messages=ephemeral_system_messages,
|
|
1712
|
+
ephemeral_user_messages=ephemeral_user_messages,
|
|
1713
|
+
cancellation_token=cancellation_token,
|
|
1714
|
+
chat_only=chat_only,
|
|
1715
|
+
)
|
|
1735
1716
|
except CooperativeCancellationError as exc:
|
|
1736
1717
|
# The budget watchdog cancels through the same cooperative channel a
|
|
1737
1718
|
# user does, so the two are told apart by reason. A budget stop is a
|
|
@@ -3234,10 +3215,6 @@ def create_session(
|
|
|
3234
3215
|
execution_deadline=execution_deadline,
|
|
3235
3216
|
crash_diagnostics=crash_diagnostics,
|
|
3236
3217
|
crash_diagnostic_log_path=resolved_crash_diagnostic_log_path,
|
|
3237
|
-
agentbox_telemetry=AgentBoxTelemetry.from_env(
|
|
3238
|
-
root=root,
|
|
3239
|
-
runtime_version=f"alysis-{__version__}",
|
|
3240
|
-
),
|
|
3241
3218
|
process_group_registry=process_group_registry,
|
|
3242
3219
|
)
|
|
3243
3220
|
if subagent_depth == 0 and store.enabled:
|
|
@@ -5800,8 +5800,6 @@ def run_turn(
|
|
|
5800
5800
|
and tool_executed_for_deadline_observation
|
|
5801
5801
|
):
|
|
5802
5802
|
skill_selection_no_match_pending = False
|
|
5803
|
-
if getattr(self, "agentbox_telemetry", None) is not None:
|
|
5804
|
-
self.agentbox_telemetry.tool(effective_tool_name)
|
|
5805
5803
|
tool_unavailable = is_tool_unavailable_result(result)
|
|
5806
5804
|
if status == "done" and not tool_unavailable:
|
|
5807
5805
|
if effective_tool_name == "shell_background":
|
|
@@ -687,7 +687,5 @@ def run_agent(
|
|
|
687
687
|
finally:
|
|
688
688
|
if watchdog is not None:
|
|
689
689
|
watchdog.disarm()
|
|
690
|
-
#
|
|
691
|
-
# the agentbox error flag, and a budget stop is not an error. The
|
|
692
|
-
# machine-readable marker travels as session.stop_reason instead.
|
|
690
|
+
# Budget stops retain their machine-readable reason in session.stop_reason.
|
|
693
691
|
session.close()
|
|
@@ -2247,8 +2247,8 @@ def chat(
|
|
|
2247
2247
|
|
|
2248
2248
|
try:
|
|
2249
2249
|
_refresh_chat_hud_context_cache(built)
|
|
2250
|
-
#
|
|
2251
|
-
#
|
|
2250
|
+
# Show conversation space relative to the startup
|
|
2251
|
+
# baseline; /context retains full-request diagnostics.
|
|
2252
2252
|
pct = _chat_context_percent_value(built)
|
|
2253
2253
|
if pct is not None:
|
|
2254
2254
|
_tui_state.context_pct = float(pct)
|
|
@@ -540,9 +540,12 @@ def _chat_context_hud_value(session: Any) -> str:
|
|
|
540
540
|
if value is None:
|
|
541
541
|
return "n/a"
|
|
542
542
|
label = f"{value:.1f}%"
|
|
543
|
-
|
|
543
|
+
warning_percent = _chat_effective_budget_percent_value(session)
|
|
544
|
+
if warning_percent is None:
|
|
545
|
+
warning_percent = value
|
|
546
|
+
if warning_percent < 10.0:
|
|
544
547
|
return f"{label} !!"
|
|
545
|
-
if
|
|
548
|
+
if warning_percent < 25.0:
|
|
546
549
|
return f"{label} !"
|
|
547
550
|
return label
|
|
548
551
|
|
|
@@ -596,11 +599,12 @@ def _chat_context_percent_value(session: Any) -> float | None:
|
|
|
596
599
|
ctx = getattr(session, "_hud_context_cache", None)
|
|
597
600
|
if ctx is None:
|
|
598
601
|
return None
|
|
599
|
-
#
|
|
600
|
-
#
|
|
601
|
-
#
|
|
602
|
-
|
|
603
|
-
percent
|
|
602
|
+
# Show the conversation space remaining after startup prompts and tools,
|
|
603
|
+
# so a fresh session starts at 100%. Capacity warnings still use the full
|
|
604
|
+
# request through _chat_effective_budget_percent_value.
|
|
605
|
+
percent = getattr(ctx, "dynamic_context_percent_left", None)
|
|
606
|
+
if percent is None:
|
|
607
|
+
percent = getattr(ctx, "effective_percent_left", None)
|
|
604
608
|
if percent is None:
|
|
605
609
|
percent = getattr(ctx, "context_window_percent_left", None)
|
|
606
610
|
if percent is None:
|