Skip to content

Commit a8cc431

Browse files
waleedlatif1claude
andcommitted
chore(repo): rebase fixes and quality improvements for realtime split
Addresses merge-time issues and gaps from the realtime app split: - Retarget stale vi.mock paths to @sim/workflow-persistence/subblocks - Restore README branding, fix AGENTS.md script reference - Restore TSDoc on workflow-persistence subblocks helpers - Use toError() from @sim/utils/errors in save.ts - Add vitest config + local mocks so @sim/audit tests run standalone - Move socket.io-client to devDependencies in apps/realtime - Add missing package COPY steps to docker/app.Dockerfile - Add check:boundaries/check:realtime-prune scripts and wire into CI Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 3885386 commit a8cc431

15 files changed

Lines changed: 136 additions & 65 deletions

File tree

.github/workflows/test-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ jobs:
104104
run: bun run lint:check
105105

106106
- name: Enforce monorepo boundaries
107-
run: bun run scripts/check-monorepo-boundaries.ts
107+
run: bun run check:boundaries
108108

109109
- name: Verify realtime prune graph
110-
run: bun run scripts/check-realtime-prune-graph.ts
110+
run: bun run check:realtime-prune
111111

112112
- name: Run tests with coverage
113113
env:

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ packages/
5353
### Package boundaries
5454
- `apps/* → packages/*` only. Packages never import from `apps/*`.
5555
- Each package has explicit subpath `exports` maps; no barrels that accidentally pull in heavy halves.
56-
- `apps/realtime` intentionally avoids Next.js, React, the block/tool registry, provider SDKs, and the executor. CI enforces this via `scripts/check-monorepo-boundaries.ts` and `scripts/check-realtime-image-size.ts`.
56+
- `apps/realtime` intentionally avoids Next.js, React, the block/tool registry, provider SDKs, and the executor. CI enforces this via `scripts/check-monorepo-boundaries.ts` and `scripts/check-realtime-prune-graph.ts`.
5757
- Auth is shared across services via the Better Auth "Shared Database Session" pattern: both apps read the same `BETTER_AUTH_SECRET` and point at the same DB via `@sim/db`.
5858

5959
### Naming Conventions

README.md

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,69 @@
1-
2-
3-
The open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows.
4-
5-
6-
7-
1+
<p align="center">
2+
<a href="https://sim.ai" target="_blank" rel="noopener noreferrer">
3+
<picture>
4+
<source media="(prefers-color-scheme: dark)" srcset="apps/sim/public/logo/wordmark.svg">
5+
<source media="(prefers-color-scheme: light)" srcset="apps/sim/public/logo/wordmark-dark.svg">
6+
<img src="apps/sim/public/logo/wordmark-dark.svg" alt="Sim Logo" width="380"/>
7+
</picture>
8+
</a>
9+
</p>
10+
11+
<p align="center">The open-source platform to build AI agents and run your agentic workforce. Connect 1,000+ integrations and LLMs to orchestrate agentic workflows.</p>
12+
13+
<p align="center">
14+
<a href="https://sim.ai" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/sim.ai-33c482" alt="Sim.ai"></a>
15+
<a href="https://discord.gg/Hr4UWYEcTT" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/Discord-Join%20Server-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
16+
<a href="https://x.com/simdotai" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/twitter/follow/simdotai?style=social" alt="Twitter"></a>
17+
<a href="https://docs.sim.ai" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/Docs-33c482.svg" alt="Documentation"></a>
18+
</p>
19+
20+
<p align="center">
21+
<a href="https://deepwiki.com/simstudioai/sim" target="_blank" rel="noopener noreferrer"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> <a href="https://cursor.com/link/prompt?text=Help%20me%20set%20up%20Sim%20locally.%20Follow%20these%20steps%3A%0A%0A1.%20First%2C%20verify%20Docker%20is%20installed%20and%20running%3A%0A%20%20%20docker%20--version%0A%20%20%20docker%20info%0A%0A2.%20Clone%20the%20repository%3A%0A%20%20%20git%20clone%20https%3A%2F%2Fgithub.com%2Fsimstudioai%2Fsim.git%0A%20%20%20cd%20sim%0A%0A3.%20Start%20the%20services%20with%20Docker%20Compose%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.prod.yml%20up%20-d%0A%0A4.%20Wait%20for%20all%20containers%20to%20be%20healthy%20(this%20may%20take%201-2%20minutes)%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.prod.yml%20ps%0A%0A5.%20Verify%20the%20app%20is%20accessible%20at%20http%3A%2F%2Flocalhost%3A3000%0A%0AIf%20there%20are%20any%20errors%2C%20help%20me%20troubleshoot%20them.%20Common%20issues%3A%0A-%20Port%203000%2C%203002%2C%20or%205432%20already%20in%20use%0A-%20Docker%20not%20running%0A-%20Insufficient%20memory%20(needs%2012GB%2B%20RAM)%0A%0AFor%20local%20AI%20models%20with%20Ollama%2C%20use%20this%20instead%20of%20step%203%3A%0A%20%20%20docker%20compose%20-f%20docker-compose.ollama.yml%20--profile%20setup%20up%20-d"><img src="https://img.shields.io/badge/Set%20Up%20with-Cursor-000000?logo=cursor&logoColor=white" alt="Set Up with Cursor"></a>
22+
</p>
823

924
### Build Workflows with Ease
10-
1125
Design agent workflows visually on a canvas—connect agents, tools, and blocks, then run them instantly.
1226

13-
27+
<p align="center">
28+
<img src="apps/sim/public/static/workflow.gif" alt="Workflow Builder Demo" width="800"/>
29+
</p>
1430

1531
### Supercharge with Copilot
16-
1732
Leverage Copilot to generate nodes, fix errors, and iterate on flows directly from natural language.
1833

19-
34+
<p align="center">
35+
<img src="apps/sim/public/static/copilot.gif" alt="Copilot Demo" width="800"/>
36+
</p>
2037

2138
### Integrate Vector Databases
22-
2339
Upload documents to a vector store and let agents answer questions grounded in your specific content.
2440

25-
41+
<p align="center">
42+
<img src="apps/sim/public/static/knowledge.gif" alt="Knowledge Uploads and Retrieval Demo" width="800"/>
43+
</p>
2644

2745
## Quickstart
2846

2947
### Cloud-hosted: [sim.ai](https://sim.ai)
3048

31-
49+
<a href="https://sim.ai" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/sim.ai-33c482?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iNjE2IiBoZWlnaHQ9IjYxNiIgdmlld0JveD0iMCAwIDYxNiA2MTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTU5XzMxMykiPgo8cGF0aCBkPSJNNjE2IDBIMFY2MTZINjE2VjBaIiBmaWxsPSIjMzNjNDgyIi8+CjxwYXRoIGQ9Ik04MyAzNjUuNTY3SDExM0MxMTMgMzczLjgwNSAxMTYgMzgwLjM3MyAxMjIgMzg1LjI3MkMxMjggMzg5Ljk0OCAxMzYuMTExIDM5Mi4yODUgMTQ2LjMzMyAzOTIuMjg1QzE1Ny40NDQgMzkyLjI4NSAxNjYgMzkwLjE3MSAxNzIgMzg1LjkzOUMxNzcuOTk5IDM4MS40ODcgMTgxIDM3NS41ODYgMTgxIDM2OC4yMzlDMTgxIDM2Mi44OTUgMTc5LjMzMyAzNTguNDQyIDE3NiAzNTQuODhDMTcyLjg4OSAzNTEuMzE4IDE2Ny4xMTEgMzQ4LjQyMiAxNTguNjY3IDM0Ni4xOTZMMTMwIDMzOS41MTdDMTE1LjU1NSAzMzUuOTU1IDEwNC43NzggMzMwLjQ5OSA5Ny42NjY1IDMyMy4xNTFDOTAuNzc3NSAzMTUuODA0IDg3LjMzMzQgMzA2LjExOSA4Ny4zMzM0IDI5NC4wOTZDODcuMzMzNCAyODQuMDc2IDg5Ljg4OSAyNzUuMzkyIDk0Ljk5OTYgMjY4LjA0NUMxMDAuMzMzIDI2MC42OTcgMTA3LjU1NSAyNTUuMDIgMTE2LjY2NiAyNTEuMDEyQzEyNiAyNDcuMDA0IDEzNi42NjcgMjQ1IDE0OC42NjYgMjQ1QzE2MC42NjcgMjQ1IDE3MSAyNDcuMTE2IDE3OS42NjcgMjUxLjM0NkMxODguNTU1IDI1NS41NzYgMTk1LjQ0NCAyNjEuNDc3IDIwMC4zMzMgMjY5LjA0N0MyMDUuNDQ0IDI3Ni42MTcgMjA4LjExMSAyODUuNjM0IDIwOC4zMzMgMjk2LjA5OUgxNzguMzMzQzE3OC4xMTEgMjg3LjYzOCAxNzUuMzMzIDI4MS4wNyAxNjkuOTk5IDI3Ni4zOTRDMTY0LjY2NiAyNzEuNzE5IDE1Ny4yMjIgMjY5LjM4MSAxNDcuNjY3IDI2OS4zODFDMTM3Ljg4OSAyNjkuMzgxIDEzMC4zMzMgMjcxLjQ5NiAxMjUgMjc1LjcyNkMxMTkuNjY2IDI3OS45NTcgMTE3IDI4NS43NDYgMTE3IDI5My4wOTNDMTE3IDMwNC4wMDMgMTI1IDMxMS40NjIgMTQxIDMxNS40N0wxNjkuNjY3IDMyMi40ODNDMTgzLjQ0NSAzMjUuNiAxOTMuNzc4IDMzMC43MjIgMjAwLjY2NyAzMzcuODQ3QzIwNy41NTUgMzQ0Ljc0OSAyMTEgMzU0LjIxMiAyMTEgMzY2LjIzNUMyMTEgMzc2LjQ3NyAyMDguMjIyIDM4NS40OTQgMjAyLjY2NiAzOTMuMjg3QzE5Ny4xMTEgNDAwLjg1NyAxODkuNDQ0IDQwNi43NTggMTc5LjY2NyA0MTAuOTg5QzE3MC4xMTEgNDE0Ljk5NiAxNTguNzc4IDQxNyAxNDUuNjY3IDQxN0MxMjYuNTU1IDQxNyAxMTEuMzMzIDQxMi4zMjUgOTkuOTk5NyA0MDIuOTczQzg4LjY2NjggMzkzLjYyMSA4MyAzODEuMTUzIDgzIDM2NS41NjdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjMyLjI5MSA0MTNWMjUwLjA4MkMyNDQuNjg0IDI1NC42MTQgMjUwLjE0OCAyNTQuNjE0IDI2My4zNzEgMjUwLjA4MlY0MTNIMjMyLjI5MVpNMjQ3LjUgMjM5LjMxM0MyNDEuOTkgMjM5LjMxMyAyMzcuMTQgMjM3LjMxMyAyMzIuOTUyIDIzMy4zMTZDMjI4Ljk4NCAyMjkuMDk1IDIyNyAyMjQuMjA5IDIyNyAyMTguNjU2QzIyNyAyMTIuODgyIDIyOC45ODQgMjA3Ljk5NSAyMzIuOTUyIDIwMy45OTdDMjM3LjE0IDE5OS45OTkgMjQxLjk5IDE5OCAyNDcuNSAxOThDMjUzLjIzMSAxOTggMjU4LjA4IDE5OS45OTkgMjYyLjA0OSAyMDMuOTk3QzI2Ni4wMTYgMjA3Ljk5NSAyNjggMjEyLjg4MiAyNjggMjE4LjY1NkMyNjggMjI0LjIwOSAyNjYuMDE2IDIyOS4wOTUgMjYyLjA0OSAyMzMuMzE2QzI1OC4wOCAyMzcuMzEzIDI1My4yMzEgMjM5LjMxMyAyNDcuNSAyMzkuMzEzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTMxOS4zMzMgNDEzSDI4OFYyNDkuNjc2SDMxNlYyNzcuMjMzQzMxOS4zMzMgMjY4LjEwNCAzMjUuNzc4IDI2MC4zNjQgMzM0LjY2NyAyNTQuMzUyQzM0My43NzggMjQ4LjExNyAzNTQuNzc4IDI0NSAzNjcuNjY3IDI0NUMzODIuMTExIDI0NSAzOTQuMTEyIDI0OC44OTcgNDAzLjY2NyAyNTYuNjlDNDEzLjIyMiAyNjQuNDg0IDQxOS40NDQgMjc0LjgzNyA0MjIuMzM0IDI4Ny43NTJINDE2LjY2N0M0MTguODg5IDI3NC44MzcgNDI1IDI2NC40ODQgNDM1IDI1Ni42OUM0NDUgMjQ4Ljg5NyA0NTcuMzM0IDI0NSA0NzIgMjQ1QzQ5MC42NjYgMjQ1IDUwNS4zMzQgMjUwLjQ1NSA1MTYgMjYxLjM2NkM1MjYuNjY3IDI3Mi4yNzYgNTMyIDI4Ny4xOTUgNTMyIDMwNi4xMjFWNDEzSDUwMS4zMzNWMzEzLjgwNEM1MDEuMzMzIDMwMC44ODkgNDk4IDI5MC45ODEgNDkxLjMzMyAyODQuMDc4QzQ4NC44ODkgMjc2Ljk1MiA0NzYuMTExIDI3My4zOSA0NjUgMjczLjM5QzQ1Ny4yMjIgMjczLjM5IDQ1MC4zMzMgMjc1LjE3MSA0NDQuMzM0IDI3OC43MzRDNDM4LjU1NiAyODIuMDc0IDQzNCAyODYuOTcyIDQzMC42NjcgMjkzLjQzQzQyNy4zMzMgMjk5Ljg4NyA0MjUuNjY3IDMwNy40NTcgNDI1LjY2NyAzMTYuMTQxVjQxM0gzOTQuNjY3VjMxMy40NjlDMzk0LjY2NyAzMDAuNTU1IDM5MS40NDUgMjkwLjc1OCAzODUgMjg0LjA3OEMzNzguNTU2IDI3Ny4xNzUgMzY5Ljc3OCAyNzMuNzI0IDM1OC42NjcgMjczLjcyNEMzNTAuODg5IDI3My43MjQgMzQ0IDI3NS41MDUgMzM4IDI3OS4wNjhDMzMyLjIyMiAyODIuNDA4IDMyNy42NjcgMjg3LjMwNyAzMjQuMzMzIDI5My43NjNDMzIxIDI5OS45OTggMzE5LjMzMyAzMDcuNDU3IDMxOS4zMzMgMzE2LjE0MVY0MTNaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzExNTlfMzEzIj4KPHJlY3Qgd2lkdGg9IjYxNiIgaGVpZ2h0PSI2MTYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+&logoColor=white" alt="Sim.ai"></a>
3250

3351
### Self-hosted: NPM Package
3452

3553
```bash
3654
npx simstudio
3755
```
38-
39-
[http://localhost:3000](http://localhost:3000)
56+
http://localhost:3000
4057

4158
#### Note
42-
4359
Docker must be installed and running on your machine.
4460

4561
#### Options
4662

47-
48-
| Flag | Description |
49-
| ------------------- | ----------------------------------- |
63+
| Flag | Description |
64+
|------|-------------|
5065
| `-p, --port <port>` | Port to run Sim on (default `3000`) |
51-
| `--no-pull` | Skip pulling latest Docker images |
52-
66+
| `--no-pull` | Skip pulling latest Docker images |
5367

5468
### Self-hosted: Docker Compose
5569

@@ -75,69 +89,51 @@ bun install
7589
bun run prepare # Set up pre-commit hooks
7690
```
7791

78-
1. Set up PostgreSQL with pgvector:
92+
2. Set up PostgreSQL with pgvector:
7993

8094
```bash
8195
docker run --name simstudio-db -e POSTGRES_PASSWORD=your_password -e POSTGRES_DB=simstudio -p 5432:5432 -d pgvector/pgvector:pg17
8296
```
8397

8498
Or install manually via the [pgvector guide](https://github.com/pgvector/pgvector#installation).
8599

86-
1. Configure environment:
100+
3. Configure environment:
87101

88102
```bash
89-
# Main app env (large, app-specific: OAuth secrets, LLM keys, etc.)
90103
cp apps/sim/.env.example apps/sim/.env
104+
# Create your secrets
91105
perl -i -pe "s/your_encryption_key/$(openssl rand -hex 32)/" apps/sim/.env
92106
perl -i -pe "s/your_internal_api_secret/$(openssl rand -hex 32)/" apps/sim/.env
93107
perl -i -pe "s/your_api_encryption_key/$(openssl rand -hex 32)/" apps/sim/.env
94-
95-
# Realtime server env (small: just the ~6 shared values)
96-
cp apps/realtime/.env.example apps/realtime/.env
97-
# Copy DATABASE_URL, BETTER_AUTH_URL, BETTER_AUTH_SECRET, INTERNAL_API_SECRET,
98-
# and NEXT_PUBLIC_APP_URL from apps/sim/.env into apps/realtime/.env so both
99-
# services use the same auth secret and DB.
100-
101-
# DB migration env
108+
# DB configs for migration
102109
cp packages/db/.env.example packages/db/.env
103-
104-
# Edit each .env to set DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
110+
# Edit both .env files to set DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
105111
```
106112

107-
We use per-app `.env` files (the Turborepo-canonical pattern) rather than a
108-
single root `.env`. This mirrors production — each service has its own env
109-
block in Docker Compose / k8s — and keeps sim's app secrets (OAuth, LLM keys,
110-
Stripe, etc.) out of the realtime server's process scope. The shared values
111-
(DATABASE_URL, BETTER_AUTH_SECRET, INTERNAL_API_SECRET, etc.) are duplicated
112-
across `apps/sim/.env` and `apps/realtime/.env`; that's the trade-off.
113-
114-
Production uses env vars passed through Docker Compose / Kubernetes directly
115-
and does not read any `.env` files.
116-
117-
1. Run migrations:
113+
4. Run migrations:
118114

119115
```bash
120116
cd packages/db && bun run db:migrate
121117
```
122118

123-
1. Start development servers:
119+
5. Start development servers:
124120

125121
```bash
126122
bun run dev:full # Starts Next.js app and realtime socket server
127123
```
128124

129-
Or run separately: `bun run dev` (Next.js) and `bun run dev:sockets` (realtime). All scripts run from the repo root.
125+
Or run separately: `bun run dev` (Next.js) and `cd apps/sim && bun run dev:sockets` (realtime).
130126

131127
## Copilot API Keys
132128

133129
Copilot is a Sim-managed service. To use Copilot on a self-hosted instance:
134130

135-
- Go to [https://sim.ai](https://sim.ai) → Settings → Copilot and generate a Copilot API key
136-
- Set `COPILOT_API_KEY` in `apps/sim/.env` to that value
131+
- Go to https://sim.ai → Settings → Copilot and generate a Copilot API key
132+
- Set `COPILOT_API_KEY` environment variable in your self-hosted apps/sim/.env file to that value
137133

138134
## Environment Variables
139135

140-
See the [environment variables reference](https://docs.sim.ai/self-hosting/environment-variables) for the full list, or [`apps/sim/.env.example`](apps/sim/.env.example) (main app) and [`apps/realtime/.env.example`](apps/realtime/.env.example) (realtime server) for defaults.
136+
See the [environment variables reference](https://docs.sim.ai/self-hosting/environment-variables) for the full list, or [`apps/sim/.env.example`](apps/sim/.env.example) for defaults.
141137

142138
## Tech Stack
143139

@@ -164,4 +160,4 @@ We welcome contributions! Please see our [Contributing Guide](.github/CONTRIBUTI
164160

165161
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
166162

167-
Made with ❤️ by the Sim Team
163+
<p align="center">Made with ❤️ by the Sim Team</p>

apps/realtime/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@
3535
"postgres": "^3.4.5",
3636
"redis": "5.10.0",
3737
"socket.io": "^4.8.1",
38-
"socket.io-client": "4.8.1",
3938
"zod": "^3.24.2"
4039
},
4140
"devDependencies": {
4241
"@sim/testing": "workspace:*",
4342
"@sim/tsconfig": "workspace:*",
4443
"@types/node": "24.2.1",
44+
"socket.io-client": "4.8.1",
4545
"typescript": "^5.7.3",
4646
"vitest": "^3.0.8"
4747
}

apps/sim/app/api/chat/utils.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ vi.mock('@/serializer', () => ({
4040
Serializer: vi.fn(),
4141
}))
4242

43-
vi.mock('@/lib/workflows/subblocks', () => ({
43+
vi.mock('@sim/workflow-persistence/subblocks', () => ({
4444
mergeSubblockStateWithValues: mockMergeSubblockStateWithValues,
4545
mergeSubBlockValues: mockMergeSubBlockValues,
4646
}))

apps/sim/lib/workflows/executor/execution-core.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ vi.mock('@/lib/logs/execution/trace-spans/trace-spans', () => ({
5959

6060
vi.mock('@/lib/workflows/persistence/utils', () => workflowsPersistenceUtilsMock)
6161

62-
vi.mock('@/lib/workflows/subblocks', () => ({
62+
vi.mock('@sim/workflow-persistence/subblocks', () => ({
6363
mergeSubblockStateWithValues: mergeSubblockStateWithValuesMock,
6464
}))
6565

bun.lock

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docker/app.Dockerfile

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,30 @@ FROM base AS deps
1818
WORKDIR /app
1919

2020
COPY package.json bun.lock turbo.json ./
21-
RUN mkdir -p apps packages/db packages/testing packages/logger packages/tsconfig packages/utils
21+
RUN mkdir -p apps \
22+
packages/audit \
23+
packages/db \
24+
packages/logger \
25+
packages/realtime-protocol \
26+
packages/security \
27+
packages/testing \
28+
packages/tsconfig \
29+
packages/utils \
30+
packages/workflow-authz \
31+
packages/workflow-persistence \
32+
packages/workflow-types
2233
COPY apps/sim/package.json ./apps/sim/package.json
34+
COPY packages/audit/package.json ./packages/audit/package.json
2335
COPY packages/db/package.json ./packages/db/package.json
24-
COPY packages/testing/package.json ./packages/testing/package.json
2536
COPY packages/logger/package.json ./packages/logger/package.json
37+
COPY packages/realtime-protocol/package.json ./packages/realtime-protocol/package.json
38+
COPY packages/security/package.json ./packages/security/package.json
39+
COPY packages/testing/package.json ./packages/testing/package.json
2640
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json
2741
COPY packages/utils/package.json ./packages/utils/package.json
42+
COPY packages/workflow-authz/package.json ./packages/workflow-authz/package.json
43+
COPY packages/workflow-persistence/package.json ./packages/workflow-persistence/package.json
44+
COPY packages/workflow-types/package.json ./packages/workflow-types/package.json
2845

2946
# Install dependencies, then rebuild isolated-vm for Node.js
3047
# Use --linker=hoisted for flat node_modules layout (required for Docker multi-stage builds)
@@ -49,10 +66,17 @@ COPY --from=deps /app/node_modules ./node_modules
4966
# Copy package configuration files (needed for build)
5067
COPY package.json bun.lock turbo.json ./
5168
COPY apps/sim/package.json ./apps/sim/package.json
69+
COPY packages/audit/package.json ./packages/audit/package.json
5270
COPY packages/db/package.json ./packages/db/package.json
53-
COPY packages/testing/package.json ./packages/testing/package.json
5471
COPY packages/logger/package.json ./packages/logger/package.json
72+
COPY packages/realtime-protocol/package.json ./packages/realtime-protocol/package.json
73+
COPY packages/security/package.json ./packages/security/package.json
74+
COPY packages/testing/package.json ./packages/testing/package.json
75+
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json
5576
COPY packages/utils/package.json ./packages/utils/package.json
77+
COPY packages/workflow-authz/package.json ./packages/workflow-authz/package.json
78+
COPY packages/workflow-persistence/package.json ./packages/workflow-persistence/package.json
79+
COPY packages/workflow-types/package.json ./packages/workflow-types/package.json
5680

5781
# Copy workspace configuration files (needed for turbo)
5882
COPY apps/sim/next.config.ts ./apps/sim/next.config.ts

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
"lint:helm": "helm lint ./helm/sim --strict --values ./helm/sim/test/values-lint.yaml",
2222
"lint:all": "turbo run lint && bun run lint:helm",
2323
"check": "turbo run format:check",
24+
"check:boundaries": "bun run scripts/check-monorepo-boundaries.ts",
25+
"check:realtime-prune": "bun run scripts/check-realtime-prune-graph.ts",
2426
"mship-contracts:generate": "bun run scripts/sync-mothership-stream-contract.ts",
2527
"mship-contracts:check": "bun run scripts/sync-mothership-stream-contract.ts --check",
2628
"mship-tools:generate": "bun run scripts/sync-tool-catalog.ts",

packages/audit/package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
"lint": "biome check --write --unsafe .",
2121
"lint:check": "biome check .",
2222
"format": "biome format --write .",
23-
"format:check": "biome format ."
23+
"format:check": "biome format .",
24+
"test": "vitest run",
25+
"test:watch": "vitest"
2426
},
2527
"dependencies": {
2628
"@sim/db": "workspace:*",
@@ -29,7 +31,9 @@
2931
"drizzle-orm": "^0.45.2"
3032
},
3133
"devDependencies": {
34+
"@sim/testing": "workspace:*",
3235
"@sim/tsconfig": "workspace:*",
33-
"typescript": "^5.7.3"
36+
"typescript": "^5.7.3",
37+
"vitest": "^3.0.8"
3438
}
3539
}

0 commit comments

Comments
 (0)