rdesign/frontend/node_modules/@copilotkitnext/react/dist/hooks/use-render-custom-messages.cjs

53 lines
2.5 KiB
JavaScript

const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_CopilotChatConfigurationProvider = require('../providers/CopilotChatConfigurationProvider.cjs');
require('../providers/index.cjs');
const require_CopilotKitProvider = require('../providers/CopilotKitProvider.cjs');
let react_jsx_runtime = require("react/jsx-runtime");
//#region src/hooks/use-render-custom-messages.tsx
function useRenderCustomMessages() {
const { copilotkit } = require_CopilotKitProvider.useCopilotKit();
const config = require_CopilotChatConfigurationProvider.useCopilotChatConfiguration();
if (!config) return null;
const { agentId, threadId } = config;
const customMessageRenderers = copilotkit.renderCustomMessages.filter((renderer) => renderer.agentId === void 0 || renderer.agentId === agentId).sort((a, b) => {
const aHasAgent = a.agentId !== void 0;
if (aHasAgent === (b.agentId !== void 0)) return 0;
return aHasAgent ? -1 : 1;
});
return function(params) {
if (!customMessageRenderers.length) return null;
const { message, position } = params;
const resolvedRunId = copilotkit.getRunIdForMessage(agentId, threadId, message.id) ?? copilotkit.getRunIdsForThread(agentId, threadId).slice(-1)[0];
const runId = resolvedRunId ?? `missing-run-id:${message.id}`;
const agent = copilotkit.getAgent(agentId);
if (!agent) throw new Error("Agent not found");
const messagesIdsInRun = resolvedRunId ? agent.messages.filter((msg) => copilotkit.getRunIdForMessage(agentId, threadId, msg.id) === resolvedRunId).map((msg) => msg.id) : [message.id];
const rawMessageIndex = agent.messages.findIndex((msg) => msg.id === message.id);
const messageIndex = rawMessageIndex >= 0 ? rawMessageIndex : 0;
const messageIndexInRun = resolvedRunId ? Math.max(messagesIdsInRun.indexOf(message.id), 0) : 0;
const numberOfMessagesInRun = resolvedRunId ? messagesIdsInRun.length : 1;
const stateSnapshot = resolvedRunId ? copilotkit.getStateByRun(agentId, threadId, resolvedRunId) : void 0;
let result = null;
for (const renderer of customMessageRenderers) {
if (!renderer.render) continue;
const Component = renderer.render;
result = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
message,
position,
runId,
messageIndex,
messageIndexInRun,
numberOfMessagesInRun,
agentId,
stateSnapshot
}, `${runId}-${message.id}-${position}`);
if (result) break;
}
return result;
};
}
//#endregion
exports.useRenderCustomMessages = useRenderCustomMessages;
//# sourceMappingURL=use-render-custom-messages.cjs.map