alysis-code 0.13.6.2__tar.gz → 0.13.8__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.2 → alysis_code-0.13.8}/PKG-INFO +11 -4
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/README.md +8 -2
- alysis_code-0.13.8/docs/CHANGELOG.md +328 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/pyproject.toml +3 -2
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/__init__.py +1 -1
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/README.md +7 -6
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/prompt_context.py +3 -11
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/session.py +23 -40
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/steering.py +66 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/tools_assembly.py +34 -7
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/core.py +66 -5
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_loop.py +1 -3
- alysis_code-0.13.8/src/alysis_code/cancellation.py +202 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/__init__.py +0 -12
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/commands.py +110 -221
- alysis_code-0.13.8/src/alysis_code/cli_impl/chat/forge_visibility.py +35 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/loop.py +385 -615
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +39 -8
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/rendering.py +5 -63
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat/state.py +3 -9
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat_resume.py +21 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/chat_slash_completer.py +9 -6
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/chat_state.py +2 -9
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/chat_status.py +48 -101
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/chat_terminal.py +1 -30
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/cli_common.py +6 -32
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/forge_helpers.py +0 -18
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/prompt_helpers.py +7 -30
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/startup.py +16 -26
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/welcome.py +19 -30
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/app.py +876 -236
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/footer.py +11 -3
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/setup_app.py +15 -12
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/setup_flow.py +1 -1
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/state.py +14 -19
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/surface.py +39 -0
- alysis_code-0.13.8/src/alysis_code/cli_impl/tui/tips.py +35 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/compaction/tool_output_offload.py +8 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/config.py +2 -3
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/feedback_report.py +262 -31
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/host_browser.py +24 -1
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/openai_compat.py +25 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/personas.py +2 -2
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/events.py +7 -7
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/rich_surface.py +2 -13
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/git.py +114 -6
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/registry.py +27 -4
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/usage_tracker.py +13 -6
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/verification_command_analysis.py +49 -0
- alysis_code-0.13.6.2/docs/CHANGELOG.md +0 -1639
- alysis_code-0.13.6.2/src/alysis_code/agentbox_client.py +0 -416
- alysis_code-0.13.6.2/src/alysis_code/agentbox_integration.py +0 -310
- alysis_code-0.13.6.2/src/alysis_code/assets/owl/index.html +0 -98
- alysis_code-0.13.6.2/src/alysis_code/cancellation.py +0 -53
- alysis_code-0.13.6.2/src/alysis_code/interactive_plan_mode.py +0 -26
- alysis_code-0.13.6.2/src/alysis_code/plan_mode.py +0 -393
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/.gitignore +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/LICENSE +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/NOTICE +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/__main__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/_build_info.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/account_login.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/acceptance_contract.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/blast_radius.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/cache_keepalive.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/completion_certificate.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/completion_gate.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/empty_response_stall.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/errors.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/llm_calls.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/mutation_classification.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/read_ledger.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/regression_baseline.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/reproduction_first.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/sensitive_output.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/subagent_execution.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/subagent_workspace.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/events.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/exploration.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/interventions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/read_cache.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn/snapshot.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn_contract.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/turn_path.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/verification.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/verification_commands.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent/verification_evidence.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/base.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/builtins.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/codex_cli.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/host.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/registry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/agent_runtimes/service.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/alysis_cloud.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/approval_scope.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/asset_read_core.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/budget_allocator.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/comprehender.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/index.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/ingestion.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/legacy_migration.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/ocr.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/owl/show-owl.sh +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/paths.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/plan_binding.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/planner_context.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/planner_tools.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/prompts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/replanner_context.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/surface.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/untrusted_content.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/usage_logger.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/worker_mirror.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/worker_section.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/assets/worker_tools.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/atomic_io.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/auth_diagnostics.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/background_runner.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/branding.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/budget_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/build_identity.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/builtin_hooks/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/bwrap_etc.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/capabilities.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/assets_cli.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/assets_modal.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/auth.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/config.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/execution_helpers.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/extensions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/forge.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/mcp.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/profile.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/report.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/root.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/server.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/skills.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/tools.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/commands/update.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/config_menu.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/forge.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/setup_wizard.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/config.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/config_flow.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/config_overlay.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/content.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/markdown.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/owl.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/selection_bindings.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/subagent_identity.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/subagent_panel.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/transcript.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/cli_impl/tui/workspace_guard.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/clipboard.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/code_review.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/compaction/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/compaction/conversation_compactor.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/compaction/importance.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/compaction/settings.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/conflict_auto_resolver.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/context/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/crash_diagnostics.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/discovery.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/runtime.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/session.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/custom_tools/trust.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/diff_paths.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/direction_change.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/dispatch_timing.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/durable_service_manager.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/edit_discipline.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/error_text.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/execution_budget.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/execution_context.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/execution_deadline.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/execution_shared.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/activation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/install.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/manifest.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/paths.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/registry.json +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/registry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/state.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/extensions/workspace_trust.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/failed_task_evidence.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/failure_category.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/file_classification.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/forge.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/forge_completion.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/forge_events.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/frontmatter_utils.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/git_evidence.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/git_ops.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/git_safe.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/git_worktrees.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/audit.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/config.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/dispatcher.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/hooks/trust.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/host_actions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/activity_events.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/approvals.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/artifacts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/change_ledger.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/context_blocks.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/event_stream.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/forge_protocol.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/forge_request_ledger.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/health.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/managed_browser.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/management_protocol.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/prompt_queue.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/protocol.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/resumable_swarm.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/session_search.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/stdio_bridge.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/structured_state.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/ide/swarm_protocol.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/integration_gate.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/interactive_input_guard.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/internal_artifacts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/knowledge_base.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/knowledge_capture.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/knowledge_librarian.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/language_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/litellm_static_provider.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/anthropic_messages.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/base.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/cache_capabilities.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/cache_control_blocks.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/cache_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/factory.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/gemini_generate_content.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/gemini_interactions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/metadata.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/openai_responses.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/protocols.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/provider_limits.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/request_plan.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/request_shape.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/streaming.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/temperature_compat.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/types.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm/usage_normalization.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/llm_error_display.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/logging_redaction.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/managed_host_deadline.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/client.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/config.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/errors.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/forge_scope.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/jsonrpc.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/manager.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/oauth.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/oauth_runtime.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/oauth_store.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/prompts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/resources.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/roots.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/server_requests.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/token_store.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/transport_http.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/transport_stdio.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/mcp/untrusted_content.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/merge_conflict_reviewer.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_catalog/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_metadata_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_metadata_utils.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_registry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/model_router.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/permission_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/pipeline_facts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/plan_assistant.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/plan_reconciliation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/plan_repair.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/plan_validation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/planning_constraints.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/preview_server.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/process_reaping.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/profile_presets.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/profiles.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_auth/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_auth/base.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_auth/openai_codex.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_auth/registry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_auth/store.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_diagnostics.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_model_catalog.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_telemetry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/provider_url.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/reasoning_contracts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/remote_sync.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/replanning.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/repo_scan.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/request_estimation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/review_gate.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/run_lock.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/run_outcome.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/run_provenance.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/run_state.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/runtime_artifacts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/runtime_context_features.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/runtime_kind.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/safety/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/safety/mcp_sanitize.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/safety/safe_http.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/safety/subagent_report.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/sandbox_doctor.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/sandbox_runner.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/sandbox_settings.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/serialized_paths.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/app.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/auth.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/job_config.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/settings.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/store.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/server/worker_runner.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/service_persistence.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/session_artifacts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/session_metrics.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/session_store.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/address-pr-comments/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/code-review/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/commit/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/debug/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/fix-ci/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/release-notes/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/security-review/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/bundled/skill-creator/SKILL.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/conventions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/discovery.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/eval_models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/eval_runner.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/evals.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/install.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/loader.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/matching.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/models.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/paths.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/prompting.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/scaffold.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/selection.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/state.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/transactions.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/skills/validation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/step_budget.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/subagent_labels.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/subagents.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/base.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/console.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/hidden_surface.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/noop_surface.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/styles.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/theme.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/surface/types.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_backend.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_orchestrator.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_scheduler.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_trace.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_worker.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/swarm_write_guard.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/task_dependencies.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/task_readiness.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/task_scope.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/terminal_manager.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/terminal_ownership.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/text_normalization.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/token_budget.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/README.md +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/__init__.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/artifacts.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/availability.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/fs.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/history.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/http_timeout.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/image_generation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/repo_map.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/search.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/shell.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/symbols.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/test_discovery.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web_search.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web_search_dashscope.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web_search_ddgs.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/tools/web_search_tavily.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/transport_retry.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/updates.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/verification_contract.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/verification_failure_summary.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/verification_repair.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/verify_gate.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/web_research.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/web_search_adapters.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/web_search_policy.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/workspace_binding.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/workspace_binding_ui.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/workspace_context.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/src/alysis_code/workspace_isolation.py +0 -0
- {alysis_code-0.13.6.2 → alysis_code-0.13.8}/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.8
|
|
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
|
|
@@ -151,8 +152,10 @@ sandbox only when explicitly configured with `verify_sandbox.mode="off"` or
|
|
|
151
152
|
|
|
152
153
|
Two layers control what the agent may do — one enforces, one focuses.
|
|
153
154
|
|
|
154
|
-
**Execution modes** are the enforcement layer. Choose one per command with `--mode`,
|
|
155
|
-
with `/
|
|
155
|
+
**Execution modes** are the enforcement layer. Choose one per command with `--mode`, select the
|
|
156
|
+
next message's permissions with `/permissions` or **Shift+Tab**, or set a default with
|
|
157
|
+
`alysis-code config set default_mode <mode>`. A selection leaves the active turn's permissions
|
|
158
|
+
unchanged until the next message starts:
|
|
156
159
|
|
|
157
160
|
| Mode | Behavior |
|
|
158
161
|
| --- | --- |
|
|
@@ -175,6 +178,10 @@ A persona is a convention, never a permission: it can keep or lower your executi
|
|
|
175
178
|
never raise it. Define your own in `.alysis_personas/*.md`.
|
|
176
179
|
[Learn more](https://alysiscode.com/docs/concepts/personas)
|
|
177
180
|
|
|
181
|
+
Use `/persona architect` for planning in chat, or `/forge` for a plan-driven execution workflow.
|
|
182
|
+
The legacy chat Plan Mode and its `/plan` commands have been removed; Forge retains its plan views
|
|
183
|
+
and editor. Persona changes made during a running turn apply after that turn finishes.
|
|
184
|
+
|
|
178
185
|
## Project Links
|
|
179
186
|
|
|
180
187
|
- [Website](https://alysiscode.com/)
|
|
@@ -93,8 +93,10 @@ sandbox only when explicitly configured with `verify_sandbox.mode="off"` or
|
|
|
93
93
|
|
|
94
94
|
Two layers control what the agent may do — one enforces, one focuses.
|
|
95
95
|
|
|
96
|
-
**Execution modes** are the enforcement layer. Choose one per command with `--mode`,
|
|
97
|
-
with `/
|
|
96
|
+
**Execution modes** are the enforcement layer. Choose one per command with `--mode`, select the
|
|
97
|
+
next message's permissions with `/permissions` or **Shift+Tab**, or set a default with
|
|
98
|
+
`alysis-code config set default_mode <mode>`. A selection leaves the active turn's permissions
|
|
99
|
+
unchanged until the next message starts:
|
|
98
100
|
|
|
99
101
|
| Mode | Behavior |
|
|
100
102
|
| --- | --- |
|
|
@@ -117,6 +119,10 @@ A persona is a convention, never a permission: it can keep or lower your executi
|
|
|
117
119
|
never raise it. Define your own in `.alysis_personas/*.md`.
|
|
118
120
|
[Learn more](https://alysiscode.com/docs/concepts/personas)
|
|
119
121
|
|
|
122
|
+
Use `/persona architect` for planning in chat, or `/forge` for a plan-driven execution workflow.
|
|
123
|
+
The legacy chat Plan Mode and its `/plan` commands have been removed; Forge retains its plan views
|
|
124
|
+
and editor. Persona changes made during a running turn apply after that turn finishes.
|
|
125
|
+
|
|
120
126
|
## Project Links
|
|
121
127
|
|
|
122
128
|
- [Website](https://alysiscode.com/)
|
|
@@ -0,0 +1,328 @@
|
|
|
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.8] - 2026-09-16
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Remove legacy chat Plan Mode, its draft/approve flow, and its prompts and toolbar
|
|
16
|
+
state. Use the Architect persona for planning in chat; Forge retains its plan views
|
|
17
|
+
and editor.
|
|
18
|
+
- Replace `/mode` with `/permissions`. Permission selections and Shift+Tab apply to
|
|
19
|
+
the next user message, with the pending choice visible beside the active permissions.
|
|
20
|
+
- Apply persona changes and approved persona-switch proposals only after the active
|
|
21
|
+
turn finishes. Preserve pending permission selections when resuming a conversation.
|
|
22
|
+
- Show pending steering messages and queued follow-ups. Shift+Left recalls the newest
|
|
23
|
+
queued message for editing. Interruptions preserve undelivered work and wait for the
|
|
24
|
+
current worker to finish before another turn starts.
|
|
25
|
+
- Read large Git diffs in complete pages with a content identifier that detects
|
|
26
|
+
changes between pages. The agent can select a path or inspect staged changes.
|
|
27
|
+
- Allow a background-process wait of up to 900 seconds, bounded by the remaining
|
|
28
|
+
run budget and returning early when its requested condition is met.
|
|
29
|
+
- Explain how to correct rejected verification commands, including how to use the
|
|
30
|
+
session's configured verification contract.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Keep plain assistant replies in conversation history so follow-up requests retain
|
|
35
|
+
the previous answer even when the provider returns no extra metadata.
|
|
36
|
+
- Redact credential fields inside nested JSON, tool arguments, feedback text, and
|
|
37
|
+
support bundles. Omit data that exceeds the safe redaction depth and non-UTF-8
|
|
38
|
+
diagnostic artifacts that cannot be sanitized reliably.
|
|
39
|
+
- Clean up incomplete support bundles after cancellation or I/O errors, support long
|
|
40
|
+
Windows export paths, and open report drafts without disrupting terminal output.
|
|
41
|
+
- Inspect Git changes without running configured diff programs, text converters,
|
|
42
|
+
filesystem monitors, or content filters. Worktree reads that require content
|
|
43
|
+
filters or submodule helpers return guidance for an approved shell command;
|
|
44
|
+
staged diffs and unaffected scoped paths remain available.
|
|
45
|
+
- Preserve hosted-account explanations for rolling usage limits, concurrent requests,
|
|
46
|
+
reserved credits, and temporary routing or capacity problems.
|
|
47
|
+
|
|
48
|
+
## [0.13.7] - 2026-09-11
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
|
|
52
|
+
- Rotating usage tips above the chat input while the agent works, with clickable links.
|
|
53
|
+
Tips hide during dialogs and stay out of conversation history.
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- The context footer shows remaining conversation space after startup prompts and tools.
|
|
58
|
+
Provider measurements and calibrated estimates inform the gauge, while capacity warnings
|
|
59
|
+
continue to use the full request budget.
|
|
60
|
+
- Ctrl+J is the multiline input shortcut; Enter submits. The Alt+Enter alias is removed.
|
|
61
|
+
- Updated public documentation and contributor guidance.
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Setup continuation hints stay visible above the footer on small terminals and long screens.
|
|
66
|
+
- Benchmark wheel builds preserve local build metadata and existing build artifacts, including
|
|
67
|
+
when a build fails or is interrupted.
|
|
68
|
+
|
|
69
|
+
## [0.13.6.2] - 2026-09-08
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- **Alysis Code account setup and configuration use subscription controls.**
|
|
74
|
+
Setup identifies the Alysis Code endpoint without the retired MiMo label.
|
|
75
|
+
Hosted profiles show Alysis Code subscription access and account sign-in,
|
|
76
|
+
reconnect, and disconnect controls instead of an API-key editor.
|
|
77
|
+
- **Hosted model changes no longer ask for a base URL.** The managed endpoint
|
|
78
|
+
stays in place through model selection and back navigation. Custom and BYOK
|
|
79
|
+
providers keep their endpoint settings.
|
|
80
|
+
- **Switching to an Alysis Code account keeps the correct connection.** Signing
|
|
81
|
+
in refreshes the full active profile before configuration is saved, preventing
|
|
82
|
+
the previous provider's URL from overwriting the hosted endpoint. Login also
|
|
83
|
+
switches back to the native agent from a selected delegated runtime. Account
|
|
84
|
+
status reflects the Alysis login, including after logout when an unrelated
|
|
85
|
+
provider key is still saved.
|
|
86
|
+
|
|
87
|
+
## [0.13.6.1] - 2026-09-08
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
|
|
91
|
+
- **V4.1 Flash beta on Alysis Code Pro.** The Pro model picker now includes
|
|
92
|
+
`deepseek-v4.1-flash-expires-on-0910` and `deepseek-v4-flash-vision-exp`
|
|
93
|
+
with descriptions. Newly discovered models are captioned "available on your
|
|
94
|
+
Alysis Code Pro plan" instead of the retired MiMo "trial" wording.
|
|
95
|
+
|
|
96
|
+
## [0.13.6] - 2026-09-08
|
|
97
|
+
|
|
98
|
+
### Added
|
|
99
|
+
|
|
100
|
+
- **DeepSeek V4.1 Flash internal beta.** `deepseek-v4.1-flash-expires-on-0910`
|
|
101
|
+
(announced 2026-09-08) is now on the DeepSeek preset menu. It is a
|
|
102
|
+
new-architecture model with native multimodal input, served on the unchanged
|
|
103
|
+
`https://api.deepseek.com` base URL under a temporary id that stops resolving
|
|
104
|
+
on 2026-09-10; DeepSeek bills it at the `deepseek-v4-flash` rate and caps
|
|
105
|
+
accounts at 20 concurrent requests. Registry metadata assumes the V4 Flash
|
|
106
|
+
shape (1M context, 384K output, vision, thinking `low|high|max`) until
|
|
107
|
+
DeepSeek publishes the GA id and limits. `deepseek-v4-pro` stays the default.
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
|
|
111
|
+
- **DeepSeek footer labels follow vendor spelling.** Names now appear as
|
|
112
|
+
`DeepSeek-V4-Pro` and `DeepSeek-V4.1-Flash`; dated beta ids omit their
|
|
113
|
+
`-expires-on-<date>` suffix from the displayed label.
|
|
114
|
+
|
|
115
|
+
## [0.13.5] - 2026-09-07
|
|
116
|
+
|
|
117
|
+
### Added
|
|
118
|
+
|
|
119
|
+
- Ship eight bundled workflow skills: `address-pr-comments`, `code-review`,
|
|
120
|
+
`commit`, `debug`, `fix-ci`, `release-notes`, `security-review`, and `skill-creator`.
|
|
121
|
+
- Select a relevant skill automatically with a bounded, reasoning-off model call;
|
|
122
|
+
read its instructions before other task tools, with ordinary routing as fallback.
|
|
123
|
+
- Invoke skills with `$<name> [task]` at an idle chat prompt, with live completion
|
|
124
|
+
and one-turn attachment. `/skill` remains supported.
|
|
125
|
+
- Add `bundled_skills_enabled` configuration, project and user override precedence,
|
|
126
|
+
and model-in-loop bundled workflow evaluations with launch-readiness checks.
|
|
127
|
+
|
|
128
|
+
### Fixed
|
|
129
|
+
|
|
130
|
+
- Harden skill instruction boundaries, selection ordering, and per-turn cleanup.
|
|
131
|
+
- Preserve resolved skill settings in child agents and restore slash completion.
|
|
132
|
+
- Recognize silent and inline verification results and preserve authoritative
|
|
133
|
+
verification evidence when supplemental checks run.
|
|
134
|
+
- Bound stalled OpenAI-compatible and Responses streams, including traffic that
|
|
135
|
+
contains no meaningful progress.
|
|
136
|
+
|
|
137
|
+
## [0.13.4] - 2026-09-05
|
|
138
|
+
|
|
139
|
+
Model-catalog and TUI-access refresh.
|
|
140
|
+
|
|
141
|
+
### Added
|
|
142
|
+
|
|
143
|
+
- Added GPT-6 Astra as the default OpenAI model, with aliases, pricing, context-window,
|
|
144
|
+
reasoning, OpenRouter, and ChatGPT-subscription metadata.
|
|
145
|
+
- Added newly available first-party and gateway routes for Claude Fable 5.1, Gemini 3.8
|
|
146
|
+
Flash, Qwen 3.8, GLM-5.3, Kimi K3, Doubao Seed 2.1, DeepSeek V4 snapshots, Grok 4.6,
|
|
147
|
+
and related hosted variants.
|
|
148
|
+
|
|
149
|
+
### Changed
|
|
150
|
+
|
|
151
|
+
- Refreshed every hosted preset's model picker, aliases, validation model, retirement
|
|
152
|
+
mappings, pricing, context limits, and reasoning contracts against provider catalogs.
|
|
153
|
+
- Updated TUI model labels to preserve vendor naming and made profile pickers show each
|
|
154
|
+
profile's model, host, active state, retired-model state, and duplicates.
|
|
155
|
+
- Migrated the Perplexity preset from the retiring Sonar Chat Completions endpoint to the
|
|
156
|
+
Agent API, including hosted web search and saved-profile migration.
|
|
157
|
+
- Replaced the OpenAI economy and validation model with GPT-5.6 Luna and kept
|
|
158
|
+
GPT-5.3 Codex limited to the Responses preset.
|
|
159
|
+
|
|
160
|
+
### Fixed
|
|
161
|
+
|
|
162
|
+
- OpenAI Chat Completions now uses `max_completion_tokens` for GPT-5 and newer models.
|
|
163
|
+
- Native Gemini tool and response schemas are projected onto Gemini's supported OpenAPI
|
|
164
|
+
subset before requests are sent.
|
|
165
|
+
|
|
166
|
+
## [0.13.3] - 2026-08-28
|
|
167
|
+
|
|
168
|
+
### Fixed
|
|
169
|
+
|
|
170
|
+
- Restored the Ubuntu Python 3.11 and 3.12 CI jobs after the repository cleanup by aligning Ruff
|
|
171
|
+
formatting, updating moved sandbox contract paths, preserving the security-documentation
|
|
172
|
+
contract, making immediate shell-output coverage independent of thread scheduling, and allowing
|
|
173
|
+
harmless floating-point clock precision in deadline coverage.
|
|
174
|
+
|
|
175
|
+
## [0.13.2] - 2026-08-28
|
|
176
|
+
|
|
177
|
+
Public launch and repository-layout refresh.
|
|
178
|
+
|
|
179
|
+
### Added
|
|
180
|
+
|
|
181
|
+
- A theme-adaptive README banner with dedicated light and dark artwork.
|
|
182
|
+
- `alysis-code` as the canonical executable, while retaining `alysis` as the short alias.
|
|
183
|
+
|
|
184
|
+
### Changed
|
|
185
|
+
|
|
186
|
+
- Simplified the public README around installation, core capabilities, modes, and documentation.
|
|
187
|
+
- Moved governance files under `.github/`, release and changelog documents under `docs/`, and
|
|
188
|
+
sandbox and benchmark sources under `scripts/` for a cleaner repository root.
|
|
189
|
+
- Legacy Sylliptor environment and command compatibility now forwards silently while retaining
|
|
190
|
+
diagnostic logging for support.
|
|
191
|
+
|
|
192
|
+
### Fixed
|
|
193
|
+
|
|
194
|
+
- Device-login approval URLs now remain pinned to the configured Alysis site instead of trusting
|
|
195
|
+
a backend-provided origin.
|
|
196
|
+
|
|
197
|
+
## [0.13.1] - 2026-08-27
|
|
198
|
+
|
|
199
|
+
### Fixed
|
|
200
|
+
|
|
201
|
+
- Kept terminal input, selection, scrolling, paste hints, and theme behavior consistent across
|
|
202
|
+
chat and configuration screens.
|
|
203
|
+
- Made intentional clean stops exit successfully while preserving non-zero exits for genuine
|
|
204
|
+
failures and unknown stop reasons.
|
|
205
|
+
- Added bounded retries for connections interrupted during a response, with consistent deadline
|
|
206
|
+
and diagnostic reporting.
|
|
207
|
+
|
|
208
|
+
## [0.13.0] - 2026-08-26
|
|
209
|
+
|
|
210
|
+
### Changed
|
|
211
|
+
|
|
212
|
+
- Renamed Sylliptor to Alysis Code. The package is now `alysis-code`, the command is `alysis`, and
|
|
213
|
+
the Python module is `alysis_code`.
|
|
214
|
+
- Preserved the deprecated `sylliptor` command and migration support for existing configuration,
|
|
215
|
+
credentials, plugins, and project directories. See the [migration guide](migration-alysis-code.md).
|
|
216
|
+
- Improved run-budget handling, deadline-aware shell waits, persistent services, edit diagnostics,
|
|
217
|
+
sampling controls, and build provenance.
|
|
218
|
+
|
|
219
|
+
### Security
|
|
220
|
+
|
|
221
|
+
- Added redaction at log and telemetry write boundaries for credential-shaped values.
|
|
222
|
+
|
|
223
|
+
## [0.12.0] - 2026-08-18
|
|
224
|
+
|
|
225
|
+
### Added
|
|
226
|
+
|
|
227
|
+
- Added Code, Architect, Ask, and Debug personas.
|
|
228
|
+
- Added provider-neutral Terminal-Bench and Harbor adapters.
|
|
229
|
+
- Added deterministic release builds, dependency auditing, SBOM generation, and provenance
|
|
230
|
+
attestations.
|
|
231
|
+
|
|
232
|
+
### Changed
|
|
233
|
+
|
|
234
|
+
- Improved evidence-based finalization, blocker reporting, provider authentication, model
|
|
235
|
+
discovery, context management, and verification repair.
|
|
236
|
+
- Strengthened boundaries around credentials, protected paths, filesystem access, and sensitive
|
|
237
|
+
tool output.
|
|
238
|
+
|
|
239
|
+
## [0.11.2] - 2026-07-27
|
|
240
|
+
|
|
241
|
+
### Added
|
|
242
|
+
|
|
243
|
+
- Added route arbitration, turn-contract enforcement, regression baselines, and evidence-backed
|
|
244
|
+
completion checks.
|
|
245
|
+
- Added tracked process cleanup, workspace provisioning, incomplete-subagent containment, and new
|
|
246
|
+
Moonshot/Kimi model presets.
|
|
247
|
+
- Added a master switch for web tools and search backends.
|
|
248
|
+
|
|
249
|
+
### Changed
|
|
250
|
+
|
|
251
|
+
- Refreshed the ChatGPT subscription model catalog and provider-reported final-answer handling.
|
|
252
|
+
|
|
253
|
+
## [0.11.1] - 2026-07-20
|
|
254
|
+
|
|
255
|
+
### Changed
|
|
256
|
+
|
|
257
|
+
- Redesigned the interactive configuration screen with grouped settings, clearer summaries, and
|
|
258
|
+
improved provider and model selection.
|
|
259
|
+
- Added provider-specific reasoning controls and clearer per-role model overrides.
|
|
260
|
+
|
|
261
|
+
### Fixed
|
|
262
|
+
|
|
263
|
+
- Applied configuration changes made before the first message without restarting the terminal UI.
|
|
264
|
+
- Corrected input-budget calculations for shared-window models.
|
|
265
|
+
|
|
266
|
+
## [0.11.0] - 2026-07-18
|
|
267
|
+
|
|
268
|
+
### Added
|
|
269
|
+
|
|
270
|
+
- Added specialist subagent roles and capability-aware delegation.
|
|
271
|
+
- Added live subagent progress and result attribution to the terminal UI.
|
|
272
|
+
- Added an opt-in visual designer for image generation.
|
|
273
|
+
|
|
274
|
+
### Security
|
|
275
|
+
|
|
276
|
+
- Constrained child tools, execution modes, deadlines, and result handling so delegated output
|
|
277
|
+
cannot change parent authority or permissions.
|
|
278
|
+
|
|
279
|
+
## [0.10.0] - 2026-07-13
|
|
280
|
+
|
|
281
|
+
### Added
|
|
282
|
+
|
|
283
|
+
- Added ChatGPT Codex subscription login, encrypted refreshable credentials, and live model
|
|
284
|
+
discovery.
|
|
285
|
+
- Added DDGS web search as a keyless fallback and expanded hosted search support.
|
|
286
|
+
- Added repository mapping, focused test discovery, cached update prompts, and safer workspace
|
|
287
|
+
previews.
|
|
288
|
+
|
|
289
|
+
### Changed
|
|
290
|
+
|
|
291
|
+
- Improved provider-aware prompt caching, usage accounting, terminal navigation, Forge planning,
|
|
292
|
+
and OpenAI Responses streaming recovery.
|
|
293
|
+
|
|
294
|
+
## [0.9.8] - 2026-06-29
|
|
295
|
+
|
|
296
|
+
### Added
|
|
297
|
+
|
|
298
|
+
- Added stronger completion contracts and verification evidence for one-shot and managed tasks.
|
|
299
|
+
- Added shell waiting, durable service tools, and stricter web-fetch provenance.
|
|
300
|
+
|
|
301
|
+
### Changed
|
|
302
|
+
|
|
303
|
+
- Improved Forge verification, runtime deadlines, provider adapters, usage tracking, and recovery
|
|
304
|
+
from unknown tool calls.
|
|
305
|
+
|
|
306
|
+
## Earlier releases
|
|
307
|
+
|
|
308
|
+
Release notes for versions before 0.9.8 remain available in the
|
|
309
|
+
[GitHub Releases archive](https://github.com/AlysisAi/alysis-code/releases).
|
|
310
|
+
|
|
311
|
+
[Unreleased]: https://github.com/AlysisAi/alysis-code/compare/v0.13.8...HEAD
|
|
312
|
+
[0.13.8]: https://github.com/AlysisAi/alysis-code/compare/v0.13.7...v0.13.8
|
|
313
|
+
[0.13.7]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.2...v0.13.7
|
|
314
|
+
[0.13.6.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.1...v0.13.6.2
|
|
315
|
+
[0.13.6.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6...v0.13.6.1
|
|
316
|
+
[0.13.6]: https://github.com/AlysisAi/alysis-code/compare/v0.13.5...v0.13.6
|
|
317
|
+
[0.13.5]: https://github.com/AlysisAi/alysis-code/compare/v0.13.4...v0.13.5
|
|
318
|
+
[0.13.4]: https://github.com/AlysisAi/alysis-code/compare/v0.13.3...v0.13.4
|
|
319
|
+
[0.13.3]: https://github.com/AlysisAi/alysis-code/compare/v0.13.2...v0.13.3
|
|
320
|
+
[0.13.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.1...v0.13.2
|
|
321
|
+
[0.13.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.0...v0.13.1
|
|
322
|
+
[0.13.0]: https://github.com/AlysisAi/alysis-code/compare/v0.12.0...v0.13.0
|
|
323
|
+
[0.12.0]: https://github.com/AlysisAi/alysis-code/compare/v0.11.2...v0.12.0
|
|
324
|
+
[0.11.2]: https://github.com/AlysisAi/alysis-code/compare/v0.11.1...v0.11.2
|
|
325
|
+
[0.11.1]: https://github.com/AlysisAi/alysis-code/compare/v0.11.0...v0.11.1
|
|
326
|
+
[0.11.0]: https://github.com/AlysisAi/alysis-code/compare/v0.10.0...v0.11.0
|
|
327
|
+
[0.10.0]: https://github.com/AlysisAi/alysis-code/compare/v0.9.8...v0.10.0
|
|
328
|
+
[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.8"
|
|
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",
|
|
@@ -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
|
|
|
@@ -22,7 +22,6 @@ from ..extensions.activation import (
|
|
|
22
22
|
from ..extensions.models import normalize_extension_id, plugin_slug_from_id
|
|
23
23
|
from ..extensions.state import load_global_state, load_project_state
|
|
24
24
|
from ..personas import DEFAULT_PERSONA, normalize_persona, persona_modes_enabled
|
|
25
|
-
from ..plan_mode import extract_approved_plan_user_message
|
|
26
25
|
from ..repo_scan import (
|
|
27
26
|
_MANIFEST_SPECS,
|
|
28
27
|
_README_NAMES,
|
|
@@ -1460,10 +1459,7 @@ def _build_repo_task_brief_message(
|
|
|
1460
1459
|
}:
|
|
1461
1460
|
return None
|
|
1462
1461
|
|
|
1463
|
-
clean = (
|
|
1464
|
-
extract_approved_plan_user_message(pending_instruction)
|
|
1465
|
-
or str(pending_instruction or "").strip()
|
|
1466
|
-
)
|
|
1462
|
+
clean = str(pending_instruction or "").strip()
|
|
1467
1463
|
if not clean or _is_host_managed_user_context_message(clean):
|
|
1468
1464
|
return None
|
|
1469
1465
|
if clean[:1] in {"/", ":"} and "\n" not in clean:
|
|
@@ -1828,11 +1824,10 @@ def refresh_session_task_brief_from_observed_turn(
|
|
|
1828
1824
|
return False
|
|
1829
1825
|
messages_obj, existing_index, current_content, inserted_placeholder = ensured
|
|
1830
1826
|
|
|
1831
|
-
|
|
1832
|
-
if not approved_plan_message and material_edit_count <= 0:
|
|
1827
|
+
if material_edit_count <= 0:
|
|
1833
1828
|
return inserted_placeholder
|
|
1834
1829
|
|
|
1835
|
-
clean =
|
|
1830
|
+
clean = str(instruction or "").strip()
|
|
1836
1831
|
if not clean or _is_host_managed_user_context_message(clean):
|
|
1837
1832
|
return inserted_placeholder
|
|
1838
1833
|
if clean[:1] in {"/", ":"} and "\n" not in clean:
|
|
@@ -2090,9 +2085,6 @@ def _build_user_message(
|
|
|
2090
2085
|
image_paths: list[str] | None,
|
|
2091
2086
|
) -> tuple[dict[str, Any], dict[str, Any]]:
|
|
2092
2087
|
log_payload: dict[str, Any] = {"content": instruction}
|
|
2093
|
-
display_content = extract_approved_plan_user_message(instruction)
|
|
2094
|
-
if display_content and display_content != instruction:
|
|
2095
|
-
log_payload["display_content"] = display_content
|
|
2096
2088
|
if not image_paths:
|
|
2097
2089
|
return {"role": "user", "content": instruction}, log_payload
|
|
2098
2090
|
|
|
@@ -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,11 +548,11 @@ 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.
|
|
556
|
-
# None when the active persona narrows nothing. An explicit /
|
|
555
|
+
# None when the active persona narrows nothing. An explicit /permissions <exec>
|
|
557
556
|
# always wins and clears the restore point (and restores the write scope).
|
|
558
557
|
persona_restore_mode: str | None = None
|
|
559
558
|
# The user's base allow_write_globs snapshotted alongside
|
|
@@ -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(
|
|
@@ -1298,15 +1292,21 @@ class AgentSession:
|
|
|
1298
1292
|
)
|
|
1299
1293
|
if rewrite_payload is not None:
|
|
1300
1294
|
self.store.append("final_summary_rewrite", rewrite_payload)
|
|
1301
|
-
|
|
1295
|
+
# Keep ordinary text replies in history so follow-up requests retain the
|
|
1296
|
+
# assistant turn even when the provider supplies no opaque metadata.
|
|
1297
|
+
assistant_message = (
|
|
1298
|
+
None if internal_fallback else {"role": "assistant", "content": emitted_text}
|
|
1299
|
+
)
|
|
1302
1300
|
if assistant_response is not None:
|
|
1303
|
-
|
|
1301
|
+
assistant_message = assistant_message_from_response(
|
|
1304
1302
|
assistant_response,
|
|
1305
1303
|
content=emitted_text,
|
|
1306
1304
|
)
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1305
|
+
extra_payload = (
|
|
1306
|
+
{"message": assistant_message}
|
|
1307
|
+
if assistant_message is not None and PROVIDER_METADATA_KEY in assistant_message
|
|
1308
|
+
else None
|
|
1309
|
+
)
|
|
1310
1310
|
if internal_fallback and self.subagent_depth > 0:
|
|
1311
1311
|
# A nested run's locally generated stop report is internal state. The
|
|
1312
1312
|
# nested surface forwards assistant messages up to the parent's panel,
|
|
@@ -1709,29 +1709,16 @@ class AgentSession:
|
|
|
1709
1709
|
self._turn_owner_thread_id = turn_thread_id
|
|
1710
1710
|
self._bind_provider_retry_observer(self.client)
|
|
1711
1711
|
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
|
-
)
|
|
1712
|
+
return _run_turn(
|
|
1713
|
+
self,
|
|
1714
|
+
instruction,
|
|
1715
|
+
image_paths=image_paths,
|
|
1716
|
+
routing_mode_override=routing_mode_override,
|
|
1717
|
+
ephemeral_system_messages=ephemeral_system_messages,
|
|
1718
|
+
ephemeral_user_messages=ephemeral_user_messages,
|
|
1719
|
+
cancellation_token=cancellation_token,
|
|
1720
|
+
chat_only=chat_only,
|
|
1721
|
+
)
|
|
1735
1722
|
except CooperativeCancellationError as exc:
|
|
1736
1723
|
# The budget watchdog cancels through the same cooperative channel a
|
|
1737
1724
|
# user does, so the two are told apart by reason. A budget stop is a
|
|
@@ -3234,10 +3221,6 @@ def create_session(
|
|
|
3234
3221
|
execution_deadline=execution_deadline,
|
|
3235
3222
|
crash_diagnostics=crash_diagnostics,
|
|
3236
3223
|
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
3224
|
process_group_registry=process_group_registry,
|
|
3242
3225
|
)
|
|
3243
3226
|
if subagent_depth == 0 and store.enabled:
|