superqode 0.2.2__tar.gz → 0.2.3__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.2 → superqode-0.2.3}/CHANGELOG.md +6 -3
- {superqode-0.2.2/src/superqode.egg-info → superqode-0.2.3}/PKG-INFO +22 -3
- {superqode-0.2.2 → superqode-0.2.3}/README.md +21 -2
- {superqode-0.2.2 → superqode-0.2.3}/pyproject.toml +1 -1
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/__init__.py +1 -1
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app_main.py +23 -4
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/pure_mode.py +1 -6
- {superqode-0.2.2 → superqode-0.2.3/src/superqode.egg-info}/PKG-INFO +22 -3
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_kernel.py +5 -3
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_smoke.py +42 -0
- {superqode-0.2.2 → superqode-0.2.3}/LICENSE +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/MANIFEST.in +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/README.md +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/byok-acp-team.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/coding.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/deepagents.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/ds4.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/gemma4.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/google-adk.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/local-recursive-dynamic.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/no-tool.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/omnigent-multi-agent.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/openai-agents.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/pydanticai.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/local-models-team.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/omnigent-multi-agent.agent.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/examples/simple-team.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/setup.cfg +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/presets.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/server.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/skills.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/types.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/workflows.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/doctor.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/permission_screen.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/permission_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/render.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/session_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/slash.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/tool_call_context.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/types.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp_discovery.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/auto_memory.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/command_safety.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/compaction.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/context_manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/edit_strategies.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/exec_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/hooks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/loop.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/loop_guard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/network_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/output_handler.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/parallel_compare.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/peer_agents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/plan_mode.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/reminders.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/rubric.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/session_manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/structured_output.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/summarization.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/system_prompts.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/terminal_output_limits.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/text_tool_calls.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/tool_args.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/tool_tracking.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/utility_model.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent_output.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent_stream.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/acp_registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/agentpool.phil65.github.io.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/ampcode.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/augmentcode.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/autodev.github.io.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/blackbox.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/bub.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cagent.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/claude.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cline.bot.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/codeassistant.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/codex.openai.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/copilot.github.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/crow-ai.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cursor.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/factory.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/fastagent.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/fount.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/geminicli.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/goose.block.xyz.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/hermes-agent.nousresearch.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/junie.jetbrains.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/kimi.moonshot.cn.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/kiro.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/llmlingagent.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/minioncode.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/mistral-vibe.mistral.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/openclaw.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/opencode.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/openhands.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/pi.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/poolside.ai.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/qoder.com.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/qwenlm.github.io.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/sigit.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/stakpak.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/stdiobus.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/vtcode.dev.toml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/discovery.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/free_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/messaging.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/official_acp.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/persona.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/schema.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/unified.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/constants.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/css.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/suggester.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/theme_bridge.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/widgets.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app_enhanced.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/approval.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/atomic.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/auth/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/benchmarks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/config.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/discord.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/service.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/slack.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/telegram.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/claude.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/codex.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/a2a.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/acp.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/agents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/auth.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/config.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/daemon.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/local.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/providers.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/serve.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/sessions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/loader.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/schema.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/core/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/danger.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_fixtures/ci-dynamic-root-cause.log +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_fixtures/ci-root-cause.log +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_packs/local_dynamic_workflow_smoke.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_packs/local_recursive_smoke.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/superqode-template.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/design_system.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/model.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/provider.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/diff_view.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/enterprise.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/adapters.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/behaviors.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/engine.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/scenarios.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/linter.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/modes.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/resolver.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/runner.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/file_explorer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/file_viewer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/flash.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/accelerator.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/agent_importer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/approval_memory.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/deepagents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/managed.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/pydanticai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/compiler.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/context_handles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/diagnostics.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/eval.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/events.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/explain.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/hooks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/kernel.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/loader.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/mcp_bridge.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/model_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/observability.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/omnigent_importer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/optimize.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/output.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/permissions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/spec.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/templates.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/testing.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/wizard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/workflow.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/workflow_presets.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/headless.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/history.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/airplane.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/bench.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/build.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/code_index.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/devstral.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/ds4.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/gemma4.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/glm.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/gpt-oss.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/minimax.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/qwen-coder.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/qwen3.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/stack_matrix.yaml +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/doctor.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/engines.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/guardrails.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/hardware.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/inventory.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/labs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/matrix.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/migrate.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/optimize.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/packs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/repo.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/servers.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/setup.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/smoke.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/adapters.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/formatter.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/integration.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/sinks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/unified_log.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/lsp/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/lsp/client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/main.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/auth_storage.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/config.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/elicitation.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/harness_server.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/hf_auth.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/integration.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/oauth.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/oauth_callback.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/sampling.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/types.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/config.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/providers.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/types.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/notifications.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/permissions/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/permissions/rules.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/plan.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/plugins.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/project_trust.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/_builtin_profiles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_free_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/apple_fm.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/catalog.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/connection_profiles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/credentials.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/dynamic.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/env_introspect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/free_inference.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/litellm_gateway.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/openresponses_gateway.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/synthetic.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/health.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/convert.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/downloader.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/endpoints.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/fetch.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/hub.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/inference.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/transformers_runner.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/live_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/_mlx_worker.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/context_probe.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/discovery.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/ds4.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/lmstudio.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx_engine.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/ollama.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/sglang.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/smoke.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/tgi.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/tool_support.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/vllm.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/model_specs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/models_dev.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/opencode_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/messages.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/schema/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/schema/models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/streaming/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/streaming/parser.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/apply_patch.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/code_interpreter.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/file_search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/mcp_adapter.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/profiles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/recommendations.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/usage.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/py.typed +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/html_export.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/markdown.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/transcript_export.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/adk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/builtin.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/claude_agent_sdk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/codex_sdk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/errors.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_agents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/pydanticai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge_openai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge_pydanticai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/warnings.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/backends.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/execution.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/local_sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/search_registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/api.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/web.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/factory.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/persistence.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/share_artifacts.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/sharing.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/switchboard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sidebar.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/skillopt.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/skills.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/stream_view.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/styles/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tool_call.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/agent_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/apply_patch.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/batch_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/compact_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/context_handle.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/context_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/diagnostics.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/diff_utils.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/dynamic_workflow.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/edit_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/enhanced_base.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/env_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/file_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/file_tracking.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/harness_agent_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/image_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/lsp_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/mcp_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/monty_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/network_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/output_spill.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/peer_agent_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/permissions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/post_edit.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/question_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/request_permissions_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/search_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/semantic_search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/shell_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/shell_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/skill_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/spawn_harness.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/todo_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/tool_search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/validation.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/web_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_integration.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/progress.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/tool_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/undo_manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/error_handling.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/fuzzy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/agent_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/agent_switcher.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/animation_manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/code_context.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/command_palette.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/connection_status.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/conversation_history.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/diff_indicator.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/enhanced_status_bar.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/enhanced_toast.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/file_browser.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/file_reference.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/leader_key.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/mode_switcher.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/model_picker.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/permission_preview.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/prompt.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/provider_connect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/pty_shell.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/resizable_sidebar.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/response_changes.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/response_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/rewind_overlay.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/rich_tool_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/sidebar_panels.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/slash_commands.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/slash_complete.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/split_view.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/status_bar.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/superqode_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/theme_picker.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/thinking.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/thinking_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/throbber.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/toast.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/unified_output.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/__init__.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/artifacts.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/change_summary.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/coordinator.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/diff_tracker.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/git_guard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/git_snapshot.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/manager.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/snapshot.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/watcher.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/worktree.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/SOURCES.txt +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/dependency_links.txt +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/entry_points.txt +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/requires.txt +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/top_level.txt +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_free_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_parent_tool_linking.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_permission_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_registry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_render.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_session_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_slash.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_adaptive_compaction.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_importer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_loop_harness.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_memory.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_agents_md_compat.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_apply_patch.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_auth.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_bash_spill.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_benchmarks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_change_summary.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_channels.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_commands.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_connect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_reference_coverage.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_command_safety.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_commands_runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_compaction.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_config_loader.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_config_runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_connect_setup.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_connection_profiles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_handles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_probe.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_remaining.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_create_skill_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_deferred_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_developer_workflow_docs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_ds4_local_client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_dynamic_workflow_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_edit_line_number_strip.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_env_introspect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_execution_resolver.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_final_parity_wave.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_free_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_agent_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_backends.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_examples.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_explain.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_hooks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_mcp_server.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_model_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_observability.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_output.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_permissions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_seesaw_dimensions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_spec.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_store.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_wizard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_workflow.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_headless.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_hf_fetch.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_hooks.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_linter_runner.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_litellm_gateway.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_live_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_airplane.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_build.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_code_index.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_labs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_migrate.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_model_optimizations.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_packs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_servers.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_setup.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_smoke.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_stack.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_tool_support.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_login_api.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_loop_guard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_managed_harness_backend.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_markdown_render.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_integration.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_live.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_oauth_generalized.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_tools_runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_two_way.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_memory_recall.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_mlx_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_model_profiles.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_model_specs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_monty_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_network_policy.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_ollama_client.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_omnigent_agent_session_smoke.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_omnigent_importer.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_openai_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_output_spill.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_parallel_compare.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_peer_agents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_plugin_hook_wiring.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_plugins.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_policies_and_turndiff.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_post_edit_verify.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_project_trust.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_catalog.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_dynamic.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_models.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_recommendations.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_pure_mode_sessions.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_rate_limit_retry.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_read_tool_limits.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_reasoning_and_budget.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_recursive_eval_packs.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_adk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_builtin.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_claude_agent_sdk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_codex_sdk.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_dialog.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_agents.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_events.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_hitl.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_sandbox.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_protocol.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_pydanticai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_sandbox_backends.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_sandbox_execution.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_search_roots.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_semantic_search.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_session_switchboard.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_shell_session.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_simple_login.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_simple_query_fastpath.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_skillopt.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_slash_runtime.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_spawn_harness_tool.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_steering_continue_reminders.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_synthetic_gateways.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_terminal_output_limits.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_theme_picker.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_todo_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_args_repair.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_batch_safety.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_bridge.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_bridge_openai.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_call_repair.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_output_pruning.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_tracking.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tools.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_change_summary.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_chat_mode.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_exit.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_llamacpp_connect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_markdown_cleanup.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_mlx_connect.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_mounted.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_tool_display.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_version.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_view_image.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_web_server_auth.py +0 -0
- {superqode-0.2.2 → superqode-0.2.3}/tests/test_workspace.py +0 -0
|
@@ -7,24 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.2.
|
|
10
|
+
## [0.2.3] - 2026-06-24
|
|
11
11
|
|
|
12
12
|
### Added
|
|
13
13
|
|
|
14
14
|
- **TUI harness wizard** - Added a step-by-step `:harness wizard` flow for creating starter HarnessSpec files from the TUI, plus `:harness init` / flag shortcuts using the same wizard builder as the CLI.
|
|
15
15
|
- **TUI CLI parity** - Exposed the remaining CLI command surface in the TUI command list and routed unsupported subcommands through the CLI runner so CLI-only workflows can be launched from the TUI.
|
|
16
|
+
- **First harness documentation** - Documented the TUI and CLI wizard path for creating, loading, checking, and running a first HarnessSpec in a few steps.
|
|
16
17
|
|
|
17
18
|
### Fixed
|
|
18
19
|
|
|
19
20
|
- **Smoke script source checkout support** - Made the Omnigent agent-session smoke script import SuperQode reliably when run directly from a checkout.
|
|
20
|
-
- **Harness model routing** - Made `model_policy.primary` override the active TUI connection for harness runs
|
|
21
|
+
- **Harness model routing** - Made `model_policy.primary` override the active TUI connection for harness runs while preserving valid Ollama model tags such as `*-mlx`.
|
|
21
22
|
- **Harness wizard defaults** - Made Enter-through defaults in the TUI wizard create a runnable Qwen local harness with an explicit `ollama/qwen3-coder` model policy.
|
|
23
|
+
- **Harness wizard final prompt** - Treated `yes`/`no` typed on the output-file step as the final load answer so the wizard no longer stores `yes` as a filename and loops back to the output prompt.
|
|
24
|
+
- **Harness wizard output paths** - Picked the next available default output path such as `harness-2.yaml` when `harness.yaml` already exists, preventing default runs from bouncing back to the output prompt.
|
|
22
25
|
- **Harness wizard loading** - Fixed the final “Load this harness now?” step so loaded harnesses remain visible after reconnect/disconnect state changes, and stale `SUPERQODE_HARNESS` paths no longer crash Pure Mode startup.
|
|
23
26
|
- **Harness streaming** - Forwarded builtin harness `model_delta` events through Pure Mode so TUI harness runs no longer report `chunks=0` when the model did stream content.
|
|
24
27
|
|
|
25
28
|
### Changed
|
|
26
29
|
|
|
27
|
-
- **Release metadata** - Bumped the package version and runtime `__version__` to `0.2.
|
|
30
|
+
- **Release metadata** - Bumped the package version and runtime `__version__` to `0.2.3`.
|
|
28
31
|
|
|
29
32
|
## [0.2.0] - 2026-06-23
|
|
30
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superqode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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>
|
|
@@ -230,7 +230,7 @@ Inside the TUI, the local-first MVP path is:
|
|
|
230
230
|
| File | Purpose | Created by |
|
|
231
231
|
| --- | --- | --- |
|
|
232
232
|
| `superqode.yaml` | Project configuration: providers, endpoints, MCP, memory, defaults | `superqode config init` or `:init` |
|
|
233
|
-
| `harness.yaml` | Portable agent run contract | `superqode harness init ...` |
|
|
233
|
+
| `harness.yaml` | Portable agent run contract | `:harness wizard`, `superqode harness wizard`, or `superqode harness init ...` |
|
|
234
234
|
| `superqode.local.yaml` | Local-first HarnessSpec generated for this machine | `:local init` or `superqode local init --repo .` |
|
|
235
235
|
| `superqode.airplane.yaml` | Strict no-network HarnessSpec for offline local work | `:local airplane prepare` or `superqode local airplane prepare` |
|
|
236
236
|
|
|
@@ -242,7 +242,26 @@ superqode --print "inspect this repository and suggest the smallest next step"
|
|
|
242
242
|
|
|
243
243
|
### Your First Harness Run
|
|
244
244
|
|
|
245
|
-
A harness is the repeatable contract for how an agent run behaves.
|
|
245
|
+
A harness is the repeatable contract for how an agent run behaves. In the TUI, create and load your first harness without writing YAML:
|
|
246
|
+
|
|
247
|
+
```text
|
|
248
|
+
:connect local
|
|
249
|
+
:harness wizard
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Press Enter through the defaults for a runnable local coding harness, choose an output file, and answer `yes` when asked whether to load it. If `harness.yaml` already exists, the wizard uses the next available path such as `harness-2.yaml`.
|
|
253
|
+
|
|
254
|
+
For the CLI path, start with the interactive wizard or the default coding template:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
cd your-project
|
|
258
|
+
superqode harness wizard
|
|
259
|
+
superqode harness explain --spec harness.yaml
|
|
260
|
+
superqode harness doctor --spec harness.yaml
|
|
261
|
+
superqode harness run --spec harness.yaml --prompt "summarize the architecture"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Template shortcut:
|
|
246
265
|
|
|
247
266
|
```bash
|
|
248
267
|
cd your-project
|
|
@@ -102,7 +102,7 @@ Inside the TUI, the local-first MVP path is:
|
|
|
102
102
|
| File | Purpose | Created by |
|
|
103
103
|
| --- | --- | --- |
|
|
104
104
|
| `superqode.yaml` | Project configuration: providers, endpoints, MCP, memory, defaults | `superqode config init` or `:init` |
|
|
105
|
-
| `harness.yaml` | Portable agent run contract | `superqode harness init ...` |
|
|
105
|
+
| `harness.yaml` | Portable agent run contract | `:harness wizard`, `superqode harness wizard`, or `superqode harness init ...` |
|
|
106
106
|
| `superqode.local.yaml` | Local-first HarnessSpec generated for this machine | `:local init` or `superqode local init --repo .` |
|
|
107
107
|
| `superqode.airplane.yaml` | Strict no-network HarnessSpec for offline local work | `:local airplane prepare` or `superqode local airplane prepare` |
|
|
108
108
|
|
|
@@ -114,7 +114,26 @@ superqode --print "inspect this repository and suggest the smallest next step"
|
|
|
114
114
|
|
|
115
115
|
### Your First Harness Run
|
|
116
116
|
|
|
117
|
-
A harness is the repeatable contract for how an agent run behaves.
|
|
117
|
+
A harness is the repeatable contract for how an agent run behaves. In the TUI, create and load your first harness without writing YAML:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
:connect local
|
|
121
|
+
:harness wizard
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Press Enter through the defaults for a runnable local coding harness, choose an output file, and answer `yes` when asked whether to load it. If `harness.yaml` already exists, the wizard uses the next available path such as `harness-2.yaml`.
|
|
125
|
+
|
|
126
|
+
For the CLI path, start with the interactive wizard or the default coding template:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
cd your-project
|
|
130
|
+
superqode harness wizard
|
|
131
|
+
superqode harness explain --spec harness.yaml
|
|
132
|
+
superqode harness doctor --spec harness.yaml
|
|
133
|
+
superqode harness run --spec harness.yaml --prompt "summarize the architecture"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Template shortcut:
|
|
118
137
|
|
|
119
138
|
```bash
|
|
120
139
|
cd your-project
|
|
@@ -12007,7 +12007,7 @@ class SuperQodeApp(App):
|
|
|
12007
12007
|
"tool_call_format": "auto",
|
|
12008
12008
|
"workflow_preset": "single",
|
|
12009
12009
|
},
|
|
12010
|
-
"output":
|
|
12010
|
+
"output": self._default_harness_wizard_output(),
|
|
12011
12011
|
"load": True,
|
|
12012
12012
|
"force": False,
|
|
12013
12013
|
}
|
|
@@ -12130,6 +12130,11 @@ class SuperQodeApp(App):
|
|
|
12130
12130
|
answers["workflow_preset"] = choice
|
|
12131
12131
|
self._harness_wizard_next(state, "output")
|
|
12132
12132
|
elif step == "output":
|
|
12133
|
+
load_answer = self._parse_yes_no(raw) if raw else None
|
|
12134
|
+
if load_answer is not None:
|
|
12135
|
+
state["load"] = load_answer
|
|
12136
|
+
self._finish_harness_wizard_flow(log)
|
|
12137
|
+
return True
|
|
12133
12138
|
if raw:
|
|
12134
12139
|
state["output"] = raw
|
|
12135
12140
|
self._harness_wizard_next(state, "load")
|
|
@@ -12161,6 +12166,17 @@ class SuperQodeApp(App):
|
|
|
12161
12166
|
state.setdefault("history", []).append(state["step"])
|
|
12162
12167
|
state["step"] = next_step
|
|
12163
12168
|
|
|
12169
|
+
@staticmethod
|
|
12170
|
+
def _default_harness_wizard_output() -> str:
|
|
12171
|
+
base = Path("harness.yaml")
|
|
12172
|
+
if not base.exists():
|
|
12173
|
+
return str(base)
|
|
12174
|
+
for index in range(2, 1000):
|
|
12175
|
+
candidate = Path(f"harness-{index}.yaml")
|
|
12176
|
+
if not candidate.exists():
|
|
12177
|
+
return str(candidate)
|
|
12178
|
+
return "harness-new.yaml"
|
|
12179
|
+
|
|
12164
12180
|
@staticmethod
|
|
12165
12181
|
def _parse_yes_no(raw: str) -> bool | None:
|
|
12166
12182
|
lowered = raw.strip().lower()
|
|
@@ -12274,11 +12290,11 @@ class SuperQodeApp(App):
|
|
|
12274
12290
|
default = " (default)" if key == "single" else ""
|
|
12275
12291
|
t.append(f" {index}. {key:<22} {label}{default}\n", style=THEME["text"])
|
|
12276
12292
|
elif step == "output":
|
|
12277
|
-
t.append(" Step 9/
|
|
12293
|
+
t.append(" Step 9/10 Output file\n", style=f"bold {THEME['cyan']}")
|
|
12278
12294
|
t.append(f" Default: {state['output']}\n", style=THEME["muted"])
|
|
12279
12295
|
t.append(" Example: harness.yaml\n", style=THEME["text"])
|
|
12280
12296
|
elif step == "load":
|
|
12281
|
-
t.append("
|
|
12297
|
+
t.append(" Step 10/10 Load this harness now?\n", style=f"bold {THEME['cyan']}")
|
|
12282
12298
|
t.append(" Default: yes\n", style=THEME["muted"])
|
|
12283
12299
|
t.append(" Answer: yes or no\n", style=THEME["text"])
|
|
12284
12300
|
|
|
@@ -12293,7 +12309,10 @@ class SuperQodeApp(App):
|
|
|
12293
12309
|
load_after_write = bool(state.get("load", True))
|
|
12294
12310
|
|
|
12295
12311
|
if output.exists() and not state.get("force", False):
|
|
12296
|
-
|
|
12312
|
+
state["output"] = self._default_harness_wizard_output()
|
|
12313
|
+
log.add_error(
|
|
12314
|
+
f"{output} already exists. Suggested next available path: {state['output']}"
|
|
12315
|
+
)
|
|
12297
12316
|
state["step"] = "output"
|
|
12298
12317
|
self._render_harness_wizard_step(log)
|
|
12299
12318
|
return
|
|
@@ -168,12 +168,7 @@ class PureMode:
|
|
|
168
168
|
@staticmethod
|
|
169
169
|
def _validate_harness_route(provider: str, model: str) -> None:
|
|
170
170
|
"""Catch common local provider/model mismatches before streaming."""
|
|
171
|
-
|
|
172
|
-
raise RuntimeError(
|
|
173
|
-
"The active harness is trying to run an MLX-tagged model through Ollama: "
|
|
174
|
-
f"ollama/{model}. Use the exact Ollama model tag from `ollama list`, or set "
|
|
175
|
-
"`model_policy.primary: mlx/<model>` and connect with the MLX provider."
|
|
176
|
-
)
|
|
171
|
+
return
|
|
177
172
|
|
|
178
173
|
def get_providers_for_picker(self) -> List[Dict[str, Any]]:
|
|
179
174
|
"""Get providers formatted for the TUI picker."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superqode
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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>
|
|
@@ -230,7 +230,7 @@ Inside the TUI, the local-first MVP path is:
|
|
|
230
230
|
| File | Purpose | Created by |
|
|
231
231
|
| --- | --- | --- |
|
|
232
232
|
| `superqode.yaml` | Project configuration: providers, endpoints, MCP, memory, defaults | `superqode config init` or `:init` |
|
|
233
|
-
| `harness.yaml` | Portable agent run contract | `superqode harness init ...` |
|
|
233
|
+
| `harness.yaml` | Portable agent run contract | `:harness wizard`, `superqode harness wizard`, or `superqode harness init ...` |
|
|
234
234
|
| `superqode.local.yaml` | Local-first HarnessSpec generated for this machine | `:local init` or `superqode local init --repo .` |
|
|
235
235
|
| `superqode.airplane.yaml` | Strict no-network HarnessSpec for offline local work | `:local airplane prepare` or `superqode local airplane prepare` |
|
|
236
236
|
|
|
@@ -242,7 +242,26 @@ superqode --print "inspect this repository and suggest the smallest next step"
|
|
|
242
242
|
|
|
243
243
|
### Your First Harness Run
|
|
244
244
|
|
|
245
|
-
A harness is the repeatable contract for how an agent run behaves.
|
|
245
|
+
A harness is the repeatable contract for how an agent run behaves. In the TUI, create and load your first harness without writing YAML:
|
|
246
|
+
|
|
247
|
+
```text
|
|
248
|
+
:connect local
|
|
249
|
+
:harness wizard
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Press Enter through the defaults for a runnable local coding harness, choose an output file, and answer `yes` when asked whether to load it. If `harness.yaml` already exists, the wizard uses the next available path such as `harness-2.yaml`.
|
|
253
|
+
|
|
254
|
+
For the CLI path, start with the interactive wizard or the default coding template:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
cd your-project
|
|
258
|
+
superqode harness wizard
|
|
259
|
+
superqode harness explain --spec harness.yaml
|
|
260
|
+
superqode harness doctor --spec harness.yaml
|
|
261
|
+
superqode harness run --spec harness.yaml --prompt "summarize the architecture"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Template shortcut:
|
|
246
265
|
|
|
247
266
|
```bash
|
|
248
267
|
cd your-project
|
|
@@ -346,15 +346,17 @@ async def test_pure_mode_harness_primary_overrides_active_connection(monkeypatch
|
|
|
346
346
|
assert created["config"].model == "qwen3.6:35b-mlx"
|
|
347
347
|
|
|
348
348
|
|
|
349
|
-
def
|
|
349
|
+
def test_pure_mode_harness_allows_ollama_mlx_tagged_model(tmp_path: Path):
|
|
350
350
|
from superqode.pure_mode import PureMode
|
|
351
351
|
|
|
352
352
|
pure = PureMode()
|
|
353
353
|
pure.set_harness(get_harness_template("no-tool"))
|
|
354
354
|
assert pure.connect("ollama", "qwen3.6:35b-mlx", working_directory=tmp_path)
|
|
355
355
|
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
provider, model = pure._resolve_harness_route()
|
|
357
|
+
|
|
358
|
+
assert provider == "ollama"
|
|
359
|
+
assert model == "qwen3.6:35b-mlx"
|
|
358
360
|
|
|
359
361
|
|
|
360
362
|
def test_pure_mode_set_harness_updates_visible_status(tmp_path: Path):
|
|
@@ -1257,6 +1257,48 @@ def test_tui_harness_wizard_final_yes_loads_and_exits(tmp_path, monkeypatch):
|
|
|
1257
1257
|
assert "Loaded harness my-harness" in rendered
|
|
1258
1258
|
|
|
1259
1259
|
|
|
1260
|
+
def test_tui_harness_wizard_yes_on_output_step_loads_default_path(tmp_path, monkeypatch):
|
|
1261
|
+
monkeypatch.chdir(tmp_path)
|
|
1262
|
+
app = make_app()
|
|
1263
|
+
log = FakeLog()
|
|
1264
|
+
app._show_command_output = lambda target_log, content, clear_log=True: target_log.write(content)
|
|
1265
|
+
|
|
1266
|
+
app._harness_cmd("wizard", log)
|
|
1267
|
+
for _ in range(8):
|
|
1268
|
+
app._handle_harness_wizard_input("", log)
|
|
1269
|
+
assert "Output file" in render_plain(log.items[-1])
|
|
1270
|
+
|
|
1271
|
+
app._handle_harness_wizard_input("yes", log)
|
|
1272
|
+
|
|
1273
|
+
assert (tmp_path / "harness.yaml").exists()
|
|
1274
|
+
assert not (tmp_path / "yes").exists()
|
|
1275
|
+
assert app._awaiting_harness_wizard is False
|
|
1276
|
+
assert app._harness_wizard_state is None
|
|
1277
|
+
assert app._pure_mode is not None
|
|
1278
|
+
status = app._pure_mode.get_status()["harness"]
|
|
1279
|
+
assert status["enabled"] is True
|
|
1280
|
+
assert status["path"].endswith("harness.yaml")
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
def test_tui_harness_wizard_defaults_use_next_available_output(tmp_path, monkeypatch):
|
|
1284
|
+
monkeypatch.chdir(tmp_path)
|
|
1285
|
+
(tmp_path / "harness.yaml").write_text("existing: true\n")
|
|
1286
|
+
app = make_app()
|
|
1287
|
+
log = FakeLog()
|
|
1288
|
+
app._show_command_output = lambda target_log, content, clear_log=True: target_log.write(content)
|
|
1289
|
+
|
|
1290
|
+
app._harness_cmd("wizard", log)
|
|
1291
|
+
for _ in range(10):
|
|
1292
|
+
app._handle_harness_wizard_input("", log)
|
|
1293
|
+
|
|
1294
|
+
assert (tmp_path / "harness-2.yaml").exists()
|
|
1295
|
+
assert (tmp_path / "harness.yaml").read_text() == "existing: true\n"
|
|
1296
|
+
assert app._awaiting_harness_wizard is False
|
|
1297
|
+
status = app._pure_mode.get_status()["harness"]
|
|
1298
|
+
assert status["enabled"] is True
|
|
1299
|
+
assert status["path"].endswith("harness-2.yaml")
|
|
1300
|
+
|
|
1301
|
+
|
|
1260
1302
|
def test_tui_help_surfaces_developer_workflows():
|
|
1261
1303
|
app = make_app()
|
|
1262
1304
|
log = FakeLog()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2 → superqode-0.2.3}/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.2 → superqode-0.2.3}/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
|