Skip to content
Merged
12 changes: 12 additions & 0 deletions api/server/services/Endpoints/agents/backgroundCompletion.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
const {
createBackgroundToolCompletionWakeupHandler,
createBackgroundToolDeadClaimRecovery,
createPendingBackgroundCompletions,
createBackgroundToolResultHandler,
claimBackgroundToolResult: claimResult,
} = require('@librechat/api');
const {
listPendingAgentBackgroundToolCompletions,
listUndeliveredAgentTriggerTaskIds,
} = require('~/models');
const {
enqueueAgentTrigger,
persistAgentBackgroundToolResult,
Expand All @@ -23,6 +28,12 @@ const preregisterBackgroundToolCompletion = createBackgroundToolCompletionWakeup
(deliveryKey) => expediteCompletionWakeups({ deliveryKeys: [deliveryKey] }),
);

const pendingBackgroundToolCompletions = createPendingBackgroundCompletions({
list: listPendingAgentBackgroundToolCompletions,
listTaskIds: listUndeliveredAgentTriggerTaskIds,
retire: retireAgentTrigger,
});

function createBackgroundToolResultPersistence({ req, updateToolCallResult }) {
return createBackgroundToolResultHandler({ req, updateToolCallResult });
}
Expand All @@ -46,6 +57,7 @@ function createDeadBackgroundToolClaimRecovery(

module.exports = {
preregisterBackgroundToolCompletion,
pendingBackgroundToolCompletions,
createBackgroundToolResultPersistence,
claimBackgroundToolResult,
createDeadBackgroundToolClaimRecovery,
Expand Down
3 changes: 3 additions & 0 deletions api/server/services/Endpoints/agents/initialize.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ const { processAddedConvo } = require('./addedConvo');
const subagentThreadTaskStore = require('./subagentThreadStore');
const {
preregisterBackgroundToolCompletion,
pendingBackgroundToolCompletions,
createBackgroundToolResultPersistence,
claimBackgroundToolResult,
createDeadBackgroundToolClaimRecovery,
Expand Down Expand Up @@ -515,6 +516,8 @@ const initializeClientWithProvider = async ({
}),
backgroundToolCompletion: {
...(completionWakeupsEnabled ? { preregister: preregisterBackgroundToolCompletion } : {}),
/** Deliveries admitted before wake-ups were disabled still drain and still count. */
pending: pendingBackgroundToolCompletions,
persist: createBackgroundToolResultPersistence({
req,
updateToolCallResult: db.updateToolCallResult,
Expand Down
Loading
Loading