From 172a48973bf8880f0569a0bd55c6b50d4d466e62 Mon Sep 17 00:00:00 2001 From: Michael Doyle Date: Mon, 20 Oct 2025 17:03:22 -0400 Subject: [PATCH] feat(genkit-tools): support trace uploads via tools router --- genkit-tools/common/src/manager/manager.ts | 11 +++++++++++ genkit-tools/common/src/server/router.ts | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/genkit-tools/common/src/manager/manager.ts b/genkit-tools/common/src/manager/manager.ts index 0f664301fb..4eed6b84b0 100644 --- a/genkit-tools/common/src/manager/manager.ts +++ b/genkit-tools/common/src/manager/manager.ts @@ -323,6 +323,17 @@ export class RuntimeManager { return response.data as TraceData; } + /** + * Adds a trace to the trace store + */ + async addTrace(input: TraceData): Promise { + await axios + .post(`${this.telemetryServerUrl}/api/traces/`, input) + .catch((err) => + this.httpErrorHandler(err, 'Error writing trace to store.') + ); + } + /** * Notifies the runtime of dependencies it may need (e.g. telemetry server URL). */ diff --git a/genkit-tools/common/src/server/router.ts b/genkit-tools/common/src/server/router.ts index 44bc58d306..3c6329f34a 100644 --- a/genkit-tools/common/src/server/router.ts +++ b/genkit-tools/common/src/server/router.ts @@ -23,6 +23,7 @@ import { } from '../eval'; import type { RuntimeManager } from '../manager/manager'; import { GenkitToolsError, type RuntimeInfo } from '../manager/types'; +import { TraceDataSchema } from '../types'; import type { Action } from '../types/action'; import * as apis from '../types/apis'; import type { EnvironmentVariable } from '../types/env'; @@ -164,6 +165,14 @@ export const TOOLS_SERVER_ROUTER = (manager: RuntimeManager) => return manager.getTrace(input); }), + /** Adds a trace to the trace store */ + addTrace: loggedProcedure + .input(TraceDataSchema) + .output(z.void()) + .mutation(async ({ input }) => { + return manager.addTrace(input); + }), + /** Retrieves all eval run keys */ listEvalRunKeys: loggedProcedure .input(apis.ListEvalKeysRequestSchema)