"use strict";
/**
* @file Merged tools provider — combines beledarian tools + memory tools + media tools.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.maestroToolsProvider = maestroToolsProvider;
const toolsProvider_1 = require("./tools/toolsProvider");
const toolsProvider_2 = require("./memory/toolsProvider");
const imageAnalysis_1 = require("./media/imageAnalysis");
const videoAnalysis_1 = require("./media/videoAnalysis");
const designSystems_1 = require("./media/designSystems");
const designReferences_1 = require("./media/designReferences");
const ffmpegPath_1 = require("./media/ffmpegPath");
const designSystems_2 = require("./media/designSystems");
const config_1 = require("./config");
const outputLimits_1 = require("./tools/outputLimits");
const loopGuard_1 = require("./loopGuard");
async function maestroToolsProvider(ctl) {
// Run both sub-providers in parallel
const [beledTools, memTools] = await Promise.all([
(0, toolsProvider_1.toolsProvider)(ctl),
(0, toolsProvider_2.toolsProvider)(ctl),
]);
// Read config for media tool toggles
const cfg = ctl.getPluginConfig(config_1.maestroConfigSchematics);
// Auto-detect ffmpeg paths (no config needed)
(0, ffmpegPath_1.setCustomPaths)("", "");
// Set output limits for media tools
const limits = (0, outputLimits_1.getOutputLimits)(cfg.get("toolOutputBudget"));
(0, designSystems_2.setDesignSystemLimit)(limits.maxDesignSystem);
const mediaTools = [];
const enableMedia = cfg.get("enableMediaAnalysis") !== false;
if (enableMedia) {
const imgMaxDim = 512;
mediaTools.push((0, imageAnalysis_1.createImageAnalysisTool)(imgMaxDim));
mediaTools.push((0, imageAnalysis_1.createBatchImageAnalysisTool)(imgMaxDim));
mediaTools.push((0, imageAnalysis_1.createCatalogImagesTool)());
mediaTools.push((0, videoAnalysis_1.createVideoAnalysisTool)(4, 384));
}
// Design system tools + reference guides (when design mode is on)
if (cfg.get("enableDesignMode")) {
mediaTools.push(...(0, designSystems_1.createDesignSystemTools)());
mediaTools.push(...(0, designReferences_1.createDesignReferenceTools)());
}
const allTools = [...beledTools, ...memTools, ...mediaTools];
(0, loopGuard_1.addLoopDetection)(allTools);
return allTools;
}
//# sourceMappingURL=toolsProvider.js.map