ctrlcode 0.1.0__tar.gz → 0.1.1__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.
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/PKG-INFO +4 -2
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/pyproject.toml +6 -12
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/__init__.py +1 -1
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/__init__.py +1 -1
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_pr_automation.py +1 -1
- ctrlcode-0.1.0/tui/README.md +0 -84
- ctrlcode-0.1.0/tui/pyproject.toml +0 -21
- ctrlcode-0.1.0/tui/src/ctrlcode_tui/__init__.py +0 -2
- ctrlcode-0.1.0/tui/src/ctrlcode_tui/py.typed +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/.gitignore +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/AGENT.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/INTEGRATION_SUMMARY.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/README.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/benchmarks/benchmark_batch_embedding.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/benchmarks/benchmark_lru_cache.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/benchmarks/benchmark_persistent_index.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/benchmarks/historical_learning_benchmark.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/benchmarks/profile_performance.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/config.example.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/AGENTS.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/WORLD_CLASS_AGENT_PROPOSAL.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/agent-registry-integration.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/event-driven-tui-summary.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/multi-agent-architecture.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/multi-agent-tui-integration.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/simplified-tui-redesign.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/tui-integration-complete.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/active-plans/tui-integration-progress.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/architectural-patterns/event-bus-architecture.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/architectural-patterns.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/coding-standards.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/core-beliefs.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/generated/tool-registry.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/golden-principles/index.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/golden-principles/no-yolo-parsing.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/golden-principles/prefer-shared-utils.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/golden-principles/structured-logging.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/references/harness-utils-api.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/references/multi-agent-guide.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/tech-debt/tracker.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/user-guide/configuration.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/user-guide/features.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/user-guide/getting-started.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/docs/user-guide/security.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/main.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/SYSTEM_PROMPT.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/cleanup.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/coder.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/executor.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/orchestrator.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/planner.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/prompts/agents/reviewer.md +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/cleanup.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/communication.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/observability.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/react_loop.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/registry.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/result_parser.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/agents/workflow.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/ast_diff.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/bug_detector.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/code_graphs.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/semantic.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/static.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/synthesizer.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/analysis/tests.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/cleanup/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/cleanup/auto_merge.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/cleanup/doc_gardening.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/cleanup/pr_automation.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/cleanup/scheduler.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/config.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/embeddings/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/embeddings/embedder.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/embeddings/vector_store.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/analyzer.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/budget.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/context.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/context_fuzzer.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/derived_orchestrator.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/fuzzing/oracle_adapter.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/linters/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/linters/hand_rolled_utils.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/linters/yolo_parsing.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/metrics/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/metrics/dashboard.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/metrics/tech_debt.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/paths.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/permissions.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/providers/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/providers/anthropic.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/providers/base.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/providers/openai.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/providers/parallel.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/server.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/session/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/session/baseline.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/session/manager.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/builtin/commit.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/builtin/docs.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/builtin/refactor.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/builtin/review.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/builtin/test.toml +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/loader.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/skills/registry.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/storage/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/storage/history_db.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/bash.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/browser.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/executor.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/explore.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/mcp.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/observability.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/registry.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/todo.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/update.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/src/ctrlcode/tools/webfetch.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/app.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/app_event_bus_example.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/app_simplified_example.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/client.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/event_bus.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/event_bus_new.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/launcher.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/__init__.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/agent_panel.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/code_block.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/fuzzing.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/history_input.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modal_base.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/__init__.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/agents_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/history_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/metrics_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/permission_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/review_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/status_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/tasks_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/observability_results.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/parallel_execution.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/review_feedback.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/status_line.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/task_graph.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/todo_modal.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/tool_panel.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/variants.py +0 -0
- {ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/workflow_status.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/analysis/test_bug_detector.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/analysis/test_code_graphs.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/conftest.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/demo_agents.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/embeddings/test_batch_embedding.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/embeddings/test_embedder.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/embeddings/test_vector_store.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/fuzzing/test_context.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/fuzzing/test_oracle_adapter.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/fuzzing/test_persistent_vector_store.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/integration/test_full_pipeline.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/integration_example.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/metrics/test_dashboard.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/mocks/__init__.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/mocks/mock_provider.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/storage/test_history_db.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/storage/test_oracle_versioning.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_agent_execution.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_agent_registry.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_auto_merge.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_browser_tools.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_cleanup_scheduler.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_doc_gardening.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_linters.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_observability_tools.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/tests/test_tech_debt_metrics.py +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/twitter.txt +0 -0
- {ctrlcode-0.1.0 → ctrlcode-0.1.1}/wandb.key +0 -0
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ctrlcode
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Adaptive coding harness with differential fuzzing - transforms AI slop into production-ready code
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Requires-Dist: aiohttp>=3.10.0
|
|
7
7
|
Requires-Dist: anthropic>=0.40.0
|
|
8
8
|
Requires-Dist: apscheduler>=3.11.2
|
|
9
|
-
Requires-Dist: ctrlcode-tui
|
|
10
9
|
Requires-Dist: faiss-cpu>=1.13.2
|
|
11
10
|
Requires-Dist: harness-utils>=0.3.1
|
|
11
|
+
Requires-Dist: httpx>=0.28.1
|
|
12
12
|
Requires-Dist: mcp>=1.0.0
|
|
13
13
|
Requires-Dist: networkx>=3.6.1
|
|
14
14
|
Requires-Dist: openai>=1.54.0
|
|
15
15
|
Requires-Dist: platformdirs>=4.5.1
|
|
16
16
|
Requires-Dist: playwright>=1.58.0
|
|
17
|
+
Requires-Dist: pyperclip>=1.11.0
|
|
17
18
|
Requires-Dist: sentence-transformers>=5.2.2
|
|
19
|
+
Requires-Dist: textual>=7.5.0
|
|
18
20
|
Requires-Dist: tiktoken>=0.12.0
|
|
19
21
|
Description-Content-Type: text/markdown
|
|
20
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ctrlcode"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "Adaptive coding harness with differential fuzzing - transforms AI slop into production-ready code"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -17,11 +17,13 @@ dependencies = [
|
|
|
17
17
|
"sentence-transformers>=5.2.2",
|
|
18
18
|
"faiss-cpu>=1.13.2",
|
|
19
19
|
"networkx>=3.6.1",
|
|
20
|
-
"
|
|
20
|
+
"httpx>=0.28.1",
|
|
21
|
+
"pyperclip>=1.11.0",
|
|
22
|
+
"textual>=7.5.0",
|
|
21
23
|
]
|
|
22
24
|
|
|
23
25
|
[project.scripts]
|
|
24
|
-
ctrlcode = "
|
|
26
|
+
ctrlcode = "tui.app:main"
|
|
25
27
|
ctrlcode-server = "ctrlcode.server:main"
|
|
26
28
|
|
|
27
29
|
[build-system]
|
|
@@ -29,7 +31,7 @@ requires = ["hatchling"]
|
|
|
29
31
|
build-backend = "hatchling.build"
|
|
30
32
|
|
|
31
33
|
[tool.hatch.build.targets.wheel]
|
|
32
|
-
packages = ["src/ctrlcode"]
|
|
34
|
+
packages = ["src/ctrlcode", "src/tui"]
|
|
33
35
|
|
|
34
36
|
[tool.uv]
|
|
35
37
|
package = true
|
|
@@ -39,11 +41,3 @@ dev-dependencies = [
|
|
|
39
41
|
"ruff>=0.6.0",
|
|
40
42
|
"pytest-asyncio>=1.3.0",
|
|
41
43
|
]
|
|
42
|
-
|
|
43
|
-
[tool.uv.sources]
|
|
44
|
-
ctrlcode-tui = { workspace = true }
|
|
45
|
-
|
|
46
|
-
[tool.uv.workspace]
|
|
47
|
-
members = [
|
|
48
|
-
"tui",
|
|
49
|
-
]
|
|
@@ -25,7 +25,7 @@ def process(data):
|
|
|
25
25
|
subprocess.run(["git", "config", "user.name", "Test"], cwd=workspace, capture_output=True)
|
|
26
26
|
subprocess.run(["git", "config", "user.email", "test@test.com"], cwd=workspace, capture_output=True)
|
|
27
27
|
subprocess.run(["git", "add", "."], cwd=workspace, capture_output=True)
|
|
28
|
-
subprocess.run(["git", "commit", "-m", "Initial"], cwd=workspace, capture_output=True)
|
|
28
|
+
subprocess.run(["git", "commit", "--no-gpg-sign", "-m", "Initial"], cwd=workspace, capture_output=True)
|
|
29
29
|
|
|
30
30
|
return workspace
|
|
31
31
|
|
ctrlcode-0.1.0/tui/README.md
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Ctrl+Code TUI Client
|
|
2
|
-
|
|
3
|
-
Terminal user interface for ctrl-code coding harness.
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **Multi-session tabs**: Create multiple sessions with `/new` command
|
|
8
|
-
- **Fuzzing progress**: Real-time visualization of differential fuzzing iterations
|
|
9
|
-
- **Variant comparison**: Side-by-side view of code variants during fuzzing
|
|
10
|
-
- **Tool inspection**: Monitor tool calls and results in real-time
|
|
11
|
-
- **Streaming responses**: See AI responses as they're generated
|
|
12
|
-
- **Keyboard shortcuts**: Efficient navigation and control
|
|
13
|
-
|
|
14
|
-
## Installation
|
|
15
|
-
|
|
16
|
-
From the `tui/` directory:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
uv sync
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Usage
|
|
23
|
-
|
|
24
|
-
Start the ctrl-code server first:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
cd .. && python -m ctrlcode.server
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Then run the TUI client:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
ctrlcode-tui
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Commands
|
|
37
|
-
|
|
38
|
-
- `/new` - Create a new session tab
|
|
39
|
-
- `/clear` - Clear current chat
|
|
40
|
-
- `/sidebar` - Toggle sidebar visibility
|
|
41
|
-
- `/help` - Show help message
|
|
42
|
-
|
|
43
|
-
## Keyboard Shortcuts
|
|
44
|
-
|
|
45
|
-
- `Ctrl+N` - New session
|
|
46
|
-
- `Ctrl+S` - Toggle sidebar
|
|
47
|
-
- `Ctrl+Q` - Quit
|
|
48
|
-
- `Escape` - Clear input
|
|
49
|
-
|
|
50
|
-
## Layout
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
┌────────────────────────────────────────────────────────┐
|
|
54
|
-
│ Header │
|
|
55
|
-
├─────────────────────────────────┬──────────────────────┤
|
|
56
|
-
│ Chat Area (70%) │ Sidebar (30%) │
|
|
57
|
-
│ ┌───────────────────────────┐ │ ┌────────────────┐ │
|
|
58
|
-
│ │ Session Tabs │ │ │ Tool Calls │ │
|
|
59
|
-
│ │ ┌───────────────────────┐ │ │ │ │ │
|
|
60
|
-
│ │ │ Streaming chat │ │ │ │ │ │
|
|
61
|
-
│ │ │ │ │ │ └────────────────┘ │
|
|
62
|
-
│ │ │ │ │ │ ┌────────────────┐ │
|
|
63
|
-
│ │ │ │ │ │ │ Fuzzing │ │
|
|
64
|
-
│ │ │ │ │ │ │ Progress │ │
|
|
65
|
-
│ │ └───────────────────────┘ │ │ └────────────────┘ │
|
|
66
|
-
│ └───────────────────────────┘ │ ┌────────────────┐ │
|
|
67
|
-
│ │ │ Variant │ │
|
|
68
|
-
│ │ │ Comparison │ │
|
|
69
|
-
│ │ └────────────────┘ │
|
|
70
|
-
├─────────────────────────────────┴──────────────────────┤
|
|
71
|
-
│ Input: Type a message or /command... │
|
|
72
|
-
├────────────────────────────────────────────────────────┤
|
|
73
|
-
│ Footer (keyboard shortcuts) │
|
|
74
|
-
└────────────────────────────────────────────────────────┘
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Architecture
|
|
78
|
-
|
|
79
|
-
- `app.py` - Main Textual application
|
|
80
|
-
- `client.py` - JSON-RPC client for server communication
|
|
81
|
-
- `widgets/` - Custom widgets
|
|
82
|
-
- `fuzzing.py` - Fuzzing progress visualization
|
|
83
|
-
- `tool_panel.py` - Tool call inspection
|
|
84
|
-
- `variants.py` - Variant comparison view
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "ctrlcode-tui"
|
|
3
|
-
version = "0.1.0"
|
|
4
|
-
description = "TUI client for ctrl-code coding harness"
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
authors = [
|
|
7
|
-
{ name = "Jeremy Tregunna", email = "jeremy@tregunna.ca" }
|
|
8
|
-
]
|
|
9
|
-
requires-python = ">=3.12"
|
|
10
|
-
dependencies = [
|
|
11
|
-
"httpx>=0.28.1",
|
|
12
|
-
"pyperclip>=1.11.0",
|
|
13
|
-
"textual>=7.5.0",
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
[project.scripts]
|
|
17
|
-
ctrlcode = "ctrlcode_tui.app:main"
|
|
18
|
-
|
|
19
|
-
[build-system]
|
|
20
|
-
requires = ["hatchling"]
|
|
21
|
-
build-backend = "hatchling.build"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ctrlcode-0.1.0/tui/ctrlcode_tui → ctrlcode-0.1.1/src/tui}/widgets/modals/permission_modal.py
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
|