Skip to main content
Glama
ModelRunner.js•2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modelRun = modelRun; exports.asyncModelRun = asyncModelRun; exports.scheduledModelRun = scheduledModelRun; const ScheduledCommand_1 = require("./commands/ScheduledCommand"); const genericModelRun = (s, cmds, initialValue, runCmd, then) => { return s.then((o) => { const { model, real } = o; let state = initialValue; for (const c of cmds) { state = then(state, () => { return runCmd(c, model, real); }); } return state; }); }; const internalModelRun = (s, cmds) => { const then = (_p, c) => c(); const setupProducer = { then: (fun) => { fun(s()); return undefined; }, }; const runSync = (cmd, m, r) => { if (cmd.check(m)) cmd.run(m, r); return undefined; }; return genericModelRun(setupProducer, cmds, undefined, runSync, then); }; const isAsyncSetup = (s) => { return typeof s.then === 'function'; }; const internalAsyncModelRun = async (s, cmds, defaultPromise = Promise.resolve()) => { const then = (p, c) => p.then(c); const setupProducer = { then: (fun) => { const out = s(); if (isAsyncSetup(out)) return out.then(fun); else return fun(out); }, }; const runAsync = async (cmd, m, r) => { if (await cmd.check(m)) await cmd.run(m, r); }; return await genericModelRun(setupProducer, cmds, defaultPromise, runAsync, then); }; function modelRun(s, cmds) { internalModelRun(s, cmds); } async function asyncModelRun(s, cmds) { await internalAsyncModelRun(s, cmds); } async function scheduledModelRun(scheduler, s, cmds) { const scheduledCommands = (0, ScheduledCommand_1.scheduleCommands)(scheduler, cmds); const out = internalAsyncModelRun(s, scheduledCommands, scheduler.schedule(Promise.resolve(), 'startModel')); await scheduler.waitFor(out); await scheduler.waitAll(); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Digital-Defiance/mcp-screenshot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server