voidx 2.0.0__tar.gz → 2.0.2__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-2.0.0 → voidx-2.0.2}/PKG-INFO +12 -3
- {voidx-2.0.0 → voidx-2.0.2}/README.md +11 -2
- {voidx-2.0.0 → voidx-2.0.2}/pyproject.toml +1 -1
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/__init__.py +1 -1
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/PKG-INFO +12 -3
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_npm_package.py +12 -19
- {voidx-2.0.0 → voidx-2.0.2}/setup.cfg +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/agents.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/attachments.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/compaction.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/contracts.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/core.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/permissions.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/run_loop.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/runtime.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/streaming.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/subagent.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/graph/tool_execution.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/intent_refinement.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/message_rows.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/runtime_context.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/code_ide.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/handler.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/lsp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/mcp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/model.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/runtime.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/slash/skills.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/state.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/task_state.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/tool_filters.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/agent/tool_messages.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/config.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/catalog.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/compaction.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/context.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/instruction.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/provider.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/llm/usage.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/client.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/config.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/detector.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/errors.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/manager.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/lsp/service.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/main.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp/client.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp/manager.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp/tool.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp_servers/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/mcp_servers/web.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/context_frames.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/model_profiles.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/runtime_state.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/session.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/store.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/memory/transcript.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/engine.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/evaluate.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/sandbox.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/service.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/permission/wildcard.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/brainstorming/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/receiving-code-review/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/requesting-code-review/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/systematic-debugging/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/test-driven-development/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/verification-before-completion/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/templates/api-doc.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/templates/prd.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/templates/readme.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/templates/rfc.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/templates/tech-design.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-plans/SKILL.md +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/policy.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/registry.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/runtime.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/service.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/agent.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/base.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/bash.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/clarify.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/doc_template.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/file_ops.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/lsp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/on_intent.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/plan_checkpoint.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/registry.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/repomap.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/search.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/task_status.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/task_tracker.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/todo.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/web_content.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/web_mcp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/webfetch.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/tools/websearch.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/commands.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/frontend.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/gateway/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/gateway/bootstrap.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/gateway/server.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/gateway/session.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/browse.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/capture.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/console/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/console/app.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/console/formatting.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/console/streaming.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/diff.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/dock/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/dock/app.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/dock/formatting.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/dock/nodes.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/dock/state.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/events/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/events/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/tree.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/output/types.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/commands.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/envelope.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/requests.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/schema.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/protocol/transcript.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/session.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tools/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tools/attachment_tokens.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tools/clipboard_image.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tools/code_ide.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tools/file_picker.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/transcript.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/__init__.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/app.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/helpers.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/input.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/panels.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/parser.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx/ui/tui/renderer.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/SOURCES.txt +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/dependency_links.txt +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/entry_points.txt +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/requires.txt +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/src/voidx.egg-info/top_level.txt +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_clipboard_image.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_code_ide.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_compaction.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_config.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_llm_provider.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_llm_usage.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_lsp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_main.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_mcp.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_pure_tui.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_scrollback_flush.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_skills.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_startup.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_tree_smoke.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_ui_diff.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_ui_events.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_ui_frontend_protocol.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_ui_gateway.py +0 -0
- {voidx-2.0.0 → voidx-2.0.2}/tests/test_ui_session_changes.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: voidx
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: A coding agent that quantifies everything and solves with tools, not fuzzy prompts.
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -31,13 +31,13 @@ voidx is a terminal AI coding agent built in Python.
|
|
|
31
31
|
macOS / Linux:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/
|
|
34
|
+
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.sh | bash
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Windows (PowerShell):
|
|
38
38
|
|
|
39
39
|
```powershell
|
|
40
|
-
irm https://raw.githubusercontent.com/chikhamx/voidx/
|
|
40
|
+
irm https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.ps1 | iex
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
The installer downloads a standalone Python runtime and sets up voidx in an
|
|
@@ -57,6 +57,15 @@ npm install -g @chikhamx/voidx
|
|
|
57
57
|
voidx
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
### From source
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git clone https://github.com/chikhamx/voidx.git
|
|
64
|
+
cd voidx
|
|
65
|
+
pip install -e .
|
|
66
|
+
voidx
|
|
67
|
+
```
|
|
68
|
+
|
|
60
69
|
### China / slow network
|
|
61
70
|
|
|
62
71
|
Set mirror environment variables before running any install method:
|
|
@@ -9,13 +9,13 @@ voidx is a terminal AI coding agent built in Python.
|
|
|
9
9
|
macOS / Linux:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/
|
|
12
|
+
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.sh | bash
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Windows (PowerShell):
|
|
16
16
|
|
|
17
17
|
```powershell
|
|
18
|
-
irm https://raw.githubusercontent.com/chikhamx/voidx/
|
|
18
|
+
irm https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.ps1 | iex
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
The installer downloads a standalone Python runtime and sets up voidx in an
|
|
@@ -35,6 +35,15 @@ npm install -g @chikhamx/voidx
|
|
|
35
35
|
voidx
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
### From source
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
git clone https://github.com/chikhamx/voidx.git
|
|
42
|
+
cd voidx
|
|
43
|
+
pip install -e .
|
|
44
|
+
voidx
|
|
45
|
+
```
|
|
46
|
+
|
|
38
47
|
### China / slow network
|
|
39
48
|
|
|
40
49
|
Set mirror environment variables before running any install method:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: voidx
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: A coding agent that quantifies everything and solves with tools, not fuzzy prompts.
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -31,13 +31,13 @@ voidx is a terminal AI coding agent built in Python.
|
|
|
31
31
|
macOS / Linux:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/
|
|
34
|
+
curl -fsSL https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.sh | bash
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Windows (PowerShell):
|
|
38
38
|
|
|
39
39
|
```powershell
|
|
40
|
-
irm https://raw.githubusercontent.com/chikhamx/voidx/
|
|
40
|
+
irm https://raw.githubusercontent.com/chikhamx/voidx/master/scripts/install.ps1 | iex
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
The installer downloads a standalone Python runtime and sets up voidx in an
|
|
@@ -57,6 +57,15 @@ npm install -g @chikhamx/voidx
|
|
|
57
57
|
voidx
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
### From source
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git clone https://github.com/chikhamx/voidx.git
|
|
64
|
+
cd voidx
|
|
65
|
+
pip install -e .
|
|
66
|
+
voidx
|
|
67
|
+
```
|
|
68
|
+
|
|
60
69
|
### China / slow network
|
|
61
70
|
|
|
62
71
|
Set mirror environment variables before running any install method:
|
|
@@ -81,12 +81,11 @@ def test_npm_launcher_rejects_old_explicit_python(tmp_path):
|
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
@pytest.mark.skipif(NODE is None, reason="node is not installed")
|
|
84
|
-
def
|
|
85
|
-
"""voidx.js
|
|
84
|
+
def test_npm_launcher_falls_back_to_system_python(tmp_path):
|
|
85
|
+
"""voidx.js falls back to system Python when bundled Python is missing (v1.x upgrade path)."""
|
|
86
86
|
if sys.platform == "win32":
|
|
87
87
|
pytest.skip("uses a POSIX environment")
|
|
88
|
-
# No bundled Python, no VOIDX_PYTHON — should
|
|
89
|
-
# about reinstalling, not about system Python.
|
|
88
|
+
# No bundled Python, no VOIDX_PYTHON — should try system Python as fallback.
|
|
90
89
|
env = {
|
|
91
90
|
"PATH": os.environ.get("PATH", ""),
|
|
92
91
|
"VOIDX_NPM_HOME": str(tmp_path / "home"),
|
|
@@ -98,13 +97,10 @@ def test_npm_launcher_does_not_search_system_python(tmp_path):
|
|
|
98
97
|
text=True,
|
|
99
98
|
capture_output=True,
|
|
100
99
|
)
|
|
101
|
-
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
assert "python3.11" not in result.stderr
|
|
106
|
-
# Must mention reinstalling / bundled Python
|
|
107
|
-
assert "reinstall" in result.stderr.lower() or "npm install" in result.stderr.lower()
|
|
100
|
+
# With system Python available, fallback should work (exit 0 or 1 from voidx itself)
|
|
101
|
+
# Without system Python, should fail with a clear message
|
|
102
|
+
if result.returncode == 1:
|
|
103
|
+
assert "npm install" in result.stderr.lower() or "python 3.11" in result.stderr.lower()
|
|
108
104
|
|
|
109
105
|
|
|
110
106
|
@pytest.mark.skipif(NODE is None, reason="node is not installed")
|
|
@@ -152,8 +148,8 @@ def test_npm_launcher_selectPython_uses_bundled_only(tmp_path):
|
|
|
152
148
|
|
|
153
149
|
|
|
154
150
|
@pytest.mark.skipif(NODE is None, reason="node is not installed")
|
|
155
|
-
def
|
|
156
|
-
"""selectPython
|
|
151
|
+
def test_npm_launcher_selectPython_falls_back_to_system(tmp_path):
|
|
152
|
+
"""selectPython falls back to system Python when bundled Python is missing."""
|
|
157
153
|
env = {
|
|
158
154
|
"PATH": os.environ.get("PATH", ""),
|
|
159
155
|
"VOIDX_NPM_HOME": str(tmp_path / "home"),
|
|
@@ -161,7 +157,7 @@ def test_npm_launcher_selectPython_fails_without_bundled(tmp_path):
|
|
|
161
157
|
result = subprocess.run(
|
|
162
158
|
[NODE, "-e", (
|
|
163
159
|
"const m = require('./npm/bin/voidx.js');"
|
|
164
|
-
"try { m.selectPython(process.env); console.log('
|
|
160
|
+
"try { const p = m.selectPython(process.env); console.log('OK:' + p.label); }"
|
|
165
161
|
"catch(e) { console.log('ERROR:' + e.message); }"
|
|
166
162
|
)],
|
|
167
163
|
cwd=ROOT,
|
|
@@ -170,11 +166,8 @@ def test_npm_launcher_selectPython_fails_without_bundled(tmp_path):
|
|
|
170
166
|
capture_output=True,
|
|
171
167
|
)
|
|
172
168
|
assert result.returncode == 0, result.stderr
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
assert "brew install" not in result.stdout
|
|
176
|
-
assert "apt install" not in result.stdout
|
|
177
|
-
assert "python.org" not in result.stdout
|
|
169
|
+
# Should either find a system Python or report a clear error
|
|
170
|
+
assert result.stdout.startswith("OK:") or result.stdout.startswith("ERROR:")
|
|
178
171
|
|
|
179
172
|
|
|
180
173
|
@pytest.mark.skipif(NODE is None, reason="node is not installed")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/receiving-code-review/SKILL.md
RENAMED
|
File without changes
|
{voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/requesting-code-review/SKILL.md
RENAMED
|
File without changes
|
{voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/systematic-debugging/SKILL.md
RENAMED
|
File without changes
|
{voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/test-driven-development/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{voidx-2.0.0 → voidx-2.0.2}/src/voidx/skills/bundled/superpowers/writing-design-docs/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|