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
8 changes: 4 additions & 4 deletions .changeset/strip-erd-components.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
"@liam-hq/erd-core": patch
"@liam-hq/schema": patch
"@liam-hq/ui": patch
"@liam-hq/cli": patch
"@dlh/erd-viewer-core": patch
"@dlh/erd-viewer-schema": patch
"@dlh/erd-viewer-ui": patch
"@dlh/erd-viewer-cli": patch
---

Remove workspace dependency on @liam-hq/neverthrow by inlining helper functions
Expand Down
16 changes: 8 additions & 8 deletions .claude/commands/benchmark-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Execute schema benchmark comparison between LiamDB and OpenAI models.
First, I'll clean up any existing workspace and set up a fresh benchmark environment with multiple datasets:

```bash
rm -rf benchmark-workspace && pnpm --filter @liam-hq/schema-bench setupWorkspace
rm -rf benchmark-workspace && pnpm --filter @dlh/erd-viewer-schema-bench setupWorkspace
```

This will set up four benchmark datasets:
Expand All @@ -46,24 +46,24 @@ Next, I'll execute the specified model with dataset selection:
{{#if (eq (lower model) "liamdb")}}
```bash
# Run LiamDB on all datasets in the workspace
pnpm --filter @liam-hq/schema-bench executeLiamDB -all
pnpm --filter @dlh/erd-viewer-schema-bench executeLiamDB -all

# Run LiamDB on a specific dataset
pnpm --filter @liam-hq/schema-bench executeLiamDB -entity-extraction
pnpm --filter @dlh/erd-viewer-schema-bench executeLiamDB -entity-extraction

# Run LiamDB on the ambiguous-recall dataset only
pnpm --filter @liam-hq/schema-bench executeLiamDB -ambiguous-recall
pnpm --filter @dlh/erd-viewer-schema-bench executeLiamDB -ambiguous-recall

# Run LiamDB on the logical-deletion dataset only
pnpm --filter @liam-hq/schema-bench executeLiamDB -logical-deletion
pnpm --filter @dlh/erd-viewer-schema-bench executeLiamDB -logical-deletion

# Run LiamDB on multiple datasets
pnpm --filter @liam-hq/schema-bench executeLiamDB -default -entity-extraction -ambiguous-recall -logical-deletion
pnpm --filter @dlh/erd-viewer-schema-bench executeLiamDB -default -entity-extraction -ambiguous-recall -logical-deletion
```
{{else if (eq (lower model) "openai")}}
```bash
# OpenAI currently targets the default dataset
pnpm --filter @liam-hq/schema-bench executeOpenai
pnpm --filter @dlh/erd-viewer-schema-bench executeOpenai
```
{{else}}
**Error**: Invalid model specified. Please use 'LiamDB' or 'OpenAI'.
Expand All @@ -72,7 +72,7 @@ pnpm --filter @liam-hq/schema-bench executeOpenai
If execution succeeds, I'll run the evaluation on all datasets:

```bash
pnpm --filter @liam-hq/schema-bench evaluateSchemaMulti
pnpm --filter @dlh/erd-viewer-schema-bench evaluateSchemaMulti
```

The evaluation will display comprehensive metrics for each dataset:
Expand Down
4 changes: 2 additions & 2 deletions .claude/commands/deparse-dataset-to-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ description: Convert JSON benchmark datasets back to schema files

## Task

Convert a JSON schema dataset to a schema file in the specified format using @liam-hq/schema deparser functionality.
Convert a JSON schema dataset to a schema file in the specified format using @dlh/erd-viewer-schema deparser functionality.

### Process

1. Read the JSON dataset from the specified input path
2. Use @liam-hq/schema's `postgresqlSchemaDeparser` function to convert JSON to SQL DDL
2. Use @dlh/erd-viewer-schema's `postgresqlSchemaDeparser` function to convert JSON to SQL DDL
3. Save the generated schema file to the specified output path
4. Verify the generated schema is valid and properly formatted

Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/parse-schema-for-dataset.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Parse the specified schema file (SQL, Prisma, Drizzle, etc.) to JSON format and
### Process

1. Identify the input schema file format (postgres, prisma, drizzle, tbls, schemarb)
2. Use the @liam-hq/schema parser to convert to JSON
2. Use the @dlh/erd-viewer-schema parser to convert to JSON
3. Save the output to an appropriately named case file in the benchmark reference directory
4. Verify the generated JSON structure matches the expected format

Expand Down
124 changes: 0 additions & 124 deletions .github/workflows/agent-deep-modeling.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/database-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- uses: ./.github/actions/pnpm-setup
- name: Run Splinter Lint
run: pnpm -F @liam-hq/db db:lint
run: pnpm -F @dlh/erd-viewer-db db:lint
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:54322/postgres
SPLINTER_DEBUG: 1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/figma-to-css-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
with:
persist-credentials: false
- uses: ./.github/actions/pnpm-setup
- run: pnpm --filter @liam-hq/figma-to-css-variables sync --output '../../apps/service-site/src/styles' --filter-modes "Dark,Mode 1"
- run: pnpm --filter @dlh/erd-viewer-figma-to-css-variables sync --output '../../apps/service-site/src/styles' --filter-modes "Dark,Mode 1"
env:
FIGMA_FILE_KEY: ${{ secrets.FIGMA_FILE_KEY }}
FIGMA_ACCESS_TOKEN: ${{ secrets.FIGMA_ACCESS_TOKEN }}
Expand Down
19 changes: 0 additions & 19 deletions .github/workflows/frontend-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,4 @@ jobs:
with:
persist-credentials: false
- uses: ./.github/actions/pnpm-setup
- run: pnpm --filter @liam-hq/db supabase:start
- run: cp .env.template .env
- name: Make scripts executable
run: chmod +x ./scripts/extract-supabase-anon-key.sh ./scripts/extract-supabase-service-key.sh
- run: ./scripts/extract-supabase-anon-key.sh
- run: ./scripts/extract-supabase-service-key.sh
- run: pnpm test
- run: pnpm --filter @liam-hq/db supabase:gen
- name: Check for diff in generated types and schema.sql
env:
# check two files.
GENERATED_FILES: "frontend/internal-packages/db/supabase/database.types.ts frontend/internal-packages/db/supabase/schemas/schema.sql"
run: |
if ! git diff HEAD --ignore-space-at-eol --exit-code ${{ env.GENERATED_FILES }}; then
echo "Generated types and schema.sql differ from committed files."
exit 1
else
echo "Generated types and schema.sql are up-to-date."
exit 0
fi
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# NOTE: This workflow is configured as a Trusted Publisher on npmjs.com
# The workflow filename "release.yml" is registered in the Trusted Publisher settings.
# If you rename this file, you must also update the Trusted Publisher configuration on npmjs.com
# ex. https://www.npmjs.com/package/@liam-hq/cli/access
# ex. https://www.npmjs.com/package/@dlh/erd-viewer-cli/access

name: release
on:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/released_package_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
run: |
echo "Starting after ${{ github.event.inputs.delay_seconds }} seconds"
sleep ${{ github.event.inputs.delay_seconds }}
- name: "check @liam-hq/cli exit code 1: version check"
- name: "check @dlh/erd-viewer-cli exit code 1: version check"
shell: bash
run: |
version="${{ github.event.inputs.version }}"
Expand All @@ -40,22 +40,22 @@ jobs:
echo "Error: Invalid version format"
exit 1
fi
npx --yes @liam-hq/cli@${version} --version
npx --yes @dlh/erd-viewer-cli@${version} --version

- name: "check @liam-hq/cli exit code 2: --format postgres check"
- name: "check @dlh/erd-viewer-cli exit code 2: --format postgres check"
run: |
version="${{ github.event.inputs.version }}"
npx --yes @liam-hq/cli@${version} erd build --input https://github.com/liam-hq/liam/blob/main/frontend/internal-packages/db/supabase/schemas/schema.sql --format postgres
npx --yes @dlh/erd-viewer-cli@${version} erd build --input https://github.com/liam-hq/liam/blob/main/frontend/internal-packages/db/supabase/schemas/schema.sql --format postgres

- name: "check @liam-hq/cli exit code 3: --format schemarb check"
- name: "check @dlh/erd-viewer-cli exit code 3: --format schemarb check"
run: |
version="${{ github.event.inputs.version }}"
npx --yes @liam-hq/cli@${version} erd build --input https://github.com/mastodon/mastodon/blob/e2f085e2b2cec08dc1f5ae825730c2a3bf62e054/db/schema.rb --format schemarb
npx --yes @dlh/erd-viewer-cli@${version} erd build --input https://github.com/mastodon/mastodon/blob/e2f085e2b2cec08dc1f5ae825730c2a3bf62e054/db/schema.rb --format schemarb

- name: "check @liam-hq/cli exit code 4: --format prisma check"
- name: "check @dlh/erd-viewer-cli exit code 4: --format prisma check"
run: |
version="${{ github.event.inputs.version }}"
npx --yes @liam-hq/cli@${version} erd build --input https://github.com/langfuse/langfuse/blob/cf29c6b7e447cf1aec7a8d50ae6a877c3844b7cd/packages/shared/prisma/schema.prisma --format prisma
npx --yes @dlh/erd-viewer-cli@${version} erd build --input https://github.com/langfuse/langfuse/blob/cf29c6b7e447cf1aec7a8d50ae6a877c3844b7cd/packages/shared/prisma/schema.prisma --format prisma


# derived from https://github.com/route06/actions/blob/8e3ac6855302a4fe3bd621ebd16c7a0da261948a/.github/workflows/notify_slack_on_ci_failed.yml
Expand Down
2 changes: 1 addition & 1 deletion .syncpackrc
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
{
"label": "Allow Storybook to use zod v3",
"dependencies": ["zod"],
"packages": ["@liam-hq/storybook"],
"packages": ["@dlh/erd-viewer-storybook"],
"isIgnored": true
}
]
Expand Down
17 changes: 12 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,51 @@
# Repository Guidelines

## Project Structure & Modules
- frontend/apps/*: Next.js apps (e.g., `@liam-hq/app`, `@liam-hq/docs`).
- frontend/packages/*: Shared libraries and tools (e.g., `schema`, `erd-core`, `cli`, `ui`).

- frontend/apps/*: Next.js apps (e.g., `@dlh/erd-viewer-app`, `@dlh/erd-viewer-docs`).
- frontend/packages/*: Shared libraries and tools (e.g., `erd-viewer-schema`, `erd-viewer-core`, `erd-viewer-cli`, `erd-viewer-ui`).
- frontend/internal-packages/*: Infra and tooling (`e2e`, `configs`, `storybook`, `agent`).
- assets/: Images and media. docs/: Documentation. scripts/: Repo utilities.

## Build, Test, and Development

- Install: `pnpm install`
- All apps/packages (Turbo):
- Dev: `pnpm dev` (or one app: `pnpm -F @liam-hq/app dev`)
- Dev: `pnpm dev` (or one app: `pnpm -F @dlh/erd-viewer-app dev`)
- Build: `pnpm build`
- Test (unit): `pnpm test`
- E2E (Playwright): `pnpm test:e2e`
- Coverage: `pnpm test:coverage`
- App-only examples:
- Run Next dev: `pnpm -F @liam-hq/app dev:next`
- Build Next: `pnpm -F @liam-hq/app build`
- Run Next dev: `pnpm -F @dlh/erd-viewer-app dev:next`
- Build Next: `pnpm -F @dlh/erd-viewer-app build`

## Coding Style & Naming

- Language: TypeScript/TSX; React components in PascalCase (e.g., `App.tsx`); utilities in camelCase (e.g., `mergeSchema.ts`).
- CSS Modules: `*.module.css` with typed CSS via `typed-css-modules`.
- Lint/Format: Biome and ESLint. Run `pnpm fmt` and `pnpm lint`. Pre-commit hooks run `pnpm lint` (see `lefthook.yml`).

## Testing Guidelines

- Unit tests: Vitest. Place near source as `*.test.ts(x)` or in `__tests__/`.
- E2E tests: Playwright in `frontend/internal-packages/e2e`.
- Commands: `pnpm test` for unit, `pnpm test:e2e` for Playwright, `pnpm test:coverage` for V8 coverage.

## Commit & Pull Requests

- Commit style: Conventional Commits (e.g., `feat:`, `fix:`, `chore(deps): ...`).
- Before pushing: `pnpm fmt && pnpm lint && pnpm test`.
- PRs: clear description, linked issues, screenshots for UI changes, and note any env or migration impacts.
- Versioning: If you change a publishable package, add a changeset: `pnpm changeset`.

## Security & Configuration

- Environment: use `.env`/`.env.local` (created automatically by `pnpm prebuild`). Never commit secrets.
- Sync Vercel envs (optional): `pnpm vercel:env-pull` and link with `pnpm vercel:link`.
- Common vars: `NEXT_PUBLIC_*`, Sentry keys, and job runner tokens (see `turbo.json` env list).

## Tips

- Target a single package with `pnpm -F <package-name> <script>`.
- Use Turbo filters when running large tasks locally for faster feedback.
Loading
Loading