diff --git a/.gitignore b/.gitignore index de33f38..3dd38e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Project local history -.code-orbit/history.json +.wepaircode/history.json # Python __pycache__/ @@ -37,8 +37,8 @@ config.yaml.local .idea/ .DS_Store -.code-orbit -.code-orbit-history +.wepaircode +.wepaircode-history config.local.yaml INNER_DOC/ diff --git a/README.md b/README.md index 7fdc8a7..c4d5c4f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# ◉ CodeOrbit +# ◉ WePairCode      - + **Key Rotation Note:** New signature keys effective Sep 16, 2026. Legacy keys are no longer active on this profile. Commits signed before that date may appear Unverified as a result of the rotation. @@ -32,7 +32,7 @@ chat provider ← provider-selected chat adapter powers planning/editing architect plan ← high-level JSON plan with files, goals, and reasoning │ ▼ -review / edit plan ← user can edit .code-orbit/plan.json before approval +review / edit plan ← user can edit .wepaircode/plan.json before approval │ ▼ coder response ← exact file replacements from the approved plan @@ -58,8 +58,8 @@ Install from a release or from source using the setup steps below. ```bash # 1. Clone -git clone https://github.com/ostefani/code-orbit -cd code-orbit +git clone https://github.com/ostefani/wepaircode +cd wepaircode # 2. Create virtual environment python3 -m venv .venv @@ -119,17 +119,17 @@ Chat lifecycle at a glance: - `create_chat_adapter()` is the startup convenience path that combines build, validation, and optional probe. -Set `chat_probe_on_startup: true` if you want Code Orbit to make one live chat +Set `chat_probe_on_startup: true` if you want WePairCode to make one live chat provider readiness check at startup to verify credentials and reachability. For OpenAI-compatible providers this is a live `models.list()` request, so leave it off to keep startup cheap. -Set `embedding_probe_on_startup: true` if you want Code Orbit to make one live +Set `embedding_probe_on_startup: true` if you want WePairCode to make one live embedding request at startup to verify credentials and reachability. Leave it off to keep startup cheap and let the first semantic operation hit the backend. ### Using other local providers (Optional) -Code Orbit still works with any OpenAI-compatible local server. +WePairCode still works with any OpenAI-compatible local server. **Ollama** @@ -165,13 +165,13 @@ python main.py --dir . --prompt "" --tree python main.py --dir . --prompt "..." --config config.local.yaml ``` -When you edit the plan, Code Orbit reads `EDITOR` as a command line rather than a shell string, so values like `vim -u NONE` or `code --wait` work. The launcher is currently tuned for Unix-like environments; if Windows support becomes a goal, the editor parsing strategy will need a small portability review because `shlex.split()` uses POSIX rules. +When you edit the plan, WePairCode reads `EDITOR` as a command line rather than a shell string, so values like `vim -u NONE` or `code --wait` work. The launcher is currently tuned for Unix-like environments; if Windows support becomes a goal, the editor parsing strategy will need a small portability review because `shlex.split()` uses POSIX rules. Tokens are counted using `tokenizer_backend: estimate`. If you want to learn more on how to use tokenizers and improve tokens counting see TOKEN_COUNTING.md. ## Public API -Code Orbit now exposes a small Python API for external runners and other Python consumers. +WePairCode now exposes a small Python API for external runners and other Python consumers. ```python from pathlib import Path @@ -249,7 +249,7 @@ chat_provider_options: {} # provider-specific SDK kwargs For personal overrides without affecting git, use `config.local.yaml` (already in `.gitignore`). -Code Orbit also stores runtime artifacts under `.code-orbit/`, including the embeddings cache and prompt history. That directory is ignored in this repo by default, so you should not commit those generated files. +WePairCode also stores runtime artifacts under `.wepaircode/`, including the embeddings cache and prompt history. That directory is ignored in this repo by default, so you should not commit those generated files. ## Testing @@ -262,7 +262,7 @@ python3 main.py ## Recommended models -These models are optimized for the agentic workflows, long context, and structured JSON output required by Code Orbit. +These models are optimized for the agentic workflows, long context, and structured JSON output required by WePairCode. | Model | Size | Context | Notes | | :---------------- | :-------------- | :------ | :---------------------------------------------------------------------------------------- | @@ -298,7 +298,7 @@ llama-server \ ## Project structure ``` -code-orbit/ +wepaircode/ ├── main.py # CLI wrapper, history, prompt handling ├── api/ # Public request / result / status models ├── agent/ diff --git a/agent/config.py b/agent/config.py index 3b20ca2..bd04d4d 100644 --- a/agent/config.py +++ b/agent/config.py @@ -27,7 +27,7 @@ class ConfigLoadResult: ".venv", "venv", "env", - ".code-orbit", + ".wepaircode", "dist", "build", "*.egg-info", @@ -135,8 +135,8 @@ def _normalize_input(cls, data: Any, info: ValidationInfo) -> Any: patterns = normalized.get("ignore_patterns") if patterns is not None: normalized_patterns = tuple(patterns) - if ".code-orbit" not in normalized_patterns: - normalized_patterns = normalized_patterns + (".code-orbit",) + if ".wepaircode" not in normalized_patterns: + normalized_patterns = normalized_patterns + (".wepaircode",) normalized["ignore_patterns"] = normalized_patterns if normalized.get("chat_context_window") is None: diff --git a/agent/embeddings/cache.py b/agent/embeddings/cache.py index ca6e1ab..8422c53 100644 --- a/agent/embeddings/cache.py +++ b/agent/embeddings/cache.py @@ -8,7 +8,7 @@ from .types import ChunkEmbedding, FileEmbeddingRecord -DEFAULT_CACHE_DIR = ".code-orbit" +DEFAULT_CACHE_DIR = ".wepaircode" DEFAULT_CACHE_FILENAME = "embeddings_cache.npz" _CACHE_FORMAT_VERSION = 2 diff --git a/agent/events.py b/agent/events.py index f9549d3..d4321e1 100644 --- a/agent/events.py +++ b/agent/events.py @@ -294,7 +294,7 @@ def _open(self) -> IO[str]: def _resolve_log_dir(log_dir: Path | str | None) -> Path: if log_dir is None: - return (Path.cwd() / ".code-orbit").resolve() + return (Path.cwd() / ".wepaircode").resolve() return Path(log_dir).expanduser().resolve() @@ -303,7 +303,7 @@ def _build_event_logger_name(log_dir: Path) -> str: str(log_dir).encode("utf-8"), usedforsecurity=False, ).hexdigest()[:12] - return f"code_orbit.events.{digest}" + return f"wepaircode.events.{digest}" def build_event_log_handler(log_dir: Path) -> DeferredRotatingFileHandler: diff --git a/cliff.toml b/cliff.toml index dafbe26..626eee4 100644 --- a/cliff.toml +++ b/cliff.toml @@ -4,7 +4,7 @@ body = """ {% for group, commits in commits | group_by(attribute="group") %} ### {{ group }} {% for commit in commits %} -- {{ commit.message }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/ostefani/code-orbit/commit/{{ commit.id }})) +- {{ commit.message }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/ostefani/wepaircode/commit/{{ commit.id }})) {%- endfor %} {% endfor %} """ diff --git a/docs/index.html b/docs/index.html index 5634cbd..1d76837 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,13 +3,13 @@
-