mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-09-21 15:45:22 +00:00
* feat: wake agents for background tool completion * fix: isolate background completion contracts * fix: anchor background completion identity * fix: close background completion delivery gaps * fix: preserve manual background polling * fix: preserve legacy tool group identity * fix: close background wakeup identity gaps * test: type background wakeup enqueue mock * fix: preserve background completion identity * test: type activity phase fixture * test: mock phase media query * fix: arbitrate background result ownership * fix: retain tool step routing helper * test: expand phase groups before identity checks * fix: preserve background completion ownership * fix: bound durable background results * fix: type wakeup input budget export * chore: sort background handler imports * fix: persist timed-out background completions * fix: reconcile background completion ownership * fix: type background completion capabilities * fix: harden background completion terminalization * test: type missing completion evidence * fix: require evidence for completion retirement * chore: satisfy background completion static checks * test: cover automatic background completion wakeups * test: assert background wakeup agent identity * fix: wake capability-fenced trigger deliveries * test: keep capability shield fixture public * test: assert capability worker wakeup * fix: close background completion ownership gaps * test: satisfy completion lease static checks * fix: preserve artifact completion wakeups * fix: close background delivery recovery gaps * fix: simplify background receipt guidance * fix: recover dead background completion batches * fix: fence background completion recovery * fix: recheck background recovery ownership * fix: fence unpublished background continuations * test: await background message hydration
54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
const {
|
|
createAgentTriggerService,
|
|
createAgentContinuationResolver,
|
|
createAgentEventContinueResolver,
|
|
createSubagentCompletionWakeupResolver,
|
|
SUBAGENT_COMPLETION_SOURCE,
|
|
createBackgroundToolCompletionWakeupResolver,
|
|
BACKGROUND_TOOL_COMPLETION_SOURCE,
|
|
GenerationJobManager,
|
|
} = require('@librechat/api');
|
|
const methods = require('~/models');
|
|
|
|
const subagentCompletionAdapter = createSubagentCompletionWakeupResolver({
|
|
methods,
|
|
getGenerationJob: (conversationId) => GenerationJobManager.getJob(conversationId),
|
|
});
|
|
const backgroundToolCompletionAdapter = createBackgroundToolCompletionWakeupResolver({
|
|
methods,
|
|
getGenerationJob: (conversationId) => GenerationJobManager.getJob(conversationId),
|
|
});
|
|
const eventActorAdapter = createAgentEventContinueResolver({
|
|
methods,
|
|
getGenerationJob: (conversationId) => GenerationJobManager.getJob(conversationId),
|
|
});
|
|
|
|
const service = createAgentTriggerService({
|
|
methods,
|
|
isPrincipalActive: methods.isAgentTriggerPrincipalActive,
|
|
supportsDetachedActionCompletion: () => GenerationJobManager.supportsDetachedAgentEventActions,
|
|
prepareContinue: createAgentContinuationResolver({
|
|
eventActor: eventActorAdapter,
|
|
internalSources: new Map([
|
|
[SUBAGENT_COMPLETION_SOURCE, subagentCompletionAdapter],
|
|
[BACKGROUND_TOOL_COMPLETION_SOURCE, backgroundToolCompletionAdapter],
|
|
]),
|
|
}),
|
|
});
|
|
|
|
module.exports = {
|
|
initializeAgentTriggerService: service.initialize,
|
|
stopAgentTriggerService: service.stop,
|
|
dispatchAgentTrigger: service.dispatch,
|
|
enqueueAgentTrigger: service.enqueue,
|
|
getAgentTriggerDelivery: service.getDelivery,
|
|
getAgentTriggerDeliveryStatus: service.getDeliveryStatus,
|
|
getAgentTriggerDeadLetters: service.getDeadLetters,
|
|
requeueAgentTrigger: service.requeue,
|
|
retireAgentTrigger: service.retire,
|
|
renewAgentTriggerProducerLease: service.renewProducerLease,
|
|
drainAgentTriggerDeliveriesForUser: service.drainUser,
|
|
prepareAgentTriggerUserPurge: service.prepareUserPurge,
|
|
cancelAgentTriggerUserPurge: service.cancelUserPurge,
|
|
purgeAgentTriggerDeliveriesForUser: service.purgeUser,
|
|
};
|