@avrm/svi 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/cli.js +6 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/package.json +39 -0
- package/dist/src/commands/cliOptions.js +58 -0
- package/dist/src/commands/cliOptions.js.map +1 -0
- package/dist/src/commands/entryPoint.js +90 -0
- package/dist/src/commands/entryPoint.js.map +1 -0
- package/dist/src/commands/env.js +141 -0
- package/dist/src/commands/env.js.map +1 -0
- package/dist/src/commands/init.js +108 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/run.js +58 -0
- package/dist/src/commands/run.js.map +1 -0
- package/dist/src/commands/runner/checkerForRunManager.js +49 -0
- package/dist/src/commands/runner/checkerForRunManager.js.map +1 -0
- package/dist/src/commands/runner/runManager.js +137 -0
- package/dist/src/commands/runner/runManager.js.map +1 -0
- package/dist/src/commands/runner/runStatistics.js +55 -0
- package/dist/src/commands/runner/runStatistics.js.map +1 -0
- package/dist/src/config/config.js +135 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/config/configFinder.js +37 -0
- package/dist/src/config/configFinder.js.map +1 -0
- package/dist/src/llm/llm.js +117 -0
- package/dist/src/llm/llm.js.map +1 -0
- package/dist/src/llm/llmServiceByModel.js +43 -0
- package/dist/src/llm/llmServiceByModel.js.map +1 -0
- package/dist/src/llm/llmUtils.js +23 -0
- package/dist/src/llm/llmUtils.js.map +1 -0
- package/dist/src/llm/theMaximalistLlmJs/LlmJsFactories.js +27 -0
- package/dist/src/llm/theMaximalistLlmJs/LlmJsFactories.js.map +1 -0
- package/dist/src/llm/theMaximalistLlmJs/ModelUsageWrapper.js +55 -0
- package/dist/src/llm/theMaximalistLlmJs/ModelUsageWrapper.js.map +1 -0
- package/dist/src/svi/cacheManager.js +187 -0
- package/dist/src/svi/cacheManager.js.map +1 -0
- package/dist/src/svi/promptBuilder.js +59 -0
- package/dist/src/svi/promptBuilder.js.map +1 -0
- package/dist/src/svi/prompts/extractDeclarations.js +25 -0
- package/dist/src/svi/prompts/extractDeclarations.js.map +1 -0
- package/dist/src/svi/prompts/generate.js +36 -0
- package/dist/src/svi/prompts/generate.js.map +1 -0
- package/dist/src/svi/sviChecks.js +131 -0
- package/dist/src/svi/sviChecks.js.map +1 -0
- package/dist/src/svi/sviDependencies.js +139 -0
- package/dist/src/svi/sviDependencies.js.map +1 -0
- package/dist/src/svi/sviFileClass.js +105 -0
- package/dist/src/svi/sviFileClass.js.map +1 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviDependencyCycleAnalyzer.js +154 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviDependencyCycleAnalyzer.js.map +1 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviDependencyFinder.js +57 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviDependencyFinder.js.map +1 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviFileOrderOptimizer.js +93 -0
- package/dist/src/svi/sviFileOrderOptimizer/sviFileOrderOptimizer.js.map +1 -0
- package/dist/src/svi/sviFileOrderOptimizer/types.js +3 -0
- package/dist/src/svi/sviFileOrderOptimizer/types.js.map +1 -0
- package/dist/src/svi/sviImportPrompts.js +138 -0
- package/dist/src/svi/sviImportPrompts.js.map +1 -0
- package/dist/src/svi/sviLoader.js +138 -0
- package/dist/src/svi/sviLoader.js.map +1 -0
- package/dist/src/svi/sviParser/parsedSviDirectory.js +34 -0
- package/dist/src/svi/sviParser/parsedSviDirectory.js.map +1 -0
- package/dist/src/svi/sviParser/sviParser.js +205 -0
- package/dist/src/svi/sviParser/sviParser.js.map +1 -0
- package/dist/src/svi/sviProcessor.js +138 -0
- package/dist/src/svi/sviProcessor.js.map +1 -0
- package/dist/src/svi/types.js +3 -0
- package/dist/src/svi/types.js.map +1 -0
- package/dist/src/utils/codeClear.js +29 -0
- package/dist/src/utils/codeClear.js.map +1 -0
- package/dist/src/utils/constants.js +6 -0
- package/dist/src/utils/constants.js.map +1 -0
- package/dist/src/utils/fastGlobWrapper.js +34 -0
- package/dist/src/utils/fastGlobWrapper.js.map +1 -0
- package/dist/src/utils/file.js +137 -0
- package/dist/src/utils/file.js.map +1 -0
- package/dist/src/utils/file2.js +26 -0
- package/dist/src/utils/file2.js.map +1 -0
- package/dist/src/utils/logger.js +105 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/utils.js +34 -0
- package/dist/src/utils/utils.js.map +1 -0
- package/package.json +38 -0
package/dist/bin/cli.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";;;AACA,iEAAuD;AAEvD,IAAA,sBAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@avrm/svi",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "SVI - Structural Vibe Coding (SVI), CLI tools",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc && copy package.json dist",
|
|
8
|
+
"test": "vitest run",
|
|
9
|
+
"test:watch": "vitest",
|
|
10
|
+
"svi": "svi run -l TRACE -P"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@types/js-yaml": "^4.0.9",
|
|
14
|
+
"@types/node": "^24.7.2",
|
|
15
|
+
"@vitest/coverage-v8": "^4.0.6",
|
|
16
|
+
"fast-glob": "^3.3.3",
|
|
17
|
+
"ts-node": "^10.9.2",
|
|
18
|
+
"typescript": "^5.9.3",
|
|
19
|
+
"vitest": "^4.0.6"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@langchain/anthropic": "^0.3.32",
|
|
23
|
+
"@langchain/core": "^0.3.78",
|
|
24
|
+
"@langchain/google-genai": "^1.0.0",
|
|
25
|
+
"@langchain/openai": "^0.6.16",
|
|
26
|
+
"@themaximalist/llm.js": "^1.0.3",
|
|
27
|
+
"commander": "^14.0.1",
|
|
28
|
+
"dotenv": "^17.2.3",
|
|
29
|
+
"execa": "^9.6.0",
|
|
30
|
+
"js-yaml": "^4.1.0"
|
|
31
|
+
},
|
|
32
|
+
"bin": {
|
|
33
|
+
"svi": "dist/bin/cli.js"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"bin",
|
|
37
|
+
"dist"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runOptions = exports.initOptions = void 0;
|
|
4
|
+
exports.initOptions = [
|
|
5
|
+
{
|
|
6
|
+
shortFlag: "-l",
|
|
7
|
+
fullFlag: "--loglevel <level>",
|
|
8
|
+
description: "Set log level (ERROR, WARN, INFO, SUCCESS, DEBUG, TRACE)",
|
|
9
|
+
defaultValue: "INFO",
|
|
10
|
+
paramName: "level",
|
|
11
|
+
},
|
|
12
|
+
];
|
|
13
|
+
exports.runOptions = [
|
|
14
|
+
{
|
|
15
|
+
shortFlag: "-m",
|
|
16
|
+
fullFlag: "--model <model>",
|
|
17
|
+
description: "Model name for LLM",
|
|
18
|
+
paramName: "model",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
shortFlag: "-s",
|
|
22
|
+
fullFlag: "--service <service>",
|
|
23
|
+
description: "LLM service provider",
|
|
24
|
+
paramName: "service",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
shortFlag: "-k",
|
|
28
|
+
fullFlag: "--key <apiKey>",
|
|
29
|
+
description: "API key for LLM provider",
|
|
30
|
+
paramName: "key",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
shortFlag: "-u",
|
|
34
|
+
fullFlag: "--url <baseUrl>",
|
|
35
|
+
description: "Base URL for LLM provider",
|
|
36
|
+
paramName: "baseUrl",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
shortFlag: "-e",
|
|
40
|
+
fullFlag: "--env <path>",
|
|
41
|
+
description: "Path to .env file",
|
|
42
|
+
paramName: "env",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
shortFlag: "-p",
|
|
46
|
+
fullFlag: "--configPath <svi.json path>",
|
|
47
|
+
description: "Path to svi.json file",
|
|
48
|
+
paramName: "configPath",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
shortFlag: "-P",
|
|
52
|
+
fullFlag: "--show-prompts",
|
|
53
|
+
description: "Output LLM prompts and responses in console output",
|
|
54
|
+
paramName: "showPrompts",
|
|
55
|
+
},
|
|
56
|
+
...exports.initOptions,
|
|
57
|
+
];
|
|
58
|
+
//# sourceMappingURL=cliOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliOptions.js","sourceRoot":"","sources":["../../../src/commands/cliOptions.ts"],"names":[],"mappings":";;;AAQa,QAAA,WAAW,GAAgB;IACtC;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,oBAAoB;QAC9B,WAAW,EAAE,0DAA0D;QACvE,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,OAAO;KACnB;CACF,CAAC;AAEW,QAAA,UAAU,GAAgB;IACrC;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,OAAO;KACnB;IACD;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,qBAAqB;QAC/B,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE,SAAS;KACrB;IACD;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE,SAAS;KACrB;IACD;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,mBAAmB;QAChC,SAAS,EAAE,KAAK;KACjB;IAED;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,8BAA8B;QACxC,WAAW,EAAE,uBAAuB;QACpC,SAAS,EAAE,YAAY;KACxB;IACD;QACE,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,oDAAoD;QACjE,SAAS,EAAE,aAAa;KACzB;IACD,GAAG,mBAAW;CACf,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.runCli = runCli;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const run_js_1 = require("./run.js");
|
|
10
|
+
const init_js_1 = require("./init.js");
|
|
11
|
+
const logger_js_1 = __importDefault(require("../utils/logger.js"));
|
|
12
|
+
const env_js_1 = require("./env.js");
|
|
13
|
+
const cliOptions_js_1 = require("./cliOptions.js");
|
|
14
|
+
const { version } = require("../../package.json");
|
|
15
|
+
const program = new commander_1.Command();
|
|
16
|
+
program
|
|
17
|
+
.name("svi")
|
|
18
|
+
.description("SVI CLI tool — run and manage .svi configuration files")
|
|
19
|
+
.version(version);
|
|
20
|
+
/**
|
|
21
|
+
* Command: init
|
|
22
|
+
* Usage:
|
|
23
|
+
* svi init -> create root .svi or svi.json
|
|
24
|
+
* svi init <filename> -> create a new .svi file with the given name
|
|
25
|
+
*/
|
|
26
|
+
let initProg = program
|
|
27
|
+
.command("init")
|
|
28
|
+
.argument("[file]", "Optional: name of the .svi file to create");
|
|
29
|
+
for (const option of cliOptions_js_1.initOptions) {
|
|
30
|
+
initProg = initProg.option(`${option.shortFlag}, ${option.fullFlag}`, option.description, option.defaultValue);
|
|
31
|
+
}
|
|
32
|
+
initProg
|
|
33
|
+
.description("Initialize svi configuration in the current directory or create a new .svi file")
|
|
34
|
+
.action(async (file, options) => {
|
|
35
|
+
if (!options) {
|
|
36
|
+
options = {};
|
|
37
|
+
}
|
|
38
|
+
(0, env_js_1.enrichOptionsFromEnv)(options);
|
|
39
|
+
logger_js_1.default.setLogLevel(options.loglevel);
|
|
40
|
+
try {
|
|
41
|
+
const result = (0, init_js_1.initCommand)(file, options);
|
|
42
|
+
if (result !== 0) {
|
|
43
|
+
logger_js_1.default.error("❌ Initialization failed");
|
|
44
|
+
process.exit(result);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
logger_js_1.default.error("❌ Initialization failed:", error.message);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Command: run
|
|
54
|
+
* Usage:
|
|
55
|
+
* svi run -m <model_name> -s <service_provider> -k <api_key> -e <path_to_env>
|
|
56
|
+
*/
|
|
57
|
+
let runProg = program
|
|
58
|
+
.command("run")
|
|
59
|
+
.argument("[files...]", "Lets you run for certain .svi file(s) instead of the whole project (via svi.json)")
|
|
60
|
+
.description("Run the main process based on svi.json and .svi files");
|
|
61
|
+
for (const option of cliOptions_js_1.runOptions) {
|
|
62
|
+
runProg = runProg.option(`${option.shortFlag}, ${option.fullFlag}`, option.description, option.defaultValue);
|
|
63
|
+
}
|
|
64
|
+
runProg.action(async (files, options) => {
|
|
65
|
+
const possibleOptions = cliOptions_js_1.runOptions.map((opt) => opt.paramName);
|
|
66
|
+
console.log("Options = ", options);
|
|
67
|
+
(0, env_js_1.enrichOptionsFromEnv)(options, possibleOptions);
|
|
68
|
+
logger_js_1.default.setLogLevel(options.loglevel);
|
|
69
|
+
logger_js_1.default.setShowPrompts(options.showPrompts);
|
|
70
|
+
//console.log(files);
|
|
71
|
+
try {
|
|
72
|
+
await (0, run_js_1.runCommand)(files, {
|
|
73
|
+
model: options.model,
|
|
74
|
+
service: options.service,
|
|
75
|
+
apiKey: options.key,
|
|
76
|
+
llmBaseUrl: options.url,
|
|
77
|
+
envPath: options.env,
|
|
78
|
+
sviJsonPath: options.configPath,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
logger_js_1.default.error("❌ Run failed:", error.message);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
// Parse CLI arguments
|
|
87
|
+
async function runCli(argv = process.argv) {
|
|
88
|
+
await program.parseAsync(argv);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=entryPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryPoint.js","sourceRoot":"","sources":["../../../src/commands/entryPoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.envOptions = void 0;
|
|
7
|
+
exports.enrichOptionsFromEnv = enrichOptionsFromEnv;
|
|
8
|
+
exports.getEnvFileExample = getEnvFileExample;
|
|
9
|
+
exports.printEnvFileExample = printEnvFileExample;
|
|
10
|
+
exports.printEnvFileExampleAsError = printEnvFileExampleAsError;
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const dotenv_1 = require("dotenv");
|
|
14
|
+
const constants_1 = require("../utils/constants");
|
|
15
|
+
const utils_js_1 = require("../utils/utils.js");
|
|
16
|
+
const logger_js_1 = __importDefault(require("../utils/logger.js"));
|
|
17
|
+
const file_1 = require("../utils/file");
|
|
18
|
+
exports.envOptions = [
|
|
19
|
+
{
|
|
20
|
+
key: "MODEL_NAME",
|
|
21
|
+
description: "The name of the model to use (e.g., gpt-4, gemini-2.5-flash)",
|
|
22
|
+
exampleValue: "gemini-2.5-flash",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
key: "SERVICE",
|
|
26
|
+
description: "The service provider to use (e.g., google, openai)",
|
|
27
|
+
exampleValue: "google",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
key: "API_KEY",
|
|
31
|
+
description: "The API key for authenticating with the LLM service",
|
|
32
|
+
exampleValue: "123456789abcdef",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: "LLM_BASE_URL",
|
|
36
|
+
description: "The base URL for the LLM API (useful for custom endpoints or proxies)",
|
|
37
|
+
exampleValue: "http://fake-llm-base-url.com",
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
function getPossibleKeys() {
|
|
41
|
+
return exports.envOptions.map((option) => option.key);
|
|
42
|
+
}
|
|
43
|
+
function getPossibleKeysCamelCase() {
|
|
44
|
+
return exports.envOptions.map((option) => (0, utils_js_1.toCamelCase)(option.key));
|
|
45
|
+
}
|
|
46
|
+
function enrichOptionsFromEnv(options, possibleOptions) {
|
|
47
|
+
logger_js_1.default.trace("Enriching options from environment variables");
|
|
48
|
+
tryLoadEnvFromEnvFile(options);
|
|
49
|
+
let possibleKeys = getPossibleKeysCamelCase();
|
|
50
|
+
if (possibleOptions) {
|
|
51
|
+
possibleKeys = possibleKeys.concat(possibleOptions);
|
|
52
|
+
}
|
|
53
|
+
for (const key of Object.keys(process.env)) {
|
|
54
|
+
const envKey = key.toUpperCase();
|
|
55
|
+
const keyCamelCase = (0, utils_js_1.toCamelCase)(envKey);
|
|
56
|
+
if (possibleKeys && !possibleKeys.includes(keyCamelCase)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (options[keyCamelCase] === undefined) {
|
|
60
|
+
options[keyCamelCase] = process.env[key];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (options.modelName && !options.model) {
|
|
64
|
+
options.model = options.modelName;
|
|
65
|
+
}
|
|
66
|
+
if (options.apiKey && !options.key) {
|
|
67
|
+
options.key = options.apiKey;
|
|
68
|
+
}
|
|
69
|
+
if (options.llmBaseUrl && !options.url) {
|
|
70
|
+
options.url = options.llmBaseUrl;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function tryLoadEnvFromEnvFile(options) {
|
|
74
|
+
if (options.env) {
|
|
75
|
+
logger_js_1.default.debug(`Loading environment variables from ${options.env} (set via the corresponding start parameter)`);
|
|
76
|
+
(0, dotenv_1.config)({ path: path_1.default.resolve(options.env) });
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
logger_js_1.default.trace("No environment file set via start parameter");
|
|
81
|
+
}
|
|
82
|
+
const pathToDefaultEnvFile = path_1.default.resolve(constants_1.DEFAULT_ENV_FILE);
|
|
83
|
+
logger_js_1.default.trace(`Trying to load environment variables from default environment file at ${pathToDefaultEnvFile}`);
|
|
84
|
+
if (fs_1.default.existsSync(path_1.default.resolve(constants_1.DEFAULT_ENV_FILE))) {
|
|
85
|
+
logger_js_1.default.debug(`Loading environment variables from default environment file at ${pathToDefaultEnvFile}`);
|
|
86
|
+
(0, dotenv_1.config)({ path: path_1.default.resolve(constants_1.DEFAULT_ENV_FILE) });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
logger_js_1.default.trace("No default environment file found");
|
|
90
|
+
}
|
|
91
|
+
if (!options.configPath) {
|
|
92
|
+
logger_js_1.default.trace("No config path set, therefore we can't load env file from config dir");
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const pathToEnvFileInConfigDir = path_1.default.join(path_1.default.dirname(options.configPath), constants_1.DEFAULT_ENV_FILE);
|
|
96
|
+
logger_js_1.default.trace(`Trying to load environment variables from environment file in config directory at ${pathToEnvFileInConfigDir}`);
|
|
97
|
+
if (fs_1.default.existsSync(pathToEnvFileInConfigDir)) {
|
|
98
|
+
logger_js_1.default.debug(`Loading environment variables from environment file in config directory at ${pathToEnvFileInConfigDir}`);
|
|
99
|
+
(0, dotenv_1.config)({
|
|
100
|
+
path: path_1.default.join(path_1.default.dirname(options.configPath), constants_1.DEFAULT_ENV_FILE),
|
|
101
|
+
});
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
logger_js_1.default.trace(`No environment file found in config directory at path ${pathToEnvFileInConfigDir}`);
|
|
106
|
+
}
|
|
107
|
+
if ((0, file_1.isDirectory)(options.configPath)) {
|
|
108
|
+
const pathToEnvFileInConfigDir2 = path_1.default.join(options.configPath, constants_1.DEFAULT_ENV_FILE);
|
|
109
|
+
logger_js_1.default.trace(`The provided config path looks like a directory, trying to load environment file from there at ${pathToEnvFileInConfigDir2}`);
|
|
110
|
+
if (fs_1.default.existsSync(pathToEnvFileInConfigDir2)) {
|
|
111
|
+
logger_js_1.default.debug(`Loading environment variables from environment file in config directory at ${pathToEnvFileInConfigDir2}`);
|
|
112
|
+
(0, dotenv_1.config)({
|
|
113
|
+
path: pathToEnvFileInConfigDir2,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
logger_js_1.default.trace(`No environment file found in config directory at path ${pathToEnvFileInConfigDir2}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function getEnvFileExample() {
|
|
122
|
+
let example = [".env file example:"];
|
|
123
|
+
for (const option of exports.envOptions) {
|
|
124
|
+
example.push(`# ${option.description}`);
|
|
125
|
+
example.push(`${option.key}=${option.exampleValue}\n`);
|
|
126
|
+
}
|
|
127
|
+
return example;
|
|
128
|
+
}
|
|
129
|
+
function printEnvFileExample() {
|
|
130
|
+
const example = getEnvFileExample();
|
|
131
|
+
for (const line of example) {
|
|
132
|
+
logger_js_1.default.info(line);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function printEnvFileExampleAsError() {
|
|
136
|
+
const example = getEnvFileExample();
|
|
137
|
+
for (const line of example) {
|
|
138
|
+
logger_js_1.default.error(line);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/commands/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initCommand = initCommand;
|
|
7
|
+
// src/commands/init.ts
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
11
|
+
const file_1 = require("../utils/file");
|
|
12
|
+
const sviFileClass_1 = __importDefault(require("../svi/sviFileClass"));
|
|
13
|
+
function initCommand(fileArg, // optionaler Parameter nach "init"
|
|
14
|
+
options = {}) {
|
|
15
|
+
try {
|
|
16
|
+
if (fileArg) {
|
|
17
|
+
return createSviFile(fileArg, options);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return createGlobalConfig(options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
logger_1.default.error("Error creating configuration", err);
|
|
25
|
+
return 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function createGlobalConfig(options = {}) {
|
|
29
|
+
const programmingLanguage = options.lang || "";
|
|
30
|
+
const config = {
|
|
31
|
+
programmingLanguage,
|
|
32
|
+
searchPaths: [],
|
|
33
|
+
ignorePaths: [],
|
|
34
|
+
};
|
|
35
|
+
const fileName = "svi.json";
|
|
36
|
+
const targetPath = path_1.default.resolve(process.cwd(), fileName);
|
|
37
|
+
if ((0, file_1.exists)(targetPath)) {
|
|
38
|
+
logger_1.default.error(`File ${fileName} already exists, the initialization cancelled`);
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
config.searchPaths.push("**/*");
|
|
42
|
+
(0, file_1.writeJSON)(targetPath, config);
|
|
43
|
+
logger_1.default.success(`Configuration created: ${targetPath}`);
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
function createSviFile(fileArg, options = {}) {
|
|
47
|
+
const sviFile = new sviFileClass_1.default();
|
|
48
|
+
for (var option in options) {
|
|
49
|
+
if (Object.prototype.hasOwnProperty.call(options, option)) {
|
|
50
|
+
const value = options[option];
|
|
51
|
+
if (value !== undefined) {
|
|
52
|
+
sviFile[option] = value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const base = path_1.default.basename(fileArg, ".svi");
|
|
57
|
+
const fileName = `${base}.svi`;
|
|
58
|
+
const targetPath = path_1.default.resolve(process.cwd(), fileName);
|
|
59
|
+
if ((0, file_1.exists)(targetPath)) {
|
|
60
|
+
logger_1.default.error(`File ${fileName} already exists, the initialization cancelled`);
|
|
61
|
+
return 1;
|
|
62
|
+
}
|
|
63
|
+
const contentLines = [];
|
|
64
|
+
// Destination File
|
|
65
|
+
contentLines.push(`# Destination File`);
|
|
66
|
+
contentLines.push(sviFile.destinationFile || "");
|
|
67
|
+
// Input Parameters
|
|
68
|
+
contentLines.push(`# Dependencies`);
|
|
69
|
+
if (sviFile.dependencies && sviFile.dependencies.length > 0) {
|
|
70
|
+
contentLines.push(...sviFile.dependencies);
|
|
71
|
+
}
|
|
72
|
+
// Output
|
|
73
|
+
contentLines.push(`# Output`);
|
|
74
|
+
if (sviFile.output && sviFile.output.length > 0) {
|
|
75
|
+
contentLines.push(...sviFile.output);
|
|
76
|
+
}
|
|
77
|
+
// Options
|
|
78
|
+
contentLines.push(`# Options`);
|
|
79
|
+
if (sviFile.options) {
|
|
80
|
+
for (const key in sviFile.options) {
|
|
81
|
+
if (Object.prototype.hasOwnProperty.call(sviFile.options, key)) {
|
|
82
|
+
contentLines.push(`${key}=${sviFile.options[key]}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Standardwerte, falls nichts angegeben
|
|
87
|
+
if (!sviFile.options || !("Active" in sviFile.options)) {
|
|
88
|
+
contentLines.push(`Active=True`);
|
|
89
|
+
}
|
|
90
|
+
if (!sviFile.options || !("ProgrammingLanguage" in sviFile.options)) {
|
|
91
|
+
contentLines.push(`ProgrammingLanguage=${options.lang || ""}`);
|
|
92
|
+
}
|
|
93
|
+
// Import Prompts
|
|
94
|
+
contentLines.push(`# Import prompts`);
|
|
95
|
+
if (sviFile.importPrompts && sviFile.importPrompts.length > 0) {
|
|
96
|
+
contentLines.push(...sviFile.importPrompts);
|
|
97
|
+
}
|
|
98
|
+
// Prompt
|
|
99
|
+
contentLines.push(`# Prompt`);
|
|
100
|
+
if (sviFile.prompt) {
|
|
101
|
+
contentLines.push(sviFile.prompt);
|
|
102
|
+
}
|
|
103
|
+
// 5. Write the file
|
|
104
|
+
fs_1.default.writeFileSync(targetPath, contentLines.join("\n"), "utf-8");
|
|
105
|
+
logger_1.default.success(`SVI file created: ${targetPath}`);
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runCommand = runCommand;
|
|
7
|
+
const config_1 = require("../config/config");
|
|
8
|
+
const runManager_1 = require("../commands/runner/runManager");
|
|
9
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
10
|
+
/**
|
|
11
|
+
* CLI-command: run
|
|
12
|
+
* - Load the main configuration (svi.json)
|
|
13
|
+
* - Startet den RunManager, der den kompletten Prozess orchestriert
|
|
14
|
+
*/
|
|
15
|
+
async function runCommand(files, options) {
|
|
16
|
+
try {
|
|
17
|
+
logger_1.default.info("Loading configuration...");
|
|
18
|
+
// Load the main configuration (svi.json in the project root directory)
|
|
19
|
+
let config;
|
|
20
|
+
if (options.sviJsonPath) {
|
|
21
|
+
logger_1.default.debug(`Using svi.json path from parameter: ${options.sviJsonPath}`);
|
|
22
|
+
config = config_1.Config.getInstance(options.sviJsonPath);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
config = config_1.Config.getInstance(undefined, files.length > 0);
|
|
26
|
+
}
|
|
27
|
+
logger_1.default.info("Configuration successfully loaded.");
|
|
28
|
+
logger_1.default.debug(`Programming Language: ${config.programmingLanguage}`);
|
|
29
|
+
logger_1.default.debug(`Search Paths: ${config.searchPaths.join(", ")}`);
|
|
30
|
+
logger_1.default.debug(`Ignore Paths: ${config.ignorePaths.join(", ")}`);
|
|
31
|
+
// RunManager start
|
|
32
|
+
const runManager = new runManager_1.RunManager(config.data, {
|
|
33
|
+
model: options.model,
|
|
34
|
+
apiKey: options.apiKey,
|
|
35
|
+
service: options.service,
|
|
36
|
+
llmBaseUrl: options.llmBaseUrl,
|
|
37
|
+
envPath: options.envPath,
|
|
38
|
+
sviJsonPath: options.sviJsonPath,
|
|
39
|
+
});
|
|
40
|
+
if (files && files.length > 0) {
|
|
41
|
+
runManager.setOnlyLoadFiles(files);
|
|
42
|
+
}
|
|
43
|
+
logger_1.default.debug("Running RunManager...");
|
|
44
|
+
if (await runManager.run()) {
|
|
45
|
+
logger_1.default.info("Process finished.");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
logger_1.default.error("Error(s) occured during processing, not all operations were successful.");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
logger_1.default.error("Error while executing 'run':");
|
|
54
|
+
logger_1.default.error(err.message || err.toString());
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":";;;;;AASA,gCA0DC;AAnED,6CAA0C;AAC1C,8DAA2D;AAC3D,6DAAqC;AAErC;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAC9B,KAAe,EACf,OAOC;IAED,IAAI,CAAC;QACH,gBAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAExC,uEAAuE;QACvE,IAAI,MAAc,CAAC;QACnB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,gBAAM,CAAC,KAAK,CACV,uCAAuC,OAAO,CAAC,WAAW,EAAE,CAC7D,CAAC;YACF,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,gBAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,gBAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACpE,gBAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,gBAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/D,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,MAAM,CAAC,IAAI,EAAE;YAC7C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,gBAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,IAAI,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3B,gBAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CACV,yEAAyE,CAC1E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,gBAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const logger_js_1 = __importDefault(require("../../utils/logger.js"));
|
|
7
|
+
//import { LLMServiceByModel } from "../../llm/llmServiceByModel";
|
|
8
|
+
const llm_1 = require("../../llm/llm");
|
|
9
|
+
const env_1 = require("../env");
|
|
10
|
+
class CheckerForRunManager {
|
|
11
|
+
static async checkOptions(options) {
|
|
12
|
+
let isLLMParamsOkay = true;
|
|
13
|
+
if (!options.modelName) {
|
|
14
|
+
logger_js_1.default.error("LLM model name is not specified.");
|
|
15
|
+
logger_js_1.default.error("Please specify the model name in svi.env file in your root directory, or specify another .env file via the -e parameter.");
|
|
16
|
+
logger_js_1.default.error("Env file parameter name is MODEL_NAME");
|
|
17
|
+
logger_js_1.default.error("Also, you can specify the model name via the -m parameter.");
|
|
18
|
+
isLLMParamsOkay = false;
|
|
19
|
+
}
|
|
20
|
+
if (!options.service && options.modelName) {
|
|
21
|
+
logger_js_1.default.debug("Service not specified, trying to determine from model name.");
|
|
22
|
+
const service = await llm_1.LLMProcessor.getServiceForModel(options.modelName);
|
|
23
|
+
if (service) {
|
|
24
|
+
logger_js_1.default.debug("Determined service: " + service);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
logger_js_1.default.error(`Could not determine service for model ${options.modelName}, please specify the service explicitly.`);
|
|
28
|
+
logger_js_1.default.error("Please specify the service name in svi.env file in your root directory, or specify another .env file via the -e parameter.");
|
|
29
|
+
logger_js_1.default.error("Env file parameter name is SERVICE_NAME");
|
|
30
|
+
logger_js_1.default.error("Also, you can specify the service name via the -s parameter.");
|
|
31
|
+
isLLMParamsOkay = false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (!options.apiKey) {
|
|
35
|
+
logger_js_1.default.warn("LLM API key is not specified. Proceeding without an API key.");
|
|
36
|
+
}
|
|
37
|
+
if (!isLLMParamsOkay) {
|
|
38
|
+
(0, env_1.printEnvFileExampleAsError)();
|
|
39
|
+
}
|
|
40
|
+
/* logger.error(".env file example:");
|
|
41
|
+
logger.error("MODEL_NAME=your-model-name");
|
|
42
|
+
logger.error("SERVICE_NAME=your-service-name");
|
|
43
|
+
logger.error("API_KEY=your-api-key");
|
|
44
|
+
}*/
|
|
45
|
+
return isLLMParamsOkay;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.default = CheckerForRunManager;
|
|
49
|
+
//# sourceMappingURL=checkerForRunManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkerForRunManager.js","sourceRoot":"","sources":["../../../../src/commands/runner/checkerForRunManager.ts"],"names":[],"mappings":";;;;;AAAA,sEAA2C;AAC3C,kEAAkE;AAClE,uCAA6C;AAC7C,gCAAoD;AAEpD,MAAqB,oBAAoB;IAChC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAY;QAC3C,IAAI,eAAe,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,mBAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,mBAAM,CAAC,KAAK,CACV,0HAA0H,CAC3H,CAAC;YACF,mBAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACtD,mBAAM,CAAC,KAAK,CACV,4DAA4D,CAC7D,CAAC;YACF,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1C,mBAAM,CAAC,KAAK,CACV,6DAA6D,CAC9D,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,kBAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzE,IAAI,OAAO,EAAE,CAAC;gBACZ,mBAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,OAAO,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,mBAAM,CAAC,KAAK,CACV,yCAAyC,OAAO,CAAC,SAAS,0CAA0C,CACrG,CAAC;gBACF,mBAAM,CAAC,KAAK,CACV,4HAA4H,CAC7H,CAAC;gBACF,mBAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACxD,mBAAM,CAAC,KAAK,CACV,8DAA8D,CAC/D,CAAC;gBACF,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,mBAAM,CAAC,IAAI,CACT,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAA,gCAA0B,GAAE,CAAC;QAC/B,CAAC;QACD;;;;WAIG;QAEH,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAzDD,uCAyDC"}
|