voidx 3.4.2__tar.gz → 3.4.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.
- {voidx-3.4.2/src/voidx.egg-info → voidx-3.4.3}/PKG-INFO +1 -1
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/__init__.py +1 -1
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/run_loop.py +1 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/provider.py +29 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/session.py +19 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/parser.py +8 -0
- {voidx-3.4.2 → voidx-3.4.3/src/voidx.egg-info}/PKG-INFO +1 -1
- {voidx-3.4.2 → voidx-3.4.3}/LICENSE +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/README.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/pyproject.toml +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/setup.cfg +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/agents.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/attachments.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/goal_resolver.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/compaction.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/compaction_coordinator.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/contracts.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/convergence.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/core/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/core/_voidx_graph.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/core/helpers.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/core/llm.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/permissions.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/runtime.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/runtime_guards.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/session_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/session_runtime.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/streaming.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/subagent.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/title_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/todo_events.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_execution.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/executor.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/guards.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/helpers.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/types.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/ui.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/tool_executor/workflow.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/topology.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/transcript_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/turn_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/turn_runner.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/wiring.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/graph/workflow_utils.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/message_rows.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/message_trimming.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/prompts.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/runtime_context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/code_ide.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/guide.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/handler.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/host.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/init.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/lsp.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/mcp.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/model.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/profile.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/runtime.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/session.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/skills.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/slash/upgrade.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/task_state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/todo_state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/tool_call_ids.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/tool_exchange_sanitizer.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/tool_filters.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/tool_messages.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/agent/tool_result_storage.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/enums.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/models.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/permissions.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_agent.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_api_keys.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_code_ide.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_custom.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_mcp.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_permissions.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_skills.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_update.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_utils.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/config/settings_web.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/templates/api-doc.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/templates/prd.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/templates/readme.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/templates/rfc.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/data/templates/tech-design.md +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/diffing.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/catalog.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/compaction.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/instruction.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/message_markers.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/message_status.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/llm/usage.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/logging/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/logging/request_log.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/logging/tool_log.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/client.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/config.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/detector.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/detector_data.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/errors.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/manager.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/lsp/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/main.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/base.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/errors.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/http_transport.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/sse_transport.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/client/stdio_transport.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/manager.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp/tool.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp_servers/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/mcp_servers/web.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/cleanup.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/context_frames.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/jsonl_store.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/model_profiles.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/runtime_state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/session.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/store.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/subagents.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/memory/transcript.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/engine.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/evaluate.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/rules.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/sandbox.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/permission/wildcard.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/attachments.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/intent.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/reference_tokens.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/task_state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/todo.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/ui.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/runtime/ui_port.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/selfupdate.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/references.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/registry.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/skills/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/agent.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/base.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/core.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/hint/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/hint/file.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/hint/git.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/hint/search.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/router.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/safety.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/bash/tool.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/clarify.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/compact_context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/edit_execute.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/edit_resolve.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/file.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/read.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/types.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_ops/write.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/file_state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/git.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/load_doc_template.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/load_skills.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/lsp.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/plan_checkpoint.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/core.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/hint/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/hint/file.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/hint/search.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/router.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/safety.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/sandbox.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/powershell/tool.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/registry.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/search.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/shell/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/shell/common.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/shell/hint/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/shell/hint/git.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/skills.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/task_status.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/task_tracker.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/todo.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/web_content.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/web_mcp.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/webfetch.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/websearch.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/tools/workflow.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/commands.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/frontend.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/adapter.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/bootstrap.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/diff_review.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/server.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/gateway/terminal.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/agent_display.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/browse.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/capture.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/console/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/console/app.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/console/formatting.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/console/streaming.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/diff.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/display_policy.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/agent_placeholder.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/app.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/formatting.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes_checkpoint.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes_clarify.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes_permission.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes_startup.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/nodes_status.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/status.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/stream.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/dock/todo.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/events/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/events/bus.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/events/consumers.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/events/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/tree.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/output/types.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/commands.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/envelope.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/requests.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/transcript.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/v2/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/v2/envelope.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/v2/methods.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/v2/snapshot.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/protocol/v2/threads.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/session.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/attachment_tokens.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/clipboard_image.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/clipboard_text.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/code_ide.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/file_picker.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tools/skill_picker.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/transcript.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/activity.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/app.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/choice_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/clipboard_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/helpers.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/input.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/overlays.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/panels.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/render_activity.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/render_frame.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/render_input.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/render_status.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/render_todo.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/renderer.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/state.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/terminal_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/ui/tui/text_prompt_mixin.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/__init__.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/auto_advance.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/context.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/dag.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/nodes.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/policy.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/reconcile.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/render.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/route.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/runtime.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/schema.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/service.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx/workflow/types.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx.egg-info/SOURCES.txt +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx.egg-info/dependency_links.txt +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx.egg-info/entry_points.txt +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx.egg-info/requires.txt +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/src/voidx.egg-info/top_level.txt +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/tests/test_install_sh.py +0 -0
- {voidx-3.4.2 → voidx-3.4.3}/tests/test_npm_package.py +0 -0
|
@@ -151,6 +151,7 @@ class GraphRunLoopMixin(GraphTurnMixin, GraphSessionMixin, GraphTranscriptMixin)
|
|
|
151
151
|
lambda: active_dock.tree,
|
|
152
152
|
thread_id=self._session.id if self._session else "",
|
|
153
153
|
session_id=self._session.id if self._session else "",
|
|
154
|
+
workspace=self._workspace,
|
|
154
155
|
)
|
|
155
156
|
self._ui.events.start(CompositeEventConsumer(
|
|
156
157
|
primary=consumer,
|
|
@@ -176,6 +176,35 @@ class DeepSeekChatOpenAI(ChatOpenAI):
|
|
|
176
176
|
|
|
177
177
|
return generation_chunk
|
|
178
178
|
|
|
179
|
+
# ── multi-turn reasoning_content injection ──────────────────────────────
|
|
180
|
+
|
|
181
|
+
def _get_request_payload(self, input_, *, stop=None, **kwargs):
|
|
182
|
+
"""Inject reasoning_content into assistant message dicts.
|
|
183
|
+
|
|
184
|
+
DeepSeek's thinking mode requires ``reasoning_content`` to be passed
|
|
185
|
+
back as a top-level field on assistant messages in multi-turn
|
|
186
|
+
conversations. LangChain's ``_convert_message_to_dict`` silently
|
|
187
|
+
drops ``additional_kwargs.reasoning_content``, so we re-inject it
|
|
188
|
+
after the parent builds the payload.
|
|
189
|
+
"""
|
|
190
|
+
payload = super()._get_request_payload(input_, stop=stop, **kwargs)
|
|
191
|
+
messages = payload.get("messages")
|
|
192
|
+
if not isinstance(messages, list):
|
|
193
|
+
return payload
|
|
194
|
+
|
|
195
|
+
original_messages = self._convert_input(input_).to_messages()
|
|
196
|
+
for i, msg_dict in enumerate(messages):
|
|
197
|
+
if not isinstance(msg_dict, dict) or msg_dict.get("role") != "assistant":
|
|
198
|
+
continue
|
|
199
|
+
if i >= len(original_messages):
|
|
200
|
+
break
|
|
201
|
+
orig = original_messages[i]
|
|
202
|
+
rc = getattr(orig, "additional_kwargs", {}).get("reasoning_content")
|
|
203
|
+
if isinstance(rc, str) and rc:
|
|
204
|
+
msg_dict["reasoning_content"] = rc
|
|
205
|
+
|
|
206
|
+
return payload
|
|
207
|
+
|
|
179
208
|
# ── provider-specific reasoning effort mapping ────────────────────────
|
|
180
209
|
|
|
181
210
|
@staticmethod
|
|
@@ -55,10 +55,12 @@ class GatewaySession:
|
|
|
55
55
|
thread_id: str = "",
|
|
56
56
|
session_id: str = "",
|
|
57
57
|
command_handler: Callable[[UiCommand], Awaitable[None] | None] | None = None,
|
|
58
|
+
workspace: str = "",
|
|
58
59
|
) -> None:
|
|
59
60
|
self._tree_provider = tree_provider
|
|
60
61
|
self._session_id = session_id or thread_id
|
|
61
62
|
self._command_handler = command_handler
|
|
63
|
+
self._workspace = workspace
|
|
62
64
|
self._clients: set[ProtocolClient] = set()
|
|
63
65
|
self._pending_requests: dict[str, asyncio.Future[UiResponse]] = {}
|
|
64
66
|
self._seq = 0
|
|
@@ -264,6 +266,7 @@ class GatewaySession:
|
|
|
264
266
|
m.register("diff.review", self._method_diff_review_start)
|
|
265
267
|
m.register("diff.decide", self._method_diff_review_decide)
|
|
266
268
|
m.register("diff.apply", self._method_diff_review_apply)
|
|
269
|
+
m.register("diff.generate", self._method_diff_generate)
|
|
267
270
|
|
|
268
271
|
# Session CRUD
|
|
269
272
|
m.register("session.create", self._method_session_create)
|
|
@@ -360,6 +363,22 @@ class GatewaySession:
|
|
|
360
363
|
changed = review.apply()
|
|
361
364
|
return {"files_changed": changed}
|
|
362
365
|
|
|
366
|
+
def _method_diff_generate(self, params: dict) -> dict:
|
|
367
|
+
import subprocess
|
|
368
|
+
|
|
369
|
+
cwd = self._workspace or None
|
|
370
|
+
try:
|
|
371
|
+
result = subprocess.run(
|
|
372
|
+
["git", "diff", "--unified=3"],
|
|
373
|
+
capture_output=True,
|
|
374
|
+
text=True,
|
|
375
|
+
cwd=cwd,
|
|
376
|
+
timeout=10,
|
|
377
|
+
)
|
|
378
|
+
return {"diff": result.stdout.strip()}
|
|
379
|
+
except Exception:
|
|
380
|
+
return {"diff": ""}
|
|
381
|
+
|
|
363
382
|
# ── session CRUD methods ──────────────────────────────────────────────
|
|
364
383
|
|
|
365
384
|
async def _method_session_create(self, params: dict) -> dict:
|
|
@@ -250,6 +250,14 @@ class _InputParserMixin:
|
|
|
250
250
|
return
|
|
251
251
|
# Normalise line endings: \r\n → \n, \r → \n
|
|
252
252
|
text = text.replace("\r\n", "\n").replace("\r", "\n")
|
|
253
|
+
# Single-line paste (no newlines after normalisation): insert as plain
|
|
254
|
+
# text. This covers IME composition confirmations on macOS, where the
|
|
255
|
+
# terminal wraps the confirmed text in bracketed-paste sequences. Only
|
|
256
|
+
# multiline content is collapsed into a [Pasted text] token.
|
|
257
|
+
if "\n" not in text:
|
|
258
|
+
self._insert_text(text)
|
|
259
|
+
return
|
|
260
|
+
|
|
253
261
|
# All pasted text collapses to a [Pasted text #N ...] token, regardless
|
|
254
262
|
# of length. This keeps the input box compact and clearly marks pasted
|
|
255
263
|
# content as a distinct unit.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|