You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`apps/* → packages/*` only. Packages never import from `apps/*`.
39
39
-`apps/realtime` avoids Next.js, React, the block/tool registry, provider SDKs, and the executor; never add `@/lib/webhooks/providers/*`, `@/executor/*`, `@/blocks/*`, or `@/tools/*` imports to any package it consumes. CI enforces this via `scripts/check-monorepo-boundaries.ts` and `scripts/check-realtime-prune-graph.ts`.
40
40
41
+
## The `'use client'` server boundary
42
+
43
+
Every export of a `'use client'` module becomes a *client reference* on the server — server-evaluated code (RSC pages/layouts, `prefetch.ts`, route handlers, block definitions, triggers) can only *render* it as a component or pass it as a prop, never *call* it (doing so throws at runtime, e.g. `tableKeys.list is not a function`; `next build` does not catch it). Keep server-importable query primitives (key factories, fetchers, mappers, constants) in non-`'use client'` modules — see `.claude/rules/sim-queries.md`. Enforced by `scripts/check-client-boundary-imports.ts`.
44
+
41
45
## Feature Organization
42
46
43
47
Features live under `app/workspace/[workspaceId]/`:
Copy file name to clipboardExpand all lines: .claude/rules/sim-queries.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,17 @@ Never use inline query keys — always use the factory.
27
27
28
28
**Every identifier the `queryFn` forwards into the fetch MUST appear in the `queryKey`.** (Query-machinery identifiers — `signal`, `pageParam` — are exempt; they aren't fetch-scoping args.) If the fetch is scoped by `workspaceId`, `cursor`, `limit`, an org id, etc., those values must be part of the key — otherwise distinct fetch args share one cache entry (a cross-tenant / per-param cache collision). The lone exception is a globally-unique id used as the key while a second fetch arg is only an authz scope that cannot collide; annotate those with `// rq-lint-allow: <reason>`. Enforced by the `key-fetch-arg-drift` check in `scripts/check-react-query-patterns.ts`.
29
29
30
+
## Server-importable query primitives must NOT live in a `'use client'` module
31
+
32
+
Next.js rewrites **every** export of a `'use client'` module into a *client reference* in the server bundle. Server-evaluated code — RSC `page.tsx`/`layout.tsx`, `prefetch.ts`, route handlers, **block definitions**, triggers/workers — can only *render* such an export as a component or pass it as a prop; **calling** one throws at runtime (`Attempted to call X from the server but X is on the client` — for an object export it surfaces as `X.list is not a function`). `next build` does **not** catch this — only SSR/runtime does.
33
+
34
+
So any **query-key factory, standalone `requestJson` fetcher, mapper, or constant** that a server module imports must live in a **non-`'use client'`** module:
35
+
36
+
- key factories → `hooks/queries/utils/<entity>-keys.ts` (see `folder-keys.ts`, `table-keys.ts`, `credential-keys.ts`)
37
+
- standalone fetchers/mappers → `hooks/queries/utils/fetch-*.ts` / `*-list-query.ts` (see `fetch-workflow-envelope.ts`, `fetch-credential-set.ts`)
38
+
39
+
The `'use client'` hook module then imports these back for its hooks. **Never** define a server-imported factory/fetcher directly in a `'use client'` hooks file — it crashes SSR (this caused the tables-page crash). Enforced for prefetch/route/trigger/block files by `scripts/check-client-boundary-imports.ts` (`bun run check:client-boundary`, run in CI). Escape hatch for a genuinely browser-only path: `// client-boundary-allow: <reason>` on the line above the import.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/en/integrations/salesforce.mdx
+147-3Lines changed: 147 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ The Salesforce tool is ideal for workflows where your agents need to streamline
27
27
28
28
## Usage Instructions
29
29
30
-
Integrate Salesforce into your workflow. Manage accounts, contacts, leads, opportunities, cases, and tasks with powerful automation capabilities.
30
+
Integrate Salesforce into your workflow. Manage accounts, contacts, leads, opportunities, cases, and tasks, run reports and SOQL queries, and manage org schema by creating custom fields and objects via the Tooling API.
31
31
32
32
33
33
@@ -717,7 +717,7 @@ Delete a task
717
717
718
718
### `salesforce_list_reports`
719
719
720
-
Get a list of reports accessible by the current user
720
+
Get a list of up to 200 recently viewed reports for the current user
721
721
722
722
#### Input
723
723
@@ -814,7 +814,7 @@ Get a list of available report types
814
814
815
815
### `salesforce_list_dashboards`
816
816
817
-
Get a list of dashboards accessible by the current user
817
+
Get a list of recently used dashboards for the current user
818
818
819
819
#### Input
820
820
@@ -1029,6 +1029,150 @@ Get a list of all available Salesforce objects
1029
1029
| ↳ `totalReturned`| number | Number of objects returned |
Copy file name to clipboardExpand all lines: apps/docs/content/docs/en/workflows/blocks/pi.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ Pick the mode with the **Mode** dropdown. The fields below it change to match.
25
25
Cloud runs entirely inside a disposable sandbox, so it never touches your machine. It clones the repo, lets the agent work with full read/shell/edit/git, pushes a branch, and opens a PR you review and merge.
26
26
27
27
- Requires sandbox execution to be enabled (the Cloud option only appears when it is).
28
-
- Requires **your own provider API key (BYOK)** — the model key is handed to the sandbox, so Sim never injects a hosted key there.
28
+
- Requires **your own provider API key (BYOK)** — the model key is handed to the sandbox.
29
29
- Needs a **GitHub token** with permission to clone, push, and open a PR (see [Setup](#setup-cloud)).
30
30
- The deliverable is a **pull request** — nothing is committed to your default branch directly.
31
31
@@ -118,7 +118,7 @@ The one case neither layer can rescue is a *first* prompt that already exceeds t
118
118
119
119
## Setup
120
120
121
-
### Cloud
121
+
### Cloud[#setup-cloud]
122
122
123
123
Cloud runs in a sandbox image with the Pi CLI and git baked in.
124
124
@@ -128,7 +128,7 @@ Cloud runs in a sandbox image with the Pi CLI and git baked in.
128
128
-*Fine-grained:* select the repo, then **Contents: Read and write** + **Pull requests: Read and write**.
129
129
-*Classic:* the **`repo`** scope. For org repos, authorize the token for SSO.
130
130
131
-
### Local
131
+
### Local[#setup-local]
132
132
133
133
1.**Enable SSH** on the target machine (on macOS: System Settings → General → Sharing → Remote Login).
134
134
2.**Expose it on a public host.** Sim blocks `localhost`/LAN, so use a TCP tunnel — for example `ngrok tcp 22`, which gives a `host:port` to put in **Host** and **Port**.
0 commit comments