149 lines
12 KiB
JavaScript
149 lines
12 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
}) : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = (this && this.__importStar) || (function () {
|
|
var ownKeys = function(o) {
|
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
var ar = [];
|
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
return ar;
|
|
};
|
|
return ownKeys(o);
|
|
};
|
|
return function (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
})();
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.run = void 0;
|
|
const path = __importStar(require("path"));
|
|
const dir_1 = require("@plastichub/fs/dir");
|
|
const exists_1 = require("@plastichub/fs/exists");
|
|
const write_1 = require("@plastichub/fs/write");
|
|
const osr_commons_1 = require("@plastichub/osr-commons");
|
|
const glob_1 = require("glob");
|
|
const __1 = require("../");
|
|
const client_1 = require("../client");
|
|
const zod_schema_1 = require("../zod_schema");
|
|
const source_1 = require("../source");
|
|
const array_1 = require("../utils/array");
|
|
const collector_1 = require("../collector");
|
|
const profile_1 = require("../profile");
|
|
const tools_1 = require("../tools");
|
|
const prompt_1 = require("../prompt");
|
|
const variables_1 = require("../variables");
|
|
const zod_schema_2 = require("../zod_schema");
|
|
const run_completion_1 = require("./run-completion");
|
|
const run_tools_1 = require("./run-tools");
|
|
const run_assistant_1 = require("./run-assistant");
|
|
const processRun = async (opts) => {
|
|
let options = null;
|
|
const target = path.resolve(opts.output || opts.path);
|
|
if (!(0, exists_1.sync)(target)) {
|
|
(0, dir_1.sync)(target);
|
|
}
|
|
opts.disable = (0, array_1.flatten)(opts.disable);
|
|
opts.disableTools = (0, array_1.flatten)(opts.disableTools);
|
|
opts.include = (0, array_1.flatten)(opts.include);
|
|
opts.variables = await (0, profile_1.load)(opts);
|
|
try {
|
|
options = (0, zod_schema_1.OptionsSchema)().parse(opts);
|
|
}
|
|
catch (error) {
|
|
__1.logger.error('Failed to parse options:', error.message, error.issues);
|
|
return;
|
|
}
|
|
const client = (0, client_1.createClient)(options);
|
|
options.variables = { ...options.variables, ...(0, variables_1.variables)(options) };
|
|
if (!client) {
|
|
__1.logger.error('Failed to create client');
|
|
return;
|
|
}
|
|
options.client = client;
|
|
options.collector = (0, collector_1.collector)(options, client);
|
|
// Resolve files and messages
|
|
let messages = [];
|
|
let files = await (0, source_1.get)(path.resolve(options.path), options.include) || [];
|
|
files = files.map(f => { return { ...f, role: 'user' }; });
|
|
messages = [...messages, ...files];
|
|
messages.push(await (0, prompt_1.prompt)(opts));
|
|
messages.push(await (0, prompt_1.preferences)(opts));
|
|
const params = {
|
|
model: options.model,
|
|
messages,
|
|
tools: []
|
|
};
|
|
if (options.mode === zod_schema_2.ChatCompletionType.TOOLS || options.mode === zod_schema_2.ChatCompletionType.ASSISTANT) {
|
|
params.tools = await (0, tools_1.load)(options);
|
|
params.tool_choice = 'auto';
|
|
params.parallel_tool_calls = false;
|
|
}
|
|
const logDir = path.resolve((0, osr_commons_1.resolve)(opts.logs));
|
|
const paramsPath = path.join(logDir, 'params.json');
|
|
(0, write_1.sync)(paramsPath, JSON.stringify({ ...params }, null, 2));
|
|
__1.logger.debug(`Read ${files.length} files from project ${path.resolve(options.path)} with ${options.include}`, files.map(f => f.path), options.variables, params.tools.map(t => `${t.function.name} : ${t.function.description}`));
|
|
let ret = null;
|
|
try {
|
|
switch (options.mode) {
|
|
case zod_schema_2.ChatCompletionType.COMPLETION:
|
|
ret = await (0, run_completion_1.runCompletion)(client, params, options);
|
|
break;
|
|
case zod_schema_2.ChatCompletionType.TOOLS:
|
|
ret = await (0, run_tools_1.runTools)(client, params, options);
|
|
break;
|
|
case zod_schema_2.ChatCompletionType.ASSISTANT:
|
|
ret = await (0, run_assistant_1.runAssistant)(client, params, options);
|
|
break;
|
|
default:
|
|
throw new Error(`Unsupported mode: ${options.mode}`);
|
|
}
|
|
}
|
|
catch (e) {
|
|
__1.logger.error(`Error running ${options.mode} mode: ${e.message}`);
|
|
}
|
|
opts.variables['LAST'] = ret;
|
|
return ret;
|
|
};
|
|
const run = async (opts) => {
|
|
const ret = [];
|
|
if (opts.each) {
|
|
const matches = (0, glob_1.globSync)(opts.each, {
|
|
cwd: path.resolve(opts.path),
|
|
absolute: false
|
|
});
|
|
if (matches.length === 0) {
|
|
__1.logger.warn(`No files matching pattern ${opts.each} found in ${opts.path}`);
|
|
return ret;
|
|
}
|
|
__1.logger.info(`Processing ${matches.length} files matching pattern ${opts.each}...`);
|
|
for (const file of matches) {
|
|
const fileOpts = { ...opts };
|
|
fileOpts.include = [(0, osr_commons_1.forward_slash)(file)];
|
|
ret.push(await processRun(fileOpts));
|
|
}
|
|
}
|
|
else {
|
|
ret.push(await processRun(opts));
|
|
}
|
|
return ret;
|
|
};
|
|
exports.run = run;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRzL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNEI7QUFDNUIsNENBQWdEO0FBQ2hELGtEQUFzRDtBQUN0RCxnREFBb0Q7QUFDcEQseURBQWdFO0FBQ2hFLCtCQUErQjtBQUcvQiwyQkFBNEI7QUFDNUIsc0NBQXdDO0FBQ3hDLDhDQUE2QztBQUM3QyxzQ0FBK0I7QUFDL0IsMENBQXdDO0FBQ3hDLDRDQUF3QztBQUN4Qyx3Q0FBZ0Q7QUFDaEQsb0NBQTRDO0FBQzVDLHNDQUErQztBQUMvQyw0Q0FBd0M7QUFDeEMsOENBQWtEO0FBRWxELHFEQUFnRDtBQUNoRCwyQ0FBc0M7QUFDdEMsbURBQThDO0FBRzlDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFlLEVBQUUsRUFBRTtJQUUzQyxJQUFJLE9BQU8sR0FBYyxJQUFJLENBQUE7SUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyRCxJQUFJLENBQUMsSUFBQSxhQUFNLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixJQUFBLFVBQUcsRUFBQyxNQUFNLENBQUMsQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsZUFBTyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUEsZUFBTyxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsZUFBTyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBQSxjQUFXLEVB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
|