///
import { computed, generateText, pattern, patternTool, type PatternToolResult, Writable } from "commontools";
const content = Writable.of("Hello world");
type Output = {
tool: PatternToolResult<{ content: string }>;
};
// Regression test: local variables (genResult) must NOT be captured as
// extraParams, even when they have a reactive type. Only module-scoped
// reactive variables (content) should be captured.
export default pattern, Output>(() => {
const tool = patternTool(
({ language, content }: { language: string; content: string }) => {
const genResult = generateText({
system: computed(() => `Translate to ${language}.`),
prompt: computed(() => content),
});
return computed(() => {
if (genResult.pending) return undefined;
return genResult.result;
});
},
{ content },
);
return { tool };
});