import { createAssistantSession } from "@noodleseed/assistant/server";
export async function POST(request: Request) {
const user = await requireCurrentUser(request);
const session = await createAssistantSession({
serviceUrl: process.env.NOODLE_SERVICE_URL!,
clientId: process.env.NOODLE_ASSISTANT_CLIENT_ID!,
clientSecret: process.env.NOODLE_ASSISTANT_CLIENT_SECRET!,
origin: process.env.PUBLIC_APP_ORIGIN!,
user: { id: user.id, roles: user.roles, scopes: user.scopes },
});
return Response.json(session);
}import { NoodleAssistant } from "@noodleseed/assistant/react";
<NoodleAssistant sessionEndpoint="/api/assistant/session" />tool("current_workspace", {
contextProvider: true,
input: z.object({}),
output: z.object({
workspaceId: z.string(),
plan: z.string(),
openProjects: z.number(),
}),
annotations: annotations.readOnly(),
fulfil({ user }) {
return loadWorkspaceFor(user.subject);
},
});
// Every tool in this turn receives the same snapshot.
const workspace = context.ambient;