n8n
Version:
n8n Workflow Automation Tool
48 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLangSmithEnabled = isLangSmithEnabled;
exports.resolveModelIdForTelemetry = resolveModelIdForTelemetry;
exports.buildBuilderTelemetry = buildBuilderTelemetry;
const agents_1 = require("@n8n/agents");
const DEFAULT_PROJECT_NAME = 'agent-builder';
const UNKNOWN_MODEL_ID = 'unknown';
function isLangSmithEnabled(env = process.env) {
const tracingFlag = env.LANGCHAIN_TRACING_V2 ?? env.LANGSMITH_TRACING;
if (tracingFlag?.toLowerCase() === 'false')
return false;
return Boolean(env.LANGSMITH_API_KEY ?? env.LANGCHAIN_API_KEY);
}
function resolveModelIdForTelemetry(modelConfig) {
if (typeof modelConfig === 'string')
return modelConfig;
if (typeof modelConfig === 'object' && modelConfig !== null) {
const record = modelConfig;
if (typeof record.id === 'string')
return record.id;
if (typeof record.modelId === 'string') {
return typeof record.provider === 'string'
? `${record.provider}/${record.modelId}`
: record.modelId;
}
}
return UNKNOWN_MODEL_ID;
}
function buildBuilderTelemetry(options, env = process.env) {
if (!isLangSmithEnabled(env))
return undefined;
const project = env.LANGSMITH_PROJECT ?? env.LANGCHAIN_PROJECT ?? DEFAULT_PROJECT_NAME;
const endpoint = env.LANGSMITH_ENDPOINT ?? env.LANGCHAIN_ENDPOINT;
return new agents_1.LangSmithTelemetry({
project,
...(endpoint ? { endpoint } : {}),
})
.functionId('agent-builder')
.metadata({
agent_id: options.agentId,
project_id: options.projectId,
user_id: options.userId,
thread_id: options.threadId,
model_id: resolveModelIdForTelemetry(options.model),
});
}
//# sourceMappingURL=builder-telemetry.js.map