sliceagent 0.1.6__tar.gz → 0.1.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sliceagent-0.1.6 → sliceagent-0.1.7}/CHANGELOG.md +7 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/PKG-INFO +1 -1
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/__init__.py +1 -1
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/tui.py +1 -2
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_config_journey.py +12 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.dockerignore +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.env.example +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/dependabot.yml +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/workflows/ci.yml +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.github/workflows/publish.yml +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/.gitignore +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/CODE_OF_CONDUCT.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/CONTRIBUTING.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/Dockerfile +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/LICENSE +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/NOTICE +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/QUICKSTART.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/README.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/SECURITY.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/examples/plugins/hello/__init__.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/examples/plugins/hello/plugin.toml +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/install.sh +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/pyproject.toml +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/scripts/gen_config_reference.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/scripts/run_tests.sh +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/sliceagent.toml.example +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/__main__.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/access.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/agents.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/background_review.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/binsniff.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/cli.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/clock.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/code_grep.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/code_index.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/config.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/context_overflow.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/envspec.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/errors.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/events.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/finding_types.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/flags.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/fuzzy.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/guardrails.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/guidance.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/hippocampus.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/hooks.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/interfaces.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/llm.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/loop.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/mcp_client.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/mcp_security.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/memory.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/metrics.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/model_catalog.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/monitor.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/neocortex.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/onboarding.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/oracle.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/pagetable.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/pfc.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/plugins.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/policy.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/procman.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/prompt.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/records.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/recovery.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/regions.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/registry.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/retriever.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/safety.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/sandbox.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/scheduler.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/search_index.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/seed.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/sensory_cortex.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/session.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/skill_provenance.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/skill_usage.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/skills.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/subagent.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/subdir_hints.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/swap.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/taskstate.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/telemetry.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/terminal.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/text_utils.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/tool_summary.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/tools.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/src/sliceagent/web.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/README.md +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_active_focus.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_agents.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_ask_echo.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_ask_user.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_background_review.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_binary_view.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bound_is_relevance.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_breadth_e2e.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_2b.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_breadth_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_current_request.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_linenum.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_loop_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_memory_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_p0a.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_p0b.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_p0c.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_selfreview.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_selfreview_siblings.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_skills_h1.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_slice_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_subagent_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bugfix_tools_wave.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_bughunt_fixes.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_cache_manifest.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_checkpoint.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_cli_smoke.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_closure.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_code_grep.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_code_index.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_consolidate.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_context_overflow.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_conversation.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_coresidency.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_echo_before_blocking.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_episode.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_errors_backoff.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_esc_sentinel.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_exec_env.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_finding_types.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_flags.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_fuzzy.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_ghost_index.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_guardrails.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_guidance.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_history.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_invariant_fixes.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_live_composer.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_llm_streaming.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_llm_usage_cache.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_llm_watchdog.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_log_redaction.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_loop_overflow.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_mcp_output_cap.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_mcp_runtime.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_memory.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_memory_persist.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_menu_select.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_metrics.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_mining.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_mission_tier.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_model_catalog.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_monitor.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_onboarding.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_pageout_compaction.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_permission_patterns.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_pinned_composer.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_plan_tier.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_procman.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_product_features.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_progress_status.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_prompt_ab.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_provenance.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_provider_lineup.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_proxy_interrupt.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_reach.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_readonly_subagent.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_recall_search.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_records.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_refault.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_registry_validation.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_reliability.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_repo_map_bounded.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_requirements.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_review_fixes.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_route_lexical.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_safety.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_seal_markdown.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_search_index.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_skill_meta.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_skill_metadata.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_subdir_hints.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_task_agnostic.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_task_state_roundtrip.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_telemetry_convergence.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_terminal.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tool_dedup.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tool_result_ok.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tools_robust.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_topic_switch.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_trajectory.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tui.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tui_menus.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tui_render.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_tui_widgets.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_turn_budget.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_verification_agent.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_web.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_workspace.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_world_region.py +0 -0
- {sliceagent-0.1.6 → sliceagent-0.1.7}/tests/test_world_state.py +0 -0
|
@@ -5,6 +5,13 @@ this project aims for [Semantic Versioning](https://semver.org/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.1.7] — 2026-07-02
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- `/model`: the current env-configured model row is now labeled `current (env)` instead of the
|
|
12
|
+
provider family name — it could masquerade as a configured provider (e.g. an env `gpt-5.5` on a
|
|
13
|
+
DeepSeek endpoint showed as "deepseek").
|
|
14
|
+
|
|
8
15
|
## [0.1.6] — 2026-07-02
|
|
9
16
|
|
|
10
17
|
The clear config journey: one wizard, two doors, an honest /model.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sliceagent
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: A coding agent with a new context-engineering framework: bounded, deterministic, reconstructed context (slice architecture) — built for long-horizon work.
|
|
5
5
|
Author: TT-Wang
|
|
6
6
|
License-Expression: MIT
|
|
@@ -849,8 +849,7 @@ def _model_candidates(llm, cfg):
|
|
|
849
849
|
out.append((m, pid, pid))
|
|
850
850
|
out.sort(key=lambda t: (t[1], t[0]))
|
|
851
851
|
if all(m != llm.model for m, _, _ in out): # an env-overridden current model still shows first
|
|
852
|
-
|
|
853
|
-
out.insert(0, (llm.model, capability(llm.model, base).family, None))
|
|
852
|
+
out.insert(0, (llm.model, "current (env)", None)) # not a configured provider — label honestly
|
|
854
853
|
else:
|
|
855
854
|
known = ["gpt-5.5", "gpt-5", "gpt-5-mini", "o3", "deepseek-chat", "kimi-k2-0905-preview",
|
|
856
855
|
"claude-sonnet-5"]
|
|
@@ -47,6 +47,18 @@ def every_candidate_carries_its_provider_for_endpoint_switch():
|
|
|
47
47
|
assert pid in ("deepseek", "openrouter"), f"{m} must map to a configured provider, got {pid!r}"
|
|
48
48
|
|
|
49
49
|
|
|
50
|
+
@check
|
|
51
|
+
def env_current_model_is_labeled_honestly_not_as_a_provider():
|
|
52
|
+
class _EnvLlm: # env model NOT in any configured provider's list
|
|
53
|
+
model = "gpt-5.5"
|
|
54
|
+
_base_url = "https://api.deepseek.com/v1" # deepseek endpoint must NOT make it say "deepseek"
|
|
55
|
+
reasoning = "full"
|
|
56
|
+
cands = _model_candidates(_EnvLlm(), _CFG)
|
|
57
|
+
m, grp, pid = cands[0]
|
|
58
|
+
assert m == "gpt-5.5" and pid is None
|
|
59
|
+
assert grp == "current (env)", f"env model must not masquerade as a configured provider, got {grp!r}"
|
|
60
|
+
|
|
61
|
+
|
|
50
62
|
@check
|
|
51
63
|
def no_providers_configured_falls_back_to_known_set():
|
|
52
64
|
cands = _model_candidates(_Llm(), Config({}))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|