superqode 0.2.4__tar.gz → 0.2.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.
- {superqode-0.2.4 → superqode-0.2.5}/CHANGELOG.md +13 -0
- {superqode-0.2.4/src/superqode.egg-info → superqode-0.2.5}/PKG-INFO +1 -1
- {superqode-0.2.4 → superqode-0.2.5}/pyproject.toml +1 -1
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/__init__.py +1 -1
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/server.py +37 -3
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/templates.py +41 -0
- {superqode-0.2.4 → superqode-0.2.5/src/superqode.egg-info}/PKG-INFO +1 -1
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_server.py +83 -0
- {superqode-0.2.4 → superqode-0.2.5}/LICENSE +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/MANIFEST.in +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/README.md +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/README.md +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/byok-acp-team.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/coding.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/deepagents.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/ds4.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/gemma4.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/google-adk.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/local-recursive-dynamic.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/no-tool.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/omnigent-multi-agent.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/openai-agents.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/harnesses/pydanticai.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/local-models-team.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/omnigent-multi-agent.agent.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/examples/simple-team.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/setup.cfg +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/presets.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/server.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/skills.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/types.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/a2a/workflows.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/doctor.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/permission_screen.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/permission_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/render.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/session_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/slash.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/tool_call_context.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp/types.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/acp_discovery.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/auto_memory.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/command_safety.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/compaction.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/context_manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/edit_strategies.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/exec_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/hooks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/loop.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/loop_guard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/network_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/output_handler.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/parallel_compare.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/peer_agents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/plan_mode.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/reminders.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/rubric.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/session_manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/structured_output.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/summarization.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/system_prompts.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/terminal_output_limits.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/text_tool_calls.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/tool_args.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/tool_tracking.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent/utility_model.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent_output.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agent_stream.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/acp_registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/agentpool.phil65.github.io.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/ampcode.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/augmentcode.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/autodev.github.io.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/blackbox.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/bub.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/cagent.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/claude.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/cline.bot.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/codeassistant.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/codex.openai.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/copilot.github.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/crow-ai.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/cursor.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/factory.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/fastagent.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/fount.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/geminicli.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/goose.block.xyz.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/hermes-agent.nousresearch.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/junie.jetbrains.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/kimi.moonshot.cn.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/kiro.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/llmlingagent.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/minioncode.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/mistral-vibe.mistral.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/openclaw.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/opencode.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/openhands.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/pi.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/poolside.ai.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/qoder.com.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/qwenlm.github.io.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/sigit.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/stakpak.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/stdiobus.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/vtcode.dev.toml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/discovery.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/free_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/messaging.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/official_acp.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/persona.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/schema.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/unified.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/constants.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/css.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/suggester.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/theme_bridge.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app/widgets.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app_enhanced.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/app_main.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/approval.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/atomic.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/auth/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/benchmarks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/config.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/discord.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/service.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/slack.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/channels/telegram.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/claude.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/codex.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/a2a.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/acp.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/agents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/auth.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/config.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/daemon.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/local.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/providers.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/serve.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/commands/sessions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/config/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/config/loader.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/config/schema.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/core/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/danger.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/data/eval_fixtures/ci-dynamic-root-cause.log +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/data/eval_fixtures/ci-root-cause.log +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/data/eval_packs/local_dynamic_workflow_smoke.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/data/eval_packs/local_recursive_smoke.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/data/superqode-template.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/design_system.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/dialogs/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/dialogs/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/dialogs/model.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/dialogs/provider.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/dialogs/runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/diff_view.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/enterprise.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/evaluation/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/evaluation/adapters.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/evaluation/behaviors.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/evaluation/engine.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/evaluation/scenarios.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/execution/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/execution/linter.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/execution/modes.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/execution/resolver.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/execution/runner.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/file_explorer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/file_viewer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/flash.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/accelerator.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/agent_importer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/approval_memory.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/deepagents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/managed.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/pydanticai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/backends/runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/compiler.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/context_handles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/diagnostics.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/eval.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/events.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/explain.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/hooks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/kernel.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/loader.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/mcp_bridge.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/model_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/observability.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/omnigent_importer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/optimize.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/output.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/permissions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/spec.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/testing.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/wizard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/workflow.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/harness/workflow_presets.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/headless.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/history.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/airplane.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/bench.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/build.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/code_index.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/devstral.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/ds4.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/gemma4.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/glm.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/gpt-oss.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/minimax.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/qwen-coder.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/model-packs/qwen3.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/data/stack_matrix.yaml +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/doctor.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/engines.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/guardrails.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/hardware.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/inventory.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/labs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/matrix.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/migrate.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/optimize.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/packs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/repo.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/servers.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/setup.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/local/smoke.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/adapters.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/formatter.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/integration.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/sinks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/logging/unified_log.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/lsp/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/lsp/client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/main.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/auth_storage.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/config.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/elicitation.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/harness_server.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/hf_auth.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/integration.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/oauth.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/oauth_callback.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/sampling.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/mcp/types.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/memory/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/memory/config.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/memory/providers.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/memory/types.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/notifications.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/permissions/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/permissions/rules.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/plan.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/plugins.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/project_trust.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/_builtin_profiles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/acp_free_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/acp_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/acp_registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/apple_fm.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/catalog.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/connection_profiles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/credentials.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/dynamic.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/env_introspect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/free_inference.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/gateway/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/gateway/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/gateway/litellm_gateway.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/gateway/openresponses_gateway.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/gateway/synthetic.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/health.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/convert.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/downloader.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/endpoints.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/fetch.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/hub.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/inference.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/huggingface/transformers_runner.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/live_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/_mlx_worker.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/context_probe.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/discovery.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/ds4.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/lmstudio.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/mlx.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/mlx_engine.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/mlx_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/ollama.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/sglang.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/smoke.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/tgi.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/tool_support.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/local/vllm.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/model_specs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/models_dev.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/opencode_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/converters/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/converters/messages.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/converters/tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/schema/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/schema/models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/streaming/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/streaming/parser.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/tools/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/tools/apply_patch.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/tools/code_interpreter.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/tools/file_search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/openresponses/tools/mcp_adapter.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/profiles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/recommendations.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/providers/usage.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/pure_mode.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/py.typed +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/rendering/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/rendering/html_export.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/rendering/markdown.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/rendering/transcript_export.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/adk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/builtin.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/claude_agent_sdk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/codex_sdk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/errors.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/openai_agents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/openai_sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/openai_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/pydanticai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/tool_bridge.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/tool_bridge_openai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/runtime/tool_bridge_pydanticai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/safety/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/safety/sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/safety/warnings.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/sandbox/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/sandbox/backends.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/sandbox/execution.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/sandbox/local_sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/search_registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/server/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/server/api.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/server/web.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/factory.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/persistence.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/share_artifacts.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/sharing.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session/switchboard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/sidebar.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/skillopt.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/skills.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/stream_view.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/styles/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tool_call.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/agent_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/apply_patch.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/batch_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/compact_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/context_handle.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/context_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/diagnostics.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/diff_utils.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/dynamic_workflow.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/edit_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/enhanced_base.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/env_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/file_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/file_tracking.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/harness_agent_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/image_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/lsp_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/mcp_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/monty_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/network_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/output_spill.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/peer_agent_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/permissions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/post_edit.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/question_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/request_permissions_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/search_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/semantic_search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/shell_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/shell_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/skill_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/spawn_harness.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/todo_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/tool_search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/validation.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tools/web_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tui_integration.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tui_widgets/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tui_widgets/widgets/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tui_widgets/widgets/progress.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/tui_widgets/widgets/tool_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/undo_manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/utils/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/utils/error_handling.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/utils/fuzzy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/agent_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/agent_switcher.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/animation_manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/code_context.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/command_palette.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/connection_status.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/conversation_history.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/diff_indicator.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/enhanced_status_bar.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/enhanced_toast.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/file_browser.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/file_reference.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/leader_key.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/mode_switcher.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/model_picker.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/permission_preview.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/prompt.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/provider_connect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/pty_shell.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/resizable_sidebar.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/response_changes.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/response_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/rewind_overlay.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/rich_tool_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/sidebar_panels.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/slash_commands.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/slash_complete.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/split_view.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/status_bar.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/superqode_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/theme_picker.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/thinking.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/thinking_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/throbber.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/toast.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/widgets/unified_output.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/__init__.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/artifacts.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/change_summary.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/coordinator.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/diff_tracker.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/git_guard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/git_snapshot.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/manager.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/snapshot.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/watcher.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode/workspace/worktree.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode.egg-info/SOURCES.txt +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode.egg-info/dependency_links.txt +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode.egg-info/entry_points.txt +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode.egg-info/requires.txt +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/src/superqode.egg-info/top_level.txt +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_free_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_parent_tool_linking.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_permission_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_registry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_render.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_session_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_acp_slash.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_adaptive_compaction.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_agent_importer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_agent_loop_harness.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_agent_memory.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_agents_md_compat.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_apply_patch.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_auth.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_bash_spill.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_benchmarks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_change_summary.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_channels.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_cli_commands.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_cli_connect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_cli_reference_coverage.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_command_safety.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_commands_runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_compaction.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_config_loader.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_config_runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_connect_setup.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_connection_profiles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_context_handles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_context_probe.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_context_remaining.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_create_skill_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_deferred_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_developer_workflow_docs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_ds4_local_client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_dynamic_workflow_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_edit_line_number_strip.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_env_introspect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_execution_resolver.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_final_parity_wave.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_free_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_agent_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_backends.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_examples.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_explain.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_hooks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_kernel.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_mcp_server.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_model_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_observability.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_output.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_permissions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_seesaw_dimensions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_spec.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_store.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_wizard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_harness_workflow.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_headless.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_hf_fetch.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_hooks.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_linter_runner.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_litellm_gateway.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_live_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_airplane.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_build.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_code_index.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_labs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_migrate.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_model_optimizations.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_packs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_servers.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_setup.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_smoke.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_stack.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_local_tool_support.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_login_api.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_loop_guard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_managed_harness_backend.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_markdown_render.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp_integration.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp_live.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp_oauth_generalized.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp_tools_runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mcp_two_way.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_memory_recall.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_mlx_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_model_profiles.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_model_specs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_monty_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_network_policy.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_ollama_client.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_omnigent_agent_session_smoke.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_omnigent_importer.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_openai_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_output_spill.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_parallel_compare.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_peer_agents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_plugin_hook_wiring.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_plugins.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_policies_and_turndiff.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_post_edit_verify.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_project_trust.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_provider_catalog.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_provider_dynamic.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_provider_models.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_provider_recommendations.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_pure_mode_sessions.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_rate_limit_retry.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_read_tool_limits.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_reasoning_and_budget.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_recursive_eval_packs.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_adk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_builtin.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_claude_agent_sdk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_codex_sdk.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_dialog.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_openai_agents.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_openai_events.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_openai_hitl.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_openai_sandbox.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_protocol.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_runtime_pydanticai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_sandbox_backends.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_sandbox_execution.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_search_roots.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_semantic_search.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_session_switchboard.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_shell_session.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_simple_login.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_simple_query_fastpath.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_skillopt.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_slash_runtime.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_spawn_harness_tool.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_steering_continue_reminders.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_synthetic_gateways.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_terminal_output_limits.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_theme_picker.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_todo_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_args_repair.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_batch_safety.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_bridge.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_bridge_openai.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_call_repair.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_output_pruning.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tool_tracking.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tools.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_change_summary.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_chat_mode.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_exit.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_llamacpp_connect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_markdown_cleanup.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_mlx_connect.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_mounted.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_smoke.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_tui_tool_display.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_version.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_view_image.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_web_server_auth.py +0 -0
- {superqode-0.2.4 → superqode-0.2.5}/tests/test_workspace.py +0 -0
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.5] - 2026-07-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Harbor / Terminal-Bench compatibility for the ACP agent** - The ACP server now honors Harbor's `HARBOR_ACP_REQUESTED_MODEL` environment variable when resolving the session model and implements ACP `session/set_model`, so `harbor run --agent acp` can drive SuperQode on Terminal-Bench using the benchmark's `--model` flag with no wrapper code.
|
|
15
|
+
- **Harness template selection over ACP** - `SUPERQODE_ACP_SPEC` (and `serve acp --spec`) now accepts `template:<name>` to pin any built-in harness template for a session without a spec file, enabling harness-variant comparisons in benchmark containers.
|
|
16
|
+
- **`benchmark-coding` template** - An autonomous variant of the coding harness for unattended benchmark runs: yolo approvals, and a system stance that never asks the user questions, investigates recoverable state exhaustively (reflog, stashes, backups), always applies a concrete attempt, and verifies before finishing.
|
|
17
|
+
- **ACP Agent Server documentation** - Added the ACP Agent Server guide covering editor setup, harness and model resolution, template selection, and running SuperQode on Terminal-Bench with Harbor, plus `serve acp` CLI reference coverage.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **Release metadata** - Bumped the package version and runtime `__version__` to `0.2.5`.
|
|
22
|
+
|
|
10
23
|
## [0.2.4] - 2026-07-04
|
|
11
24
|
|
|
12
25
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superqode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: SuperQode: harness engineering framework for coding agents, optimized for local and open models
|
|
5
5
|
Author-email: Shashi Jagtap <info@super-agentic.ai>
|
|
6
6
|
Maintainer-email: Shashi Jagtap <info@super-agentic.ai>
|
|
@@ -31,6 +31,7 @@ from acp import (
|
|
|
31
31
|
InitializeResponse,
|
|
32
32
|
NewSessionResponse,
|
|
33
33
|
PromptResponse,
|
|
34
|
+
SetSessionModelResponse,
|
|
34
35
|
run_agent,
|
|
35
36
|
start_tool_call,
|
|
36
37
|
text_block,
|
|
@@ -168,7 +169,8 @@ def discover_session_spec(cwd: Path, harness_dir: Path | None = None) -> Path |
|
|
|
168
169
|
|
|
169
170
|
|
|
170
171
|
def resolve_provider_model(spec: Any, provider: str = "", model: str = "") -> tuple[str, str]:
|
|
171
|
-
"""Resolve provider/model: explicit args → ACP env vars →
|
|
172
|
+
"""Resolve provider/model: explicit args → ACP env vars → Harbor requested model
|
|
173
|
+
→ model_policy.primary."""
|
|
172
174
|
from superqode.providers.model_specs import (
|
|
173
175
|
normalize_model_for_provider,
|
|
174
176
|
normalize_provider_id,
|
|
@@ -185,6 +187,17 @@ def resolve_provider_model(spec: Any, provider: str = "", model: str = "") -> tu
|
|
|
185
187
|
if parsed_model.provider:
|
|
186
188
|
provider, model = parsed_model.provider, parsed_model.model
|
|
187
189
|
|
|
190
|
+
# Harbor's ACP runner exports the benchmark's --model for the agent process;
|
|
191
|
+
# honoring it makes SuperQode work on Terminal-Bench without a wrapper.
|
|
192
|
+
harbor_requested = os.environ.get("HARBOR_ACP_REQUESTED_MODEL", "").strip()
|
|
193
|
+
if (not provider or not model) and harbor_requested:
|
|
194
|
+
parsed_requested = split_provider_model_ref(harbor_requested)
|
|
195
|
+
if parsed_requested.provider:
|
|
196
|
+
provider = provider or parsed_requested.provider
|
|
197
|
+
model = model or parsed_requested.model
|
|
198
|
+
else:
|
|
199
|
+
model = model or harbor_requested
|
|
200
|
+
|
|
188
201
|
primary = getattr(getattr(spec, "model_policy", None), "primary", None)
|
|
189
202
|
if (not provider or not model) and primary:
|
|
190
203
|
parsed_primary = split_provider_model_ref(str(primary))
|
|
@@ -311,6 +324,23 @@ class SuperQodeAcpAgent:
|
|
|
311
324
|
self._sessions.pop(session_id, None)
|
|
312
325
|
return None
|
|
313
326
|
|
|
327
|
+
async def set_session_model(
|
|
328
|
+
self, model_id: str, session_id: str, **kwargs: Any
|
|
329
|
+
) -> SetSessionModelResponse:
|
|
330
|
+
"""Switch the session's model; accepts `provider/model` or bare model ids."""
|
|
331
|
+
from superqode.providers.model_specs import split_provider_model_ref
|
|
332
|
+
|
|
333
|
+
state = self._sessions.get(session_id)
|
|
334
|
+
if state is None:
|
|
335
|
+
raise RequestError.invalid_params({"reason": f"Unknown session: {session_id}"})
|
|
336
|
+
parsed = split_provider_model_ref(str(model_id))
|
|
337
|
+
if parsed.provider:
|
|
338
|
+
state.provider = parsed.provider
|
|
339
|
+
state.model = parsed.model
|
|
340
|
+
else:
|
|
341
|
+
state.model = str(model_id)
|
|
342
|
+
return SetSessionModelResponse()
|
|
343
|
+
|
|
314
344
|
async def cancel(self, session_id: str, **kwargs: Any) -> None:
|
|
315
345
|
state = self._sessions.get(session_id)
|
|
316
346
|
if state is not None:
|
|
@@ -477,10 +507,14 @@ class SuperQodeAcpAgent:
|
|
|
477
507
|
|
|
478
508
|
def _load_spec(self, cwd: Path) -> Any:
|
|
479
509
|
from superqode.harness import load_harness_spec
|
|
480
|
-
from superqode.harness.templates import coding_template
|
|
510
|
+
from superqode.harness.templates import coding_template, get_harness_template
|
|
481
511
|
|
|
482
|
-
explicit = self._spec_path or os.environ.get("SUPERQODE_ACP_SPEC", "").strip()
|
|
512
|
+
explicit = str(self._spec_path or os.environ.get("SUPERQODE_ACP_SPEC", "")).strip()
|
|
483
513
|
if explicit:
|
|
514
|
+
# `template:<name>` selects a built-in template — no spec file needed,
|
|
515
|
+
# which is how benchmark containers pin a harness variant per run.
|
|
516
|
+
if explicit.startswith("template:"):
|
|
517
|
+
return get_harness_template(explicit.removeprefix("template:"))
|
|
484
518
|
return load_harness_spec(Path(explicit).expanduser())
|
|
485
519
|
found = discover_session_spec(cwd, self._harness_dir)
|
|
486
520
|
if found is not None:
|
|
@@ -223,8 +223,49 @@ def minimax_coding_template() -> HarnessSpec:
|
|
|
223
223
|
)
|
|
224
224
|
|
|
225
225
|
|
|
226
|
+
_BENCHMARK_STANCE = """You are running unattended in a headless benchmark environment.
|
|
227
|
+
|
|
228
|
+
- There is NO user available. Never ask questions, never request confirmation, and
|
|
229
|
+
never end your turn waiting for input. A response that asks a question scores zero.
|
|
230
|
+
- Investigate exhaustively with your tools before concluding anything is missing or
|
|
231
|
+
impossible: inspect history, logs, hidden files, and recoverable state (for example
|
|
232
|
+
`git reflog`, `git fsck --lost-found`, `git stash list`, backup and temp files).
|
|
233
|
+
- Always attempt a concrete solution and apply it with your tools. A reasonable
|
|
234
|
+
attempt scores better than a perfect explanation with no changes.
|
|
235
|
+
- Before finishing, verify your work by running the relevant commands or tests and
|
|
236
|
+
fix what fails. Finish with a short summary of what you changed."""
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def benchmark_coding_template() -> HarnessSpec:
|
|
240
|
+
"""Coding harness tuned for unattended benchmark runs (Harbor, Terminal-Bench)."""
|
|
241
|
+
base = coding_template(name="benchmark-coding")
|
|
242
|
+
agents = tuple(
|
|
243
|
+
AgentSpec(**{**agent.__dict__, "system_prompt": _BENCHMARK_STANCE}) for agent in base.agents
|
|
244
|
+
)
|
|
245
|
+
return HarnessSpec(
|
|
246
|
+
**{
|
|
247
|
+
**base.__dict__,
|
|
248
|
+
"description": (
|
|
249
|
+
"Autonomous coding harness for headless benchmark runs: never asks the "
|
|
250
|
+
"user, investigates exhaustively, always attempts and verifies a fix."
|
|
251
|
+
),
|
|
252
|
+
"agents": agents,
|
|
253
|
+
"execution_policy": ExecutionPolicySpec(
|
|
254
|
+
sandbox="local",
|
|
255
|
+
approval_profile="yolo",
|
|
256
|
+
allow_read=True,
|
|
257
|
+
allow_write=True,
|
|
258
|
+
allow_shell=True,
|
|
259
|
+
),
|
|
260
|
+
"metadata": {"template": "benchmark-coding"},
|
|
261
|
+
}
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
|
|
226
265
|
BUILTIN_TEMPLATES = {
|
|
227
266
|
"coding": coding_template,
|
|
267
|
+
"benchmark-coding": benchmark_coding_template,
|
|
268
|
+
"benchmark_coding": benchmark_coding_template,
|
|
228
269
|
"no-tool": no_tool_template,
|
|
229
270
|
"no_tool": no_tool_template,
|
|
230
271
|
"gemma4-coding": gemma4_coding_template,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superqode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: SuperQode: harness engineering framework for coding agents, optimized for local and open models
|
|
5
5
|
Author-email: Shashi Jagtap <info@super-agentic.ai>
|
|
6
6
|
Maintainer-email: Shashi Jagtap <info@super-agentic.ai>
|
|
@@ -165,6 +165,89 @@ def test_resolve_provider_model_explicit_wins():
|
|
|
165
165
|
assert model == "gpt-4o-mini"
|
|
166
166
|
|
|
167
167
|
|
|
168
|
+
def test_resolve_provider_model_honors_harbor_requested_model(monkeypatch):
|
|
169
|
+
monkeypatch.setenv("HARBOR_ACP_REQUESTED_MODEL", "ollama/gemma4:e4b")
|
|
170
|
+
spec = SimpleNamespace(model_policy=SimpleNamespace(primary=None))
|
|
171
|
+
provider, model = resolve_provider_model(spec)
|
|
172
|
+
assert provider == "ollama"
|
|
173
|
+
assert model == "gemma4:e4b"
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def test_resolve_provider_model_harbor_beats_spec_primary(monkeypatch):
|
|
177
|
+
# The benchmark's --model is the run contract: it must win over a spec default.
|
|
178
|
+
monkeypatch.setenv("HARBOR_ACP_REQUESTED_MODEL", "openai/gpt-5")
|
|
179
|
+
spec = SimpleNamespace(model_policy=SimpleNamespace(primary="ollama/qwen3-coder"))
|
|
180
|
+
provider, model = resolve_provider_model(spec)
|
|
181
|
+
assert provider == "openai"
|
|
182
|
+
assert model == "gpt-5"
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
async def test_set_session_model_updates_state():
|
|
186
|
+
session = FakeSession()
|
|
187
|
+
agent, _ = make_agent_with_session(session)
|
|
188
|
+
response = await agent.set_session_model(model_id="openrouter/qwen3-coder", session_id="sess-1")
|
|
189
|
+
assert response is not None
|
|
190
|
+
state = agent._sessions["sess-1"]
|
|
191
|
+
assert state.provider == "openrouter"
|
|
192
|
+
assert state.model == "qwen3-coder"
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
async def test_set_session_model_bare_model_keeps_provider():
|
|
196
|
+
session = FakeSession()
|
|
197
|
+
agent, _ = make_agent_with_session(session)
|
|
198
|
+
await agent.set_session_model(model_id="gemma4:e4b", session_id="sess-1")
|
|
199
|
+
state = agent._sessions["sess-1"]
|
|
200
|
+
assert state.provider == "ollama"
|
|
201
|
+
assert state.model == "gemma4:e4b"
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
async def test_set_session_model_unknown_session_raises():
|
|
205
|
+
agent = SuperQodeAcpAgent()
|
|
206
|
+
with pytest.raises(Exception):
|
|
207
|
+
await agent.set_session_model(model_id="x/y", session_id="nope")
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
def test_load_spec_template_name_from_env(monkeypatch, tmp_path):
|
|
211
|
+
monkeypatch.setenv("SUPERQODE_ACP_SPEC", "template:qwen-coding")
|
|
212
|
+
agent = SuperQodeAcpAgent()
|
|
213
|
+
spec = agent._load_spec(tmp_path)
|
|
214
|
+
assert "qwen" in spec.name.lower()
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def test_load_spec_unknown_template_raises(monkeypatch, tmp_path):
|
|
218
|
+
monkeypatch.setenv("SUPERQODE_ACP_SPEC", "template:not-a-real-template")
|
|
219
|
+
agent = SuperQodeAcpAgent()
|
|
220
|
+
with pytest.raises(Exception):
|
|
221
|
+
agent._load_spec(tmp_path)
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def test_benchmark_coding_template_is_autonomous():
|
|
225
|
+
from superqode.harness.templates import get_harness_template
|
|
226
|
+
|
|
227
|
+
spec = get_harness_template("benchmark-coding")
|
|
228
|
+
assert spec.execution_policy.approval_profile == "yolo"
|
|
229
|
+
assert spec.flavor.value == "coding"
|
|
230
|
+
stance = spec.agents[0].system_prompt or ""
|
|
231
|
+
assert "Never ask questions" in stance
|
|
232
|
+
assert "git reflog" in stance
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def test_benchmark_stance_reaches_agent_job_description():
|
|
236
|
+
# The stance only matters if it lands in the compiled profile the loop runs with.
|
|
237
|
+
from superqode.harness.compiler import compile_to_headless_profile
|
|
238
|
+
from superqode.harness.templates import get_harness_template
|
|
239
|
+
|
|
240
|
+
profile = compile_to_headless_profile(get_harness_template("benchmark-coding"))
|
|
241
|
+
assert "headless benchmark environment" in (profile.job_description or "")
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
def test_load_spec_benchmark_template_via_env(monkeypatch, tmp_path):
|
|
245
|
+
monkeypatch.setenv("SUPERQODE_ACP_SPEC", "template:benchmark-coding")
|
|
246
|
+
agent = SuperQodeAcpAgent()
|
|
247
|
+
spec = agent._load_spec(tmp_path)
|
|
248
|
+
assert spec.name == "benchmark-coding"
|
|
249
|
+
|
|
250
|
+
|
|
168
251
|
async def test_prompt_streams_events_as_session_updates():
|
|
169
252
|
session = FakeSession(
|
|
170
253
|
events=[
|
|
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
|
{superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/agentpool.phil65.github.io.toml
RENAMED
|
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
|
{superqode-0.2.4 → superqode-0.2.5}/src/superqode/agents/data/hermes-agent.nousresearch.com.toml
RENAMED
|
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
|