alysis-code 0.13.4__tar.gz → 0.13.5__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.4 → alysis_code-0.13.5}/PKG-INFO +1 -1
- {alysis_code-0.13.4 → alysis_code-0.13.5}/docs/CHANGELOG.md +22 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/pyproject.toml +1 -1
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/__init__.py +1 -1
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/acceptance_contract.py +30 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/prompt_context.py +7 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/reproduction_first.py +3 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/session.py +53 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/subagent_execution.py +7 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/tools_assembly.py +2 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/core.py +513 -10
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/verification.py +47 -41
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cancellation.py +12 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/commands.py +48 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/loop.py +87 -11
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat_slash_completer.py +24 -6
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/skills.py +10 -4
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/welcome.py +1 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/config.py +12 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/execution_budget.py +2 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/management_protocol.py +5 -1
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/factory.py +2 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/openai_compat.py +182 -144
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/openai_responses.py +122 -16
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/provider_limits.py +6 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/streaming.py +67 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/README.md +5 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/__init__.py +31 -1
- alysis_code-0.13.5/src/alysis_code/skills/bundled/address-pr-comments/SKILL.md +19 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/code-review/SKILL.md +18 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/commit/SKILL.md +19 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/debug/SKILL.md +18 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/fix-ci/SKILL.md +20 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/release-notes/SKILL.md +19 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/security-review/SKILL.md +18 -0
- alysis_code-0.13.5/src/alysis_code/skills/bundled/skill-creator/SKILL.md +19 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/conventions.py +9 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/discovery.py +38 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/eval_models.py +71 -1
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/eval_runner.py +257 -7
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/evals.py +573 -18
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/models.py +2 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/paths.py +4 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/prompting.py +19 -3
- alysis_code-0.13.5/src/alysis_code/skills/selection.py +226 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/state.py +8 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/registry.py +3 -2
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/verification_command_analysis.py +107 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/.gitignore +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/LICENSE +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/NOTICE +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/__main__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/_build_info.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/account_login.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/blast_radius.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/cache_keepalive.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/completion_certificate.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/completion_gate.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/empty_response_stall.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/errors.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/llm_calls.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/mutation_classification.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/read_ledger.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/regression_baseline.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/sensitive_output.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/steering.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/subagent_workspace.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/events.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/exploration.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/interventions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/read_cache.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn/snapshot.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn_contract.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/turn_path.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/verification_commands.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent/verification_evidence.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_loop.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/base.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/builtins.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/codex_cli.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/host.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/registry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agent_runtimes/service.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agentbox_client.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/agentbox_integration.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/alysis_cloud.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/approval_scope.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/asset_read_core.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/budget_allocator.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/comprehender.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/index.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/ingestion.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/legacy_migration.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/models.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/ocr.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/index.html +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/owl/show-owl.sh +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/paths.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/plan_binding.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/planner_context.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/planner_tools.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/prompts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/replanner_context.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/untrusted_content.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/usage_logger.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/worker_mirror.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/worker_section.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/assets/worker_tools.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/atomic_io.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/auth_diagnostics.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/background_runner.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/branding.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/budget_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/build_identity.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/builtin_hooks/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/bwrap_etc.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/capabilities.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/assets_cli.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/assets_modal.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/rendering.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat/state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/chat_resume.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/auth.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/chat_state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/chat_status.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/chat_terminal.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/cli_common.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/config.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/execution_helpers.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/extensions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/forge.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/forge_helpers.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/mcp.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/profile.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/prompt_helpers.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/report.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/root.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/server.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/startup.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/tools.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/commands/update.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/config_menu.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/forge.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/setup_wizard.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/app.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/config.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/config_flow.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/config_overlay.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/content.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/footer.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/markdown.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/owl.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/selection_bindings.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/setup_app.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/setup_flow.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/subagent_identity.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/subagent_panel.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/transcript.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/cli_impl/tui/workspace_guard.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/clipboard.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/code_review.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/compaction/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/compaction/conversation_compactor.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/compaction/importance.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/compaction/settings.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/compaction/tool_output_offload.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/conflict_auto_resolver.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/context/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/crash_diagnostics.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/discovery.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/runtime.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/session.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/custom_tools/trust.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/diff_paths.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/direction_change.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/dispatch_timing.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/durable_service_manager.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/edit_discipline.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/error_text.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/execution_context.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/execution_deadline.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/execution_shared.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/activation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/install.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/manifest.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/models.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/paths.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/registry.json +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/registry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/extensions/workspace_trust.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/failed_task_evidence.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/failure_category.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/feedback_report.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/file_classification.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/forge.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/forge_completion.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/forge_events.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/frontmatter_utils.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/git_evidence.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/git_ops.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/git_safe.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/git_worktrees.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/audit.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/config.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/dispatcher.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/models.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/hooks/trust.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/host_actions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/host_browser.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/activity_events.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/approvals.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/artifacts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/change_ledger.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/context_blocks.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/event_stream.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/forge_protocol.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/forge_request_ledger.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/health.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/managed_browser.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/prompt_queue.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/protocol.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/resumable_swarm.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/session_search.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/stdio_bridge.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/structured_state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/ide/swarm_protocol.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/integration_gate.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/interactive_input_guard.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/interactive_plan_mode.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/internal_artifacts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/knowledge_base.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/knowledge_capture.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/knowledge_librarian.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/language_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/litellm_static_provider.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/anthropic_messages.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/base.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/cache_capabilities.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/cache_control_blocks.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/cache_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/gemini_generate_content.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/gemini_interactions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/metadata.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/protocols.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/request_plan.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/request_shape.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/temperature_compat.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/types.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm/usage_normalization.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/llm_error_display.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/logging_redaction.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/managed_host_deadline.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/client.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/config.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/errors.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/forge_scope.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/jsonrpc.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/manager.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/models.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/oauth.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/oauth_runtime.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/oauth_store.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/prompts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/resources.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/roots.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/server_requests.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/token_store.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/transport_http.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/transport_stdio.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/mcp/untrusted_content.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/merge_conflict_reviewer.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_catalog/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_metadata_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_metadata_utils.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_registry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/model_router.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/permission_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/personas.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/pipeline_facts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/plan_assistant.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/plan_mode.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/plan_reconciliation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/plan_repair.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/plan_validation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/planning_constraints.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/preview_server.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/process_reaping.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/profile_presets.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/profiles.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_auth/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_auth/base.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_auth/openai_codex.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_auth/registry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_auth/store.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_diagnostics.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_model_catalog.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_telemetry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/provider_url.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/reasoning_contracts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/remote_sync.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/replanning.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/repo_scan.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/request_estimation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/review_gate.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/run_lock.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/run_outcome.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/run_provenance.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/run_state.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/runtime_artifacts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/runtime_context_features.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/runtime_kind.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/safety/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/safety/mcp_sanitize.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/safety/safe_http.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/safety/subagent_report.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/sandbox_doctor.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/sandbox_runner.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/sandbox_settings.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/serialized_paths.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/app.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/auth.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/job_config.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/settings.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/store.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/server/worker_runner.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/service_persistence.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/session_artifacts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/session_metrics.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/session_store.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/install.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/loader.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/matching.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/scaffold.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/transactions.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/skills/validation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/step_budget.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/subagent_labels.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/subagents.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/base.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/console.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/events.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/hidden_surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/noop_surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/rich_surface.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/styles.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/theme.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/surface/types.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_backend.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_orchestrator.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_scheduler.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_trace.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_worker.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/swarm_write_guard.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/task_dependencies.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/task_readiness.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/task_scope.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/terminal_manager.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/terminal_ownership.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/text_normalization.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/token_budget.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/README.md +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/__init__.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/artifacts.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/availability.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/fs.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/git.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/history.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/http_timeout.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/image_generation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/repo_map.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/search.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/shell.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/symbols.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/test_discovery.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web_search.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web_search_dashscope.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web_search_ddgs.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/tools/web_search_tavily.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/transport_retry.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/updates.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/usage_tracker.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/verification_contract.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/verification_failure_summary.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/verification_repair.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/verify_gate.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/web_research.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/web_search_adapters.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/web_search_policy.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/workspace_binding.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/workspace_binding_ui.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/workspace_context.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/workspace_isolation.py +0 -0
- {alysis_code-0.13.4 → alysis_code-0.13.5}/src/alysis_code/workspace_provisioning.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alysis-code
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.5
|
|
4
4
|
Summary: Local CLI coding agent powered by any API.
|
|
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
|
|
@@ -408,6 +408,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
408
408
|
Workspace-target extraction also keeps extensionless dotfiles such as `.npmrc` available to
|
|
409
409
|
verification selection.
|
|
410
410
|
|
|
411
|
+
## [0.13.5] - 2026-09-07
|
|
412
|
+
|
|
413
|
+
### Added
|
|
414
|
+
|
|
415
|
+
- Ship eight bundled workflow skills: `address-pr-comments`, `code-review`,
|
|
416
|
+
`commit`, `debug`, `fix-ci`, `release-notes`, `security-review`, and `skill-creator`.
|
|
417
|
+
- Select a relevant skill automatically with a bounded, reasoning-off model call;
|
|
418
|
+
read its instructions before other task tools, with ordinary routing as fallback.
|
|
419
|
+
- Invoke skills with `$<name> [task]` at an idle chat prompt, with live completion
|
|
420
|
+
and one-turn attachment. `/skill` remains supported.
|
|
421
|
+
- Add `bundled_skills_enabled` configuration, project and user override precedence,
|
|
422
|
+
and model-in-loop bundled workflow evaluations with launch-readiness checks.
|
|
423
|
+
|
|
424
|
+
### Fixed
|
|
425
|
+
|
|
426
|
+
- Harden skill instruction boundaries, selection ordering, and per-turn cleanup.
|
|
427
|
+
- Preserve resolved skill settings in child agents and restore slash completion.
|
|
428
|
+
- Recognize silent and inline verification results and preserve authoritative
|
|
429
|
+
verification evidence when supplemental checks run.
|
|
430
|
+
- Bound stalled OpenAI-compatible and Responses streams, including traffic that
|
|
431
|
+
contains no meaningful progress.
|
|
432
|
+
|
|
411
433
|
## [0.13.4] - 2026-09-05
|
|
412
434
|
|
|
413
435
|
Model-catalog and TUI-access refresh.
|
|
@@ -777,7 +777,7 @@ def record_acceptance_tool_effect(
|
|
|
777
777
|
if durable_criterion_ids
|
|
778
778
|
else _block_session_owned_service_criteria(contract=contract)
|
|
779
779
|
)
|
|
780
|
-
if
|
|
780
|
+
if normalized_tool in {"verify_run", "shell_run"}:
|
|
781
781
|
criterion_ids.extend(
|
|
782
782
|
_update_repo_surface_criteria(
|
|
783
783
|
contract=contract,
|
|
@@ -1031,6 +1031,33 @@ def _clause_path_role(clause: str) -> AcceptancePathRole:
|
|
|
1031
1031
|
return AcceptancePathRole.UNKNOWN_REFERENCE
|
|
1032
1032
|
|
|
1033
1033
|
|
|
1034
|
+
def _path_role(
|
|
1035
|
+
clause: str,
|
|
1036
|
+
path_match: re.Match[str],
|
|
1037
|
+
) -> AcceptancePathRole:
|
|
1038
|
+
path_start = path_match.start(1)
|
|
1039
|
+
preservation = None
|
|
1040
|
+
for candidate in _PRESERVATION_ROLE_RE.finditer(clause):
|
|
1041
|
+
if candidate.start() >= path_start:
|
|
1042
|
+
break
|
|
1043
|
+
preservation = candidate
|
|
1044
|
+
if preservation is None:
|
|
1045
|
+
return _clause_path_role(clause)
|
|
1046
|
+
if path_start < preservation.end():
|
|
1047
|
+
return AcceptancePathRole.PRESERVATION_TARGET
|
|
1048
|
+
|
|
1049
|
+
boundary = clause.rfind(",", preservation.end(), path_start)
|
|
1050
|
+
if boundary < 0:
|
|
1051
|
+
return AcceptancePathRole.PRESERVATION_TARGET
|
|
1052
|
+
scope_is_complete = bool(re.search(r"\b(?:unchanged|intact)\s*$", preservation.group(0), re.I))
|
|
1053
|
+
prior_path = _PATH_RE.search(clause, preservation.end(), boundary)
|
|
1054
|
+
# A completed state phrase ends at the comma. An open direct-object phrase
|
|
1055
|
+
# carries across it only after binding a path, which preserves path lists.
|
|
1056
|
+
if not scope_is_complete and prior_path is not None:
|
|
1057
|
+
return AcceptancePathRole.PRESERVATION_TARGET
|
|
1058
|
+
return _clause_path_role(clause[boundary + 1 :])
|
|
1059
|
+
|
|
1060
|
+
|
|
1034
1061
|
def _clean_path_token(path: str) -> str:
|
|
1035
1062
|
cleaned = str(path or "").strip().strip("`'\"").replace("\\", "/")
|
|
1036
1063
|
cleaned = cleaned.rstrip(".,;:!?)]}")
|
|
@@ -1043,8 +1070,8 @@ def _extract_path_refs(*, root: Path, texts: list[str]) -> list[AcceptancePathRe
|
|
|
1043
1070
|
refs: list[AcceptancePathRef] = []
|
|
1044
1071
|
seen: set[tuple[str, str, str]] = set()
|
|
1045
1072
|
for clause in _iter_clauses(texts):
|
|
1046
|
-
role = _clause_path_role(clause)
|
|
1047
1073
|
for match in _PATH_RE.finditer(clause):
|
|
1074
|
+
role = _path_role(clause, match)
|
|
1048
1075
|
path_ref = _resolve_acceptance_path(
|
|
1049
1076
|
root=root,
|
|
1050
1077
|
raw_text=match.group(1),
|
|
@@ -1897,6 +1924,7 @@ def _update_repo_surface_criteria(
|
|
|
1897
1924
|
criterion.failure_summary = "Verification evidence was supplemental or unsafe"
|
|
1898
1925
|
elif passed is True:
|
|
1899
1926
|
criterion.status = AcceptanceCriterionStatus.PASSED
|
|
1927
|
+
criterion.failure_summary = ""
|
|
1900
1928
|
elif passed is False:
|
|
1901
1929
|
criterion.status = AcceptanceCriterionStatus.FAILED
|
|
1902
1930
|
criterion.failure_summary = f"Verification command failed: {command}"
|
|
@@ -286,7 +286,8 @@ _SYSTEM_PROMPT_SKILL_DISCOVERY_SECTION = """
|
|
|
286
286
|
|
|
287
287
|
Skills and skill_read
|
|
288
288
|
- The <skill_context> block lists every skill discovered for this session with its name and description. These descriptions tell you when each skill applies.
|
|
289
|
-
-
|
|
289
|
+
- Select only a skill whose action the user requests; a concept mention is not a match. Honor explicit exclusions and choose the most specific fit.
|
|
290
|
+
- BEFORE any other task action, call skill_read(name) for each selected skill.
|
|
290
291
|
- Use skill_read(name, path) for bundled references, scripts, or assets cited inside the skill body.
|
|
291
292
|
- Do not invent skill names. Only use names that appear in the <skill_context> block.
|
|
292
293
|
- Project-local explicit-turn skill context (when present) outranks this discovery list.
|
|
@@ -2261,6 +2262,7 @@ def prepare_session_prompt_context(
|
|
|
2261
2262
|
discover_skills(
|
|
2262
2263
|
focus_path=workspace_context.focus_path,
|
|
2263
2264
|
workspace_root=workspace_context.workspace_root,
|
|
2265
|
+
cfg=session_cfg,
|
|
2264
2266
|
)
|
|
2265
2267
|
if resolved_skills_enabled
|
|
2266
2268
|
else DiscoveredSkills(skills={}, ordered=(), issues=())
|
|
@@ -2420,7 +2422,10 @@ def prepare_session_prompt_context(
|
|
|
2420
2422
|
workspace_root=workspace_context.workspace_root,
|
|
2421
2423
|
)
|
|
2422
2424
|
skill_context = (
|
|
2423
|
-
build_skill_advertise_block(
|
|
2425
|
+
build_skill_advertise_block(
|
|
2426
|
+
skills=discovered_skills.ordered,
|
|
2427
|
+
skills_auto_invoke=skills_auto_invoke,
|
|
2428
|
+
)
|
|
2424
2429
|
if resolved_skills_enabled
|
|
2425
2430
|
else None
|
|
2426
2431
|
)
|
|
@@ -41,6 +41,7 @@ from pathlib import Path, PurePosixPath
|
|
|
41
41
|
from typing import Any
|
|
42
42
|
|
|
43
43
|
from ..branding import env_get
|
|
44
|
+
from ..verification_command_analysis import analyze_verification_command
|
|
44
45
|
from .turn_contract import TurnSemantics, TurnTaskShape
|
|
45
46
|
|
|
46
47
|
# ---------------------------------------------------------------------------
|
|
@@ -141,6 +142,8 @@ def _normalize_artifact_path(path: str) -> str:
|
|
|
141
142
|
|
|
142
143
|
|
|
143
144
|
def _command_path_tokens(command: str) -> list[str]:
|
|
145
|
+
if analyze_verification_command(command, trusted=True).uses_opaque_inline_code:
|
|
146
|
+
return []
|
|
144
147
|
tokens: list[str] = []
|
|
145
148
|
for raw in _COMMAND_TOKEN_SPLIT_RE.split(str(command or "")):
|
|
146
149
|
token = raw.strip().strip("`'\"").rstrip(_TOKEN_TRAILING_JUNK)
|
|
@@ -95,12 +95,13 @@ from ..llm.metadata import (
|
|
|
95
95
|
)
|
|
96
96
|
from ..llm.openai_compat import OpenAICompatClient as _OpenAICompatClient
|
|
97
97
|
from ..llm.protocols import OPENAI_COMPAT_PROTOCOL, get_provider_protocol_capabilities
|
|
98
|
+
from ..llm.provider_limits import ProviderRetrySettings, resolve_provider_retry_settings
|
|
98
99
|
from ..llm.types import UsageConfidence, UsageSource
|
|
99
100
|
from ..mcp.config import load_resolved_mcp_config
|
|
100
101
|
from ..mcp.manager import ForgeTaskScopedMcpManager, McpManager, create_mcp_manager
|
|
101
102
|
from ..model_metadata_policy import ActiveModelRef, evaluate_active_model_metadata_policy
|
|
102
103
|
from ..model_registry import ModelRegistry, resolve_model_provider_key
|
|
103
|
-
from ..model_router import ROLE_CODING, ROLE_COMPACTOR, resolve_model_for_role
|
|
104
|
+
from ..model_router import ROLE_CODING, ROLE_COMPACTOR, ROLE_ROUTER, resolve_model_for_role
|
|
104
105
|
from ..personas import (
|
|
105
106
|
PersonaSwitchState,
|
|
106
107
|
load_custom_personas,
|
|
@@ -235,6 +236,15 @@ from .subagent_execution import ChildScheduler
|
|
|
235
236
|
|
|
236
237
|
OpenAICompatClient = _OpenAICompatClient
|
|
237
238
|
_DEFAULT_CREATE_MCP_MANAGER = create_mcp_manager
|
|
239
|
+
_SKILL_SELECTOR_TIMEOUT_S = 15.0
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def _skill_selector_provider_retry_settings(
|
|
243
|
+
cfg: AppConfig | None,
|
|
244
|
+
) -> ProviderRetrySettings:
|
|
245
|
+
"""Keep the optional selector to one provider attempt on every protocol."""
|
|
246
|
+
|
|
247
|
+
return replace(resolve_provider_retry_settings(cfg), disable_retries=True)
|
|
238
248
|
|
|
239
249
|
|
|
240
250
|
def _build_workspace_trust_prompt(
|
|
@@ -2197,7 +2207,16 @@ def create_session(
|
|
|
2197
2207
|
role=ROLE_COMPACTOR,
|
|
2198
2208
|
plan=None,
|
|
2199
2209
|
)
|
|
2210
|
+
router_model_name = ""
|
|
2211
|
+
if resolved_skills_enabled and skills_auto_invoke and bool(discovered_skills.ordered):
|
|
2212
|
+
router_model_name = resolve_model_for_role(
|
|
2213
|
+
cfg=session_cfg,
|
|
2214
|
+
role=ROLE_ROUTER,
|
|
2215
|
+
plan=None,
|
|
2216
|
+
)
|
|
2200
2217
|
active_model_refs = [ActiveModelRef(role=ROLE_CODING, model_name=session_cfg.model)]
|
|
2218
|
+
if router_model_name:
|
|
2219
|
+
active_model_refs.append(ActiveModelRef(role=ROLE_ROUTER, model_name=router_model_name))
|
|
2201
2220
|
if compactor_model_name:
|
|
2202
2221
|
active_model_refs.append(
|
|
2203
2222
|
ActiveModelRef(role=ROLE_COMPACTOR, model_name=compactor_model_name)
|
|
@@ -2220,6 +2239,35 @@ def create_session(
|
|
|
2220
2239
|
reasoning_effort=llm_reasoning_effort,
|
|
2221
2240
|
session_id=session_id,
|
|
2222
2241
|
)
|
|
2242
|
+
router_client: ChatClient | None = None
|
|
2243
|
+
if router_model_name:
|
|
2244
|
+
selector_timeout_s = min(llm_timeout_s, _SKILL_SELECTOR_TIMEOUT_S)
|
|
2245
|
+
router_client = _make_session_llm_client(
|
|
2246
|
+
cfg=session_cfg,
|
|
2247
|
+
api_key=api_key,
|
|
2248
|
+
model=router_model_name,
|
|
2249
|
+
timeout_s=selector_timeout_s,
|
|
2250
|
+
temperature=0.0,
|
|
2251
|
+
prompt_cache_key=prompt_cache_stream_key,
|
|
2252
|
+
prompt_cache_retention=resolve_prompt_cache_retention(session_cfg),
|
|
2253
|
+
prompt_cache_namespace=_prompt_cache_namespace(ROLE_ROUTER),
|
|
2254
|
+
enable_thinking=False,
|
|
2255
|
+
reasoning_effort="",
|
|
2256
|
+
session_id=session_id,
|
|
2257
|
+
)
|
|
2258
|
+
# Client adapters normalize an empty effort to ``None``. Keep the
|
|
2259
|
+
# selector's session-owned state explicit so later in-place reloads and
|
|
2260
|
+
# stale-client checks preserve the reasoning-off contract verbatim.
|
|
2261
|
+
router_client.reasoning_effort = ""
|
|
2262
|
+
if hasattr(router_client, "stream_no_progress_timeout_s"):
|
|
2263
|
+
router_client.stream_no_progress_timeout_s = min(
|
|
2264
|
+
float(router_client.stream_no_progress_timeout_s),
|
|
2265
|
+
selector_timeout_s,
|
|
2266
|
+
)
|
|
2267
|
+
if hasattr(router_client, "provider_retry_settings"):
|
|
2268
|
+
router_client.provider_retry_settings = _skill_selector_provider_retry_settings(
|
|
2269
|
+
session_cfg
|
|
2270
|
+
)
|
|
2223
2271
|
sessions_dir = (
|
|
2224
2272
|
session_log_dir_override
|
|
2225
2273
|
if session_log_dir_override is not None
|
|
@@ -2413,7 +2461,7 @@ def create_session(
|
|
|
2413
2461
|
"task_max_steps": session_cfg.task_max_steps,
|
|
2414
2462
|
"subagent_max_steps": session_cfg.subagent_max_steps,
|
|
2415
2463
|
"model": session_cfg.model,
|
|
2416
|
-
"router_model":
|
|
2464
|
+
"router_model": router_model_name,
|
|
2417
2465
|
"base_url_descriptor": endpoint_descriptor(session_cfg.base_url),
|
|
2418
2466
|
"profile_name": active_profile.name,
|
|
2419
2467
|
"protocol": active_profile.protocol,
|
|
@@ -3134,6 +3182,9 @@ def create_session(
|
|
|
3134
3182
|
surface=surface,
|
|
3135
3183
|
store=store,
|
|
3136
3184
|
client=client,
|
|
3185
|
+
router_client=router_client,
|
|
3186
|
+
_semantic_router_bound_client=client,
|
|
3187
|
+
_provisioned_router_client=router_client,
|
|
3137
3188
|
persona_client_cache={(session_cfg.model, coding_temperature): client},
|
|
3138
3189
|
persona_client_key=(session_cfg.model, coding_temperature),
|
|
3139
3190
|
model_registry=registry,
|
|
@@ -859,6 +859,7 @@ class SubagentLauncher:
|
|
|
859
859
|
non_interactive: bool,
|
|
860
860
|
verification_enabled: bool,
|
|
861
861
|
authoritative_verification_commands: list[str] | None,
|
|
862
|
+
skills_enabled: bool,
|
|
862
863
|
subagents_enabled: bool,
|
|
863
864
|
subagent_depth: int,
|
|
864
865
|
subagent_registry: dict[str, SubagentDefinition] | None,
|
|
@@ -898,6 +899,7 @@ class SubagentLauncher:
|
|
|
898
899
|
self.non_interactive = non_interactive
|
|
899
900
|
self.verification_enabled = verification_enabled
|
|
900
901
|
self.authoritative_verification_commands = authoritative_verification_commands
|
|
902
|
+
self.skills_enabled = bool(skills_enabled)
|
|
901
903
|
self.subagents_enabled = subagents_enabled
|
|
902
904
|
self.subagent_depth = subagent_depth
|
|
903
905
|
self.subagent_registry = subagent_registry
|
|
@@ -1833,6 +1835,11 @@ class SubagentLauncher:
|
|
|
1833
1835
|
return {"error": f"Subagent model resolution failed: {e}"}
|
|
1834
1836
|
subagent_cfg.model = selected_model
|
|
1835
1837
|
subagent_cfg.routing_mode = _ROUTING_MODE_CODE_ONLY
|
|
1838
|
+
# Skills are an independent session capability, not an implicit part of
|
|
1839
|
+
# delegation. Preserve the parent's resolved master switch explicitly;
|
|
1840
|
+
# bundled/custom discovery in the child continues to follow normal skill
|
|
1841
|
+
# configuration only when that switch is enabled.
|
|
1842
|
+
subagent_cfg.skills_enabled = self.skills_enabled
|
|
1836
1843
|
resolved_temperature = resolve_role_temperature(subagent_cfg, role=temperature_role)
|
|
1837
1844
|
subagent_cfg.temperature = resolved_temperature
|
|
1838
1845
|
subagent_cfg.coding_temperature = resolved_temperature
|
|
@@ -4417,6 +4417,7 @@ def build_tools(
|
|
|
4417
4417
|
non_interactive=non_interactive,
|
|
4418
4418
|
verification_enabled=verification_enabled,
|
|
4419
4419
|
authoritative_verification_commands=authoritative_verify_commands,
|
|
4420
|
+
skills_enabled=skills_enabled,
|
|
4420
4421
|
subagents_enabled=subagents_enabled,
|
|
4421
4422
|
subagent_depth=subagent_depth,
|
|
4422
4423
|
subagent_registry=subagent_registry,
|
|
@@ -4597,6 +4598,7 @@ def build_tools(
|
|
|
4597
4598
|
non_interactive=non_interactive,
|
|
4598
4599
|
verification_enabled=verification_enabled,
|
|
4599
4600
|
authoritative_verification_commands=authoritative_verify_commands,
|
|
4601
|
+
skills_enabled=skills_enabled,
|
|
4600
4602
|
subagents_enabled=True,
|
|
4601
4603
|
subagent_depth=subagent_depth,
|
|
4602
4604
|
subagent_registry=subagent_registry,
|