UNPKG

spaider

Version:

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

50 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processRequest = processRequest; const pipeline_1 = require("./lib/pipeline"); const steps_1 = require("./steps"); const conditions_1 = require("./steps/conditions"); const logger_1 = require("./services/logger"); async function processRequest(userPrompt, initialFilePaths, projectRoot = process.cwd(), writeOnly = false) { logger_1.Logger.info(`Spaider starting ...`); logger_1.Logger.info(`Project root: ${projectRoot}`); logger_1.Logger.info(`Initial files: ${initialFilePaths.length}`); logger_1.Logger.info(`Write-only mode: ${writeOnly}`); const initialContext = { userPrompt, files: initialFilePaths.map((path) => ({ path })), projectRoot, intent: { editMode: false, description: "", needsMoreContext: false, filePaths: [], searchTerms: [], }, changes: [], result: { modifiedFiles: [], deletedFiles: [], createdFiles: [], }, }; const processRequest = (0, pipeline_1.pipeline)(steps_1.readFiles, steps_1.parseAST, steps_1.analyzeIntent, { when: conditions_1.needsMoreContext, steps: [steps_1.discoverFiles, steps_1.readFiles, steps_1.parseAST], }, { when: conditions_1.isAskMode, steps: [steps_1.generateAnswer], }, { when: conditions_1.isEditMode, steps: writeOnly ? [steps_1.generateChanges, steps_1.writeChanges] : [steps_1.generateChanges, steps_1.applyChanges], }); const ctx = await processRequest(initialContext); return { intent: ctx.intent, answer: ctx.answer, result: ctx.result, }; } //# sourceMappingURL=index.js.map