UNPKG

spaider

Version:

Deterministic-first AI code assistant that crawls your codebase to implement changes using open source LLMs

41 lines 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pipeline = void 0; const logger_1 = require("../services/logger"); const pipeline = (...steps) => async (context) => { let result = context; for (const step of steps) { if (typeof step === "function") { // Simple step function logger_1.Logger.debug(`Executing step: ${step.name}`); result = await step(result); } else if (Array.isArray(step)) { // Conditional step: [condition, function] const [condition, fn] = step; if (condition(result)) { logger_1.Logger.debug(`Executing conditional step: ${fn.name}`); result = await fn(result); } else { logger_1.Logger.debug(`Skipping conditional step: ${fn.name}`); } } else { // Object syntax: { when: condition, steps: [...] } if (step.when(result)) { logger_1.Logger.debug(`Executing step group (${step.steps.length} steps)`); for (const fn of step.steps) { logger_1.Logger.debug(` - ${fn.name}`); result = await fn(result); } } else { logger_1.Logger.debug(`Skipping step group (${step.steps.length} steps)`); } } } return result; }; exports.pipeline = pipeline; //# sourceMappingURL=pipeline.js.map