"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.t = generateConversationLabel;var _globalsDQvpEApL = require("./globals-DQvpEApL.js"); var _modelSelectionDP92S76A = require("./model-selection-DP92S76A.js"); var _modelAuthRuntimeSharedDu1UYXoT = require("./model-auth-runtime-shared-Du1UYXoT.js"); require("./tokens-CIoRklU5.js"); require("./heartbeat-B5UCaFTR.js"); var _modelAuthBcUEPfGz = require("./model-auth-BcUEPfGz.js"); require("./chunk-BJOSq3sp.js"); var _modelCPrqtDbi = require("./model-CPrqtDbi.js"); require("./dispatch-Cdc7z0Lu.js"); require("./provider-dispatcher-Bq4ctOM5.js"); require("./get-reply-bONH39Y6.js"); require("./abort-S_TSFZmD.js"); require("./btw-command-VU-N45CN.js"); var _simpleCompletionTransportDCqrUwmk = require("./simple-completion-transport-DCqrUwmk.js"); var _piAi = require("@mariozechner/pi-ai"); //#region src/auto-reply/reply/conversation-label-generator.ts const DEFAULT_MAX_LABEL_LENGTH = 128; const TIMEOUT_MS = 15e3; function isTextContentBlock(block) { return block.type === "text"; } async function generateConversationLabel(params) { const { userMessage, prompt, cfg, agentId, agentDir } = params; const maxLength = typeof params.maxLength === "number" && Number.isFinite(params.maxLength) && params.maxLength > 0 ? Math.floor(params.maxLength) : DEFAULT_MAX_LABEL_LENGTH; const modelRef = (0, _modelSelectionDP92S76A.f)({ cfg, agentId }); const resolved = await (0, _modelCPrqtDbi.n)(modelRef.provider, modelRef.model, agentDir, cfg); if (!resolved.model) { (0, _globalsDQvpEApL.r)(`conversation-label-generator: failed to resolve model ${modelRef.provider}/${modelRef.model}`); return null; } const completionModel = (0, _simpleCompletionTransportDCqrUwmk.t)({ model: resolved.model, cfg }); const apiKey = (0, _modelAuthRuntimeSharedDu1UYXoT.t)(await (0, _modelAuthBcUEPfGz.r)({ model: completionModel, cfg, agentDir }), modelRef.provider); const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS); try { const text = (await (0, _piAi.completeSimple)(completionModel, { messages: [{ role: "user", content: `${prompt}\n\n${userMessage}`, timestamp: Date.now() }] }, { apiKey, maxTokens: 100, temperature: .3, signal: controller.signal })).content.filter(isTextContentBlock).map((block) => block.text).join("").trim(); if (!text) return null; return text.slice(0, maxLength); } finally { clearTimeout(timeout); } } //#endregion /* v9-a1aee47752e59c88 */