| import { useCallback } from 'react';
|
| import { exportTraceToJson, downloadJson } from '@/services/jsonExporter';
|
| import { AgentTrace, AgentStep, AgentTraceMetadata, FinalStep } from '@/types/agent';
|
|
|
| interface UseJsonExporterOptions {
|
| trace?: AgentTrace;
|
| steps: AgentStep[];
|
| metadata?: AgentTraceMetadata;
|
| finalStep?: FinalStep;
|
| }
|
|
|
| interface UseJsonExporterReturn {
|
| downloadTraceAsJson: () => void;
|
| }
|
|
|
| |
| |
|
|
| export const useJsonExporter = ({
|
| trace,
|
| steps,
|
| metadata,
|
| finalStep,
|
| }: UseJsonExporterOptions): UseJsonExporterReturn => {
|
| const downloadTraceAsJson = useCallback(() => {
|
| if (!trace) {
|
| console.error('No trace available to export');
|
| return;
|
| }
|
|
|
| try {
|
| const jsonString = exportTraceToJson(trace, steps, metadata, finalStep);
|
| const filename = `trace-${trace.id}.json`;
|
| downloadJson(jsonString, filename);
|
| } catch (error) {
|
| console.error('Error exporting trace to JSON:', error);
|
| }
|
| }, [trace, steps, metadata, finalStep]);
|
|
|
| return {
|
| downloadTraceAsJson,
|
| };
|
| };
|
|
|