Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
MemoriesManager:
"moz-src:///browser/components/aiwindow/models/memories/MemoriesManager.sys.mjs",
MemoriesHistoryScheduler:
"moz-src:///browser/components/aiwindow/models/memories/MemoriesHistoryScheduler.sys.mjs",
MemoriesConversationScheduler:
"moz-src:///browser/components/aiwindow/models/memories/MemoriesConversationScheduler.sys.mjs",
});
/**
*/
export class MemoriesSchedulers {
/**
* Entry point to be called when an AI window becomes active.
* Starts (or reuses) schedulers. Each scheduler will still enforce its own cooldown.
* Usage: MemoriesSchedulers.maybeRunAndSchedule()
*/
static maybeRunAndSchedule() {
if (!lazy.MemoriesManager.shouldEnableMemoriesSchedulers()) {
return null;
}
// Start schedulers
const history = lazy.MemoriesHistoryScheduler.maybeInit();
const conversation = lazy.MemoriesConversationScheduler.maybeInit();
return { history, conversation };
}
static stop() {
lazy.MemoriesHistoryScheduler.maybeInit()?.destroy?.();
lazy.MemoriesConversationScheduler.maybeInit()?.destroy?.();
}
}