Skip to content

Commit 532e8a6

Browse files
committed
docs: merge main into three-repo architecture docs
2 parents 16891ac + 03bb7fb commit 532e8a6

306 files changed

Lines changed: 1758 additions & 1750 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.env.example‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ GRAYCODE_DAEMON_API_KEY=
55
# The following are NOT read by graycode-cli — setting them has no effect:
66
# GRAYCODE_DAEMON_PORT / GRAYCODE_DAEMON_HOST — daemon binds 127.0.0.1:4590;
77
# override with the --host / --port flags (see `graycode daemon start --help`)
8-
# EYRIE_API_KEY / EYRIE_BASE_URL, HARRIER_API_KEY / HARRIER_ADDR —
8+
# GRAYCODE_ROUTER_API_KEY / GRAYCODE_ROUTER_BASE_URL, HARRIER_API_KEY / HARRIER_ADDR —
99
# consumed by sibling services, not by this binary
1010
# See docs/user-guide/05-configuration.md for the full precedence chain.
File renamed without changes.

‎.github/workflows/ci.yml‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ env:
3131
# Go's reference is explicit that a committed go.work "may cause a continuous
3232
# integration (CI) system to select and thus test the wrong versions of a
3333
# module's dependencies" and that "CI systems should generally not be allowed to
34-
# use the go.work file". Because ./.github/actions/checkout-eyrie clones the
34+
# use the go.work file". Because ./.github/actions/checkout-graycode-router clones the
3535
# siblings at branch HEAD into the workspace parent, workspace mode would silently
3636
# hide version skew (e.g. a shared pin that no longer matches).
3737
# The `module` job opts back in (GOWORK: "auto") since `go work sync` and the
@@ -77,10 +77,10 @@ jobs:
7777
run: bash ./scripts/check-ecosystem-boundaries.sh
7878
- name: internal layer boundary guard
7979
run: bash ./scripts/check-internal-layer-imports.sh
80-
- name: eyrie client boundary guard
81-
run: bash ./scripts/check-eyrie-client-imports.sh
82-
- name: eyrie engine facade boundary guard
83-
run: bash ./scripts/check-eyrie-engine-boundary.sh
80+
- name: graycode-router client boundary guard
81+
run: bash ./scripts/check-graycode-router-client-imports.sh
82+
- name: graycode-router engine facade boundary guard
83+
run: bash ./scripts/check-graycode-router-engine-boundary.sh
8484

8585
# -------------------------------------------------------------------------
8686
# 2. Module hygiene — tidy, verify Graycode plus the sibling Go modules via go.work.
@@ -98,7 +98,7 @@ jobs:
9898
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
9999
with:
100100
fetch-depth: 0
101-
- uses: ./.github/actions/checkout-eyrie
101+
- uses: ./.github/actions/checkout-graycode-router
102102
with:
103103
ref: ${{ github.head_ref == 'feat/ecosystem-wiring-pr' && 'feat/ecosystem-wiring' || github.head_ref || github.ref_name }}
104104
- name: Generate ecosystem workspace
@@ -149,7 +149,7 @@ jobs:
149149
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
150150
with:
151151
fetch-depth: 0
152-
- uses: ./.github/actions/checkout-eyrie
152+
- uses: ./.github/actions/checkout-graycode-router
153153
with:
154154
ref: ${{ github.head_ref || github.ref_name }}
155155
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -172,7 +172,7 @@ jobs:
172172
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
173173
with:
174174
fetch-depth: 0
175-
- uses: ./.github/actions/checkout-eyrie
175+
- uses: ./.github/actions/checkout-graycode-router
176176
with:
177177
ref: ${{ github.head_ref || github.ref_name }}
178178
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -191,7 +191,7 @@ jobs:
191191
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
192192
with:
193193
fetch-depth: 0
194-
- uses: ./.github/actions/checkout-eyrie
194+
- uses: ./.github/actions/checkout-graycode-router
195195
with:
196196
ref: ${{ github.head_ref || github.ref_name }}
197197
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -216,7 +216,7 @@ jobs:
216216
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
217217
with:
218218
fetch-depth: 0
219-
- uses: ./.github/actions/checkout-eyrie
219+
- uses: ./.github/actions/checkout-graycode-router
220220
with:
221221
ref: ${{ github.head_ref || github.ref_name }}
222222
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -245,7 +245,7 @@ jobs:
245245
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
246246
with:
247247
fetch-depth: 0
248-
- uses: ./.github/actions/checkout-eyrie
248+
- uses: ./.github/actions/checkout-graycode-router
249249
with:
250250
ref: ${{ github.head_ref || github.ref_name }}
251251
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -315,7 +315,7 @@ jobs:
315315
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
316316
with:
317317
fetch-depth: 0
318-
- uses: ./.github/actions/checkout-eyrie
318+
- uses: ./.github/actions/checkout-graycode-router
319319
with:
320320
ref: ${{ github.head_ref || github.ref_name }}
321321
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -423,7 +423,7 @@ jobs:
423423
runs-on: ubuntu-latest
424424
steps:
425425
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
426-
- uses: ./.github/actions/checkout-eyrie
426+
- uses: ./.github/actions/checkout-graycode-router
427427
with:
428428
ref: ${{ github.head_ref || github.ref_name }}
429429
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
@@ -481,7 +481,7 @@ jobs:
481481
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
482482
with:
483483
fetch-depth: 0
484-
- uses: ./.github/actions/checkout-eyrie
484+
- uses: ./.github/actions/checkout-graycode-router
485485
with:
486486
ref: ${{ github.head_ref || github.ref_name }}
487487
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -526,7 +526,7 @@ jobs:
526526
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
527527
with:
528528
fetch-depth: 0
529-
- uses: ./.github/actions/checkout-eyrie
529+
- uses: ./.github/actions/checkout-graycode-router
530530
with:
531531
ref: ${{ github.head_ref || github.ref_name }}
532532
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
@@ -553,7 +553,7 @@ jobs:
553553
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
554554
with:
555555
fetch-depth: 0
556-
- uses: ./.github/actions/checkout-eyrie
556+
- uses: ./.github/actions/checkout-graycode-router
557557
with:
558558
ref: ${{ github.head_ref || github.ref_name }}
559559
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0

‎.github/workflows/compatibility-matrix.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
runs-on: ubuntu-latest
2424
steps:
2525
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
26-
- uses: ./.github/actions/checkout-eyrie
26+
- uses: ./.github/actions/checkout-graycode-router
2727
with:
2828
ref: ${{ github.head_ref || github.ref_name }}
2929
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0

‎.github/workflows/release.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
fetch-depth: 0 # goreleaser needs full history for changelog
2727

2828
# Releases build against the sibling repos resolved via the workspace go.work.
29-
- uses: ./.github/actions/checkout-eyrie
29+
- uses: ./.github/actions/checkout-graycode-router
3030
with:
3131
ref: ${{ github.ref_name }}
3232

‎.shared-templates/scripts/check-ecosystem-boundaries.sh.tmpl‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
1212
cd "$ROOT_DIR"
1313

1414
# =============================================================================
15-
# VARIANT 1 — Support engine (eyrie, harrier, shrike, swift, kestrel, merlin).
15+
# VARIANT 1 — Support engine (graycode-router, harrier, shrike, swift, kestrel, merlin).
1616
# Engines are peers: they may depend on falcon,
1717
# but never on graycode/internal/* or another engine.
1818
# =============================================================================
@@ -81,7 +81,7 @@ echo "ecosystem boundary guard passed"
8181
# only — never on a support engine directly, and never on graycode/internal.
8282
# =============================================================================
8383
#
84-
# FORBIDDEN_ENGINES='github\.com/GrayCodeAI/(eyrie|harrier|shrike|swift|kestrel|merlin)(/|")'
84+
# FORBIDDEN_ENGINES='github\.com/GrayCodeAI/(graycode-router|harrier|shrike|swift|kestrel|merlin)(/|")'
8585
# FORBIDDEN_INTERNAL='github\.com/GrayCodeAI/graycode-cli/internal'
8686
#
8787
# (same rg/grep + report pattern as Variant 1, naming "SDKs/skills must go

‎.shared-templates/workflows/go-release.yml.tmpl‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ jobs:
2323
fetch-depth: 0 # goreleaser needs full history for changelog
2424

2525
# Only needed if this repo has local workspace dependencies on other
26-
# graycode-eco repos at build time (graycode itself clones eyrie this way via
27-
# ./.github/actions/checkout-eyrie). Omit for repos with none.
26+
# graycode-eco repos at build time (graycode itself clones graycode-router this way via
27+
# ./.github/actions/checkout-graycode-router). Omit for repos with none.
2828

2929
- name: Set up Go
3030
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0

‎AGENTS.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ alwaysApply: false
77
# Extending graycode
88

99
graycode is an open-source code intelligence platform. It lives in the `graycode-eco`
10-
workspace alongside the ecosystem repos that power it (`eyrie`,
10+
workspace alongside the ecosystem repos that power it (`graycode-router`,
1111
`shrike`, `harrier`, `swift`, `kestrel`, `merlin`). This document describes how to extend
1212
graycode with custom tools, skills, hooks, and integrations.
1313

@@ -192,8 +192,8 @@ Legacy `graycode/shared/types` has been removed. Cross-repo severity and finding
192192
### Architecture note: provider ownership
193193

194194
Implement provider protocols, adapters, catalog metadata, credential mappings, and
195-
provider contract tests in `../graycode-router` (the eyrie engine's repo) first. Graycode consumes providers only
196-
through Eyrie's stable engine facade; Graycode changes should be limited to host UX
195+
provider contract tests in `../graycode-router` (the graycode-router engine's repo) first. Graycode consumes providers only
196+
through GraycodeRouter's stable engine facade; Graycode changes should be limited to host UX
197197
and facade integration. Concentrate AI is a pay-as-you-go gateway implemented
198198
with its native Responses API (`/v1/responses`) under the
199199
`concentrate-payg` deployment.
@@ -245,7 +245,7 @@ This project is indexed by GitNexus as **graycode** (97743 symbols, 322940 relat
245245

246246
### Workspace workflow (sibling repos)
247247

248-
graycode depends on ecosystem repos (`eyrie`, etc.) as independent sibling repos in the `graycode-eco` workspace. Graycode's `go.work` lists them as `../<repo>`, so local changes in any sibling are automatically picked up by graycode. Each sibling is its own git repo, versioned and released independently.
248+
graycode depends on ecosystem repos (`graycode-router`, etc.) as independent sibling repos in the `graycode-eco` workspace. Graycode's `go.work` lists them as `../<repo>`, so local changes in any sibling are automatically picked up by graycode. Each sibling is its own git repo, versioned and released independently.
249249

250250
1. Edit + test in `../<repo>` — run its tests, run `make test` in graycode
251251
2. Push from the sibling: `git push origin <branch>`

‎CHANGELOG.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2323
## [0.2.0] — 2026-07-13
2424

2525
### Changed
26-
- **Graycode/Eyrie production boundary completed**: Graycode owns the product face,
27-
sessions, tools, permissions, and public schemas while Eyrie v0.2.1 owns
26+
- **Graycode/GraycodeRouter production boundary completed**: Graycode owns the product face,
27+
sessions, tools, permissions, and public schemas while GraycodeRouter v0.2.1 owns
2828
credentials, catalog resolution, provider transport, resilience, and usage
29-
telemetry behind the stable `eyrie/engine` facade.
29+
telemetry behind the stable `graycode-router/engine` facade.
3030
- **Provider routing and usage attribution hardened**: resolved route changes,
3131
continuation segments, and terminal usage are propagated without duplicate
32-
accounting, and production Eyrie calls use exactly one resilience layer.
32+
accounting, and production GraycodeRouter calls use exactly one resilience layer.
3333
- **Daemon conversations are durable**: JSON and SSE chat requests create or
3434
resume persisted sessions, expose stable session IDs, preserve metadata, and
3535
distinguish invalid, missing, and corrupt state.
@@ -42,8 +42,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4242
- **`--permission-mode` CLI flag removed**; `--dangerously-skip-permissions` unchanged (now maps to the Autonomous tier). New `--dry-run` flag added as an unconditional kill switch (deny every tool call, regardless of tier or spec stage) — replaces `dontAsk`'s hard-lockout role.
4343
- **Version re-baselined to `0.1.0`** across `cmd/graycode/main.go`, `cmd/daemon.go`,
4444
`flake.nix`, `.github/workflows/release.yml`, and the `update`/daemon test suites, aligning graycode
45-
with the rest of the GrayCodeAI ecosystem (`eyrie`, `shrike`, `harrier`, `kestrel`, `merlin`).
46-
- **Architecture boundary hardening**: Graycode now owns runtime request/response DTOs, transport config/provider seams, and review/verification product-boundary contracts, with `eyrie/client` usage restricted to internal adapters and guarded in CI.
45+
with the rest of the GrayCodeAI ecosystem (`graycode-router`, `shrike`, `harrier`, `kestrel`, `merlin`).
46+
- **Architecture boundary hardening**: Graycode now owns runtime request/response DTOs, transport config/provider seams, and review/verification product-boundary contracts, with `graycode-router/client` usage restricted to internal adapters and guarded in CI.
4747
- **`shared/types` removed**: Graycode no longer ships the old shared type path, and local boundary checks now block any attempt to reintroduce it.
4848

4949
### Added
@@ -231,5 +231,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
231231
### Added
232232
- Project scaffold with cobra CLI and Bubbletea TUI
233233
- Interactive chat REPL with textarea input, spinner, lipgloss styling
234-
- eyrie wired as LLM provider dependency
234+
- graycode-router wired as LLM provider dependency
235235
- GitHub Actions CI

‎Makefile‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ GORELEASER := $(GOBIN_DIR)/goreleaser
3636
# ---------------------------------------------------------------------------
3737
# Phony declarations (alphabetical).
3838
# ---------------------------------------------------------------------------
39-
.PHONY: all bench boundaries build check-replace ci clean contracts-guard ecosystem-guard eyrie-client-guard eyrie-engine-guard manifest-guard peer-guard internal-layers-guard package-boundaries-guard release-parity cover cover-new fmt help install lint lint-fix \
39+
.PHONY: all bench boundaries build check-replace ci clean contracts-guard ecosystem-guard graycode-router-client-guard graycode-router-engine-guard manifest-guard peer-guard internal-layers-guard package-boundaries-guard release-parity cover cover-new fmt help install lint lint-fix \
4040
release security setup smoke path sync test test-10x test-live test-new test-race tidy version vet api-docs api-validate workspace
4141

4242
check-replace: ## Fail if go.mod has local replace directives (run before tagging)
@@ -118,11 +118,11 @@ contracts-guard: ## Fail on any legacy imports of removed graycode/shared/types.
118118
ecosystem-guard: ## Fail if external ecosystem repos import graycode/internal or removed graycode/shared/types.
119119
bash ./scripts/check-ecosystem-boundaries.sh
120120

121-
eyrie-client-guard: ## Fail on any production eyrie/client import.
122-
bash ./scripts/check-eyrie-client-imports.sh
121+
graycode-router-client-guard: ## Fail on any production graycode-router/client import.
122+
bash ./scripts/check-graycode-router-client-imports.sh
123123

124-
eyrie-engine-guard: ## Require all production Eyrie imports to use the stable engine facade.
125-
bash ./scripts/check-eyrie-engine-boundary.sh
124+
graycode-router-engine-guard: ## Require all production GraycodeRouter imports to use the stable engine facade.
125+
bash ./scripts/check-graycode-router-engine-boundary.sh
126126

127127
peer-guard: ## Fail if support engines import each other instead of depending only on Graycode contracts.
128128
bash ./scripts/check-support-repo-coupling.sh
@@ -133,7 +133,7 @@ internal-layers-guard: ## Enforce one-way dependencies across stable Graycode in
133133
package-boundaries-guard: ## Enforce AST/package-graph boundaries with file/line diagnostics.
134134
bash ./scripts/check-package-boundaries.sh
135135

136-
boundaries: manifest-guard check-replace contracts-guard ecosystem-guard eyrie-client-guard eyrie-engine-guard peer-guard internal-layers-guard package-boundaries-guard ## Alias for all boundary guards (matches `make boundaries` in engine repos).
136+
boundaries: manifest-guard check-replace contracts-guard ecosystem-guard graycode-router-client-guard graycode-router-engine-guard peer-guard internal-layers-guard package-boundaries-guard ## Alias for all boundary guards (matches `make boundaries` in engine repos).
137137

138138
release-parity: ## Verify every go.mod ecosystem version resolves to a reachable remote commit.
139139
bash ./scripts/check-module-release-parity.sh

0 commit comments

Comments
 (0)