rivet-intermediate-output
Version:
A Rivet plugin for capturing and displaying intermediate outputs for debugging and analysis
57 lines • 1.95 kB
JavaScript
import { loadProjectFromString, coreRunGraph, NodeRegistration } from '@ironclad/rivet-core';
import { intermediateOutputNode } from '../src/nodes/IntermediateOutputNode';
import { readFile } from 'fs/promises';
// Mock Rivet for the plugin
const mockRivet = {
pluginNodeDefinition: (impl, name) => ({
impl,
name,
create: () => ({
id: Math.random().toString(),
type: 'intermediateOutput',
title: 'Intermediate Output',
data: {
inputText: '',
useInput: true,
description: 'Captures intermediate output for debugging or analysis'
},
visualData: {
x: 0,
y: 0,
width: 240
}
})
}),
newId: () => Math.random().toString()
};
async function main() {
try {
// Read the Rivet project file
const projectContent = await readFile('./MasterAgent.rivet', 'utf-8');
const project = loadProjectFromString(projectContent);
// Create node registry with our plugin
const registry = new NodeRegistration();
registry.registerPluginNode(intermediateOutputNode(mockRivet), {
id: 'intermediate-output',
name: 'Intermediate Output Plugin'
});
// Run the graph
const result = await coreRunGraph(project, {
graph: 'jZDbKoqXeqOgJo1EhumeF',
inputs: {
input: 'What is the weather in Tokyo?',
},
registry,
onPartialOutput: (params) => {
console.log('Partial output from node:', params.node.title);
console.log('Output:', params.outputs);
}
});
console.log('Final result:', result);
}
catch (error) {
console.error('Error running graph:', error);
}
}
main();
//# sourceMappingURL=test-plugin.js.map