kbot:parse includes

This commit is contained in:
Code 2025-02-01 20:19:12 +01:00
parent 933c9f3c7f
commit 82922e5faf
15 changed files with 293 additions and 48 deletions

View File

@ -52,7 +52,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:git",
"name": "git",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -75,7 +75,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:templates:solidworks",
"name": "templates:solidworks",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -98,7 +98,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:prompt:docker",
"name": "prompt:docker",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -123,7 +123,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:iterator",
"name": "iterator",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -152,7 +152,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:search:google",
"name": "search:google",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -175,7 +175,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:search:serpapi",
"name": "search:serpapi",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -197,7 +197,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:interact",
"name": "interact",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -222,7 +222,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:web",
"name": "web",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -267,7 +267,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:tools:email",
"name": "tools:email",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -289,7 +289,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:tools:terminal:astro",
"name": "tools:terminal:astro",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -331,7 +331,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:tools:search",
"name": "tools:search",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -434,7 +434,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:each:glob",
"name": "each:glob",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -460,7 +460,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:each:array",
"name": "each:array",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -492,7 +492,40 @@
{
"type": "node",
"request": "launch",
"name": "modify:tools:test",
"name": "salamand",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
"${workspaceFolder}/**/*.js"
],
"cwd": "${workspaceFolder}",
"args": [
"summarize all markdow files as json",
"--logLevel=1",
"--var-test=foo",
"--dry",
"--mode=completion",
"--filters=code",
"--logs=./tests/each",
"--preferences=none",
"--each=gpt-3.5-turbo,gpt-4o",
"--router=openai",
"--include=C:\\Users\\zx\\Desktop\\osr\\osr-mono\\packages\\osr-code-bot\\tests\\salamand\\g1.md C:\\Users\\zx\\Desktop\\osr\\osr-mono\\packages\\osr-code-bot\\tests\\salamand\\g2.md",
"--include=C:\\Users\\zx\\Desktop\\osr\\osr-mono\\packages\\osr-code-bot\\tests\\salamand\\g1.md",
"--dst=./tests/each/${ITEM}.json",
"--disable='npm,terminal,interact,git,search'",
],
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**"
],
"outputCapture": "std",
"console": "integratedTerminal"
},
{
"type": "node",
"request": "launch",
"name": "tools:test",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [
@ -521,7 +554,7 @@
{
"type": "node",
"request": "launch",
"name": "modify:hono",
"name": "hono",
"skipFiles": [],
"program": "${workspaceFolder}\\main.js",
"outFiles": [

File diff suppressed because one or more lines are too long

View File

@ -17,10 +17,7 @@ const init_1 = require("./commands/init");
const build_1 = require("./commands/build");
const fetch_1 = require("./commands/fetch");
exports.logger = (0, osr_log_1.createLogger)('llm-tools');
const modify = async (argv) => {
const ret = await (0, run_1.run)(argv);
return ret;
};
const modify = async (argv) => await (0, run_1.run)(argv);
const yargOptions = {
onKey: ((_yargs, key, options) => {
switch (key) {
@ -47,4 +44,4 @@ const yargOptions = {
.help()
.wrap(yargs_1.default.terminalWidth() - 20)
.parse();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxrREFBeUI7QUFDekIsMkNBQXVDO0FBQ3ZDLHdDQUFvQztBQUVwQyxpREFBa0Q7QUFDbEQsNkNBQW1EO0FBRW5ELHlEQUFpRDtBQUNqRCwyREFBeUM7QUFDekMsa0RBQThDO0FBQzlDLDBDQUFzQztBQUN0Qyw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBRTNCLFFBQUEsTUFBTSxHQUFvQixJQUFBLHNCQUFZLEVBQUMsV0FBVyxDQUFDLENBQUE7QUFDaEUsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLElBQWUsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxTQUFHLEVBQUMsSUFBaUIsQ0FBQyxDQUFBO0lBQ3hDLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBO0FBQ0QsTUFBTSxXQUFXLEdBQVE7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQy9CLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsQ0FBQztvQkFDQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO1lBQ0gsS0FBSyxTQUFTO2dCQUNaLENBQUM7b0JBQ0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQyxDQUFBO2dCQUN0RSxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNILENBQUE7QUFFRCxJQUFBLGVBQUssRUFBQyxJQUFBLGlCQUFPLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3pCLE9BQU8sQ0FDTixNQUFNLEVBQ04sK0JBQStCLEVBQy9CLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsS0FBSyxFQUFFLElBQUEsMEJBQWEsR0FBRSxFQUFFLFdBQVcsQ0FBQyxFQUN2RCxXQUFJLENBQ0w7S0FDQSxPQUFPLENBQ04saUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBQSxxQkFBTyxFQUFDLEtBQUssRUFBRSxJQUFBLDBCQUFhLEdBQUUsRUFBRSxXQUFXLENBQUMsRUFDdkQsTUFBTSxDQUNQO0tBQ0EsT0FBTyxDQUNOLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSxrQkFBSyxHQUFFLENBQ2xCO0tBQ0EsT0FBTyxDQUNOLE9BQU8sRUFDUCx1QkFBdUIsRUFDdkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSxhQUFLLEdBQUUsQ0FDbEI7S0FDQSxPQUFPLENBQ04sT0FBTyxFQUNQLCtCQUErQixFQUMvQixDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNkLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGFBQUssR0FBRSxDQUNsQjtLQUNBLE9BQU8sQ0FDTixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2QsY0FBVyxDQUNaO0tBQ0EsT0FBTyxDQUNOLFVBQVUsRUFDVixlQUFlLEVBQ2YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxtQkFBUSxDQUNUO0tBQ0EsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsd0JBQXdCLEVBQzFELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsS0FBSyxFQUFFLElBQUEsMEJBQWEsR0FBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztLQUNqRSxJQUFJLEVBQUU7S0FDTixJQUFJLENBQUMsZUFBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztLQUNoQyxLQUFLLEVBQUUsQ0FBQSJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxrREFBeUI7QUFDekIsMkNBQXVDO0FBQ3ZDLHdDQUFvQztBQUVwQyxpREFBa0Q7QUFDbEQsNkNBQW1EO0FBRW5ELHlEQUFpRDtBQUNqRCwyREFBeUM7QUFDekMsa0RBQThDO0FBQzlDLDBDQUFzQztBQUN0Qyw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBRTNCLFFBQUEsTUFBTSxHQUFvQixJQUFBLHNCQUFZLEVBQUMsV0FBVyxDQUFDLENBQUE7QUFDaEUsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLElBQWUsRUFBRSxFQUFFLENBQUUsTUFBTSxJQUFBLFNBQUcsRUFBQyxJQUFpQixDQUFDLENBQUE7QUFFdkUsTUFBTSxXQUFXLEdBQVE7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQy9CLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsQ0FBQztvQkFDQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO1lBQ0gsS0FBSyxTQUFTO2dCQUNaLENBQUM7b0JBQ0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQyxDQUFBO2dCQUN0RSxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNILENBQUE7QUFFRCxJQUFBLGVBQUssRUFBQyxJQUFBLGlCQUFPLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3pCLE9BQU8sQ0FDTixNQUFNLEVBQ04sK0JBQStCLEVBQy9CLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsS0FBSyxFQUFFLElBQUEsMEJBQWEsR0FBRSxFQUFFLFdBQVcsQ0FBQyxFQUN2RCxXQUFJLENBQ0w7S0FDQSxPQUFPLENBQ04saUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBQSxxQkFBTyxFQUFDLEtBQUssRUFBRSxJQUFBLDBCQUFhLEdBQUUsRUFBRSxXQUFXLENBQUMsRUFDdkQsTUFBTSxDQUNQO0tBQ0EsT0FBTyxDQUNOLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSxrQkFBSyxHQUFFLENBQ2xCO0tBQ0EsT0FBTyxDQUNOLE9BQU8sRUFDUCx1QkFBdUIsRUFDdkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSxhQUFLLEdBQUUsQ0FDbEI7S0FDQSxPQUFPLENBQ04sT0FBTyxFQUNQLCtCQUErQixFQUMvQixDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNkLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGFBQUssR0FBRSxDQUNsQjtLQUNBLE9BQU8sQ0FDTixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQ2QsY0FBVyxDQUNaO0tBQ0EsT0FBTyxDQUNOLFVBQVUsRUFDVixlQUFlLEVBQ2YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDZCxtQkFBUSxDQUNUO0tBQ0EsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsd0JBQXdCLEVBQzFELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsS0FBSyxFQUFFLElBQUEsMEJBQWEsR0FBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztLQUNqRSxJQUFJLEVBQUU7S0FDTixJQUFJLENBQUMsZUFBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztLQUNoQyxLQUFLLEVBQUUsQ0FBQSJ9

View File

@ -16,6 +16,7 @@
"@plastichub/osr-log": "0.1.6",
"axios": "1.7.9",
"chalk": "4.0.0",
"deepmerge-ts": "7.1.4",
"emojilib": "4.0.1",
"free-astro-components": "1.1.1",
"glob": "11.0.1",
@ -60,12 +61,13 @@
"axios": "^1.7.9",
"cheerio": "^1.0.0",
"find-up": "^5.0.0",
"glob": "^11.0.1",
"inquirer": "^12.2.0",
"jsdom": "^25.0.1",
"marked": "^15.0.4",
"mime-types": "^2.1.35",
"nodemailer": "^6.9.16",
"openai": "^4.76.3",
"openai": "^4.80.1",
"p-map": "^4.0.0",
"puppeteer": "^23.11.1",
"screenshot-desktop": "^1.15.0",
@ -85,11 +87,11 @@
"devDependencies": {
"@types/jsdom": "^21.1.7",
"@types/marked": "^6.0.0",
"@types/node": "^18.19.68",
"@types/node": "^18.19.74",
"@types/nodemailer": "^6.4.17",
"@types/turndown": "^5.0.5",
"@types/yargs": "^17.0.33",
"ts-node": "^10.9.0",
"ts-node": "^10.9.2",
"typescript": "^4.9.5"
}
},
@ -5137,6 +5139,15 @@
"node": ">=0.10.0"
}
},
"node_modules/deepmerge-ts": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.4.tgz",
"integrity": "sha512-fxqo6nHGQ9zOVgI4KXqtWXJR/yCLtC7aXIVq+6jc8tHPFUxlFmuUcm2kC4vztQ+LJxQ3gER/XAWearGYQ8niGA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/defaults": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",

View File

@ -28,6 +28,7 @@
"@plastichub/osr-log": "0.1.6",
"axios": "1.7.9",
"chalk": "4.0.0",
"deepmerge-ts": "7.1.4",
"emojilib": "4.0.1",
"free-astro-components": "1.1.1",
"glob": "11.0.1",

View File

@ -57,4 +57,4 @@ const load = async (options) => {
return profile.variables;
};
exports.load = load;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHlEQUF5RDtBQUN6RCxrREFBc0Q7QUFDdEQsZ0RBQWlDO0FBQ2pDLDZEQUE4RDtBQUM5RCxxQ0FBc0M7QUFFdEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUU7SUFDckMsSUFBRyxDQUFDLFdBQVcsRUFBQyxDQUFDO1FBQ2IsT0FBTTtJQUNWLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUEscUJBQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUEsY0FBUSxHQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2hFLElBQUcsSUFBQSxhQUFNLEVBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUE7QUFDOUIsQ0FBQyxDQUFBO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLE9BQWtCLEVBQW1DLEVBQUU7SUFDOUUsSUFBSSxPQUFPLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFDM0UsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFDdEYsSUFBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUEsYUFBTSxFQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBTSxFQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBQSxzQkFBWSxFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQTtJQUMxRixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBUlksUUFBQSxJQUFJLFFBUWhCIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHlEQUF5RDtBQUN6RCxrREFBc0Q7QUFDdEQsZ0RBQWlDO0FBQ2pDLDZEQUF3RTtBQUN4RSxxQ0FBc0M7QUFFdEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUU7SUFDckMsSUFBRyxDQUFDLFdBQVcsRUFBQyxDQUFDO1FBQ2IsT0FBTTtJQUNWLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUEscUJBQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUEsY0FBUSxHQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2hFLElBQUcsSUFBQSxhQUFNLEVBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUE7QUFDOUIsQ0FBQyxDQUFBO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLE9BQWtCLEVBQW1DLEVBQUU7SUFDOUUsSUFBSSxPQUFPLEdBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFDckYsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFDaEcsSUFBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUEsYUFBTSxFQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBTSxFQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBQSxzQkFBWSxFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQTtJQUMxRixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBUlksUUFBQSxJQUFJLFFBUWhCIn0=

View File

@ -55,10 +55,10 @@ export const processRun = async (opts: IKBotTask) => {
options.collector = collector(options, client)
let messages: Array<ChatCompletionMessageParam> = []
messages.push(await prompt(opts))
messages.push(await preferences(opts))
let files = await get(path.resolve(options.path), options.include) || []
files = files.map(f => { return { ...f, role: 'user' } })
messages = [...messages as any, ...files]
@ -106,12 +106,65 @@ export const processRun = async (opts: IKBotTask) => {
return ret
}
export const run = async (opts: IKBotTask) => {
const ret = []
/**
* Extract file paths (Windows or POSIX style) from a single string,
* preserving any spaces within the paths. Needed for Salamand File Manager selections (eg: kbot "summarize, as json" -i $(ListOfSelectedFullNames))
* - For Windows, it looks for patterns like "C:\" (any drive letter).
* - For POSIX, it looks for a leading slash "/".
*
* Returns an array of path strings. If no matches are found, returns [].
*
*/
function extractPaths(input: string): string[] {
// Matches either a Windows drive pattern like "C:\" or a forward slash "/".
// Parentheses group with `|` to match either part correctly.
const pathStartRegex = /([A-Za-z]:\\)|\//g;
const matchIndices: number[] = [];
let match: RegExpExecArray | null;
// Collect the start index of each path
while ((match = pathStartRegex.exec(input)) !== null) {
matchIndices.push(match.index);
}
// If none found, return empty
if (!matchIndices.length) {
return [];
}
// Slice from each index to just before the next
const paths: string[] = [];
for (let i = 0; i < matchIndices.length; i++) {
const start = matchIndices[i];
const end = i < matchIndices.length - 1 ? matchIndices[i + 1] : input.length;
const path = input.substring(start, end).trim();
if (path) {
paths.push(path);
}
}
return paths;
}
function flattenArrays<T>(arrays: T[][]): T[] {
return arrays.reduce((accumulator, current) => {
return accumulator.concat(current);
}, [] as T[]);
}
export const run = async (opts: IKBotTask) => {
const ret = []
if (opts.include) {
if (isString(opts.include)) {
opts.include = extractPaths(opts.include)
}else if (isArray(opts.include)) {
opts.include = flattenArrays(opts.include.map(extractPaths))
}
opts.include = Array.from(new Set(opts.include))
}
if (opts.each) {
let items: string[] = []
if (isArray(opts.each)) {
items = opts.each
} else if (exists(opts.each) && isFile(opts.each) && path.parse(opts.each).ext === '.json') {
@ -129,11 +182,7 @@ export const run = async (opts: IKBotTask) => {
return ret
}
logger.info(`Processing ${items.length} items matching pattern ${opts.each}...`)
if (opts.include && isString(opts.include)) {
opts.include = [opts.include as any]
}
const _models = all()
for (const item of items) {
const itemOpts = {
...opts,
@ -142,10 +191,9 @@ export const run = async (opts: IKBotTask) => {
}
//override model if item is a model id
const model = _models.find(m => m.id === item)
if(model){
if (model) {
itemOpts.model = item
}
itemOpts.include = [...opts.include, ...[forward_slash(item)]]
ret.push(await processRun(itemOpts))
}

View File

@ -14,10 +14,8 @@ import { build } from './commands/build'
import { fetch } from './commands/fetch'
export const logger: Logger<unknown> = createLogger('llm-tools')
const modify = async (argv: IKBotTask) => {
const ret = await run(argv as IKBotTask)
return ret
}
const modify = async (argv: IKBotTask) => await run(argv as IKBotTask)
const yargOptions: any = {
onKey: ((_yargs, key, options) => {
switch (key) {

View File

@ -0,0 +1,28 @@
import { isString } from '@plastichub/core/primitives'
import { sync as read } from '@plastichub/fs/read'
import { logger } from '..'
import { deepmerge as merge } from 'deepmerge-ts'
export const deepMerge = async (target: string, source: any) => {
if (!isString(target) || !source) {
logger.error(`Invalid deepmerge parameters:`, target, source)
return source
}
target = read(target, 'json') as any || []
try {
source = isString(source) ? JSON.parse(source) : source
} catch (e) {
logger.error('Error parsing completion:', e)
return source
}
try {
const ret = merge(target, source)
return JSON.stringify(ret, null, 2)
} catch (error) {
logger.error('Error merging completion:', error)
}
return target;
}
export const mergers =
{
json: deepMerge
}

View File

@ -2,7 +2,7 @@ import { IKBotTask } from "./types"
import { isFile, resolve } from '@plastichub/osr-commons'
import { sync as exists } from '@plastichub/fs/exists'
import * as path from 'node:path'
import { parseProfile } from '@plastichub/osr-commons/profile'
import { IProfile, parseProfile } from '@plastichub/osr-commons/profile'
import { env_vars } from './utils/env'
const testPath = (profilePath: string) => {
@ -14,8 +14,8 @@ const testPath = (profilePath: string) => {
}
export const load = async (options: IKBotTask): Promise<Record<string, string>> => {
let profile = { includes: [], variables: options.variables || {}, env: {} }
let profilePath = testPath(options.profile || path.join(options.logs, 'profile.json'))
let profile: IProfile = { includes: [], variables: options.variables || {}, env: {} }
let profilePath = testPath(options.profile || path.join(options.logs as string, 'profile.json'))
if(!profilePath || !exists(profilePath) || !isFile(profilePath)){
return profile.variables
}

View File

@ -1,5 +1,5 @@
1. **Initial Inspection**:
1. **Initial Inspection**:
- Inspect the lathe for wear and damage. Identify parts that need replacement.
2. **Disassembly**:
2. **Disassembly**:
- Carefully disassemble the lathe, keeping track of each part and its placement. Use labels or a diagram to avoid confusion during reassembly.

View File

@ -0,0 +1,11 @@
1. **Initial Inspection**:
- Inspect the lathe for wear and damage. Identify parts that need replacement.
2. **Disassembly**:
- Carefully disassemble the lathe, keeping track of each part and its placement. Use labels or a diagram to avoid confusion during reassembly.
3. **Cleaning**:
- Clean all parts thoroughly to remove oil, debris, and rust. Use appropriate cleaning agents for different materials.
4. **Replacing Worn Parts**:
- Acquire replacement parts for those that are worn or damaged. This may include bearings, gears, or belts.

View File

@ -0,0 +1,17 @@
5. **Lubrication**:
- Lubricate moving parts to ensure smooth operation. Use the correct type of oil or grease as per the manufacturer's recommendations.
6. **Reassembly**:
- Assemble the lathe, following your labels or diagram. Ensure all components are properly aligned and tightened.
7. **Calibration**:
- Calibrate the lathe to ensure precision. Adjust settings such as alignment and tension.
8. **Testing**:
- Test the lathe under controlled conditions to ensure it operates correctly. Look for any signs of malfunction or misalignment.
9. **Fine-tuning**:
- Make necessary adjustments to optimize performance and precision.
10. **Final Inspection**:
- Conduct a thorough final inspection. Ensure that the lathe operates smoothly and is ready for use.

View File

@ -0,0 +1,54 @@
{
"hatua": [
{
"namba": 1,
"kichwa": "Ukaguzi wa Awali",
"maelezo": "Kagua cherehani kwa uchakavu na uharibifu. Tambua sehemu zinazohitaji kubadilishwa."
},
{
"namba": 2,
"kichwa": "Kubandua",
"maelezo": "Bandua cherehani kwa uangalifu, ukiweka alama kwa kila sehemu. Tumia lebo au mchoro kuepuka kuchanganyikiwa wakati wa kuunganisha."
},
{
"namba": 3,
"kichwa": "Kusafisha",
"maelezo": "Safisha sehemu zote kwa undani kuondoa mafuta, uchafu, na kutu. Tumia vifaa vya usafishaji vinavyofaa."
},
{
"namba": 4,
"kichwa": "Kubadilisha Sehemu Chakavu",
"maelezo": "Pata vipuri vipya kwa sehemu zilizochakaa au kuharibiwa. Hii inaweza kujumuisha bearing, gear, au belt."
},
{
"namba": 5,
"kichwa": "Upakaji Mafuta",
"maelezo": "Paka mafuta kwenye sehemu zinazosogea. Tumia aina sahihi ya mafuta kulingana na maelekezo ya mtengenezaji."
},
{
"namba": 6,
"kichwa": "Kuunganisha",
"maelezo": "Unganisha cherehani, ukifuata lebo au mchoro wako. Hakikisha sehemu zote zimepangwa vizuri."
},
{
"namba": 7,
"kichwa": "Urekebishaji",
"maelezo": "Rekebisha cherehani kuhakikisha usahihi. Sawazisha mpangilio na mvutano."
},
{
"namba": 8,
"kichwa": "Upimaji",
"maelezo": "Jaribu cherehani chini ya hali thabiti kuhakikisha inafanya kazi vizuri."
},
{
"namba": 9,
"kichwa": "Marekebisho Madogo",
"maelezo": "Fanya marekebisho muhimu kuboresha utendaji na usahihi."
},
{
"namba": 10,
"kichwa": "Ukaguzi wa Mwisho",
"maelezo": "Fanya ukaguzi wa kina wa mwisho. Hakikisha cherehani inafanya kazi vizuri na iko tayari kutumika."
}
]
}

View File

@ -0,0 +1 @@
kbotd "summarize, as json, in swahili, add a field for the step number" -i "C:\Users\zx\Desktop\osr\osr-mono\packages\osr-code-bot\tests\salamand\g2.md C:\Users\zx\Desktop\osr\osr-mono\packages\osr-code-bot\tests\salamand\g1.md" --mode=completion --dst=sum.json