voidx 3.7.5__tar.gz → 3.8.0__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 (944) hide show
  1. voidx-3.8.0/PKG-INFO +119 -0
  2. voidx-3.8.0/pyproject.toml +65 -0
  3. voidx-3.8.0/src/tests/test_agent/application/test_services.py +187 -0
  4. voidx-3.8.0/src/tests/test_agent/domain/test_compaction.py +53 -0
  5. voidx-3.8.0/src/tests/test_agent/domain/test_events.py +12 -0
  6. voidx-3.8.0/src/tests/test_agent/domain/test_import_boundaries.py +53 -0
  7. voidx-3.8.0/src/tests/test_agent/domain/test_persistence_mapper.py +48 -0
  8. voidx-3.8.0/src/tests/test_agent/domain/test_state.py +42 -0
  9. voidx-3.8.0/src/tests/test_agent/graph/run_loop_helpers.py +158 -0
  10. voidx-3.8.0/src/tests/test_agent/graph/stream_llm_helpers.py +272 -0
  11. voidx-3.8.0/src/tests/test_agent/graph/test_call_llm_compaction.py +843 -0
  12. voidx-3.8.0/src/tests/test_agent/graph/test_call_llm_compaction_advanced.py +252 -0
  13. voidx-3.8.0/src/tests/test_agent/graph/test_call_llm_structure.py +12 -0
  14. voidx-3.8.0/src/tests/test_agent/graph/test_call_llm_tools.py +451 -0
  15. voidx-3.8.0/src/tests/test_agent/graph/test_compaction_flow.py +462 -0
  16. voidx-3.8.0/src/tests/test_agent/graph/test_compaction_flow_run_once.py +370 -0
  17. voidx-3.8.0/src/tests/test_agent/graph/test_convergence.py +74 -0
  18. voidx-3.8.0/src/tests/test_agent/graph/test_execute_tools_guard.py +1807 -0
  19. voidx-3.8.0/src/tests/test_agent/graph/test_execute_tools_todo.py +439 -0
  20. voidx-3.8.0/src/tests/test_agent/graph/test_graph_authorization.py +1277 -0
  21. voidx-3.8.0/src/tests/test_agent/graph/test_graph_setup_prompts.py +352 -0
  22. voidx-3.8.0/src/tests/test_agent/graph/test_guards_tool_op.py +305 -0
  23. voidx-3.8.0/src/tests/test_agent/graph/test_parallel_subagents.py +420 -0
  24. voidx-3.8.0/src/tests/test_agent/graph/test_parallel_subagents_dedup.py +391 -0
  25. voidx-3.8.0/src/tests/test_agent/graph/test_prepare_workflow.py +398 -0
  26. voidx-3.8.0/src/tests/test_agent/graph/test_run_loop_startup.py +678 -0
  27. voidx-3.8.0/src/tests/test_agent/graph/test_run_loop_title_lsp.py +160 -0
  28. voidx-3.8.0/src/tests/test_agent/graph/test_run_loop_title_misc.py +178 -0
  29. voidx-3.8.0/src/tests/test_agent/graph/test_run_loop_workflow.py +172 -0
  30. voidx-3.8.0/src/tests/test_agent/graph/test_run_loop_workflow_advanced.py +144 -0
  31. voidx-3.8.0/src/tests/test_agent/graph/test_runtime_guards.py +431 -0
  32. voidx-3.8.0/src/tests/test_agent/graph/test_session_messages.py +468 -0
  33. voidx-3.8.0/src/tests/test_agent/graph/test_session_persistence.py +644 -0
  34. voidx-3.8.0/src/tests/test_agent/graph/test_session_run_once.py +429 -0
  35. voidx-3.8.0/src/tests/test_agent/graph/test_session_runtime_state.py +406 -0
  36. voidx-3.8.0/src/tests/test_agent/graph/test_stream_llm_sanitization.py +527 -0
  37. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_llm_retry.py +306 -0
  38. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_persistence.py +389 -0
  39. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_runner.py +427 -0
  40. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_step_budget.py +375 -0
  41. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_step_budget_convergence.py +360 -0
  42. voidx-3.8.0/src/tests/test_agent/graph/test_subagent_step_budget_final.py +511 -0
  43. voidx-3.8.0/src/tests/test_agent/graph/test_todo_events.py +290 -0
  44. voidx-3.8.0/src/tests/test_agent/graph/test_tool_execution_auth.py +422 -0
  45. voidx-3.8.0/src/tests/test_agent/graph/test_tool_result_preview.py +248 -0
  46. voidx-3.8.0/src/tests/test_agent/graph/test_turn_control_e2e.py +255 -0
  47. voidx-3.8.0/src/tests/test_agent/graph/test_turn_control_integration.py +776 -0
  48. voidx-3.8.0/src/tests/test_agent/graph/test_turn_runner_guidance_discard.py +138 -0
  49. voidx-3.8.0/src/tests/test_agent/graph/test_turn_runner_idle_event.py +11 -0
  50. voidx-3.8.0/src/tests/test_agent/graph/test_turn_stop_without_pending.py +236 -0
  51. voidx-3.8.0/src/tests/test_agent/graph/test_workflow_done.py +316 -0
  52. voidx-3.8.0/src/tests/test_agent/graph/test_workflow_review.py +319 -0
  53. voidx-3.8.0/src/tests/test_agent/graph/test_workflow_transactions.py +315 -0
  54. voidx-3.8.0/src/tests/test_agent/graph/test_workflow_transactions_barrier.py +352 -0
  55. voidx-3.8.0/src/tests/test_agent/infrastructure/langgraph/test_adapter.py +101 -0
  56. voidx-3.8.0/src/tests/test_agent/infrastructure/langgraph/test_graph_wiring.py +68 -0
  57. voidx-3.8.0/src/tests/test_agent/slash/context.py +58 -0
  58. voidx-3.8.0/src/tests/test_agent/slash/test_slash_init.py +98 -0
  59. voidx-3.8.0/src/tests/test_agent/slash/test_slash_loop.py +83 -0
  60. voidx-3.8.0/src/tests/test_agent/slash/test_slash_mcp.py +228 -0
  61. voidx-3.8.0/src/tests/test_agent/slash/test_slash_model.py +761 -0
  62. voidx-3.8.0/src/tests/test_agent/slash/test_slash_model_advanced.py +463 -0
  63. voidx-3.8.0/src/tests/test_agent/slash/test_slash_session.py +458 -0
  64. voidx-3.8.0/src/tests/test_agent/slash/test_slash_skills.py +99 -0
  65. voidx-3.8.0/src/tests/test_agent/slash/test_slash_tavily.py +194 -0
  66. voidx-3.8.0/src/tests/test_agent/slash/test_slash_upgrade.py +109 -0
  67. voidx-3.8.0/src/tests/test_agent/test_composition.py +26 -0
  68. voidx-3.8.0/src/tests/test_agent/test_dependency_cycles.py +135 -0
  69. voidx-3.8.0/src/tests/test_agent/test_file_rwlock.py +581 -0
  70. voidx-3.8.0/src/tests/test_agent/test_goal_resolver.py +722 -0
  71. voidx-3.8.0/src/tests/test_agent/test_goal_resolver_advanced.py +455 -0
  72. voidx-3.8.0/src/tests/test_agent/test_guard_guidance.py +70 -0
  73. voidx-3.8.0/src/tests/test_agent/test_guide_command.py +110 -0
  74. voidx-3.8.0/src/tests/test_agent/test_module_boundaries.py +362 -0
  75. voidx-3.8.0/src/tests/test_agent/test_permission.py +575 -0
  76. voidx-3.8.0/src/tests/test_agent/test_permission_phase2.py +455 -0
  77. voidx-3.8.0/src/tests/test_agent/test_permission_phase3.py +421 -0
  78. voidx-3.8.0/src/tests/test_agent/test_permission_phase6.py +390 -0
  79. voidx-3.8.0/src/tests/test_agent/test_prompts.py +140 -0
  80. voidx-3.8.0/src/tests/test_agent/test_runtime_context_builder.py +595 -0
  81. voidx-3.8.0/src/tests/test_agent/test_runtime_context_prompts.py +40 -0
  82. voidx-3.8.0/src/tests/test_agent/test_runtime_context_skill_stripping.py +288 -0
  83. voidx-3.8.0/src/tests/test_agent/test_task_state.py +225 -0
  84. voidx-3.8.0/src/tests/test_agent/test_task_state_context_sync.py +93 -0
  85. voidx-3.8.0/src/tests/test_agent/test_task_state_rendering.py +231 -0
  86. voidx-3.8.0/src/tests/test_agent/test_tool_exchange_sanitizer.py +166 -0
  87. voidx-3.8.0/src/tests/test_agent/test_turn_control.py +262 -0
  88. voidx-3.8.0/src/tests/test_agent/test_turn_control_prompt.py +70 -0
  89. voidx-3.8.0/src/tests/test_agent/test_turn_metrics.py +74 -0
  90. voidx-3.8.0/src/tests/test_agent/test_turn_start.py +159 -0
  91. voidx-3.8.0/src/tests/test_config/test_config.py +417 -0
  92. voidx-3.8.0/src/tests/test_llm/test_compaction_retry.py +506 -0
  93. voidx-3.8.0/src/tests/test_llm/test_instruction_cache.py +136 -0
  94. voidx-3.8.0/src/tests/test_llm/test_llm_provider.py +616 -0
  95. voidx-3.8.0/src/tests/test_llm/test_llm_provider_advanced.py +428 -0
  96. voidx-3.8.0/src/tests/test_llm/test_provider_registry_integration.py +114 -0
  97. voidx-3.8.0/src/tests/test_llm/test_prune_args.py +496 -0
  98. voidx-3.8.0/src/tests/test_llm/test_streaming_sanitize.py +102 -0
  99. voidx-3.8.0/src/tests/test_llm/test_token_counting.py +441 -0
  100. voidx-3.8.0/src/tests/test_lsp/test_lsp.py +649 -0
  101. voidx-3.8.0/src/tests/test_lsp/test_lsp_advanced.py +408 -0
  102. voidx-3.8.0/src/tests/test_main.py +81 -0
  103. voidx-3.8.0/src/tests/test_mcp/test_auto_discovery.py +82 -0
  104. voidx-3.8.0/src/tests/test_mcp/test_catalog.py +62 -0
  105. voidx-3.8.0/src/tests/test_mcp/test_context.py +134 -0
  106. voidx-3.8.0/src/tests/test_mcp/test_exposure.py +186 -0
  107. voidx-3.8.0/src/tests/test_mcp/test_gateway.py +304 -0
  108. voidx-3.8.0/src/tests/test_mcp/test_gateway_permissions.py +84 -0
  109. voidx-3.8.0/src/tests/test_mcp/test_gateway_registration.py +45 -0
  110. voidx-3.8.0/src/tests/test_mcp/test_manager_catalog.py +116 -0
  111. voidx-3.8.0/src/tests/test_mcp/test_mcp.py +596 -0
  112. voidx-3.8.0/src/tests/test_mcp/test_references.py +187 -0
  113. voidx-3.8.0/src/tests/test_mcp/test_runtime_context_stripping.py +65 -0
  114. voidx-3.8.0/src/tests/test_mcp/test_server_info.py +68 -0
  115. voidx-3.8.0/src/tests/test_mcp/test_validation.py +90 -0
  116. voidx-3.8.0/src/tests/test_memory/test_main_startup.py +132 -0
  117. voidx-3.8.0/src/tests/test_permission/test_ai_approval.py +724 -0
  118. voidx-3.8.0/src/tests/test_permission/test_lsp_format.py +14 -0
  119. voidx-3.8.0/src/tests/test_permission/test_risk.py +212 -0
  120. voidx-3.8.0/src/tests/test_runtime/test_execution_context.py +51 -0
  121. voidx-3.8.0/src/tests/test_runtime/test_goal_resolution_refactor.py +122 -0
  122. voidx-3.8.0/src/tests/test_skills/test_skill_references.py +349 -0
  123. voidx-3.8.0/src/tests/test_skills/test_workflow_advance.py +533 -0
  124. voidx-3.8.0/src/tests/test_tools/bash/test_auto_route_git.py +492 -0
  125. voidx-3.8.0/src/tests/test_tools/bash/test_router_git.py +354 -0
  126. voidx-3.8.0/src/tests/test_tools/bash/test_router_safety.py +105 -0
  127. voidx-3.8.0/src/tests/test_tools/bash/test_router_sed_grep.py +369 -0
  128. voidx-3.8.0/src/tests/test_tools/bash/test_tool.py +290 -0
  129. voidx-3.8.0/src/tests/test_tools/file/test_edit_coverage.py +240 -0
  130. voidx-3.8.0/src/tests/test_tools/file/test_post_edit_format.py +257 -0
  131. voidx-3.8.0/src/tests/test_tools/file/test_replace_format.py +67 -0
  132. voidx-3.8.0/src/tests/test_tools/file/test_write_file.py +545 -0
  133. voidx-3.8.0/src/tests/test_tools/file/test_write_format.py +98 -0
  134. voidx-3.8.0/src/tests/test_tools/test_clarify_tool.py +284 -0
  135. voidx-3.8.0/src/tests/test_tools/test_infer_state_patch.py +84 -0
  136. voidx-3.8.0/src/tests/test_tools/test_interactive_tools.py +483 -0
  137. voidx-3.8.0/src/tests/test_tools/test_interactive_tools_write.py +432 -0
  138. voidx-3.8.0/src/tests/test_tools/test_loop_registry.py +42 -0
  139. voidx-3.8.0/src/tests/test_tools/test_make_interact_callback.py +243 -0
  140. voidx-3.8.0/src/tests/test_tools/test_output_policy.py +4 -0
  141. voidx-3.8.0/src/tests/test_tools/test_plan_checkpoint.py +445 -0
  142. voidx-3.8.0/src/tests/test_tools/test_search.py +599 -0
  143. voidx-3.8.0/src/tests/test_tools/test_skills_tool.py +246 -0
  144. voidx-3.8.0/src/tests/test_tools/test_state_update_from_executed_tools.py +267 -0
  145. voidx-3.8.0/src/tests/test_tools/test_task_tracker.py +191 -0
  146. voidx-3.8.0/src/tests/test_tools/test_tool_error_handling.py +247 -0
  147. voidx-3.8.0/src/tests/test_tools/test_tool_registry.py +125 -0
  148. voidx-3.8.0/src/tests/test_tools/test_tool_schemas.py +285 -0
  149. voidx-3.8.0/src/tests/test_tools/test_tool_state_patch.py +57 -0
  150. voidx-3.8.0/src/tests/test_tools/test_user_interaction_models.py +58 -0
  151. voidx-3.8.0/src/tests/test_tools/test_workflow_tool.py +963 -0
  152. voidx-3.8.0/src/tests/test_ui/gateway/test_gateway_v2_dispatch.py +462 -0
  153. voidx-3.8.0/src/tests/test_ui/gateway/test_mcp_candidates.py +91 -0
  154. voidx-3.8.0/src/tests/test_ui/gateway/test_reference_candidates.py +122 -0
  155. voidx-3.8.0/src/tests/test_ui/gateway/test_ui_events_dock_prompts.py +530 -0
  156. voidx-3.8.0/src/tests/test_ui/output/test_mcp_gateway_display.py +77 -0
  157. voidx-3.8.0/src/tests/test_ui/protocol/test_dto.py +163 -0
  158. voidx-3.8.0/src/tests/test_ui/tools/test_mcp_picker.py +90 -0
  159. voidx-3.8.0/src/voidx/__init__.py +3 -0
  160. voidx-3.8.0/src/voidx/agent/__init__.py +6 -0
  161. voidx-3.8.0/src/voidx/agent/application/__init__.py +1 -0
  162. voidx-3.8.0/src/voidx/agent/application/agent_service.py +467 -0
  163. voidx-3.8.0/src/voidx/agent/application/compaction_service.py +44 -0
  164. voidx-3.8.0/src/voidx/agent/application/session_service.py +18 -0
  165. voidx-3.8.0/src/voidx/agent/application/tool_service.py +19 -0
  166. voidx-3.8.0/src/voidx/agent/application/turn_service.py +58 -0
  167. voidx-3.8.0/src/voidx/agent/composition.py +34 -0
  168. voidx-3.8.0/src/voidx/agent/domain/__init__.py +16 -0
  169. voidx-3.8.0/src/voidx/agent/domain/compaction.py +51 -0
  170. voidx-3.8.0/src/voidx/agent/domain/events.py +20 -0
  171. voidx-3.8.0/src/voidx/agent/domain/state.py +18 -0
  172. voidx-3.8.0/src/voidx/agent/domain/turn.py +30 -0
  173. voidx-3.8.0/src/voidx/agent/facade.py +23 -0
  174. voidx-3.8.0/src/voidx/agent/goal_resolver.py +568 -0
  175. voidx-3.8.0/src/voidx/agent/infrastructure/__init__.py +1 -0
  176. voidx-3.8.0/src/voidx/agent/infrastructure/graph_compaction.py +39 -0
  177. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/__init__.py +7 -0
  178. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/adapter.py +41 -0
  179. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/execution.py +1845 -0
  180. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/__init__.py +1 -0
  181. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/compaction_coordinator.py +628 -0
  182. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/convergence.py +87 -0
  183. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/core/__init__.py +1 -0
  184. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/core/context.py +94 -0
  185. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/core/helpers.py +257 -0
  186. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/core/turn.py +385 -0
  187. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/session_runtime.py +292 -0
  188. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/subagent.py +523 -0
  189. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/thread_context.py +179 -0
  190. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/__init__.py +8 -0
  191. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/executor.py +516 -0
  192. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/guards.py +151 -0
  193. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/helpers.py +740 -0
  194. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/types.py +88 -0
  195. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/tool_executor/workflow.py +286 -0
  196. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/topology.py +88 -0
  197. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/turn_control.py +165 -0
  198. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/turn_runner.py +551 -0
  199. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/wiring.py +118 -0
  200. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime/workflow_utils.py +33 -0
  201. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/state_mapper.py +30 -0
  202. voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/topology.py +14 -0
  203. voidx-3.8.0/src/voidx/agent/infrastructure/memory_session.py +19 -0
  204. voidx-3.8.0/src/voidx/agent/infrastructure/null_events.py +8 -0
  205. voidx-3.8.0/src/voidx/agent/infrastructure/runtime_state_mapper.py +24 -0
  206. voidx-3.8.0/src/voidx/agent/ports/__init__.py +1 -0
  207. voidx-3.8.0/src/voidx/agent/ports/compaction.py +19 -0
  208. voidx-3.8.0/src/voidx/agent/ports/events.py +9 -0
  209. voidx-3.8.0/src/voidx/agent/ports/execution_host.py +107 -0
  210. voidx-3.8.0/src/voidx/agent/ports/permission.py +7 -0
  211. voidx-3.8.0/src/voidx/agent/ports/session.py +15 -0
  212. voidx-3.8.0/src/voidx/agent/ports/tools.py +17 -0
  213. voidx-3.8.0/src/voidx/agent/ports/turn_engine.py +18 -0
  214. voidx-3.8.0/src/voidx/agent/ports/workflow.py +7 -0
  215. voidx-3.8.0/src/voidx/agent/prompts.py +306 -0
  216. voidx-3.8.0/src/voidx/agent/runtime_context.py +624 -0
  217. voidx-3.8.0/src/voidx/agent/slash/handler.py +2346 -0
  218. voidx-3.8.0/src/voidx/agent/slash/runtime.py +77 -0
  219. voidx-3.8.0/src/voidx/agent/state.py +28 -0
  220. voidx-3.8.0/src/voidx/agent/todo_state.py +279 -0
  221. voidx-3.8.0/src/voidx/config/__init__.py +37 -0
  222. voidx-3.8.0/src/voidx/config/enums.py +42 -0
  223. voidx-3.8.0/src/voidx/config/models.py +158 -0
  224. voidx-3.8.0/src/voidx/config/settings.py +516 -0
  225. voidx-3.8.0/src/voidx/config/settings_lsp.py +17 -0
  226. voidx-3.8.0/src/voidx/config/settings_mcp.py +87 -0
  227. voidx-3.8.0/src/voidx/config/settings_permissions.py +123 -0
  228. voidx-3.8.0/src/voidx/data/documents/voidx-guide/README.md +17 -0
  229. voidx-3.8.0/src/voidx/data/documents/voidx-guide/permission.md +34 -0
  230. voidx-3.8.0/src/voidx/data/documents/voidx-guide/reference.md +35 -0
  231. voidx-3.8.0/src/voidx/llm/catalog.py +455 -0
  232. voidx-3.8.0/src/voidx/llm/compaction/__init__.py +91 -0
  233. voidx-3.8.0/src/voidx/llm/compaction/constants.py +78 -0
  234. voidx-3.8.0/src/voidx/llm/compaction/fallback_summary.py +221 -0
  235. voidx-3.8.0/src/voidx/llm/compaction/prune.py +159 -0
  236. voidx-3.8.0/src/voidx/llm/compaction/service.py +319 -0
  237. voidx-3.8.0/src/voidx/llm/context.py +46 -0
  238. voidx-3.8.0/src/voidx/llm/instruction.py +304 -0
  239. voidx-3.8.0/src/voidx/llm/provider.py +268 -0
  240. voidx-3.8.0/src/voidx/llm/providers/__init__.py +52 -0
  241. voidx-3.8.0/src/voidx/llm/providers/anthropic.py +42 -0
  242. voidx-3.8.0/src/voidx/llm/providers/base.py +53 -0
  243. voidx-3.8.0/src/voidx/llm/providers/common.py +100 -0
  244. voidx-3.8.0/src/voidx/llm/providers/deepseek.py +148 -0
  245. voidx-3.8.0/src/voidx/llm/providers/doubao.py +47 -0
  246. voidx-3.8.0/src/voidx/llm/providers/gemini.py +125 -0
  247. voidx-3.8.0/src/voidx/llm/providers/kimi.py +59 -0
  248. voidx-3.8.0/src/voidx/llm/providers/longcat.py +18 -0
  249. voidx-3.8.0/src/voidx/llm/providers/mimo.py +31 -0
  250. voidx-3.8.0/src/voidx/llm/providers/minimax.py +34 -0
  251. voidx-3.8.0/src/voidx/llm/providers/openai.py +124 -0
  252. voidx-3.8.0/src/voidx/llm/providers/openrouter.py +16 -0
  253. voidx-3.8.0/src/voidx/llm/providers/qwen.py +47 -0
  254. voidx-3.8.0/src/voidx/llm/providers/typex.py +19 -0
  255. voidx-3.8.0/src/voidx/llm/providers/xunfei.py +19 -0
  256. voidx-3.8.0/src/voidx/llm/providers/zhipu.py +24 -0
  257. voidx-3.8.0/src/voidx/llm/service.py +44 -0
  258. voidx-3.8.0/src/voidx/llm/thinking.py +92 -0
  259. voidx-3.8.0/src/voidx/lsp/errors.py +27 -0
  260. voidx-3.8.0/src/voidx/lsp/manager.py +468 -0
  261. voidx-3.8.0/src/voidx/lsp/service.py +114 -0
  262. voidx-3.8.0/src/voidx/main.py +167 -0
  263. voidx-3.8.0/src/voidx/mcp/auto.py +39 -0
  264. voidx-3.8.0/src/voidx/mcp/catalog.py +66 -0
  265. voidx-3.8.0/src/voidx/mcp/client/base.py +391 -0
  266. voidx-3.8.0/src/voidx/mcp/context.py +178 -0
  267. voidx-3.8.0/src/voidx/mcp/gateway.py +286 -0
  268. voidx-3.8.0/src/voidx/mcp/manager.py +349 -0
  269. voidx-3.8.0/src/voidx/mcp/references.py +73 -0
  270. voidx-3.8.0/src/voidx/mcp/schema_summary.py +76 -0
  271. voidx-3.8.0/src/voidx/mcp/validation.py +65 -0
  272. voidx-3.8.0/src/voidx/permission/ai_approval.py +513 -0
  273. voidx-3.8.0/src/voidx/permission/constants.py +177 -0
  274. voidx-3.8.0/src/voidx/permission/context.py +106 -0
  275. voidx-3.8.0/src/voidx/permission/engine.py +232 -0
  276. voidx-3.8.0/src/voidx/permission/presets.py +72 -0
  277. voidx-3.8.0/src/voidx/permission/rules.py +463 -0
  278. voidx-3.8.0/src/voidx/permission/sandbox.py +276 -0
  279. voidx-3.8.0/src/voidx/permission/service.py +497 -0
  280. voidx-3.8.0/src/voidx/permission/session_rules.py +90 -0
  281. voidx-3.8.0/src/voidx/permission/shell_policy.py +437 -0
  282. voidx-3.8.0/src/voidx/runtime/execution_context.py +33 -0
  283. voidx-3.8.0/src/voidx/runtime/ui.py +310 -0
  284. voidx-3.8.0/src/voidx/skills/references.py +77 -0
  285. voidx-3.8.0/src/voidx/tools/agent.py +331 -0
  286. voidx-3.8.0/src/voidx/tools/base.py +461 -0
  287. voidx-3.8.0/src/voidx/tools/bash/core.py +98 -0
  288. voidx-3.8.0/src/voidx/tools/bash/hint/file.py +255 -0
  289. voidx-3.8.0/src/voidx/tools/bash/hint/search.py +315 -0
  290. voidx-3.8.0/src/voidx/tools/bash/router.py +71 -0
  291. voidx-3.8.0/src/voidx/tools/bash/safety.py +24 -0
  292. voidx-3.8.0/src/voidx/tools/file/io.py +46 -0
  293. voidx-3.8.0/src/voidx/tools/file/post_edit.py +133 -0
  294. voidx-3.8.0/src/voidx/tools/file/replace.py +714 -0
  295. voidx-3.8.0/src/voidx/tools/file/safe_path.py +486 -0
  296. voidx-3.8.0/src/voidx/tools/file/state.py +505 -0
  297. voidx-3.8.0/src/voidx/tools/file/types.py +35 -0
  298. voidx-3.8.0/src/voidx/tools/file/write.py +294 -0
  299. voidx-3.8.0/src/voidx/tools/lsp.py +303 -0
  300. voidx-3.8.0/src/voidx/tools/output_policy.py +3 -0
  301. voidx-3.8.0/src/voidx/tools/registry.py +155 -0
  302. voidx-3.8.0/src/voidx/tools/search.py +330 -0
  303. voidx-3.8.0/src/voidx/tools/skills.py +252 -0
  304. voidx-3.8.0/src/voidx/tools/task_status.py +71 -0
  305. voidx-3.8.0/src/voidx/ui/command_catalog.py +158 -0
  306. voidx-3.8.0/src/voidx/ui/commands.py +114 -0
  307. voidx-3.8.0/src/voidx/ui/gateway/session/core.py +489 -0
  308. voidx-3.8.0/src/voidx/ui/gateway/session/method/integrations.py +190 -0
  309. voidx-3.8.0/src/voidx/ui/gateway/session/method/references.py +75 -0
  310. voidx-3.8.0/src/voidx/ui/gateway/session/method/settings.py +279 -0
  311. voidx-3.8.0/src/voidx/ui/output/dock/nodes.py +422 -0
  312. voidx-3.8.0/src/voidx/ui/output/events/bus.py +165 -0
  313. voidx-3.8.0/src/voidx/ui/output/events/consumers.py +612 -0
  314. voidx-3.8.0/src/voidx/ui/output/events/schema.py +371 -0
  315. voidx-3.8.0/src/voidx/ui/output/tool_display.py +193 -0
  316. voidx-3.8.0/src/voidx/ui/output/types.py +93 -0
  317. voidx-3.8.0/src/voidx/ui/protocol/v2/snapshot.py +45 -0
  318. voidx-3.8.0/src/voidx/ui/tools/mcp_picker.py +54 -0
  319. voidx-3.8.0/src/voidx/workflow/nodes.py +347 -0
  320. voidx-3.8.0/src/voidx.egg-info/PKG-INFO +119 -0
  321. voidx-3.8.0/src/voidx.egg-info/SOURCES.txt +703 -0
  322. voidx-3.8.0/src/voidx.egg-info/requires.txt +24 -0
  323. voidx-3.7.5/PKG-INFO +0 -118
  324. voidx-3.7.5/pyproject.toml +0 -64
  325. voidx-3.7.5/src/tests/test_agent/graph/run_loop_helpers.py +0 -107
  326. voidx-3.7.5/src/tests/test_agent/graph/stream_llm_helpers.py +0 -272
  327. voidx-3.7.5/src/tests/test_agent/graph/test_call_llm_compaction.py +0 -843
  328. voidx-3.7.5/src/tests/test_agent/graph/test_call_llm_compaction_advanced.py +0 -252
  329. voidx-3.7.5/src/tests/test_agent/graph/test_call_llm_structure.py +0 -12
  330. voidx-3.7.5/src/tests/test_agent/graph/test_call_llm_tools.py +0 -451
  331. voidx-3.7.5/src/tests/test_agent/graph/test_compaction_flow.py +0 -462
  332. voidx-3.7.5/src/tests/test_agent/graph/test_compaction_flow_run_once.py +0 -370
  333. voidx-3.7.5/src/tests/test_agent/graph/test_convergence.py +0 -74
  334. voidx-3.7.5/src/tests/test_agent/graph/test_execute_tools_guard.py +0 -1807
  335. voidx-3.7.5/src/tests/test_agent/graph/test_execute_tools_todo.py +0 -439
  336. voidx-3.7.5/src/tests/test_agent/graph/test_graph_authorization.py +0 -720
  337. voidx-3.7.5/src/tests/test_agent/graph/test_graph_setup_prompts.py +0 -352
  338. voidx-3.7.5/src/tests/test_agent/graph/test_guards_tool_op.py +0 -305
  339. voidx-3.7.5/src/tests/test_agent/graph/test_parallel_subagents.py +0 -420
  340. voidx-3.7.5/src/tests/test_agent/graph/test_parallel_subagents_dedup.py +0 -391
  341. voidx-3.7.5/src/tests/test_agent/graph/test_prepare_workflow.py +0 -402
  342. voidx-3.7.5/src/tests/test_agent/graph/test_run_loop_startup.py +0 -686
  343. voidx-3.7.5/src/tests/test_agent/graph/test_run_loop_title_lsp.py +0 -157
  344. voidx-3.7.5/src/tests/test_agent/graph/test_run_loop_title_misc.py +0 -178
  345. voidx-3.7.5/src/tests/test_agent/graph/test_run_loop_workflow.py +0 -172
  346. voidx-3.7.5/src/tests/test_agent/graph/test_run_loop_workflow_advanced.py +0 -144
  347. voidx-3.7.5/src/tests/test_agent/graph/test_runtime_guards.py +0 -431
  348. voidx-3.7.5/src/tests/test_agent/graph/test_session_messages.py +0 -468
  349. voidx-3.7.5/src/tests/test_agent/graph/test_session_persistence.py +0 -643
  350. voidx-3.7.5/src/tests/test_agent/graph/test_session_run_once.py +0 -429
  351. voidx-3.7.5/src/tests/test_agent/graph/test_session_runtime_state.py +0 -406
  352. voidx-3.7.5/src/tests/test_agent/graph/test_stream_llm_sanitization.py +0 -527
  353. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_llm_retry.py +0 -306
  354. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_persistence.py +0 -389
  355. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_runner.py +0 -427
  356. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_step_budget.py +0 -375
  357. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_step_budget_convergence.py +0 -364
  358. voidx-3.7.5/src/tests/test_agent/graph/test_subagent_step_budget_final.py +0 -515
  359. voidx-3.7.5/src/tests/test_agent/graph/test_todo_events.py +0 -290
  360. voidx-3.7.5/src/tests/test_agent/graph/test_tool_execution_auth.py +0 -409
  361. voidx-3.7.5/src/tests/test_agent/graph/test_tool_result_preview.py +0 -248
  362. voidx-3.7.5/src/tests/test_agent/graph/test_turn_control_e2e.py +0 -255
  363. voidx-3.7.5/src/tests/test_agent/graph/test_turn_control_integration.py +0 -657
  364. voidx-3.7.5/src/tests/test_agent/graph/test_turn_runner_guidance_discard.py +0 -138
  365. voidx-3.7.5/src/tests/test_agent/graph/test_turn_runner_idle_event.py +0 -11
  366. voidx-3.7.5/src/tests/test_agent/graph/test_turn_stop_without_pending.py +0 -236
  367. voidx-3.7.5/src/tests/test_agent/graph/test_workflow_done.py +0 -316
  368. voidx-3.7.5/src/tests/test_agent/graph/test_workflow_review.py +0 -319
  369. voidx-3.7.5/src/tests/test_agent/graph/test_workflow_transactions.py +0 -315
  370. voidx-3.7.5/src/tests/test_agent/graph/test_workflow_transactions_barrier.py +0 -352
  371. voidx-3.7.5/src/tests/test_agent/slash/test_slash_init.py +0 -97
  372. voidx-3.7.5/src/tests/test_agent/slash/test_slash_loop.py +0 -82
  373. voidx-3.7.5/src/tests/test_agent/slash/test_slash_mcp.py +0 -185
  374. voidx-3.7.5/src/tests/test_agent/slash/test_slash_model.py +0 -677
  375. voidx-3.7.5/src/tests/test_agent/slash/test_slash_model_advanced.py +0 -462
  376. voidx-3.7.5/src/tests/test_agent/slash/test_slash_session.py +0 -469
  377. voidx-3.7.5/src/tests/test_agent/slash/test_slash_skills.py +0 -98
  378. voidx-3.7.5/src/tests/test_agent/slash/test_slash_tavily.py +0 -193
  379. voidx-3.7.5/src/tests/test_agent/slash/test_slash_upgrade.py +0 -108
  380. voidx-3.7.5/src/tests/test_agent/test_file_rwlock.py +0 -581
  381. voidx-3.7.5/src/tests/test_agent/test_goal_resolver.py +0 -721
  382. voidx-3.7.5/src/tests/test_agent/test_goal_resolver_advanced.py +0 -455
  383. voidx-3.7.5/src/tests/test_agent/test_guard_guidance.py +0 -70
  384. voidx-3.7.5/src/tests/test_agent/test_guide_command.py +0 -110
  385. voidx-3.7.5/src/tests/test_agent/test_module_boundaries.py +0 -240
  386. voidx-3.7.5/src/tests/test_agent/test_permission.py +0 -558
  387. voidx-3.7.5/src/tests/test_agent/test_permission_phase2.py +0 -455
  388. voidx-3.7.5/src/tests/test_agent/test_permission_phase3.py +0 -399
  389. voidx-3.7.5/src/tests/test_agent/test_permission_phase6.py +0 -324
  390. voidx-3.7.5/src/tests/test_agent/test_prompts.py +0 -130
  391. voidx-3.7.5/src/tests/test_agent/test_runtime_context_builder.py +0 -595
  392. voidx-3.7.5/src/tests/test_agent/test_runtime_context_prompts.py +0 -40
  393. voidx-3.7.5/src/tests/test_agent/test_runtime_context_skill_stripping.py +0 -288
  394. voidx-3.7.5/src/tests/test_agent/test_task_state.py +0 -225
  395. voidx-3.7.5/src/tests/test_agent/test_task_state_context_sync.py +0 -93
  396. voidx-3.7.5/src/tests/test_agent/test_task_state_rendering.py +0 -231
  397. voidx-3.7.5/src/tests/test_agent/test_tool_exchange_sanitizer.py +0 -166
  398. voidx-3.7.5/src/tests/test_agent/test_turn_control.py +0 -250
  399. voidx-3.7.5/src/tests/test_agent/test_turn_control_prompt.py +0 -57
  400. voidx-3.7.5/src/tests/test_agent/test_turn_metrics.py +0 -74
  401. voidx-3.7.5/src/tests/test_agent/test_turn_start.py +0 -159
  402. voidx-3.7.5/src/tests/test_config/test_config.py +0 -350
  403. voidx-3.7.5/src/tests/test_llm/test_compaction_retry.py +0 -500
  404. voidx-3.7.5/src/tests/test_llm/test_instruction_cache.py +0 -113
  405. voidx-3.7.5/src/tests/test_llm/test_llm_provider.py +0 -580
  406. voidx-3.7.5/src/tests/test_llm/test_llm_provider_advanced.py +0 -379
  407. voidx-3.7.5/src/tests/test_llm/test_prune_args.py +0 -451
  408. voidx-3.7.5/src/tests/test_llm/test_streaming_sanitize.py +0 -102
  409. voidx-3.7.5/src/tests/test_llm/test_token_counting.py +0 -377
  410. voidx-3.7.5/src/tests/test_lsp/test_lsp.py +0 -512
  411. voidx-3.7.5/src/tests/test_lsp/test_lsp_advanced.py +0 -331
  412. voidx-3.7.5/src/tests/test_mcp/test_mcp.py +0 -596
  413. voidx-3.7.5/src/tests/test_memory/test_main_startup.py +0 -129
  414. voidx-3.7.5/src/tests/test_permission/test_risk.py +0 -150
  415. voidx-3.7.5/src/tests/test_runtime/test_goal_resolution_refactor.py +0 -125
  416. voidx-3.7.5/src/tests/test_skills/test_skill_references.py +0 -355
  417. voidx-3.7.5/src/tests/test_skills/test_workflow_advance.py +0 -508
  418. voidx-3.7.5/src/tests/test_tools/bash/test_auto_route_git.py +0 -342
  419. voidx-3.7.5/src/tests/test_tools/bash/test_router_git.py +0 -342
  420. voidx-3.7.5/src/tests/test_tools/bash/test_router_safety.py +0 -94
  421. voidx-3.7.5/src/tests/test_tools/bash/test_router_sed_grep.py +0 -376
  422. voidx-3.7.5/src/tests/test_tools/bash/test_tool.py +0 -290
  423. voidx-3.7.5/src/tests/test_tools/file/test_edit_coverage.py +0 -197
  424. voidx-3.7.5/src/tests/test_tools/file/test_write_file.py +0 -500
  425. voidx-3.7.5/src/tests/test_tools/test_clarify_tool.py +0 -284
  426. voidx-3.7.5/src/tests/test_tools/test_infer_state_patch.py +0 -84
  427. voidx-3.7.5/src/tests/test_tools/test_interactive_tools.py +0 -483
  428. voidx-3.7.5/src/tests/test_tools/test_interactive_tools_write.py +0 -432
  429. voidx-3.7.5/src/tests/test_tools/test_loop_registry.py +0 -42
  430. voidx-3.7.5/src/tests/test_tools/test_make_interact_callback.py +0 -201
  431. voidx-3.7.5/src/tests/test_tools/test_plan_checkpoint.py +0 -445
  432. voidx-3.7.5/src/tests/test_tools/test_search.py +0 -452
  433. voidx-3.7.5/src/tests/test_tools/test_skills_tool.py +0 -244
  434. voidx-3.7.5/src/tests/test_tools/test_state_update_from_executed_tools.py +0 -267
  435. voidx-3.7.5/src/tests/test_tools/test_task_tracker.py +0 -191
  436. voidx-3.7.5/src/tests/test_tools/test_tool_error_handling.py +0 -241
  437. voidx-3.7.5/src/tests/test_tools/test_tool_registry.py +0 -123
  438. voidx-3.7.5/src/tests/test_tools/test_tool_schemas.py +0 -278
  439. voidx-3.7.5/src/tests/test_tools/test_tool_state_patch.py +0 -57
  440. voidx-3.7.5/src/tests/test_tools/test_user_interaction_models.py +0 -58
  441. voidx-3.7.5/src/tests/test_tools/test_workflow_tool.py +0 -963
  442. voidx-3.7.5/src/tests/test_ui/gateway/test_gateway_v2_dispatch.py +0 -415
  443. voidx-3.7.5/src/tests/test_ui/gateway/test_ui_events_dock_prompts.py +0 -528
  444. voidx-3.7.5/src/tests/test_ui/protocol/test_dto.py +0 -151
  445. voidx-3.7.5/src/voidx/__init__.py +0 -3
  446. voidx-3.7.5/src/voidx/agent/goal_resolver.py +0 -575
  447. voidx-3.7.5/src/voidx/agent/graph/__init__.py +0 -5
  448. voidx-3.7.5/src/voidx/agent/graph/compaction.py +0 -97
  449. voidx-3.7.5/src/voidx/agent/graph/compaction_coordinator.py +0 -675
  450. voidx-3.7.5/src/voidx/agent/graph/contracts.py +0 -248
  451. voidx-3.7.5/src/voidx/agent/graph/convergence.py +0 -87
  452. voidx-3.7.5/src/voidx/agent/graph/core/__init__.py +0 -9
  453. voidx-3.7.5/src/voidx/agent/graph/core/context.py +0 -94
  454. voidx-3.7.5/src/voidx/agent/graph/core/helpers.py +0 -257
  455. voidx-3.7.5/src/voidx/agent/graph/core/llm.py +0 -548
  456. voidx-3.7.5/src/voidx/agent/graph/core/turn.py +0 -353
  457. voidx-3.7.5/src/voidx/agent/graph/core/voidx_graph.py +0 -675
  458. voidx-3.7.5/src/voidx/agent/graph/permissions.py +0 -222
  459. voidx-3.7.5/src/voidx/agent/graph/run_loop.py +0 -438
  460. voidx-3.7.5/src/voidx/agent/graph/session_mixin.py +0 -38
  461. voidx-3.7.5/src/voidx/agent/graph/session_runtime.py +0 -296
  462. voidx-3.7.5/src/voidx/agent/graph/subagent.py +0 -522
  463. voidx-3.7.5/src/voidx/agent/graph/thread_context.py +0 -174
  464. voidx-3.7.5/src/voidx/agent/graph/title_mixin.py +0 -100
  465. voidx-3.7.5/src/voidx/agent/graph/tool_execution.py +0 -40
  466. voidx-3.7.5/src/voidx/agent/graph/tool_executor/__init__.py +0 -8
  467. voidx-3.7.5/src/voidx/agent/graph/tool_executor/executor.py +0 -516
  468. voidx-3.7.5/src/voidx/agent/graph/tool_executor/guards.py +0 -151
  469. voidx-3.7.5/src/voidx/agent/graph/tool_executor/helpers.py +0 -676
  470. voidx-3.7.5/src/voidx/agent/graph/tool_executor/types.py +0 -88
  471. voidx-3.7.5/src/voidx/agent/graph/tool_executor/workflow.py +0 -286
  472. voidx-3.7.5/src/voidx/agent/graph/topology.py +0 -88
  473. voidx-3.7.5/src/voidx/agent/graph/transcript_mixin.py +0 -18
  474. voidx-3.7.5/src/voidx/agent/graph/turn_control.py +0 -157
  475. voidx-3.7.5/src/voidx/agent/graph/turn_mixin.py +0 -37
  476. voidx-3.7.5/src/voidx/agent/graph/turn_runner.py +0 -541
  477. voidx-3.7.5/src/voidx/agent/graph/wiring.py +0 -113
  478. voidx-3.7.5/src/voidx/agent/loop/slash.py +0 -99
  479. voidx-3.7.5/src/voidx/agent/prompts.py +0 -313
  480. voidx-3.7.5/src/voidx/agent/runtime_context.py +0 -622
  481. voidx-3.7.5/src/voidx/agent/slash/code_ide.py +0 -67
  482. voidx-3.7.5/src/voidx/agent/slash/guide.py +0 -18
  483. voidx-3.7.5/src/voidx/agent/slash/handler.py +0 -518
  484. voidx-3.7.5/src/voidx/agent/slash/host.py +0 -365
  485. voidx-3.7.5/src/voidx/agent/slash/init.py +0 -96
  486. voidx-3.7.5/src/voidx/agent/slash/lsp.py +0 -112
  487. voidx-3.7.5/src/voidx/agent/slash/mcp.py +0 -427
  488. voidx-3.7.5/src/voidx/agent/slash/model.py +0 -445
  489. voidx-3.7.5/src/voidx/agent/slash/profile.py +0 -162
  490. voidx-3.7.5/src/voidx/agent/slash/runtime.py +0 -77
  491. voidx-3.7.5/src/voidx/agent/slash/session.py +0 -253
  492. voidx-3.7.5/src/voidx/agent/slash/skills.py +0 -117
  493. voidx-3.7.5/src/voidx/agent/slash/upgrade.py +0 -98
  494. voidx-3.7.5/src/voidx/agent/state.py +0 -28
  495. voidx-3.7.5/src/voidx/agent/task_state.py +0 -31
  496. voidx-3.7.5/src/voidx/agent/todo_state.py +0 -279
  497. voidx-3.7.5/src/voidx/config/__init__.py +0 -35
  498. voidx-3.7.5/src/voidx/config/enums.py +0 -41
  499. voidx-3.7.5/src/voidx/config/models.py +0 -149
  500. voidx-3.7.5/src/voidx/config/settings.py +0 -505
  501. voidx-3.7.5/src/voidx/config/settings_mcp.py +0 -69
  502. voidx-3.7.5/src/voidx/config/settings_permissions.py +0 -112
  503. voidx-3.7.5/src/voidx/data/documents/voidx-guide/README.md +0 -17
  504. voidx-3.7.5/src/voidx/data/documents/voidx-guide/permission.md +0 -31
  505. voidx-3.7.5/src/voidx/data/documents/voidx-guide/reference.md +0 -36
  506. voidx-3.7.5/src/voidx/llm/catalog.py +0 -512
  507. voidx-3.7.5/src/voidx/llm/compaction.py +0 -706
  508. voidx-3.7.5/src/voidx/llm/context.py +0 -45
  509. voidx-3.7.5/src/voidx/llm/instruction.py +0 -305
  510. voidx-3.7.5/src/voidx/llm/provider.py +0 -867
  511. voidx-3.7.5/src/voidx/llm/service.py +0 -39
  512. voidx-3.7.5/src/voidx/lsp/errors.py +0 -23
  513. voidx-3.7.5/src/voidx/lsp/manager.py +0 -391
  514. voidx-3.7.5/src/voidx/lsp/service.py +0 -106
  515. voidx-3.7.5/src/voidx/main.py +0 -167
  516. voidx-3.7.5/src/voidx/mcp/client/base.py +0 -375
  517. voidx-3.7.5/src/voidx/mcp/manager.py +0 -322
  518. voidx-3.7.5/src/voidx/permission/constants.py +0 -177
  519. voidx-3.7.5/src/voidx/permission/context.py +0 -105
  520. voidx-3.7.5/src/voidx/permission/engine.py +0 -238
  521. voidx-3.7.5/src/voidx/permission/presets.py +0 -72
  522. voidx-3.7.5/src/voidx/permission/rules.py +0 -443
  523. voidx-3.7.5/src/voidx/permission/sandbox.py +0 -276
  524. voidx-3.7.5/src/voidx/permission/service.py +0 -486
  525. voidx-3.7.5/src/voidx/permission/shell_policy.py +0 -242
  526. voidx-3.7.5/src/voidx/runtime/ui.py +0 -309
  527. voidx-3.7.5/src/voidx/skills/references.py +0 -73
  528. voidx-3.7.5/src/voidx/tools/agent.py +0 -331
  529. voidx-3.7.5/src/voidx/tools/base.py +0 -459
  530. voidx-3.7.5/src/voidx/tools/bash/core.py +0 -73
  531. voidx-3.7.5/src/voidx/tools/bash/hint/file.py +0 -232
  532. voidx-3.7.5/src/voidx/tools/bash/hint/search.py +0 -271
  533. voidx-3.7.5/src/voidx/tools/bash/router.py +0 -69
  534. voidx-3.7.5/src/voidx/tools/bash/safety.py +0 -59
  535. voidx-3.7.5/src/voidx/tools/file/replace.py +0 -695
  536. voidx-3.7.5/src/voidx/tools/file/safe_path.py +0 -459
  537. voidx-3.7.5/src/voidx/tools/file/state.py +0 -475
  538. voidx-3.7.5/src/voidx/tools/file/types.py +0 -35
  539. voidx-3.7.5/src/voidx/tools/file/write.py +0 -286
  540. voidx-3.7.5/src/voidx/tools/lsp.py +0 -216
  541. voidx-3.7.5/src/voidx/tools/registry.py +0 -155
  542. voidx-3.7.5/src/voidx/tools/search.py +0 -308
  543. voidx-3.7.5/src/voidx/tools/skills.py +0 -252
  544. voidx-3.7.5/src/voidx/tools/task_status.py +0 -72
  545. voidx-3.7.5/src/voidx/ui/command_catalog.py +0 -156
  546. voidx-3.7.5/src/voidx/ui/commands.py +0 -111
  547. voidx-3.7.5/src/voidx/ui/gateway/session/core.py +0 -478
  548. voidx-3.7.5/src/voidx/ui/gateway/session/method/__init__.py +0 -0
  549. voidx-3.7.5/src/voidx/ui/gateway/session/method/integrations.py +0 -187
  550. voidx-3.7.5/src/voidx/ui/gateway/session/method/settings.py +0 -256
  551. voidx-3.7.5/src/voidx/ui/output/dock/nodes.py +0 -419
  552. voidx-3.7.5/src/voidx/ui/output/events/bus.py +0 -166
  553. voidx-3.7.5/src/voidx/ui/output/events/consumers.py +0 -608
  554. voidx-3.7.5/src/voidx/ui/output/events/schema.py +0 -370
  555. voidx-3.7.5/src/voidx/ui/output/tool_display.py +0 -136
  556. voidx-3.7.5/src/voidx/ui/output/types.py +0 -94
  557. voidx-3.7.5/src/voidx/ui/protocol/v2/snapshot.py +0 -43
  558. voidx-3.7.5/src/voidx/workflow/nodes.py +0 -349
  559. voidx-3.7.5/src/voidx.egg-info/PKG-INFO +0 -118
  560. voidx-3.7.5/src/voidx.egg-info/SOURCES.txt +0 -620
  561. voidx-3.7.5/src/voidx.egg-info/requires.txt +0 -23
  562. {voidx-3.7.5 → voidx-3.8.0}/LICENSE +0 -0
  563. {voidx-3.7.5 → voidx-3.8.0}/README.md +0 -0
  564. {voidx-3.7.5 → voidx-3.8.0}/setup.cfg +0 -0
  565. {voidx-3.7.5 → voidx-3.8.0}/src/tests/__init__.py +0 -0
  566. {voidx-3.7.5 → voidx-3.8.0}/src/tests/conftest.py +0 -0
  567. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/__init__.py +0 -0
  568. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/conftest.py +0 -0
  569. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/graph/__init__.py +0 -0
  570. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/graph/conftest.py +0 -0
  571. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/graph/test_session_context_frames.py +0 -0
  572. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/graph/test_session_crud.py +0 -0
  573. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/graph/test_session_transcript.py +0 -0
  574. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/loop/test_manager.py +0 -0
  575. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/loop/test_prompt_source.py +0 -0
  576. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/slash/__init__.py +0 -0
  577. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_attachments.py +0 -0
  578. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_message_trimming_parsers.py +0 -0
  579. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_message_trimming_rules.py +0 -0
  580. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_permission_append.py +0 -0
  581. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_permission_phase4.py +0 -0
  582. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_permission_phase5.py +0 -0
  583. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_todo_replay_sanitization.py +0 -0
  584. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_tool_filters_gemini.py +0 -0
  585. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_tool_messages.py +0 -0
  586. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_agent/test_tool_result_storage.py +0 -0
  587. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_archive_script.py +0 -0
  588. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_config/__init__.py +0 -0
  589. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_config/test_config_advanced.py +0 -0
  590. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_config/test_retry_config.py +0 -0
  591. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_install_sh.py +0 -0
  592. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/conftest.py +0 -0
  593. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_fallback_summary.py +0 -0
  594. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_gemini_provider.py +0 -0
  595. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_goal_resolver_retry.py +0 -0
  596. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_llm_catalog.py +0 -0
  597. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_llm_catalog_fetchers.py +0 -0
  598. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_llm_usage.py +0 -0
  599. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_overflow_threshold.py +0 -0
  600. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_llm/test_request_log.py +0 -0
  601. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_logging/test_external.py +0 -0
  602. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_logging/test_internal_error.py +0 -0
  603. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_logging/test_tool_log.py +0 -0
  604. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_lsp/__init__.py +0 -0
  605. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_mcp/__init__.py +0 -0
  606. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_memory/__init__.py +0 -0
  607. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_memory/test_main.py +0 -0
  608. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_memory/test_schema_migration.py +0 -0
  609. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_npm_package.py +0 -0
  610. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_permission/__init__.py +0 -0
  611. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_release_npm_wheel_sync.py +0 -0
  612. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_runtime/__init__.py +0 -0
  613. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_runtime/test_processes.py +0 -0
  614. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_runtime/test_runtime_ui.py +0 -0
  615. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_selfupdate/__init__.py +0 -0
  616. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_selfupdate/test_selfupdate.py +0 -0
  617. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_skills/__init__.py +0 -0
  618. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_skills/conftest.py +0 -0
  619. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_skills/test_create_skill.py +0 -0
  620. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_skills/test_skill_parsing.py +0 -0
  621. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_test_runner.py +0 -0
  622. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/__init__.py +0 -0
  623. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/bash/__init__.py +0 -0
  624. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/__init__.py +0 -0
  625. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_coverage_fingerprint.py +0 -0
  626. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_anchors.py +0 -0
  627. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_bounds_input.py +0 -0
  628. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_dedup.py +0 -0
  629. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_drift_fallback.py +0 -0
  630. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_drift_fallback_e2e.py +0 -0
  631. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_errors.py +0 -0
  632. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_line_insert.py +0 -0
  633. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_llm_messages.py +0 -0
  634. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_replace.py +0 -0
  635. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_edit_trailing_newline.py +0 -0
  636. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_overlap.py +0 -0
  637. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_read.py +0 -0
  638. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_read_write.py +0 -0
  639. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/file/test_render_numbered_diff.py +0 -0
  640. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_diffing.py +0 -0
  641. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_file_tools_redesign.py +0 -0
  642. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_git_tool_destructive.py +0 -0
  643. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_git_tool_phase5.py +0 -0
  644. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_git_tool_raw_permissions.py +0 -0
  645. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_git_tool_schema_errors.py +0 -0
  646. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_git_tool_structured.py +0 -0
  647. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_load_doc_template.py +0 -0
  648. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_loop_integration.py +0 -0
  649. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_powershell_tool.py +0 -0
  650. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_powershell_tool_phase6.py +0 -0
  651. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_replace_failure_logging.py +0 -0
  652. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_resolve_safe.py +0 -0
  653. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_retry.py +0 -0
  654. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_schedule_wakeup.py +0 -0
  655. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_shell_json_format.py +0 -0
  656. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_shell_tool_phase6.py +0 -0
  657. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_todo_tool.py +0 -0
  658. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_web_mcp.py +0 -0
  659. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_tools/test_webfetch.py +0 -0
  660. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/__init__.py +0 -0
  661. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/conftest.py +0 -0
  662. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/helpers.py +0 -0
  663. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_adapter.py +0 -0
  664. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_diff_review.py +0 -0
  665. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_gateway_headless_frontend.py +0 -0
  666. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_gateway_v2_crud_diff.py +0 -0
  667. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_gateway_v2_routing.py +0 -0
  668. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_gateway_v2_server.py +0 -0
  669. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_gateway_v2_session.py +0 -0
  670. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_guidance_fallback.py +0 -0
  671. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_run_manager.py +0 -0
  672. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_terminal.py +0 -0
  673. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_events_dock_bus.py +0 -0
  674. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_events_dock_status.py +0 -0
  675. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_events_streaming.py +0 -0
  676. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_events_subagent.py +0 -0
  677. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_events_todo.py +0 -0
  678. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/gateway/test_ui_gateway.py +0 -0
  679. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/__init__.py +0 -0
  680. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_console_app.py +0 -0
  681. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_dock_formatting.py +0 -0
  682. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_fmt_args.py +0 -0
  683. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_output_browse.py +0 -0
  684. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_scrollback_flush.py +0 -0
  685. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_tool_display.py +0 -0
  686. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_tree_smoke.py +0 -0
  687. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_ui_diff.py +0 -0
  688. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/output/test_ui_session_changes.py +0 -0
  689. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/protocol/__init__.py +0 -0
  690. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/protocol/test_v2_envelope.py +0 -0
  691. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/protocol/test_v2_methods.py +0 -0
  692. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/protocol/test_v2_snapshot.py +0 -0
  693. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/protocol/test_v2_threads.py +0 -0
  694. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/test_display_policy.py +0 -0
  695. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/test_file_picker.py +0 -0
  696. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/__init__.py +0 -0
  697. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/test_clipboard_image.py +0 -0
  698. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/test_clipboard_image_windows.py +0 -0
  699. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/test_clipboard_text.py +0 -0
  700. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/test_clipboard_text_windows.py +0 -0
  701. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_ui/tools/test_code_ide.py +0 -0
  702. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_voidx_entrypoint.py +0 -0
  703. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_wheel_build.py +0 -0
  704. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_wheel_verify_cwd.py +0 -0
  705. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_workflow/__init__.py +0 -0
  706. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_workflow/test_auto_advance.py +0 -0
  707. {voidx-3.7.5 → voidx-3.8.0}/src/tests/test_workflow/test_workflow_reconcile.py +0 -0
  708. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/agents.py +0 -0
  709. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/application}/workflow_utils.py +0 -0
  710. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/attachments.py +0 -0
  711. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/core/loop.py +0 -0
  712. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/runtime.py +0 -0
  713. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/runtime_guards.py +0 -0
  714. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/streaming.py +0 -0
  715. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/todo_events.py +0 -0
  716. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/tool_executor/ui.py +0 -0
  717. {voidx-3.7.5/src/voidx/agent/graph → voidx-3.8.0/src/voidx/agent/infrastructure/langgraph/runtime}/turn_metrics.py +0 -0
  718. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/loop/__init__.py +0 -0
  719. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/loop/manager.py +0 -0
  720. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/loop/prompt_source.py +0 -0
  721. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/message_rows.py +0 -0
  722. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/message_trimming.py +0 -0
  723. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/slash/__init__.py +0 -0
  724. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/tool_call_ids.py +0 -0
  725. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/tool_exchange_sanitizer.py +0 -0
  726. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/tool_filters.py +0 -0
  727. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/tool_messages.py +0 -0
  728. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/agent/tool_result_storage.py +0 -0
  729. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/defaults.py +0 -0
  730. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_agent.py +0 -0
  731. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_api_keys.py +0 -0
  732. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_code_ide.py +0 -0
  733. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_custom.py +0 -0
  734. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_retry.py +0 -0
  735. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_skills.py +0 -0
  736. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_update.py +0 -0
  737. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_utils.py +0 -0
  738. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/config/settings_web.py +0 -0
  739. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/__init__.py +0 -0
  740. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/README.md +0 -0
  741. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/api-doc.md +0 -0
  742. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/capability-spec.md +0 -0
  743. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/implementation-spec.md +0 -0
  744. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/prd.md +0 -0
  745. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/readme.md +0 -0
  746. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/rfc.md +0 -0
  747. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/tasks.md +0 -0
  748. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/templates/tech-design.md +0 -0
  749. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/context.md +0 -0
  750. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/debug.md +0 -0
  751. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/extension.md +0 -0
  752. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/mode.md +0 -0
  753. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/model.md +0 -0
  754. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/preferences.md +0 -0
  755. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/quickstart.md +0 -0
  756. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/session.md +0 -0
  757. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/upgrade.md +0 -0
  758. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/web.md +0 -0
  759. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/data/documents/voidx-guide/workflow.md +0 -0
  760. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/diffing.py +0 -0
  761. {voidx-3.7.5/src/voidx/agent → voidx-3.8.0/src/voidx/llm}/__init__.py +0 -0
  762. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/llm/message_markers.py +0 -0
  763. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/llm/message_status.py +0 -0
  764. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/llm/usage.py +0 -0
  765. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/logging/__init__.py +0 -0
  766. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/logging/external.py +0 -0
  767. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/logging/internal_error.py +0 -0
  768. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/logging/request_log.py +0 -0
  769. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/logging/tool_log.py +0 -0
  770. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/__init__.py +0 -0
  771. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/client.py +0 -0
  772. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/config.py +0 -0
  773. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/detector.py +0 -0
  774. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/detector_data.py +0 -0
  775. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/lsp/schema.py +0 -0
  776. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/__init__.py +0 -0
  777. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/client/__init__.py +0 -0
  778. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/client/errors.py +0 -0
  779. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/client/http_transport.py +0 -0
  780. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/client/sse_transport.py +0 -0
  781. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/client/stdio_transport.py +0 -0
  782. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/schema.py +0 -0
  783. {voidx-3.7.5/src/voidx/mcp_servers → voidx-3.8.0/src/voidx/mcp/server}/__init__.py +0 -0
  784. {voidx-3.7.5/src/voidx/mcp_servers → voidx-3.8.0/src/voidx/mcp/server}/web.py +0 -0
  785. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/mcp/tool.py +0 -0
  786. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/__init__.py +0 -0
  787. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/cleanup.py +0 -0
  788. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/context_frames.py +0 -0
  789. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/jsonl_store.py +0 -0
  790. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/model_profiles.py +0 -0
  791. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/runtime_state.py +0 -0
  792. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/service.py +0 -0
  793. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/session.py +0 -0
  794. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/store.py +0 -0
  795. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/subagents.py +0 -0
  796. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/memory/transcript.py +0 -0
  797. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/paths.py +0 -0
  798. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/__init__.py +0 -0
  799. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/evaluate.py +0 -0
  800. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/git_policy.py +0 -0
  801. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/grants.py +0 -0
  802. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/process_sandbox.py +0 -0
  803. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/risk.py +0 -0
  804. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/schema.py +0 -0
  805. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/permission/wildcard.py +0 -0
  806. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/__init__.py +0 -0
  807. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/_win32_jobs.py +0 -0
  808. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/attachments.py +0 -0
  809. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/intent.py +0 -0
  810. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/processes.py +0 -0
  811. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/reference_tokens.py +0 -0
  812. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/task_state.py +0 -0
  813. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/todo.py +0 -0
  814. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/runtime/ui_port.py +0 -0
  815. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/selfupdate.py +0 -0
  816. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/skills/__init__.py +0 -0
  817. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/skills/context.py +0 -0
  818. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/skills/registry.py +0 -0
  819. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/skills/schema.py +0 -0
  820. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/skills/service.py +0 -0
  821. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/__init__.py +0 -0
  822. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/bash/__init__.py +0 -0
  823. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/bash/hint/__init__.py +0 -0
  824. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/bash/hint/git.py +0 -0
  825. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/bash/tool.py +0 -0
  826. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/checkpoint.py +0 -0
  827. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/clarify.py +0 -0
  828. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/compact.py +0 -0
  829. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/document.py +0 -0
  830. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/file/__init__.py +0 -0
  831. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/file/manage.py +0 -0
  832. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/file/overlap.py +0 -0
  833. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/file/read.py +0 -0
  834. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/file/replace_resolve.py +0 -0
  835. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/__init__.py +0 -0
  836. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/access.py +0 -0
  837. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/constants.py +0 -0
  838. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/handlers.py +0 -0
  839. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/models.py +0 -0
  840. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/parsers.py +0 -0
  841. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/process.py +0 -0
  842. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/results.py +0 -0
  843. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/routing.py +0 -0
  844. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/git/tool.py +0 -0
  845. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/__init__.py +0 -0
  846. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/core.py +0 -0
  847. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/hint/__init__.py +0 -0
  848. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/hint/file.py +0 -0
  849. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/hint/search.py +0 -0
  850. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/router.py +0 -0
  851. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/safety.py +0 -0
  852. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/sandbox.py +0 -0
  853. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/powershell/tool.py +0 -0
  854. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/retry.py +0 -0
  855. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/schedule_wakeup.py +0 -0
  856. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/service.py +0 -0
  857. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/shell/__init__.py +0 -0
  858. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/shell/common.py +0 -0
  859. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/shell/hint/__init__.py +0 -0
  860. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/shell/hint/git.py +0 -0
  861. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/task_tracker.py +0 -0
  862. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/todo.py +0 -0
  863. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/web/__init__.py +0 -0
  864. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/web/content.py +0 -0
  865. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/web/fetch.py +0 -0
  866. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/web/mcp.py +0 -0
  867. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/web/search.py +0 -0
  868. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/tools/workflow.py +0 -0
  869. {voidx-3.7.5/src/voidx/llm → voidx-3.8.0/src/voidx/ui}/__init__.py +0 -0
  870. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/frontend.py +0 -0
  871. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/__init__.py +0 -0
  872. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/adapter.py +0 -0
  873. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/bootstrap.py +0 -0
  874. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/diff_review.py +0 -0
  875. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/frontend.py +0 -0
  876. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/run_manager.py +0 -0
  877. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/server.py +0 -0
  878. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/session/__init__.py +0 -0
  879. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/session/consumer.py +0 -0
  880. {voidx-3.7.5/src/voidx/ui → voidx-3.8.0/src/voidx/ui/gateway/session/method}/__init__.py +0 -0
  881. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/session/method/diff.py +0 -0
  882. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/session/method/sessions.py +0 -0
  883. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/session/method/terminal.py +0 -0
  884. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/gateway/terminal.py +0 -0
  885. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/__init__.py +0 -0
  886. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/agent_display.py +0 -0
  887. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/ansi_marker.py +0 -0
  888. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/browse.py +0 -0
  889. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/capture.py +0 -0
  890. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/console/__init__.py +0 -0
  891. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/console/app.py +0 -0
  892. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/console/formatting.py +0 -0
  893. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/console/streaming.py +0 -0
  894. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/diff.py +0 -0
  895. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/display_policy.py +0 -0
  896. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/__init__.py +0 -0
  897. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/agent_placeholder.py +0 -0
  898. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/app.py +0 -0
  899. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/formatting.py +0 -0
  900. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/nodes_checkpoint.py +0 -0
  901. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/nodes_clarify.py +0 -0
  902. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/nodes_permission.py +0 -0
  903. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/nodes_startup.py +0 -0
  904. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/nodes_status.py +0 -0
  905. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/state.py +0 -0
  906. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/status.py +0 -0
  907. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/stream.py +0 -0
  908. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/dock/todo.py +0 -0
  909. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/events/__init__.py +0 -0
  910. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/manage_display.py +0 -0
  911. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/output/tree.py +0 -0
  912. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/__init__.py +0 -0
  913. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/commands.py +0 -0
  914. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/requests.py +0 -0
  915. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/schema.py +0 -0
  916. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/transcript.py +0 -0
  917. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/v2/__init__.py +0 -0
  918. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/v2/envelope.py +0 -0
  919. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/v2/methods.py +0 -0
  920. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/protocol/v2/threads.py +0 -0
  921. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/session.py +0 -0
  922. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/__init__.py +0 -0
  923. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/attachment_tokens.py +0 -0
  924. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/clipboard_image.py +0 -0
  925. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/clipboard_text.py +0 -0
  926. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/code_ide.py +0 -0
  927. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/file_picker.py +0 -0
  928. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/tools/skill_picker.py +0 -0
  929. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/ui/transcript.py +0 -0
  930. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/__init__.py +0 -0
  931. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/auto_advance.py +0 -0
  932. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/context.py +0 -0
  933. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/dag.py +0 -0
  934. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/policy.py +0 -0
  935. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/reconcile.py +0 -0
  936. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/render.py +0 -0
  937. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/route.py +0 -0
  938. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/runtime.py +0 -0
  939. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/schema.py +0 -0
  940. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/service.py +0 -0
  941. {voidx-3.7.5 → voidx-3.8.0}/src/voidx/workflow/types.py +0 -0
  942. {voidx-3.7.5 → voidx-3.8.0}/src/voidx.egg-info/dependency_links.txt +0 -0
  943. {voidx-3.7.5 → voidx-3.8.0}/src/voidx.egg-info/entry_points.txt +0 -0
  944. {voidx-3.7.5 → voidx-3.8.0}/src/voidx.egg-info/top_level.txt +0 -0
voidx-3.8.0/PKG-INFO ADDED
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.4
2
+ Name: voidx
3
+ Version: 3.8.0
4
+ Summary: A coding agent that quantifies everything and solves with tools, not fuzzy prompts.
5
+ Author: chikhamx
6
+ License: MIT
7
+ Requires-Python: >=3.11
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: langgraph>=0.3.0
11
+ Requires-Dist: langchain>=0.3.0
12
+ Requires-Dist: langchain-anthropic>=0.3.0
13
+ Requires-Dist: langchain-openai>=0.3.0
14
+ Requires-Dist: pydantic>=2.10.0
15
+ Requires-Dist: pydantic-settings>=2.7.0
16
+ Requires-Dist: typer>=0.15.0
17
+ Requires-Dist: rich>=13.9.0
18
+ Requires-Dist: tiktoken>=0.8.0
19
+ Requires-Dist: httpx>=0.28.0
20
+ Requires-Dist: websockets>=14
21
+ Requires-Dist: pathspec>=0.12
22
+ Requires-Dist: jsonschema>=4.21
23
+ Requires-Dist: Pillow>=10.0.0; platform_system == "Windows"
24
+ Provides-Extra: gemini
25
+ Requires-Dist: langchain-google-genai>=4.0.0; extra == "gemini"
26
+ Provides-Extra: dev
27
+ Requires-Dist: build>=1.2.0; extra == "dev"
28
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
29
+ Requires-Dist: pytest-asyncio>=0.25.0; extra == "dev"
30
+ Dynamic: license-file
31
+
32
+ # voidx
33
+
34
+ voidx is a terminal AI coding agent built in Python.
35
+
36
+ ## Install
37
+
38
+ ### One-line install (no Python or npm required)
39
+
40
+ macOS / Linux:
41
+
42
+ ```bash
43
+ curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.sh | bash
44
+ ```
45
+
46
+ Windows (PowerShell):
47
+
48
+ ```powershell
49
+ irm https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.ps1 | iex
50
+ ```
51
+
52
+ The installer downloads a standalone Python runtime and sets up voidx in an
53
+ isolated environment — nothing else is needed on your machine.
54
+
55
+ ### pip
56
+
57
+ ```bash
58
+ python -m pip install voidx voidx-cli
59
+ voidx
60
+ ```
61
+
62
+ ### npm
63
+
64
+ ```bash
65
+ npm install -g @chikhamx/voidx
66
+ voidx
67
+ ```
68
+
69
+ ## Upgrade
70
+
71
+ Upgrade both Python packages together so the core and terminal UI stay on the
72
+ same version:
73
+
74
+ ```bash
75
+ python -m pip install --upgrade voidx voidx-cli
76
+ ```
77
+
78
+ For npm installations, upgrade the npm package instead:
79
+
80
+ ```bash
81
+ npm update -g @chikhamx/voidx
82
+ ```
83
+
84
+ The one-line installers can be rerun to repair or upgrade their managed
85
+ environment.
86
+
87
+ ### From source
88
+
89
+ ```bash
90
+ git clone https://github.com/chikhamx/voidx.git
91
+ cd voidx
92
+ pip install -e .
93
+ voidx
94
+ ```
95
+
96
+ ### China / slow network
97
+
98
+ Set mirror environment variables before running any install method:
99
+
100
+ ```bash
101
+ export VOIDX_PYTHON_MIRROR=https://npmmirror.com/mirrors/python-standalone
102
+ export VOIDX_PIP_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
103
+ ```
104
+
105
+ ## Useful Commands
106
+
107
+ ```bash
108
+ voidx version
109
+ voidx sessions
110
+ voidx -w /path/to/project
111
+ ```
112
+
113
+ ## Development
114
+
115
+ ```bash
116
+ .venv/bin/python -m pytest
117
+ .venv/bin/python scripts/package.py --format all --clean
118
+ npm --prefix npm run check
119
+ ```
@@ -0,0 +1,65 @@
1
+ [project]
2
+ name = "voidx"
3
+ dynamic = ["version"]
4
+ description = "A coding agent that quantifies everything and solves with tools, not fuzzy prompts."
5
+ license = {text = "MIT"}
6
+ authors = [{name = "chikhamx"}]
7
+ readme = "README.md"
8
+ requires-python = ">=3.11"
9
+ dependencies = [
10
+ "langgraph>=0.3.0",
11
+ "langchain>=0.3.0",
12
+ "langchain-anthropic>=0.3.0",
13
+ "langchain-openai>=0.3.0",
14
+ "pydantic>=2.10.0",
15
+ "pydantic-settings>=2.7.0",
16
+ "typer>=0.15.0",
17
+ "rich>=13.9.0",
18
+ "tiktoken>=0.8.0",
19
+ "httpx>=0.28.0",
20
+ "websockets>=14",
21
+ "pathspec>=0.12",
22
+ "jsonschema>=4.21",
23
+ "Pillow>=10.0.0; platform_system == 'Windows'",
24
+ ]
25
+
26
+ [project.scripts]
27
+ voidx = "voidx.main:cli"
28
+
29
+ [project.optional-dependencies]
30
+ gemini = ["langchain-google-genai>=4.0.0"]
31
+ dev = [
32
+ "build>=1.2.0",
33
+ "pytest>=8.0.0",
34
+ "pytest-asyncio>=0.25.0",
35
+ ]
36
+
37
+ [dependency-groups]
38
+ dev = [
39
+ "build>=1.2.0",
40
+ "pytest>=8.0.0",
41
+ "pytest-asyncio>=0.25.0",
42
+ ]
43
+
44
+ [build-system]
45
+ requires = ["setuptools>=68", "wheel"]
46
+ build-backend = "setuptools.build_meta"
47
+
48
+ [tool.setuptools.dynamic]
49
+ version = {attr = "voidx.__version__"}
50
+
51
+ [tool.setuptools.packages.find]
52
+ where = ["src"]
53
+
54
+ [tool.setuptools.package-data]
55
+ "voidx.skills" = [
56
+ "bundled/*/SKILL.md",
57
+ ]
58
+ "voidx.data" = [
59
+ "documents/**/*.md",
60
+ ]
61
+
62
+ [tool.pytest.ini_options]
63
+ asyncio_mode = "auto"
64
+ pythonpath = ["src", "tui"]
65
+ testpaths = ["src/tests", "tui/tests"]
@@ -0,0 +1,187 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass, field
4
+
5
+ import asyncio
6
+
7
+ import pytest
8
+
9
+ from voidx.agent.application.compaction_service import CompactionService
10
+ from voidx.agent.application.session_service import SessionService
11
+ from voidx.agent.application.tool_service import ToolService
12
+ from voidx.agent.application.turn_service import TurnService
13
+ from voidx.agent.domain.compaction import CompactionResult
14
+ from voidx.agent.domain.events import AgentEventKind
15
+ from voidx.agent.domain.state import AgentRuntime
16
+ from voidx.agent.ports.tools import ToolExecutionResult
17
+
18
+
19
+ @dataclass
20
+ class MemorySessionStore:
21
+ runtimes: dict[str, AgentRuntime] = field(default_factory=dict)
22
+ cleared: list[str] = field(default_factory=list)
23
+
24
+ async def load_runtime(self, session_id: str) -> AgentRuntime:
25
+ return self.runtimes.get(session_id, AgentRuntime()).model_copy(deep=True)
26
+
27
+ async def save_runtime(self, session_id: str, runtime: AgentRuntime) -> None:
28
+ self.runtimes[session_id] = runtime.model_copy(deep=True)
29
+
30
+ async def clear_runtime(self, session_id: str) -> None:
31
+ self.cleared.append(session_id)
32
+ self.runtimes.pop(session_id, None)
33
+
34
+
35
+ @pytest.mark.asyncio
36
+ async def test_session_service_restores_persists_and_clears_runtime():
37
+ stored = AgentRuntime(compaction_summary="saved", session_time="2026-07-19 CST")
38
+ store = MemorySessionStore(runtimes={"s1": stored})
39
+ service = SessionService(store)
40
+
41
+ restored = await service.restore_runtime("s1")
42
+ restored.compaction_summary = "updated"
43
+ await service.persist_runtime("s1", restored)
44
+ await service.clear_runtime("s1")
45
+
46
+ assert restored.session_time == "2026-07-19 CST"
47
+ assert store.cleared == ["s1"]
48
+ assert "s1" not in store.runtimes
49
+
50
+
51
+ @dataclass
52
+ class FakeCompactionEngine:
53
+ result: CompactionResult | None
54
+ calls: list[tuple[list, list | None, bool, bool, bool]] = field(default_factory=list)
55
+
56
+ async def compact(self, messages, session_messages=None, *, force=False, ask=True, preflight=False):
57
+ self.calls.append((messages, session_messages, force, ask, preflight))
58
+ return self.result
59
+
60
+
61
+ @pytest.mark.asyncio
62
+ async def test_compaction_service_applies_result_and_emits_semantic_event():
63
+ result = CompactionResult(
64
+ summary="summary",
65
+ removed_messages=["old"],
66
+ live_messages=["new"],
67
+ tail_id="tail-1",
68
+ )
69
+ engine = FakeCompactionEngine(result)
70
+ events = []
71
+ service = CompactionService(engine, events.append)
72
+ messages = ["old", "new"]
73
+
74
+ removed, tail_id = await service.compact_live_messages(messages, force=True, ask=False)
75
+
76
+ assert messages == ["new"]
77
+ assert removed == ["old"]
78
+ assert tail_id == "tail-1"
79
+ assert events[0].kind is AgentEventKind.COMPACTION_COMPLETED
80
+
81
+
82
+ @dataclass
83
+ class FakePermission:
84
+ allowed: bool
85
+ calls: list[tuple[str, dict]] = field(default_factory=list)
86
+
87
+ async def authorize(self, tool_name: str, arguments: dict) -> bool:
88
+ self.calls.append((tool_name, arguments))
89
+ return self.allowed
90
+
91
+
92
+ @dataclass
93
+ class FakeTools:
94
+ result: ToolExecutionResult
95
+ calls: list[tuple[str, dict]] = field(default_factory=list)
96
+
97
+ async def execute(self, tool_name: str, arguments: dict) -> ToolExecutionResult:
98
+ self.calls.append((tool_name, arguments))
99
+ return self.result
100
+
101
+
102
+ @pytest.mark.asyncio
103
+ async def test_tool_service_checks_permission_before_execution():
104
+ permission = FakePermission(allowed=False)
105
+ tools = FakeTools(ToolExecutionResult(output="should not run"))
106
+
107
+ result = await ToolService(permission, tools).execute("write", {"path": "x"})
108
+
109
+ assert result.denied is True
110
+ assert tools.calls == []
111
+
112
+
113
+ @dataclass
114
+ class FakeTurnEngine:
115
+ fail: bool = False
116
+ calls: list[tuple[str, AgentRuntime, str | None]] = field(default_factory=list)
117
+
118
+ async def run(
119
+ self,
120
+ user_text: str,
121
+ runtime: AgentRuntime,
122
+ *,
123
+ display_text: str | None = None,
124
+ context=None,
125
+ ) -> AgentRuntime:
126
+ self.calls.append((user_text, runtime, display_text))
127
+ if self.fail:
128
+ raise RuntimeError("engine failed")
129
+ return runtime.model_copy(update={"compaction_summary": "completed"})
130
+
131
+
132
+ @dataclass
133
+ class MemoryEvents:
134
+ events: list = field(default_factory=list)
135
+
136
+ def publish(self, event) -> None:
137
+ self.events.append(event)
138
+
139
+
140
+ @pytest.mark.asyncio
141
+ async def test_turn_service_orders_events_and_persists_success():
142
+ sessions = MemorySessionStore()
143
+ events = MemoryEvents()
144
+ service = TurnService(FakeTurnEngine(), sessions, events)
145
+
146
+ runtime = await service.run("s1", "hello", AgentRuntime(), display_text="focus")
147
+
148
+ assert runtime.compaction_summary == "completed"
149
+ assert [event.kind for event in events.events] == [
150
+ AgentEventKind.TURN_STARTED,
151
+ AgentEventKind.TURN_COMPLETED,
152
+ ]
153
+ assert sessions.runtimes["s1"].compaction_summary == "completed"
154
+
155
+
156
+ @pytest.mark.asyncio
157
+ async def test_turn_service_persists_failure_and_emits_failed_event():
158
+ sessions = MemorySessionStore()
159
+ events = MemoryEvents()
160
+ service = TurnService(FakeTurnEngine(fail=True), sessions, events)
161
+
162
+ with pytest.raises(RuntimeError, match="engine failed"):
163
+ await service.run("s1", "hello", AgentRuntime())
164
+
165
+ assert "s1" in sessions.runtimes
166
+ assert [event.kind for event in events.events] == [
167
+ AgentEventKind.TURN_STARTED,
168
+ AgentEventKind.TURN_FAILED,
169
+ ]
170
+
171
+
172
+ @pytest.mark.asyncio
173
+ async def test_turn_service_cancel_persists_and_propagates_cancellation():
174
+ class CancelledEngine:
175
+ async def run(self, user_text, runtime, *, display_text=None, context=None):
176
+ raise asyncio.CancelledError
177
+
178
+
179
+ sessions = MemorySessionStore()
180
+ events = MemoryEvents()
181
+ service = TurnService(CancelledEngine(), sessions, events)
182
+
183
+ with pytest.raises(asyncio.CancelledError):
184
+ await service.run("s1", "hello", AgentRuntime())
185
+
186
+ assert "s1" in sessions.runtimes
187
+ assert events.events[-1].metadata["cancelled"] is True
@@ -0,0 +1,53 @@
1
+ from langchain_core.messages import HumanMessage
2
+
3
+ from voidx.agent.domain.compaction import CompactionResult, PreflightCompactionResult
4
+ from voidx.agent.infrastructure.langgraph.runtime.compaction_coordinator import (
5
+ CompactionResult as CoordinatorCompactionResult,
6
+ )
7
+ from voidx.agent.infrastructure.langgraph.runtime.compaction_coordinator import (
8
+ PreflightCompactionResult as CoordinatorPreflightCompactionResult,
9
+ )
10
+
11
+
12
+ def test_compaction_dtos_have_one_domain_source() -> None:
13
+ assert CoordinatorCompactionResult is CompactionResult
14
+ assert CoordinatorPreflightCompactionResult is PreflightCompactionResult
15
+
16
+
17
+ def test_preflight_result_converts_domain_compaction_metadata() -> None:
18
+ removed = [HumanMessage(content="old")]
19
+ result = CompactionResult(
20
+ summary="summary",
21
+ removed_messages=removed,
22
+ live_messages=[HumanMessage(content="new")],
23
+ tail_id="tail-1",
24
+ metadata={
25
+ "removed_message_count": 3,
26
+ "retained_turn_count": 2,
27
+ "pre_tokens": 100,
28
+ "post_tokens": 40,
29
+ "post_compaction_target": 50,
30
+ "compaction_reason": "threshold",
31
+ },
32
+ )
33
+
34
+ preflight = PreflightCompactionResult.from_compaction_result(result)
35
+
36
+ assert preflight.model_dump() == {
37
+ "compacted": True,
38
+ "summary": "summary",
39
+ "removed_message_count": 3,
40
+ "retained_turn_count": 2,
41
+ "pre_tokens": 100,
42
+ "post_tokens": 40,
43
+ "post_target_tokens": 50,
44
+ "tail_anchor_id": "tail-1",
45
+ "fallback": False,
46
+ "reason": "threshold",
47
+ }
48
+
49
+
50
+ def test_empty_preflight_result_is_not_compacted() -> None:
51
+ assert PreflightCompactionResult.from_compaction_result(None) == PreflightCompactionResult(
52
+ compacted=False
53
+ )
@@ -0,0 +1,12 @@
1
+ from voidx.agent.domain.events import AgentEvent, AgentEventKind
2
+
3
+
4
+ def test_agent_event_is_presentation_agnostic() -> None:
5
+ event = AgentEvent(
6
+ kind=AgentEventKind.TURN_STARTED,
7
+ message="turn started",
8
+ metadata={"thread_id": "thread-1"},
9
+ )
10
+
11
+ assert event.kind is AgentEventKind.TURN_STARTED
12
+ assert event.metadata == {"thread_id": "thread-1"}
@@ -0,0 +1,53 @@
1
+ import ast
2
+ from pathlib import Path
3
+
4
+
5
+
6
+ AGENT_ROOT = Path(__file__).resolve().parents[3] / "voidx" / "agent"
7
+ DOMAIN_ROOT = AGENT_ROOT / "domain"
8
+
9
+
10
+ def _imports(path: Path) -> set[str]:
11
+ tree = ast.parse(path.read_text(encoding="utf-8"))
12
+ modules: set[str] = set()
13
+ for node in ast.walk(tree):
14
+ if isinstance(node, ast.Import):
15
+ modules.update(alias.name for alias in node.names)
16
+ elif isinstance(node, ast.ImportFrom) and node.module:
17
+ modules.add(node.module)
18
+ return modules
19
+
20
+
21
+ def test_agent_internal_modules_import_runtime_task_state_directly() -> None:
22
+ offenders = [
23
+ path.relative_to(AGENT_ROOT).as_posix()
24
+ for path in AGENT_ROOT.rglob("*.py")
25
+ if "voidx.agent.task_state" in _imports(path)
26
+ ]
27
+
28
+ assert offenders == []
29
+
30
+
31
+
32
+
33
+ def test_domain_has_no_infrastructure_dependencies() -> None:
34
+ forbidden_prefixes = (
35
+ "voidx.agent.infrastructure.langgraph.runtime",
36
+ "voidx.config",
37
+ "voidx.memory",
38
+ "voidx.permission",
39
+ "voidx.tools",
40
+ "voidx.ui",
41
+ "voidx.workflow",
42
+ "langgraph",
43
+ )
44
+ offenders = {
45
+ path.name: sorted(
46
+ module
47
+ for module in _imports(path)
48
+ if module.startswith(forbidden_prefixes)
49
+ )
50
+ for path in DOMAIN_ROOT.glob("*.py")
51
+ }
52
+
53
+ assert {path: imports for path, imports in offenders.items() if imports} == {}
@@ -0,0 +1,48 @@
1
+ from voidx.agent.domain.state import AgentRuntime
2
+ from voidx.agent.infrastructure.runtime_state_mapper import (
3
+ agent_runtime_from_snapshot,
4
+ snapshot_from_agent_runtime,
5
+ )
6
+ from voidx.memory.service import RuntimeStateSnapshot
7
+ from voidx.runtime import (
8
+ GoalSpec,
9
+ InteractionMode,
10
+ TaskIntent,
11
+ TaskState,
12
+ TodoRunState,
13
+ WorkflowRoute,
14
+ )
15
+
16
+
17
+ def test_agent_runtime_snapshot_round_trip_preserves_persisted_json() -> None:
18
+ snapshot = RuntimeStateSnapshot(
19
+ interaction_mode=InteractionMode.GOAL,
20
+ task_state=TaskState(
21
+ current_intent=TaskIntent.CODING,
22
+ previous_intent=TaskIntent.GENERAL,
23
+ current_goal=GoalSpec(desc="unify agent state"),
24
+ workflow_route=WorkflowRoute(join="tdd", leave="verify"),
25
+ todo_state=TodoRunState.model_validate(
26
+ {
27
+ "summary": "0/1 done · 1 active",
28
+ "total": 1,
29
+ "active": 1,
30
+ "active_items": [
31
+ {"id": "domain", "content": "create domain", "status": "active"}
32
+ ],
33
+ "items": [
34
+ {"id": "domain", "content": "create domain", "status": "active"}
35
+ ],
36
+ "updated_at": "2026-07-19T00:00:00+08:00",
37
+ }
38
+ ),
39
+ ),
40
+ compaction_summary="summary",
41
+ session_time="2026-07-19 CST",
42
+ )
43
+
44
+ runtime = agent_runtime_from_snapshot(snapshot)
45
+ restored = snapshot_from_agent_runtime(runtime)
46
+
47
+ assert isinstance(runtime, AgentRuntime)
48
+ assert restored.model_dump(mode="json") == snapshot.model_dump(mode="json")
@@ -0,0 +1,42 @@
1
+ from voidx.agent.domain.state import AgentRuntime
2
+ from voidx.agent.domain.turn import TurnPhase, advance_turn
3
+ from voidx.runtime import GoalSpec, InteractionMode, TaskIntent, TaskState
4
+
5
+
6
+ def test_agent_runtime_owns_domain_state_without_graph() -> None:
7
+ runtime = AgentRuntime(
8
+ interaction_mode=InteractionMode.GOAL,
9
+ task_state=TaskState(
10
+ current_intent=TaskIntent.CODING,
11
+ current_goal=GoalSpec(desc="unify agent state"),
12
+ ),
13
+ compaction_summary="existing summary",
14
+ session_time="2026-07-19 CST",
15
+ )
16
+
17
+ assert runtime.task_state.current_goal == GoalSpec(desc="unify agent state")
18
+ assert runtime.compaction_summary == "existing summary"
19
+ assert runtime.session_time == "2026-07-19 CST"
20
+
21
+
22
+ def test_turn_state_conversion_is_pure_and_preserves_runtime() -> None:
23
+ runtime = AgentRuntime(compaction_summary="summary")
24
+
25
+ running = advance_turn(runtime, TurnPhase.RUNNING)
26
+ committed = advance_turn(running, TurnPhase.COMMITTED)
27
+
28
+ assert runtime.turn_phase is TurnPhase.INITIAL
29
+ assert running.turn_phase is TurnPhase.RUNNING
30
+ assert committed.turn_phase is TurnPhase.COMMITTED
31
+ assert committed.compaction_summary == "summary"
32
+
33
+
34
+ def test_turn_state_rejects_invalid_transition() -> None:
35
+ runtime = AgentRuntime(turn_phase=TurnPhase.COMMITTED)
36
+
37
+ try:
38
+ advance_turn(runtime, TurnPhase.RUNNING)
39
+ except ValueError as exc:
40
+ assert "committed -> running" in str(exc)
41
+ else:
42
+ raise AssertionError("invalid turn transition was accepted")