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.
Files changed (657) hide show
  1. {superqode-0.2.2 → superqode-0.2.3}/CHANGELOG.md +6 -3
  2. {superqode-0.2.2/src/superqode.egg-info → superqode-0.2.3}/PKG-INFO +22 -3
  3. {superqode-0.2.2 → superqode-0.2.3}/README.md +21 -2
  4. {superqode-0.2.2 → superqode-0.2.3}/pyproject.toml +1 -1
  5. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/__init__.py +1 -1
  6. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app_main.py +23 -4
  7. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/pure_mode.py +1 -6
  8. {superqode-0.2.2 → superqode-0.2.3/src/superqode.egg-info}/PKG-INFO +22 -3
  9. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_kernel.py +5 -3
  10. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_smoke.py +42 -0
  11. {superqode-0.2.2 → superqode-0.2.3}/LICENSE +0 -0
  12. {superqode-0.2.2 → superqode-0.2.3}/MANIFEST.in +0 -0
  13. {superqode-0.2.2 → superqode-0.2.3}/examples/README.md +0 -0
  14. {superqode-0.2.2 → superqode-0.2.3}/examples/byok-acp-team.yaml +0 -0
  15. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/coding.yaml +0 -0
  16. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/deepagents.yaml +0 -0
  17. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/ds4.yaml +0 -0
  18. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/gemma4.yaml +0 -0
  19. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/google-adk.yaml +0 -0
  20. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/local-recursive-dynamic.yaml +0 -0
  21. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/no-tool.yaml +0 -0
  22. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/omnigent-multi-agent.yaml +0 -0
  23. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/openai-agents.yaml +0 -0
  24. {superqode-0.2.2 → superqode-0.2.3}/examples/harnesses/pydanticai.yaml +0 -0
  25. {superqode-0.2.2 → superqode-0.2.3}/examples/local-models-team.yaml +0 -0
  26. {superqode-0.2.2 → superqode-0.2.3}/examples/omnigent-multi-agent.agent.yaml +0 -0
  27. {superqode-0.2.2 → superqode-0.2.3}/examples/simple-team.yaml +0 -0
  28. {superqode-0.2.2 → superqode-0.2.3}/setup.cfg +0 -0
  29. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/__init__.py +0 -0
  30. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/client.py +0 -0
  31. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/presets.py +0 -0
  32. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/registry.py +0 -0
  33. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/server.py +0 -0
  34. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/skills.py +0 -0
  35. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/tools.py +0 -0
  36. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/types.py +0 -0
  37. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/a2a/workflows.py +0 -0
  38. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/__init__.py +0 -0
  39. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/client.py +0 -0
  40. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/doctor.py +0 -0
  41. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/permission_screen.py +0 -0
  42. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/permission_store.py +0 -0
  43. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/render.py +0 -0
  44. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/session_store.py +0 -0
  45. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/slash.py +0 -0
  46. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/tool_call_context.py +0 -0
  47. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp/types.py +0 -0
  48. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/acp_discovery.py +0 -0
  49. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/__init__.py +0 -0
  50. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/auto_memory.py +0 -0
  51. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/command_safety.py +0 -0
  52. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/compaction.py +0 -0
  53. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/context_manager.py +0 -0
  54. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/edit_strategies.py +0 -0
  55. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/exec_policy.py +0 -0
  56. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/hooks.py +0 -0
  57. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/loop.py +0 -0
  58. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/loop_guard.py +0 -0
  59. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/network_policy.py +0 -0
  60. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/output_handler.py +0 -0
  61. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/parallel_compare.py +0 -0
  62. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/peer_agents.py +0 -0
  63. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/plan_mode.py +0 -0
  64. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/reminders.py +0 -0
  65. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/rubric.py +0 -0
  66. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/session_manager.py +0 -0
  67. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/structured_output.py +0 -0
  68. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/summarization.py +0 -0
  69. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/system_prompts.py +0 -0
  70. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/terminal_output_limits.py +0 -0
  71. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/text_tool_calls.py +0 -0
  72. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/tool_args.py +0 -0
  73. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/tool_tracking.py +0 -0
  74. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent/utility_model.py +0 -0
  75. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent_output.py +0 -0
  76. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agent_stream.py +0 -0
  77. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/__init__.py +0 -0
  78. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/acp_registry.py +0 -0
  79. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/client.py +0 -0
  80. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/agentpool.phil65.github.io.toml +0 -0
  81. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/ampcode.com.toml +0 -0
  82. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/augmentcode.com.toml +0 -0
  83. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/autodev.github.io.toml +0 -0
  84. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/blackbox.ai.toml +0 -0
  85. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/bub.dev.toml +0 -0
  86. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cagent.dev.toml +0 -0
  87. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/claude.com.toml +0 -0
  88. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cline.bot.toml +0 -0
  89. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/codeassistant.dev.toml +0 -0
  90. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/codex.openai.com.toml +0 -0
  91. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/copilot.github.com.toml +0 -0
  92. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/crow-ai.dev.toml +0 -0
  93. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/cursor.com.toml +0 -0
  94. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/factory.ai.toml +0 -0
  95. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/fastagent.ai.toml +0 -0
  96. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/fount.dev.toml +0 -0
  97. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/geminicli.com.toml +0 -0
  98. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/goose.block.xyz.toml +0 -0
  99. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/hermes-agent.nousresearch.com.toml +0 -0
  100. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/junie.jetbrains.com.toml +0 -0
  101. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/kimi.moonshot.cn.toml +0 -0
  102. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/kiro.dev.toml +0 -0
  103. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/llmlingagent.dev.toml +0 -0
  104. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/minioncode.dev.toml +0 -0
  105. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/mistral-vibe.mistral.ai.toml +0 -0
  106. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/openclaw.ai.toml +0 -0
  107. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/opencode.ai.toml +0 -0
  108. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/openhands.dev.toml +0 -0
  109. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/pi.dev.toml +0 -0
  110. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/poolside.ai.toml +0 -0
  111. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/qoder.com.toml +0 -0
  112. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/qwenlm.github.io.toml +0 -0
  113. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/sigit.dev.toml +0 -0
  114. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/stakpak.dev.toml +0 -0
  115. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/stdiobus.dev.toml +0 -0
  116. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/data/vtcode.dev.toml +0 -0
  117. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/discovery.py +0 -0
  118. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/free_models.py +0 -0
  119. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/messaging.py +0 -0
  120. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/official_acp.py +0 -0
  121. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/persona.py +0 -0
  122. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/registry.py +0 -0
  123. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/schema.py +0 -0
  124. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/agents/unified.py +0 -0
  125. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/__init__.py +0 -0
  126. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/constants.py +0 -0
  127. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/css.py +0 -0
  128. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/models.py +0 -0
  129. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/suggester.py +0 -0
  130. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/theme_bridge.py +0 -0
  131. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app/widgets.py +0 -0
  132. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/app_enhanced.py +0 -0
  133. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/approval.py +0 -0
  134. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/atomic.py +0 -0
  135. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/auth/__init__.py +0 -0
  136. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/benchmarks.py +0 -0
  137. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/__init__.py +0 -0
  138. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/config.py +0 -0
  139. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/discord.py +0 -0
  140. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/service.py +0 -0
  141. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/slack.py +0 -0
  142. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/channels/telegram.py +0 -0
  143. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/claude.py +0 -0
  144. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/codex.py +0 -0
  145. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/__init__.py +0 -0
  146. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/a2a.py +0 -0
  147. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/acp.py +0 -0
  148. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/agents.py +0 -0
  149. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/auth.py +0 -0
  150. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/config.py +0 -0
  151. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/daemon.py +0 -0
  152. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/local.py +0 -0
  153. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/providers.py +0 -0
  154. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/runtime.py +0 -0
  155. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/serve.py +0 -0
  156. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/commands/sessions.py +0 -0
  157. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/__init__.py +0 -0
  158. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/loader.py +0 -0
  159. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/config/schema.py +0 -0
  160. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/core/__init__.py +0 -0
  161. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/danger.py +0 -0
  162. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_fixtures/ci-dynamic-root-cause.log +0 -0
  163. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_fixtures/ci-root-cause.log +0 -0
  164. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_packs/local_dynamic_workflow_smoke.yaml +0 -0
  165. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/eval_packs/local_recursive_smoke.yaml +0 -0
  166. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/data/superqode-template.yaml +0 -0
  167. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/design_system.py +0 -0
  168. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/__init__.py +0 -0
  169. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/base.py +0 -0
  170. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/model.py +0 -0
  171. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/provider.py +0 -0
  172. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/dialogs/runtime.py +0 -0
  173. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/diff_view.py +0 -0
  174. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/enterprise.py +0 -0
  175. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/__init__.py +0 -0
  176. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/adapters.py +0 -0
  177. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/behaviors.py +0 -0
  178. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/engine.py +0 -0
  179. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/evaluation/scenarios.py +0 -0
  180. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/__init__.py +0 -0
  181. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/linter.py +0 -0
  182. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/modes.py +0 -0
  183. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/resolver.py +0 -0
  184. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/execution/runner.py +0 -0
  185. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/file_explorer.py +0 -0
  186. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/file_viewer.py +0 -0
  187. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/flash.py +0 -0
  188. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/__init__.py +0 -0
  189. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/accelerator.py +0 -0
  190. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/agent_importer.py +0 -0
  191. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/approval_memory.py +0 -0
  192. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/__init__.py +0 -0
  193. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/base.py +0 -0
  194. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/deepagents.py +0 -0
  195. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/managed.py +0 -0
  196. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/pydanticai.py +0 -0
  197. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/registry.py +0 -0
  198. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/backends/runtime.py +0 -0
  199. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/compiler.py +0 -0
  200. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/context_handles.py +0 -0
  201. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/diagnostics.py +0 -0
  202. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/eval.py +0 -0
  203. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/events.py +0 -0
  204. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/explain.py +0 -0
  205. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/hooks.py +0 -0
  206. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/kernel.py +0 -0
  207. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/loader.py +0 -0
  208. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/mcp_bridge.py +0 -0
  209. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/model_policy.py +0 -0
  210. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/observability.py +0 -0
  211. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/omnigent_importer.py +0 -0
  212. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/optimize.py +0 -0
  213. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/output.py +0 -0
  214. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/permissions.py +0 -0
  215. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/registry.py +0 -0
  216. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/sandbox.py +0 -0
  217. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/spec.py +0 -0
  218. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/store.py +0 -0
  219. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/templates.py +0 -0
  220. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/testing.py +0 -0
  221. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/wizard.py +0 -0
  222. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/workflow.py +0 -0
  223. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/harness/workflow_presets.py +0 -0
  224. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/headless.py +0 -0
  225. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/history.py +0 -0
  226. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/__init__.py +0 -0
  227. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/airplane.py +0 -0
  228. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/bench.py +0 -0
  229. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/build.py +0 -0
  230. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/code_index.py +0 -0
  231. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/devstral.yaml +0 -0
  232. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/ds4.yaml +0 -0
  233. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/gemma4.yaml +0 -0
  234. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/glm.yaml +0 -0
  235. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/gpt-oss.yaml +0 -0
  236. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/minimax.yaml +0 -0
  237. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/qwen-coder.yaml +0 -0
  238. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/model-packs/qwen3.yaml +0 -0
  239. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/data/stack_matrix.yaml +0 -0
  240. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/doctor.py +0 -0
  241. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/engines.py +0 -0
  242. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/guardrails.py +0 -0
  243. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/hardware.py +0 -0
  244. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/inventory.py +0 -0
  245. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/labs.py +0 -0
  246. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/matrix.py +0 -0
  247. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/migrate.py +0 -0
  248. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/optimize.py +0 -0
  249. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/packs.py +0 -0
  250. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/repo.py +0 -0
  251. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/servers.py +0 -0
  252. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/setup.py +0 -0
  253. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/local/smoke.py +0 -0
  254. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/__init__.py +0 -0
  255. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/adapters.py +0 -0
  256. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/formatter.py +0 -0
  257. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/integration.py +0 -0
  258. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/sinks.py +0 -0
  259. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/logging/unified_log.py +0 -0
  260. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/lsp/__init__.py +0 -0
  261. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/lsp/client.py +0 -0
  262. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/main.py +0 -0
  263. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/__init__.py +0 -0
  264. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/auth_storage.py +0 -0
  265. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/client.py +0 -0
  266. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/config.py +0 -0
  267. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/elicitation.py +0 -0
  268. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/harness_server.py +0 -0
  269. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/hf_auth.py +0 -0
  270. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/integration.py +0 -0
  271. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/oauth.py +0 -0
  272. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/oauth_callback.py +0 -0
  273. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/sampling.py +0 -0
  274. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/search.py +0 -0
  275. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/mcp/types.py +0 -0
  276. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/__init__.py +0 -0
  277. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/config.py +0 -0
  278. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/providers.py +0 -0
  279. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/memory/types.py +0 -0
  280. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/notifications.py +0 -0
  281. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/permissions/__init__.py +0 -0
  282. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/permissions/rules.py +0 -0
  283. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/plan.py +0 -0
  284. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/plugins.py +0 -0
  285. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/project_trust.py +0 -0
  286. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/__init__.py +0 -0
  287. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/_builtin_profiles.py +0 -0
  288. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_free_models.py +0 -0
  289. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_models.py +0 -0
  290. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/acp_registry.py +0 -0
  291. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/apple_fm.py +0 -0
  292. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/catalog.py +0 -0
  293. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/connection_profiles.py +0 -0
  294. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/credentials.py +0 -0
  295. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/dynamic.py +0 -0
  296. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/env_introspect.py +0 -0
  297. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/free_inference.py +0 -0
  298. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/__init__.py +0 -0
  299. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/base.py +0 -0
  300. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/litellm_gateway.py +0 -0
  301. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/openresponses_gateway.py +0 -0
  302. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/gateway/synthetic.py +0 -0
  303. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/health.py +0 -0
  304. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/__init__.py +0 -0
  305. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/convert.py +0 -0
  306. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/downloader.py +0 -0
  307. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/endpoints.py +0 -0
  308. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/fetch.py +0 -0
  309. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/hub.py +0 -0
  310. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/inference.py +0 -0
  311. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/huggingface/transformers_runner.py +0 -0
  312. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/live_models.py +0 -0
  313. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/__init__.py +0 -0
  314. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/_mlx_worker.py +0 -0
  315. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/base.py +0 -0
  316. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/context_probe.py +0 -0
  317. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/discovery.py +0 -0
  318. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/ds4.py +0 -0
  319. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/lmstudio.py +0 -0
  320. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx.py +0 -0
  321. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx_engine.py +0 -0
  322. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/mlx_tools.py +0 -0
  323. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/ollama.py +0 -0
  324. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/sglang.py +0 -0
  325. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/smoke.py +0 -0
  326. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/tgi.py +0 -0
  327. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/tool_support.py +0 -0
  328. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/local/vllm.py +0 -0
  329. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/manager.py +0 -0
  330. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/model_specs.py +0 -0
  331. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/models.py +0 -0
  332. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/models_dev.py +0 -0
  333. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/opencode_models.py +0 -0
  334. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/__init__.py +0 -0
  335. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/__init__.py +0 -0
  336. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/messages.py +0 -0
  337. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/converters/tools.py +0 -0
  338. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/schema/__init__.py +0 -0
  339. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/schema/models.py +0 -0
  340. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/streaming/__init__.py +0 -0
  341. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/streaming/parser.py +0 -0
  342. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/__init__.py +0 -0
  343. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/apply_patch.py +0 -0
  344. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/code_interpreter.py +0 -0
  345. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/file_search.py +0 -0
  346. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/openresponses/tools/mcp_adapter.py +0 -0
  347. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/profiles.py +0 -0
  348. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/recommendations.py +0 -0
  349. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/registry.py +0 -0
  350. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/providers/usage.py +0 -0
  351. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/py.typed +0 -0
  352. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/__init__.py +0 -0
  353. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/html_export.py +0 -0
  354. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/markdown.py +0 -0
  355. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/rendering/transcript_export.py +0 -0
  356. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/__init__.py +0 -0
  357. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/adk.py +0 -0
  358. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/base.py +0 -0
  359. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/builtin.py +0 -0
  360. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/claude_agent_sdk.py +0 -0
  361. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/codex_sdk.py +0 -0
  362. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/errors.py +0 -0
  363. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_agents.py +0 -0
  364. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_sandbox.py +0 -0
  365. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/openai_session.py +0 -0
  366. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/pydanticai.py +0 -0
  367. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/registry.py +0 -0
  368. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge.py +0 -0
  369. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge_openai.py +0 -0
  370. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/runtime/tool_bridge_pydanticai.py +0 -0
  371. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/__init__.py +0 -0
  372. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/sandbox.py +0 -0
  373. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/safety/warnings.py +0 -0
  374. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/__init__.py +0 -0
  375. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/backends.py +0 -0
  376. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/execution.py +0 -0
  377. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sandbox/local_sandbox.py +0 -0
  378. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/search_registry.py +0 -0
  379. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/__init__.py +0 -0
  380. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/api.py +0 -0
  381. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/server/web.py +0 -0
  382. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/__init__.py +0 -0
  383. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/factory.py +0 -0
  384. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/persistence.py +0 -0
  385. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/share_artifacts.py +0 -0
  386. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/sharing.py +0 -0
  387. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session/switchboard.py +0 -0
  388. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/session.py +0 -0
  389. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/sidebar.py +0 -0
  390. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/skillopt.py +0 -0
  391. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/skills.py +0 -0
  392. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/stream_view.py +0 -0
  393. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/styles/__init__.py +0 -0
  394. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tool_call.py +0 -0
  395. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/__init__.py +0 -0
  396. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/agent_tools.py +0 -0
  397. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/apply_patch.py +0 -0
  398. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/base.py +0 -0
  399. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/batch_tool.py +0 -0
  400. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/compact_tool.py +0 -0
  401. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/context_handle.py +0 -0
  402. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/context_tools.py +0 -0
  403. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/diagnostics.py +0 -0
  404. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/diff_utils.py +0 -0
  405. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/display.py +0 -0
  406. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/dynamic_workflow.py +0 -0
  407. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/edit_tools.py +0 -0
  408. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/enhanced_base.py +0 -0
  409. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/env_policy.py +0 -0
  410. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/file_tools.py +0 -0
  411. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/file_tracking.py +0 -0
  412. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/harness_agent_session.py +0 -0
  413. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/image_tools.py +0 -0
  414. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/lsp_tools.py +0 -0
  415. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/mcp_tools.py +0 -0
  416. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/monty_tool.py +0 -0
  417. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/network_tools.py +0 -0
  418. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/output_spill.py +0 -0
  419. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/peer_agent_tools.py +0 -0
  420. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/permissions.py +0 -0
  421. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/post_edit.py +0 -0
  422. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/question_tool.py +0 -0
  423. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/request_permissions_tool.py +0 -0
  424. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/search_tools.py +0 -0
  425. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/semantic_search.py +0 -0
  426. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/shell_session.py +0 -0
  427. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/shell_tools.py +0 -0
  428. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/skill_tools.py +0 -0
  429. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/spawn_harness.py +0 -0
  430. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/todo_tools.py +0 -0
  431. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/tool_search.py +0 -0
  432. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/validation.py +0 -0
  433. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tools/web_tools.py +0 -0
  434. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_integration.py +0 -0
  435. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/__init__.py +0 -0
  436. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/__init__.py +0 -0
  437. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/progress.py +0 -0
  438. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/tui_widgets/widgets/tool_display.py +0 -0
  439. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/undo_manager.py +0 -0
  440. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/__init__.py +0 -0
  441. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/error_handling.py +0 -0
  442. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/utils/fuzzy.py +0 -0
  443. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/__init__.py +0 -0
  444. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/agent_store.py +0 -0
  445. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/agent_switcher.py +0 -0
  446. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/animation_manager.py +0 -0
  447. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/code_context.py +0 -0
  448. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/command_palette.py +0 -0
  449. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/connection_status.py +0 -0
  450. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/conversation_history.py +0 -0
  451. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/diff_indicator.py +0 -0
  452. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/enhanced_status_bar.py +0 -0
  453. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/enhanced_toast.py +0 -0
  454. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/file_browser.py +0 -0
  455. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/file_reference.py +0 -0
  456. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/leader_key.py +0 -0
  457. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/mode_switcher.py +0 -0
  458. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/model_picker.py +0 -0
  459. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/permission_preview.py +0 -0
  460. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/prompt.py +0 -0
  461. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/provider_connect.py +0 -0
  462. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/pty_shell.py +0 -0
  463. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/resizable_sidebar.py +0 -0
  464. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/response_changes.py +0 -0
  465. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/response_display.py +0 -0
  466. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/rewind_overlay.py +0 -0
  467. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/rich_tool_display.py +0 -0
  468. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/sidebar_panels.py +0 -0
  469. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/slash_commands.py +0 -0
  470. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/slash_complete.py +0 -0
  471. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/split_view.py +0 -0
  472. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/status_bar.py +0 -0
  473. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/superqode_display.py +0 -0
  474. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/theme_picker.py +0 -0
  475. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/thinking.py +0 -0
  476. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/thinking_display.py +0 -0
  477. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/throbber.py +0 -0
  478. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/toast.py +0 -0
  479. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/widgets/unified_output.py +0 -0
  480. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/__init__.py +0 -0
  481. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/artifacts.py +0 -0
  482. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/change_summary.py +0 -0
  483. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/coordinator.py +0 -0
  484. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/diff_tracker.py +0 -0
  485. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/git_guard.py +0 -0
  486. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/git_snapshot.py +0 -0
  487. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/manager.py +0 -0
  488. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/snapshot.py +0 -0
  489. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/watcher.py +0 -0
  490. {superqode-0.2.2 → superqode-0.2.3}/src/superqode/workspace/worktree.py +0 -0
  491. {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/SOURCES.txt +0 -0
  492. {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/dependency_links.txt +0 -0
  493. {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/entry_points.txt +0 -0
  494. {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/requires.txt +0 -0
  495. {superqode-0.2.2 → superqode-0.2.3}/src/superqode.egg-info/top_level.txt +0 -0
  496. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_client.py +0 -0
  497. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_free_models.py +0 -0
  498. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_parent_tool_linking.py +0 -0
  499. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_permission_store.py +0 -0
  500. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_registry.py +0 -0
  501. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_render.py +0 -0
  502. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_session_store.py +0 -0
  503. {superqode-0.2.2 → superqode-0.2.3}/tests/test_acp_slash.py +0 -0
  504. {superqode-0.2.2 → superqode-0.2.3}/tests/test_adaptive_compaction.py +0 -0
  505. {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_importer.py +0 -0
  506. {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_loop_harness.py +0 -0
  507. {superqode-0.2.2 → superqode-0.2.3}/tests/test_agent_memory.py +0 -0
  508. {superqode-0.2.2 → superqode-0.2.3}/tests/test_agents_md_compat.py +0 -0
  509. {superqode-0.2.2 → superqode-0.2.3}/tests/test_apply_patch.py +0 -0
  510. {superqode-0.2.2 → superqode-0.2.3}/tests/test_auth.py +0 -0
  511. {superqode-0.2.2 → superqode-0.2.3}/tests/test_bash_spill.py +0 -0
  512. {superqode-0.2.2 → superqode-0.2.3}/tests/test_benchmarks.py +0 -0
  513. {superqode-0.2.2 → superqode-0.2.3}/tests/test_change_summary.py +0 -0
  514. {superqode-0.2.2 → superqode-0.2.3}/tests/test_channels.py +0 -0
  515. {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_commands.py +0 -0
  516. {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_connect.py +0 -0
  517. {superqode-0.2.2 → superqode-0.2.3}/tests/test_cli_reference_coverage.py +0 -0
  518. {superqode-0.2.2 → superqode-0.2.3}/tests/test_command_safety.py +0 -0
  519. {superqode-0.2.2 → superqode-0.2.3}/tests/test_commands_runtime.py +0 -0
  520. {superqode-0.2.2 → superqode-0.2.3}/tests/test_compaction.py +0 -0
  521. {superqode-0.2.2 → superqode-0.2.3}/tests/test_config_loader.py +0 -0
  522. {superqode-0.2.2 → superqode-0.2.3}/tests/test_config_runtime.py +0 -0
  523. {superqode-0.2.2 → superqode-0.2.3}/tests/test_connect_setup.py +0 -0
  524. {superqode-0.2.2 → superqode-0.2.3}/tests/test_connection_profiles.py +0 -0
  525. {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_handles.py +0 -0
  526. {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_probe.py +0 -0
  527. {superqode-0.2.2 → superqode-0.2.3}/tests/test_context_remaining.py +0 -0
  528. {superqode-0.2.2 → superqode-0.2.3}/tests/test_create_skill_tool.py +0 -0
  529. {superqode-0.2.2 → superqode-0.2.3}/tests/test_deferred_tools.py +0 -0
  530. {superqode-0.2.2 → superqode-0.2.3}/tests/test_developer_workflow_docs.py +0 -0
  531. {superqode-0.2.2 → superqode-0.2.3}/tests/test_ds4_local_client.py +0 -0
  532. {superqode-0.2.2 → superqode-0.2.3}/tests/test_dynamic_workflow_tool.py +0 -0
  533. {superqode-0.2.2 → superqode-0.2.3}/tests/test_edit_line_number_strip.py +0 -0
  534. {superqode-0.2.2 → superqode-0.2.3}/tests/test_env_introspect.py +0 -0
  535. {superqode-0.2.2 → superqode-0.2.3}/tests/test_execution_resolver.py +0 -0
  536. {superqode-0.2.2 → superqode-0.2.3}/tests/test_final_parity_wave.py +0 -0
  537. {superqode-0.2.2 → superqode-0.2.3}/tests/test_free_models.py +0 -0
  538. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_agent_session.py +0 -0
  539. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_backends.py +0 -0
  540. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_examples.py +0 -0
  541. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_explain.py +0 -0
  542. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_hooks.py +0 -0
  543. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_mcp_server.py +0 -0
  544. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_model_policy.py +0 -0
  545. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_observability.py +0 -0
  546. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_output.py +0 -0
  547. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_permissions.py +0 -0
  548. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_sandbox.py +0 -0
  549. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_seesaw_dimensions.py +0 -0
  550. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_spec.py +0 -0
  551. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_store.py +0 -0
  552. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_wizard.py +0 -0
  553. {superqode-0.2.2 → superqode-0.2.3}/tests/test_harness_workflow.py +0 -0
  554. {superqode-0.2.2 → superqode-0.2.3}/tests/test_headless.py +0 -0
  555. {superqode-0.2.2 → superqode-0.2.3}/tests/test_hf_fetch.py +0 -0
  556. {superqode-0.2.2 → superqode-0.2.3}/tests/test_hooks.py +0 -0
  557. {superqode-0.2.2 → superqode-0.2.3}/tests/test_linter_runner.py +0 -0
  558. {superqode-0.2.2 → superqode-0.2.3}/tests/test_litellm_gateway.py +0 -0
  559. {superqode-0.2.2 → superqode-0.2.3}/tests/test_live_models.py +0 -0
  560. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_airplane.py +0 -0
  561. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_build.py +0 -0
  562. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_code_index.py +0 -0
  563. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_labs.py +0 -0
  564. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_migrate.py +0 -0
  565. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_model_optimizations.py +0 -0
  566. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_packs.py +0 -0
  567. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_sandbox.py +0 -0
  568. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_search.py +0 -0
  569. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_servers.py +0 -0
  570. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_setup.py +0 -0
  571. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_smoke.py +0 -0
  572. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_stack.py +0 -0
  573. {superqode-0.2.2 → superqode-0.2.3}/tests/test_local_tool_support.py +0 -0
  574. {superqode-0.2.2 → superqode-0.2.3}/tests/test_login_api.py +0 -0
  575. {superqode-0.2.2 → superqode-0.2.3}/tests/test_loop_guard.py +0 -0
  576. {superqode-0.2.2 → superqode-0.2.3}/tests/test_managed_harness_backend.py +0 -0
  577. {superqode-0.2.2 → superqode-0.2.3}/tests/test_markdown_render.py +0 -0
  578. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp.py +0 -0
  579. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_integration.py +0 -0
  580. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_live.py +0 -0
  581. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_oauth_generalized.py +0 -0
  582. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_tools_runtime.py +0 -0
  583. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mcp_two_way.py +0 -0
  584. {superqode-0.2.2 → superqode-0.2.3}/tests/test_memory_recall.py +0 -0
  585. {superqode-0.2.2 → superqode-0.2.3}/tests/test_mlx_tools.py +0 -0
  586. {superqode-0.2.2 → superqode-0.2.3}/tests/test_model_profiles.py +0 -0
  587. {superqode-0.2.2 → superqode-0.2.3}/tests/test_model_specs.py +0 -0
  588. {superqode-0.2.2 → superqode-0.2.3}/tests/test_monty_tool.py +0 -0
  589. {superqode-0.2.2 → superqode-0.2.3}/tests/test_network_policy.py +0 -0
  590. {superqode-0.2.2 → superqode-0.2.3}/tests/test_ollama_client.py +0 -0
  591. {superqode-0.2.2 → superqode-0.2.3}/tests/test_omnigent_agent_session_smoke.py +0 -0
  592. {superqode-0.2.2 → superqode-0.2.3}/tests/test_omnigent_importer.py +0 -0
  593. {superqode-0.2.2 → superqode-0.2.3}/tests/test_openai_session.py +0 -0
  594. {superqode-0.2.2 → superqode-0.2.3}/tests/test_output_spill.py +0 -0
  595. {superqode-0.2.2 → superqode-0.2.3}/tests/test_parallel_compare.py +0 -0
  596. {superqode-0.2.2 → superqode-0.2.3}/tests/test_peer_agents.py +0 -0
  597. {superqode-0.2.2 → superqode-0.2.3}/tests/test_plugin_hook_wiring.py +0 -0
  598. {superqode-0.2.2 → superqode-0.2.3}/tests/test_plugins.py +0 -0
  599. {superqode-0.2.2 → superqode-0.2.3}/tests/test_policies_and_turndiff.py +0 -0
  600. {superqode-0.2.2 → superqode-0.2.3}/tests/test_post_edit_verify.py +0 -0
  601. {superqode-0.2.2 → superqode-0.2.3}/tests/test_project_trust.py +0 -0
  602. {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_catalog.py +0 -0
  603. {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_dynamic.py +0 -0
  604. {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_models.py +0 -0
  605. {superqode-0.2.2 → superqode-0.2.3}/tests/test_provider_recommendations.py +0 -0
  606. {superqode-0.2.2 → superqode-0.2.3}/tests/test_pure_mode_sessions.py +0 -0
  607. {superqode-0.2.2 → superqode-0.2.3}/tests/test_rate_limit_retry.py +0 -0
  608. {superqode-0.2.2 → superqode-0.2.3}/tests/test_read_tool_limits.py +0 -0
  609. {superqode-0.2.2 → superqode-0.2.3}/tests/test_reasoning_and_budget.py +0 -0
  610. {superqode-0.2.2 → superqode-0.2.3}/tests/test_recursive_eval_packs.py +0 -0
  611. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_adk.py +0 -0
  612. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_builtin.py +0 -0
  613. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_claude_agent_sdk.py +0 -0
  614. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_codex_sdk.py +0 -0
  615. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_dialog.py +0 -0
  616. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_agents.py +0 -0
  617. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_events.py +0 -0
  618. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_hitl.py +0 -0
  619. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_openai_sandbox.py +0 -0
  620. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_protocol.py +0 -0
  621. {superqode-0.2.2 → superqode-0.2.3}/tests/test_runtime_pydanticai.py +0 -0
  622. {superqode-0.2.2 → superqode-0.2.3}/tests/test_sandbox_backends.py +0 -0
  623. {superqode-0.2.2 → superqode-0.2.3}/tests/test_sandbox_execution.py +0 -0
  624. {superqode-0.2.2 → superqode-0.2.3}/tests/test_search_roots.py +0 -0
  625. {superqode-0.2.2 → superqode-0.2.3}/tests/test_semantic_search.py +0 -0
  626. {superqode-0.2.2 → superqode-0.2.3}/tests/test_session_switchboard.py +0 -0
  627. {superqode-0.2.2 → superqode-0.2.3}/tests/test_shell_session.py +0 -0
  628. {superqode-0.2.2 → superqode-0.2.3}/tests/test_simple_login.py +0 -0
  629. {superqode-0.2.2 → superqode-0.2.3}/tests/test_simple_query_fastpath.py +0 -0
  630. {superqode-0.2.2 → superqode-0.2.3}/tests/test_skillopt.py +0 -0
  631. {superqode-0.2.2 → superqode-0.2.3}/tests/test_slash_runtime.py +0 -0
  632. {superqode-0.2.2 → superqode-0.2.3}/tests/test_spawn_harness_tool.py +0 -0
  633. {superqode-0.2.2 → superqode-0.2.3}/tests/test_steering_continue_reminders.py +0 -0
  634. {superqode-0.2.2 → superqode-0.2.3}/tests/test_synthetic_gateways.py +0 -0
  635. {superqode-0.2.2 → superqode-0.2.3}/tests/test_terminal_output_limits.py +0 -0
  636. {superqode-0.2.2 → superqode-0.2.3}/tests/test_theme_picker.py +0 -0
  637. {superqode-0.2.2 → superqode-0.2.3}/tests/test_todo_tools.py +0 -0
  638. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_args_repair.py +0 -0
  639. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_batch_safety.py +0 -0
  640. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_bridge.py +0 -0
  641. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_bridge_openai.py +0 -0
  642. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_call_repair.py +0 -0
  643. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_output_pruning.py +0 -0
  644. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tool_tracking.py +0 -0
  645. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tools.py +0 -0
  646. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_change_summary.py +0 -0
  647. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_chat_mode.py +0 -0
  648. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_exit.py +0 -0
  649. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_llamacpp_connect.py +0 -0
  650. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_markdown_cleanup.py +0 -0
  651. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_mlx_connect.py +0 -0
  652. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_mounted.py +0 -0
  653. {superqode-0.2.2 → superqode-0.2.3}/tests/test_tui_tool_display.py +0 -0
  654. {superqode-0.2.2 → superqode-0.2.3}/tests/test_version.py +0 -0
  655. {superqode-0.2.2 → superqode-0.2.3}/tests/test_view_image.py +0 -0
  656. {superqode-0.2.2 → superqode-0.2.3}/tests/test_web_server_auth.py +0 -0
  657. {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.1] - 2026-06-24
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 and added a clear local-provider warning when an MLX-tagged model is routed through Ollama.
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.1`.
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.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. Start with the default coding harness:
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. Start with the default coding harness:
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superqode"
3
- version = "0.2.2"
3
+ version = "0.2.3"
4
4
  description = "SuperQode: harness engineering framework for coding agents, optimized for local and open models"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -30,4 +30,4 @@ __all__ = [
30
30
  "sidebar",
31
31
  ]
32
32
 
33
- __version__ = "0.2.2"
33
+ __version__ = "0.2.3"
@@ -12007,7 +12007,7 @@ class SuperQodeApp(App):
12007
12007
  "tool_call_format": "auto",
12008
12008
  "workflow_preset": "single",
12009
12009
  },
12010
- "output": "harness.yaml",
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/9 Output file\n", style=f"bold {THEME['cyan']}")
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(" Final Load this harness now?\n", style=f"bold {THEME['cyan']}")
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
- log.add_error(f"{output} already exists. Type a different output path or cancel.")
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
- if provider == "ollama" and model.lower().endswith("-mlx"):
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.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. Start with the default coding harness:
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 test_pure_mode_harness_warns_for_ollama_mlx_model(tmp_path: Path):
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
- with pytest.raises(RuntimeError, match="MLX-tagged model through Ollama"):
357
- pure._resolve_harness_route()
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