@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
37 lines (35 loc) • 1.23 kB
JavaScript
import { useLogger } from "../../logger/index.js";
import { useEnv } from "@directus/env";
import { getNodeEnv } from "@directus/utils/node";
//#region src/ai/devtools/index.ts
let devToolsMiddleware = null;
let devToolsInitPromise = null;
async function doDevToolsInit() {
if (useEnv()["AI_DEVTOOLS_ENABLED"] !== true) return;
const logger = useLogger();
if (getNodeEnv() === "production") {
logger.warn("AI DevTools is enabled but refused in production");
return;
}
try {
const { devToolsMiddleware: createDevToolsMiddleware } = await import("@ai-sdk/devtools");
devToolsMiddleware = createDevToolsMiddleware();
logger.info("AI DevTools middleware enabled. Run `npx @ai-sdk/devtools` and open http://localhost:4983");
} catch (error) {
logger.warn(error, "Failed to initialize AI DevTools middleware");
}
}
const initAIDevTools = async () => {
if (devToolsMiddleware) return;
if (devToolsInitPromise) return devToolsInitPromise;
const initPromise = doDevToolsInit().finally(() => {
devToolsInitPromise = null;
});
devToolsInitPromise = initPromise;
return initPromise;
};
const getDevToolsMiddleware = () => {
return devToolsMiddleware;
};
//#endregion
export { getDevToolsMiddleware, initAIDevTools };