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
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
"use client";
|
|
|
|
import {
|
|
AssistantRuntimeProvider,
|
|
SimpleImageAttachmentAdapter,
|
|
} from "@assistant-ui/react";
|
|
import { createPiHttpClient, usePiRuntime } from "@assistant-ui/react-pi";
|
|
import { useMemo, type ReactNode } from "react";
|
|
|
|
/**
|
|
* Wires the browser `PiClient` (HTTP/SSE over `/api/pi`) into a Pi runtime. The
|
|
* client is stable for the app's lifetime; `workspacePath` scopes the thread
|
|
* list and seeds new sessions. Image attachments ride along as Pi
|
|
* `ImageContent` (the adapter's data URLs pass through `buildPiSendInput`).
|
|
*/
|
|
export function PiRuntimeProvider({
|
|
workspacePath,
|
|
children,
|
|
}: {
|
|
workspacePath?: string | undefined;
|
|
children: ReactNode;
|
|
}) {
|
|
const client = useMemo(() => createPiHttpClient(), []);
|
|
const adapters = useMemo(
|
|
() => ({ attachments: new SimpleImageAttachmentAdapter() }),
|
|
[],
|
|
);
|
|
const runtime = usePiRuntime({
|
|
client,
|
|
adapters,
|
|
...(workspacePath ? { workspacePath } : {}),
|
|
});
|
|
|
|
return (
|
|
<AssistantRuntimeProvider runtime={runtime}>
|
|
{children}
|
|
</AssistantRuntimeProvider>
|
|
);
|
|
}
|