e30e75b5d4
Changesets / Create Version PR (push) Has been cancelled
Deploy Shadcn Registry / Deploy Production (push) Has been cancelled
Template Metrics / LOC + Bundle Size (push) Has been cancelled
Code Quality / Oxlint + Oxfmt (push) Has been cancelled
Code Quality / Template Sync (push) Has been cancelled
Code Quality / Build Changed Packages (push) Has been cancelled
Code Quality / Test Changed Packages (push) Has been cancelled
Deploy Expo Example / Deploy Production (push) Has been cancelled
Deploy Ink Example / Deploy Production (push) Has been cancelled
Python Tests / pytest (assistant-stream, 3.10) (push) Has been cancelled
Python Tests / pytest (assistant-stream, 3.12) (push) Has been cancelled
Python Tests / pytest (assistant-ui-sync-server-api, 3.10) (push) Has been cancelled
Python Tests / pytest (assistant-ui-sync-server-api, 3.12) (push) Has been cancelled
41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
# @assistant-ui/x-generative-compiler
|
|
|
|
> **Internal package.** Not meant for direct use. Use a build integration such as
|
|
> [`@assistant-ui/next`](../next) or [`@assistant-ui/vite`](../vite).
|
|
|
|
The framework-agnostic `"use generative"` compiler. It takes a module that
|
|
colocates a tool's schema, its server-only `execute`, and its client-only
|
|
`render`, and rewrites it for a single build target:
|
|
|
|
- **client** — keeps `render` and any `"use client"` `execute` (frontend tools),
|
|
drops backend `execute` and `humanTool()` sentinels, and stamps each tool's
|
|
inferred `type`.
|
|
- **server** — keeps the backend `execute` (importing `server-only`), drops
|
|
`render`, and omits externally-defined backend tools marked with
|
|
`externalTool()`.
|
|
|
|
The marker functions a `"use generative"` file imports — `defineToolkit` and
|
|
`humanTool` — live in `@assistant-ui/core/react` (re-exported from
|
|
`@assistant-ui/react`). This package only recognizes them by name and strips them
|
|
at build time.
|
|
|
|
## API
|
|
|
|
```ts
|
|
import {
|
|
compileGenerative,
|
|
isGenerativeModule,
|
|
GenerativeCompileError,
|
|
DIRECTIVE,
|
|
type Target,
|
|
} from "@assistant-ui/x-generative-compiler";
|
|
|
|
if (isGenerativeModule(code)) {
|
|
const { code: out, map } = compileGenerative(code, {
|
|
target: "server", // or "client"
|
|
filename,
|
|
sourceMaps: true,
|
|
});
|
|
}
|
|
```
|