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 @@ -28,5 +28,9 @@ __pycache__/
.codegraph/
coverage.out

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

# macOS
.DS_Store
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@ sessions, across models, across projects — with no separate install or daemon

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

- depend on `hawk-core-contracts` when a stable cross-repo contract is needed
- yaad uses local-only types (memory/retrieval types are yaad-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 (`eyrie`, `tok`, `trace`, `sight`, `inspect`) — engines are peers, not dependencies

---

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/(eyrie|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