From c2044e721b7bf14b9de8185d651fdfc6c23053d9 Mon Sep 17 00:00:00 2001 From: Lakshman Patel Date: Fri, 4 Sep 2026 06:46:54 +0530 Subject: [PATCH] fix: retarget eyrie repo identity to graycode-router GitHub renamed GrayCodeAI/eyrie to GrayCodeAI/graycode-router; the Go module path (github.com/GrayCodeAI/eyrie), EYRIE_* env contract (read by the engine itself) and Go imports are unchanged and stay. Manifest directory/github_repo retargeted (module+facade intact); clone URLs, sibling paths and README links retargeted; release-parity now resolves modules via the manifest instead of assuming dir==module. Verified: manifest validate (stub harness), release parity OK, boundary guard, build. --- AGENTS.md | 2 +- README.md | 6 +++--- docs/DEVELOPER-PATH.md | 2 +- docs/DYNAMIC-MODELS.md | 2 +- docs/plans/fix-critical-and-high-review.md | 2 +- ecosystem.yaml | 4 ++-- scripts/check-module-release-parity.sh | 12 +++++++++++- 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d11be339..8e469916 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -192,7 +192,7 @@ Legacy `graycode/shared/types` has been removed. Cross-repo severity and finding ### Architecture note: provider ownership Implement provider protocols, adapters, catalog metadata, credential mappings, and -provider contract tests in `../eyrie` (the eyrie sibling repo) first. Graycode consumes providers only +provider contract tests in `../graycode-router` (the eyrie engine's repo) first. Graycode consumes providers only through Eyrie's stable engine facade; Graycode changes should be limited to host UX and facade integration. Concentrate AI is a pay-as-you-go gateway implemented with its native Responses API (`/v1/responses`) under the diff --git a/README.md b/README.md index ce22c01c..949b58e7 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ graycode is an AI-powered coding agent that lives in your terminal. It reads you **Developer path:** one machine, keychain credentials, local memory. Run `graycode path` to check readiness. -- **Model-agnostic** — supports 28 first-class providers through [eyrie](https://github.com/GrayCodeAI/eyrie), including Anthropic, OpenAI, Gemini, Fireworks AI, Concentrate AI (pay-as-you-go), DeepSeek, and Ollama +- **Model-agnostic** — supports 28 first-class providers through [eyrie](https://github.com/GrayCodeAI/graycode-router), including Anthropic, OpenAI, Gemini, Fireworks AI, Concentrate AI (pay-as-you-go), DeepSeek, and Ollama - **Zero CGO** — single static binary, cross-compiled for linux/darwin/windows on amd64/arm64 - **Privacy-first** — your code never leaves your machine except to the LLM API you choose - **Docker-only execution** — agent commands run in an isolated container and @@ -395,7 +395,7 @@ graycode works with any LLM provider. **Developer path:** paste keys in `/config | Xiaomi (MiMo) Token Plan | `xiaomi_mimo_token_plan` | `XIAOMI_MIMO_TOKEN_PLAN_API_KEY` (pick region in `/config`) | | Ollama (local) | `ollama` | `OLLAMA_BASE_URL` (no API key) | -Provider routing, model resolution, and retries are handled by [eyrie](https://github.com/GrayCodeAI/eyrie). +Provider routing, model resolution, and retries are handled by [eyrie](https://github.com/GrayCodeAI/graycode-router). For deployment-aware routing, set `"deployment_routing": true` in `.graycode/settings.json` or export `GRAYCODE_DEPLOYMENT_ROUTING=true`. Graycode will route canonical model IDs through Eyrie's deployment catalog, so new models can be exposed by refreshing the catalog @@ -482,7 +482,7 @@ You may keep a **personal** parent **`go.work`** that lists alternate clones on | Component | Repository | Purpose | |---|---|---| | **graycode** | This repo | AI coding agent | -| **eyrie** | [GrayCodeAI/eyrie](https://github.com/GrayCodeAI/eyrie) | LLM provider runtime | +| **eyrie** | [GrayCodeAI/graycode-router](https://github.com/GrayCodeAI/graycode-router) | LLM provider runtime | For the consolidated repo map and the current-vs-proposed architecture diagrams, see [docs/architecture/graycode-current-vs-proposed.md](docs/architecture/graycode-current-vs-proposed.md). For execution-graph ownership, automatic capture seams, export/sync commands, diff --git a/docs/DEVELOPER-PATH.md b/docs/DEVELOPER-PATH.md index 28f3e2ca..d34571b2 100644 --- a/docs/DEVELOPER-PATH.md +++ b/docs/DEVELOPER-PATH.md @@ -33,7 +33,7 @@ workspace; they are not nested under Graycode: ```bash mkdir graycode-eco && cd graycode-eco git clone https://github.com/GrayCodeAI/graycode-cli -git clone https://github.com/GrayCodeAI/eyrie +git clone https://github.com/GrayCodeAI/graycode-router cd graycode-cli make setup go build -o graycode ./cmd/graycode diff --git a/docs/DYNAMIC-MODELS.md b/docs/DYNAMIC-MODELS.md index 59eaa531..4a131d15 100644 --- a/docs/DYNAMIC-MODELS.md +++ b/docs/DYNAMIC-MODELS.md @@ -100,7 +100,7 @@ hosts must be isolated from one another. 2. Add Eyrie tests for cache and live discovery, credential status, selection, and generation/streaming. 3. Commit and verify standalone Eyrie. -4. Advance Graycode's `../eyrie` sibling checkout to that exact commit, then update +4. Advance Graycode's `../graycode-router` sibling checkout to that exact commit, then update Graycode's module version when the Eyrie revision is published. 5. Verify both the workspace (`go.work`) and published-module (`GOWORK=off`) build modes. diff --git a/docs/plans/fix-critical-and-high-review.md b/docs/plans/fix-critical-and-high-review.md index b990aec7..9a281bb1 100644 --- a/docs/plans/fix-critical-and-high-review.md +++ b/docs/plans/fix-critical-and-high-review.md @@ -78,7 +78,7 @@ These were documented in the original plan as out-of-scope-for-this-PR. They rem ## Context A deep code review of `eyrie` and `graycode` (companion plan at -`../eyrie/docs/plans/fix-critical-and-high-review.md`) surfaced 7 critical +`../graycode-router/docs/plans/fix-critical-and-high-review.md`) surfaced 7 critical and 9 high items. This plan covers **all graycode items** (C3, C4, C5, H5, H6, H7, H8, H9) broken into a sequence of small, reviewable PRs. diff --git a/ecosystem.yaml b/ecosystem.yaml index f49d58fb..74e8f3d4 100644 --- a/ecosystem.yaml +++ b/ecosystem.yaml @@ -19,8 +19,8 @@ repositories: module: github.com/GrayCodeAI/graycode-cli workspace: true - - directory: eyrie - github_repo: eyrie + - directory: graycode-router + github_repo: graycode-router product_name: Eyrie kind: engine language: go diff --git a/scripts/check-module-release-parity.sh b/scripts/check-module-release-parity.sh index 33a2558d..e24f22fe 100755 --- a/scripts/check-module-release-parity.sh +++ b/scripts/check-module-release-parity.sh @@ -7,15 +7,25 @@ set -euo pipefail # Run from the Graycode repository root. ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +MANIFEST="${ROOT_DIR}/ecosystem.yaml" repos=() while IFS= read -r repo; do [[ "${repo}" != "graycode-cli" && -n "${repo}" ]] && repos+=("${repo}") done < <("${ROOT_DIR}/scripts/ecosystem-manifest.sh" list workspace) failed=0 +# Directory and module path differ when a repo is renamed (e.g. graycode-router +# hosts module github.com/GrayCodeAI/eyrie), so resolve via the manifest. +module_for_repo() { + awk -v dir="$1" ' + /^ - directory:/ { cur=$0; sub(/^ - directory:[[:space:]]*/, "", cur); next } + /^ module:/ && cur == dir { mod=$0; sub(/^ module:[[:space:]]*/, "", mod); print mod; exit } + ' "${MANIFEST}" +} + printf '%-24s %-14s %s\n' MODULE MODULE_COMMIT STATUS for repo in "${repos[@]}"; do - module="github.com/GrayCodeAI/${repo}" + module="$(module_for_repo "${repo}")" version=$(GOWORK=off go list -m -f '{{.Version}}' "$module" 2>/dev/null || true) if [[ -z "$version" ]]; then