rivet-intermediate-output
Version:
A Rivet plugin for capturing and displaying intermediate outputs for debugging and analysis
79 lines • 2.82 kB
JavaScript
export function intermediateOutputNode(rivet) {
const IntermediateOutputNodeImpl = {
create() {
return {
id: rivet.newId(),
type: "intermediateOutput",
title: "Intermediate Output",
data: {
inputText: "",
useInput: true,
description: "Captures intermediate output for debugging or analysis"
},
visualData: {
x: 0,
y: 0,
width: 240
}
};
},
getInputDefinitions(data) {
const inputs = [];
inputs.push({
id: "input",
title: "Input",
dataType: "string",
required: false
});
return inputs;
},
getOutputDefinitions(data) {
const outputs = [];
outputs.push({
id: "output",
title: "Output",
dataType: "string"
});
return outputs;
},
getUIData() {
return {
contextMenuTitle: "Intermediate Output",
group: "Debug",
infoBoxBody: "Captures and displays intermediate output for debugging or analysis purposes.",
infoBoxTitle: "Intermediate Output Node"
};
},
getEditors() {
return [
{
type: "string",
dataKey: "description",
label: "Description (document what this output captures)"
}
];
},
getBody(data) {
const description = data.description ? `Description: ${data.description}` : '';
const value = data.inputText ? `Value: ${data.inputText}` : '';
return [description, value].filter(Boolean).join('\n');
},
async process(data, inputData, _context) {
const inputPort = "input";
const outputPort = "output";
const input = inputData[inputPort]?.value ?? data.inputText;
// Log the intermediate output if we're in a Node.js environment
if (typeof process !== 'undefined' && process.versions && process.versions.node) {
console.log(`[Intermediate Output] ${data.description || ''}: ${input}`);
}
const outputs = {};
outputs[outputPort] = {
type: "string",
value: input
};
return outputs;
}
};
return rivet.pluginNodeDefinition(IntermediateOutputNodeImpl, "Intermediate Output Node");
}
//# sourceMappingURL=IntermediateOutputNode.js.map