Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,9 @@ dist/
.DS_Store
coverage.out

# Go workspace (local dev only — each developer creates their own)
go.work
go.work.sum

# Lefthook-generated wrappers (logic lives in lefthook.yml)
.githooks/
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ When your app calls a model, eyrie figures out which provider to use, how to tal

eyrie is a Hawk support engine. Keep the dependency edge one-way:

- depend on `hawk-core-contracts` when a stable cross-repo contract is needed
- eyrie uses local-only types (provider/transport types are eyrie-scoped, not shared contracts)
- do not import `hawk/internal/*`
- do not import removed legacy path `hawk/shared/types`; use `hawk-core-contracts/types`
- do not import removed legacy path `hawk/shared/types`
- do not import other engines (`yaad`, `tok`, `trace`, `sight`, `inspect`) — engines are peers, not dependencies

## Quick Start

Expand Down
3 changes: 0 additions & 3 deletions go.work

This file was deleted.

25 changes: 22 additions & 3 deletions scripts/check-ecosystem-boundaries.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,37 @@ set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"

FORBIDDEN_HAWK='github\.com/GrayCodeAI/hawk/(internal/|shared/types)'
FORBIDDEN_ENGINES='github\.com/GrayCodeAI/(yaad|tok|trace|sight|inspect)(/|")'

exit_code=0

if command -v rg >/dev/null 2>&1; then
violations="$(rg -n 'github\.com/GrayCodeAI/hawk/(internal/|shared/types)' --glob '*.go' . || true)"
violations="$(rg -n "$FORBIDDEN_HAWK" --glob '*.go' . || true)"
engine_violations="$(rg -n "$FORBIDDEN_ENGINES" --glob '*.go' . || true)"
else
violations="$(grep -rn --include='*.go' -E 'github\.com/GrayCodeAI/hawk/(internal/|shared/types)' . || true)"
violations="$(grep -rn --include='*.go' -E "$FORBIDDEN_HAWK" . || true)"
engine_violations="$(grep -rn --include='*.go' -E "$FORBIDDEN_ENGINES" . || true)"
fi

if [[ -n "${violations}" ]]; then
echo "forbidden Hawk imports found:"
echo "${violations}"
echo
echo "support repos must use hawk-core-contracts or local contracts, not hawk/internal or removed hawk/shared/types"
exit 1
exit_code=1
fi

if [[ -n "${engine_violations}" ]]; then
echo "forbidden cross-engine imports found:"
echo "${engine_violations}"
echo
echo "support engines must not import other engines directly — they are peers, not dependencies"
exit_code=1
fi

if [[ $exit_code -ne 0 ]]; then
exit $exit_code
fi

echo "ecosystem boundary guard passed"
Loading