@nxuss/lemma 1.1.1 → 1.2.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/README.md +148 -9
- package/bin/init.js +135 -84
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +2 -0
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/infra/analyzers/DriftDetector.d.ts +4 -0
- package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +1 -0
- package/dist/cjs/infra/analyzers/DriftDetector.js +88 -0
- package/dist/cjs/infra/analyzers/DriftDetector.js.map +1 -0
- package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +3 -0
- package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +1 -0
- package/dist/cjs/infra/analyzers/InfraAnalyzer.js +73 -0
- package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +1 -0
- package/dist/cjs/infra/analyzers/MonolithAnalyzer.d.ts +3 -0
- package/dist/cjs/infra/analyzers/MonolithAnalyzer.d.ts.map +1 -0
- package/dist/cjs/infra/analyzers/MonolithAnalyzer.js +180 -0
- package/dist/cjs/infra/analyzers/MonolithAnalyzer.js.map +1 -0
- package/dist/cjs/infra/analyzers/index.d.ts +4 -0
- package/dist/cjs/infra/analyzers/index.d.ts.map +1 -0
- package/dist/cjs/infra/analyzers/index.js +11 -0
- package/dist/cjs/infra/analyzers/index.js.map +1 -0
- package/dist/cjs/infra/cli.d.ts +2 -0
- package/dist/cjs/infra/cli.d.ts.map +1 -0
- package/dist/cjs/infra/cli.js +221 -0
- package/dist/cjs/infra/cli.js.map +1 -0
- package/dist/cjs/infra/config.d.ts +17 -0
- package/dist/cjs/infra/config.d.ts.map +1 -0
- package/dist/cjs/infra/config.js +111 -0
- package/dist/cjs/infra/config.js.map +1 -0
- package/dist/cjs/infra/index.d.ts +8 -0
- package/dist/cjs/infra/index.d.ts.map +1 -0
- package/dist/cjs/infra/index.js +28 -0
- package/dist/cjs/infra/index.js.map +1 -0
- package/dist/cjs/infra/mcp-tools.d.ts +16 -0
- package/dist/cjs/infra/mcp-tools.d.ts.map +1 -0
- package/dist/cjs/infra/mcp-tools.js +456 -0
- package/dist/cjs/infra/mcp-tools.js.map +1 -0
- package/dist/cjs/infra/providers/InfraProvider.d.ts +9 -0
- package/dist/cjs/infra/providers/InfraProvider.d.ts.map +1 -0
- package/dist/cjs/infra/providers/InfraProvider.js +3 -0
- package/dist/cjs/infra/providers/InfraProvider.js.map +1 -0
- package/dist/cjs/infra/providers/JenkinsProvider.d.ts +16 -0
- package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +1 -0
- package/dist/cjs/infra/providers/JenkinsProvider.js +188 -0
- package/dist/cjs/infra/providers/JenkinsProvider.js.map +1 -0
- package/dist/cjs/infra/providers/OKDProvider.d.ts +24 -0
- package/dist/cjs/infra/providers/OKDProvider.d.ts.map +1 -0
- package/dist/cjs/infra/providers/OKDProvider.js +292 -0
- package/dist/cjs/infra/providers/OKDProvider.js.map +1 -0
- package/dist/cjs/infra/providers/TerraformProvider.d.ts +17 -0
- package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +1 -0
- package/dist/cjs/infra/providers/TerraformProvider.js +109 -0
- package/dist/cjs/infra/providers/TerraformProvider.js.map +1 -0
- package/dist/cjs/infra/providers/index.d.ts +9 -0
- package/dist/cjs/infra/providers/index.d.ts.map +1 -0
- package/dist/cjs/infra/providers/index.js +34 -0
- package/dist/cjs/infra/providers/index.js.map +1 -0
- package/dist/cjs/infra/templates/jenkins/index.d.ts +15 -0
- package/dist/cjs/infra/templates/jenkins/index.d.ts.map +1 -0
- package/dist/cjs/infra/templates/jenkins/index.js +124 -0
- package/dist/cjs/infra/templates/jenkins/index.js.map +1 -0
- package/dist/cjs/infra/templates/okd/index.d.ts +31 -0
- package/dist/cjs/infra/templates/okd/index.d.ts.map +1 -0
- package/dist/cjs/infra/templates/okd/index.js +149 -0
- package/dist/cjs/infra/templates/okd/index.js.map +1 -0
- package/dist/cjs/infra/types.d.ts +128 -0
- package/dist/cjs/infra/types.d.ts.map +1 -0
- package/dist/cjs/infra/types.js +4 -0
- package/dist/cjs/infra/types.js.map +1 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +9 -1
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +2 -0
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/infra/analyzers/DriftDetector.d.ts +4 -0
- package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +1 -0
- package/dist/esm/infra/analyzers/DriftDetector.js +84 -0
- package/dist/esm/infra/analyzers/DriftDetector.js.map +1 -0
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +3 -0
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +1 -0
- package/dist/esm/infra/analyzers/InfraAnalyzer.js +70 -0
- package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +1 -0
- package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +3 -0
- package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts.map +1 -0
- package/dist/esm/infra/analyzers/MonolithAnalyzer.js +174 -0
- package/dist/esm/infra/analyzers/MonolithAnalyzer.js.map +1 -0
- package/dist/esm/infra/analyzers/index.d.ts +4 -0
- package/dist/esm/infra/analyzers/index.d.ts.map +1 -0
- package/dist/esm/infra/analyzers/index.js +4 -0
- package/dist/esm/infra/analyzers/index.js.map +1 -0
- package/dist/esm/infra/cli.d.ts +2 -0
- package/dist/esm/infra/cli.d.ts.map +1 -0
- package/dist/esm/infra/cli.js +218 -0
- package/dist/esm/infra/cli.js.map +1 -0
- package/dist/esm/infra/config.d.ts +17 -0
- package/dist/esm/infra/config.d.ts.map +1 -0
- package/dist/esm/infra/config.js +101 -0
- package/dist/esm/infra/config.js.map +1 -0
- package/dist/esm/infra/index.d.ts +8 -0
- package/dist/esm/infra/index.d.ts.map +1 -0
- package/dist/esm/infra/index.js +9 -0
- package/dist/esm/infra/index.js.map +1 -0
- package/dist/esm/infra/mcp-tools.d.ts +16 -0
- package/dist/esm/infra/mcp-tools.d.ts.map +1 -0
- package/dist/esm/infra/mcp-tools.js +451 -0
- package/dist/esm/infra/mcp-tools.js.map +1 -0
- package/dist/esm/infra/providers/InfraProvider.d.ts +9 -0
- package/dist/esm/infra/providers/InfraProvider.d.ts.map +1 -0
- package/dist/esm/infra/providers/InfraProvider.js +2 -0
- package/dist/esm/infra/providers/InfraProvider.js.map +1 -0
- package/dist/esm/infra/providers/JenkinsProvider.d.ts +16 -0
- package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +1 -0
- package/dist/esm/infra/providers/JenkinsProvider.js +181 -0
- package/dist/esm/infra/providers/JenkinsProvider.js.map +1 -0
- package/dist/esm/infra/providers/OKDProvider.d.ts +24 -0
- package/dist/esm/infra/providers/OKDProvider.d.ts.map +1 -0
- package/dist/esm/infra/providers/OKDProvider.js +288 -0
- package/dist/esm/infra/providers/OKDProvider.js.map +1 -0
- package/dist/esm/infra/providers/TerraformProvider.d.ts +17 -0
- package/dist/esm/infra/providers/TerraformProvider.d.ts.map +1 -0
- package/dist/esm/infra/providers/TerraformProvider.js +105 -0
- package/dist/esm/infra/providers/TerraformProvider.js.map +1 -0
- package/dist/esm/infra/providers/index.d.ts +9 -0
- package/dist/esm/infra/providers/index.d.ts.map +1 -0
- package/dist/esm/infra/providers/index.js +27 -0
- package/dist/esm/infra/providers/index.js.map +1 -0
- package/dist/esm/infra/templates/jenkins/index.d.ts +15 -0
- package/dist/esm/infra/templates/jenkins/index.d.ts.map +1 -0
- package/dist/esm/infra/templates/jenkins/index.js +120 -0
- package/dist/esm/infra/templates/jenkins/index.js.map +1 -0
- package/dist/esm/infra/templates/okd/index.d.ts +31 -0
- package/dist/esm/infra/templates/okd/index.d.ts.map +1 -0
- package/dist/esm/infra/templates/okd/index.js +142 -0
- package/dist/esm/infra/templates/okd/index.js.map +1 -0
- package/dist/esm/infra/types.d.ts +128 -0
- package/dist/esm/infra/types.d.ts.map +1 -0
- package/dist/esm/infra/types.js +3 -0
- package/dist/esm/infra/types.js.map +1 -0
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js +9 -1
- package/dist/esm/mcp/tools.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { JenkinsProvider } from './JenkinsProvider';
|
|
2
|
+
import { OKDProvider } from './OKDProvider';
|
|
3
|
+
import { TerraformProvider } from './TerraformProvider';
|
|
4
|
+
import type { InfraProvider } from './InfraProvider';
|
|
5
|
+
export declare function getProvider(name: string): InfraProvider;
|
|
6
|
+
export declare function listProviders(): string[];
|
|
7
|
+
export { JenkinsProvider, OKDProvider, TerraformProvider };
|
|
8
|
+
export type { InfraProvider } from './InfraProvider';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/infra/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAiBvD;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerraformProvider = exports.OKDProvider = exports.JenkinsProvider = void 0;
|
|
4
|
+
exports.getProvider = getProvider;
|
|
5
|
+
exports.listProviders = listProviders;
|
|
6
|
+
const JenkinsProvider_1 = require("./JenkinsProvider");
|
|
7
|
+
Object.defineProperty(exports, "JenkinsProvider", { enumerable: true, get: function () { return JenkinsProvider_1.JenkinsProvider; } });
|
|
8
|
+
const OKDProvider_1 = require("./OKDProvider");
|
|
9
|
+
Object.defineProperty(exports, "OKDProvider", { enumerable: true, get: function () { return OKDProvider_1.OKDProvider; } });
|
|
10
|
+
const TerraformProvider_1 = require("./TerraformProvider");
|
|
11
|
+
Object.defineProperty(exports, "TerraformProvider", { enumerable: true, get: function () { return TerraformProvider_1.TerraformProvider; } });
|
|
12
|
+
const providers = {};
|
|
13
|
+
function getProvider(name) {
|
|
14
|
+
if (!providers[name]) {
|
|
15
|
+
switch (name) {
|
|
16
|
+
case 'jenkins':
|
|
17
|
+
providers[name] = new JenkinsProvider_1.JenkinsProvider();
|
|
18
|
+
break;
|
|
19
|
+
case 'okd':
|
|
20
|
+
providers[name] = new OKDProvider_1.OKDProvider();
|
|
21
|
+
break;
|
|
22
|
+
case 'terraform':
|
|
23
|
+
providers[name] = new TerraformProvider_1.TerraformProvider();
|
|
24
|
+
break;
|
|
25
|
+
default:
|
|
26
|
+
throw new Error(`Unknown provider: ${name}. Available: jenkins, okd, terraform`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return providers[name];
|
|
30
|
+
}
|
|
31
|
+
function listProviders() {
|
|
32
|
+
return ['jenkins', 'okd', 'terraform'];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infra/providers/index.ts"],"names":[],"mappings":";;;AAOA,kCAiBC;AAED,sCAEC;AA5BD,uDAAoD;AA8B3C,gGA9BA,iCAAe,OA8BA;AA7BxB,+CAA4C;AA6BlB,4FA7BjB,yBAAW,OA6BiB;AA5BrC,2DAAwD;AA4BjB,kGA5B9B,qCAAiB,OA4B8B;AAzBxD,MAAM,SAAS,GAAkC,EAAE,CAAC;AAEpD,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,iCAAe,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,KAAK;gBACR,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,yBAAW,EAAE,CAAC;gBACpC,MAAM;YACR,KAAK,WAAW;gBACd,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAiB,EAAE,CAAC;gBAC1C,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,sCAAsC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function jenkinsfileTemplate(cfg: {
|
|
2
|
+
name: string;
|
|
3
|
+
dockerImage?: string;
|
|
4
|
+
registry?: string;
|
|
5
|
+
namespace?: string;
|
|
6
|
+
buildArgs?: Record<string, string>;
|
|
7
|
+
envVars?: Record<string, string>;
|
|
8
|
+
triggers?: string[];
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function multibranchTemplate(cfg: {
|
|
11
|
+
name: string;
|
|
12
|
+
repoUrl: string;
|
|
13
|
+
branchPattern?: string;
|
|
14
|
+
}): string;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/infra/templates/jenkins/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,MAAM,CAyET;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA6CT"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jenkinsfileTemplate = jenkinsfileTemplate;
|
|
4
|
+
exports.multibranchTemplate = multibranchTemplate;
|
|
5
|
+
function jenkinsfileTemplate(cfg) {
|
|
6
|
+
const buildArgsYaml = cfg.buildArgs
|
|
7
|
+
? Object.entries(cfg.buildArgs).map(([k, v]) => ` ${k} = '${v}'`).join('\n')
|
|
8
|
+
: '';
|
|
9
|
+
const envYaml = cfg.envVars
|
|
10
|
+
? Object.entries(cfg.envVars).map(([k, v]) => ` ${k} = '${v}'`).join('\n')
|
|
11
|
+
: '';
|
|
12
|
+
const triggersYaml = cfg.triggers?.length
|
|
13
|
+
? cfg.triggers.map((t) => ` ${t}`).join('\n')
|
|
14
|
+
: " pollSCM('H/5 * * * *')";
|
|
15
|
+
return `pipeline {
|
|
16
|
+
agent any
|
|
17
|
+
|
|
18
|
+
environment {
|
|
19
|
+
DOCKER_IMAGE = '${cfg.dockerImage || cfg.name}'
|
|
20
|
+
REGISTRY = '${cfg.registry || 'docker.io'}'
|
|
21
|
+
NAMESPACE = '${cfg.namespace || 'default'}'
|
|
22
|
+
${buildArgsYaml ? `\n parameters {\n${buildArgsYaml}\n }\n` : ''}
|
|
23
|
+
${envYaml ? `\n${envYaml}\n` : ''}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
triggers {
|
|
27
|
+
${triggersYaml}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
stages {
|
|
31
|
+
stage('Checkout') {
|
|
32
|
+
steps {
|
|
33
|
+
checkout scm
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
stage('Build Image') {
|
|
38
|
+
steps {
|
|
39
|
+
sh "docker build -t \${REGISTRY}/\${DOCKER_IMAGE}:\${BUILD_NUMBER} ."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
stage('Test') {
|
|
44
|
+
steps {
|
|
45
|
+
sh 'echo "Running tests..."'
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
stage('Push Image') {
|
|
50
|
+
steps {
|
|
51
|
+
withCredentials([usernamePassword(credentialsId: 'registry-creds', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
|
|
52
|
+
sh "echo \$PASS | docker login \${REGISTRY} -u \$USER --password-stdin"
|
|
53
|
+
sh "docker push \${REGISTRY}/\${DOCKER_IMAGE}:\${BUILD_NUMBER}"
|
|
54
|
+
sh "docker tag \${REGISTRY}/\${DOCKER_IMAGE}:\${BUILD_NUMBER} \${REGISTRY}/\${DOCKER_IMAGE}:latest"
|
|
55
|
+
sh "docker push \${REGISTRY}/\${DOCKER_IMAGE}:latest"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
stage('Deploy to OKD') {
|
|
61
|
+
steps {
|
|
62
|
+
sh "oc tag \${NAMESPACE}/\${DOCKER_IMAGE}:\${BUILD_NUMBER} \${NAMESPACE}/\${DOCKER_IMAGE}:latest || true"
|
|
63
|
+
sh "oc rollout latest dc/\${DOCKER_IMAGE} -n \${NAMESPACE}"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
post {
|
|
69
|
+
success {
|
|
70
|
+
echo 'Build + Deploy succeeded!'
|
|
71
|
+
}
|
|
72
|
+
failure {
|
|
73
|
+
echo 'Build failed!'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}`;
|
|
77
|
+
}
|
|
78
|
+
function multibranchTemplate(cfg) {
|
|
79
|
+
return `pipeline {
|
|
80
|
+
agent any
|
|
81
|
+
|
|
82
|
+
triggers {
|
|
83
|
+
pollSCM('H/5 * * * *')
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
stages {
|
|
87
|
+
stage('Detect Branch') {
|
|
88
|
+
steps {
|
|
89
|
+
script {
|
|
90
|
+
env.BRANCH_NAME = env.BRANCH_NAME ?: 'main'
|
|
91
|
+
echo "Building branch: \${env.BRANCH_NAME}"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
stage('Checkout') {
|
|
97
|
+
steps {
|
|
98
|
+
checkout scm
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
stage('Build') {
|
|
103
|
+
steps {
|
|
104
|
+
sh "docker build -t ${cfg.name}:\${env.BRANCH_NAME}-\${BUILD_NUMBER} ."
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
stage('Test') {
|
|
109
|
+
steps {
|
|
110
|
+
sh 'echo "Running tests for \${env.BRANCH_NAME}"'
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
stage('Deploy') {
|
|
115
|
+
when { branch 'main' }
|
|
116
|
+
steps {
|
|
117
|
+
sh "oc tag ${cfg.name}:latest ${cfg.name}:\${BUILD_NUMBER} || true"
|
|
118
|
+
sh "oc rollout latest dc/${cfg.name}"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}`;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/infra/templates/jenkins/index.ts"],"names":[],"mappings":";;AAAA,kDAiFC;AAED,kDAiDC;AApID,SAAgB,mBAAmB,CAAC,GAQnC;IACC,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS;QACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO;QACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM;QACvC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,4BAA4B,CAAC;IAEjC,OAAO;;;;sBAIa,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI;kBAC/B,GAAG,CAAC,QAAQ,IAAI,WAAW;mBAC1B,GAAG,CAAC,SAAS,IAAI,SAAS;EAC3C,aAAa,CAAC,CAAC,CAAC,qBAAqB,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE;EAChE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;;;;EAI/B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDZ,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAInC;IACC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;8BAyBqB,GAAG,CAAC,IAAI;;;;;;;;;;;;;qBAajB,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI;mCACb,GAAG,CAAC,IAAI;;;;EAIzC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare function deploymentConfigTemplate(cfg: {
|
|
2
|
+
name: string;
|
|
3
|
+
image: string;
|
|
4
|
+
port: number;
|
|
5
|
+
replicas: number;
|
|
6
|
+
ns: string;
|
|
7
|
+
registry: string;
|
|
8
|
+
envVars?: Record<string, string>;
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function buildConfigTemplate(cfg: {
|
|
11
|
+
name: string;
|
|
12
|
+
ns: string;
|
|
13
|
+
}): string;
|
|
14
|
+
export declare function imageStreamTemplate(cfg: {
|
|
15
|
+
name: string;
|
|
16
|
+
ns: string;
|
|
17
|
+
registry: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function routeTemplate(cfg: {
|
|
20
|
+
name: string;
|
|
21
|
+
ns: string;
|
|
22
|
+
hostname: string;
|
|
23
|
+
tls: boolean;
|
|
24
|
+
port: number;
|
|
25
|
+
}): string;
|
|
26
|
+
export declare function serviceTemplate(cfg: {
|
|
27
|
+
name: string;
|
|
28
|
+
ns: string;
|
|
29
|
+
port: number;
|
|
30
|
+
}): string;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/infra/templates/okd/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,wBAAwB,CAAC,GAAG,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GAAG,MAAM,CA2DT;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA0B7E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAkB/F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmBrH;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAevF"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deploymentConfigTemplate = deploymentConfigTemplate;
|
|
4
|
+
exports.buildConfigTemplate = buildConfigTemplate;
|
|
5
|
+
exports.imageStreamTemplate = imageStreamTemplate;
|
|
6
|
+
exports.routeTemplate = routeTemplate;
|
|
7
|
+
exports.serviceTemplate = serviceTemplate;
|
|
8
|
+
function deploymentConfigTemplate(cfg) {
|
|
9
|
+
const envYaml = cfg.envVars
|
|
10
|
+
? Object.entries(cfg.envVars)
|
|
11
|
+
.map(([k, v]) => ` - name: ${k}\n value: "${v}"`)
|
|
12
|
+
.join('\n')
|
|
13
|
+
: '';
|
|
14
|
+
return `apiVersion: apps.openshift.io/v1
|
|
15
|
+
kind: DeploymentConfig
|
|
16
|
+
metadata:
|
|
17
|
+
name: ${cfg.name}
|
|
18
|
+
namespace: ${cfg.ns}
|
|
19
|
+
labels:
|
|
20
|
+
app: ${cfg.name}
|
|
21
|
+
spec:
|
|
22
|
+
replicas: ${cfg.replicas}
|
|
23
|
+
selector:
|
|
24
|
+
app: ${cfg.name}
|
|
25
|
+
template:
|
|
26
|
+
metadata:
|
|
27
|
+
labels:
|
|
28
|
+
app: ${cfg.name}
|
|
29
|
+
spec:
|
|
30
|
+
containers:
|
|
31
|
+
- name: ${cfg.name}
|
|
32
|
+
image: ${cfg.registry}/${cfg.ns}/${cfg.image}
|
|
33
|
+
ports:
|
|
34
|
+
- containerPort: ${cfg.port}
|
|
35
|
+
protocol: TCP
|
|
36
|
+
resources:
|
|
37
|
+
requests:
|
|
38
|
+
cpu: 100m
|
|
39
|
+
memory: 128Mi
|
|
40
|
+
limits:
|
|
41
|
+
cpu: 500m
|
|
42
|
+
memory: 512Mi
|
|
43
|
+
${envYaml ? ` env:\n${envYaml}` : ''}
|
|
44
|
+
readinessProbe:
|
|
45
|
+
httpGet:
|
|
46
|
+
path: /health
|
|
47
|
+
port: ${cfg.port}
|
|
48
|
+
initialDelaySeconds: 5
|
|
49
|
+
periodSeconds: 10
|
|
50
|
+
livenessProbe:
|
|
51
|
+
httpGet:
|
|
52
|
+
path: /health
|
|
53
|
+
port: ${cfg.port}
|
|
54
|
+
initialDelaySeconds: 15
|
|
55
|
+
periodSeconds: 20
|
|
56
|
+
triggers:
|
|
57
|
+
- type: ConfigChange
|
|
58
|
+
- type: ImageChange
|
|
59
|
+
imageChangeParams:
|
|
60
|
+
automatic: true
|
|
61
|
+
containerNames:
|
|
62
|
+
- ${cfg.name}
|
|
63
|
+
from:
|
|
64
|
+
kind: ImageStreamTag
|
|
65
|
+
name: ${cfg.name}:latest`;
|
|
66
|
+
}
|
|
67
|
+
function buildConfigTemplate(cfg) {
|
|
68
|
+
return `apiVersion: build.openshift.io/v1
|
|
69
|
+
kind: BuildConfig
|
|
70
|
+
metadata:
|
|
71
|
+
name: ${cfg.name}
|
|
72
|
+
namespace: ${cfg.ns}
|
|
73
|
+
labels:
|
|
74
|
+
app: ${cfg.name}
|
|
75
|
+
spec:
|
|
76
|
+
source:
|
|
77
|
+
type: Git
|
|
78
|
+
git:
|
|
79
|
+
uri: ""
|
|
80
|
+
strategy:
|
|
81
|
+
type: Docker
|
|
82
|
+
dockerStrategy:
|
|
83
|
+
dockerfilePath: Dockerfile
|
|
84
|
+
output:
|
|
85
|
+
to:
|
|
86
|
+
kind: ImageStreamTag
|
|
87
|
+
name: ${cfg.name}:latest
|
|
88
|
+
triggers:
|
|
89
|
+
- type: GitHub
|
|
90
|
+
github:
|
|
91
|
+
secret: ""
|
|
92
|
+
- type: ConfigChange`;
|
|
93
|
+
}
|
|
94
|
+
function imageStreamTemplate(cfg) {
|
|
95
|
+
return `apiVersion: image.openshift.io/v1
|
|
96
|
+
kind: ImageStream
|
|
97
|
+
metadata:
|
|
98
|
+
name: ${cfg.name}
|
|
99
|
+
namespace: ${cfg.ns}
|
|
100
|
+
labels:
|
|
101
|
+
app: ${cfg.name}
|
|
102
|
+
spec:
|
|
103
|
+
lookupPolicy:
|
|
104
|
+
local: false
|
|
105
|
+
tags:
|
|
106
|
+
- name: latest
|
|
107
|
+
from:
|
|
108
|
+
kind: DockerImage
|
|
109
|
+
name: ${cfg.registry}/${cfg.ns}/${cfg.name}:latest
|
|
110
|
+
importPolicy:
|
|
111
|
+
scheduled: true`;
|
|
112
|
+
}
|
|
113
|
+
function routeTemplate(cfg) {
|
|
114
|
+
return `apiVersion: route.openshift.io/v1
|
|
115
|
+
kind: Route
|
|
116
|
+
metadata:
|
|
117
|
+
name: ${cfg.name}
|
|
118
|
+
namespace: ${cfg.ns}
|
|
119
|
+
labels:
|
|
120
|
+
app: ${cfg.name}
|
|
121
|
+
spec:
|
|
122
|
+
host: ${cfg.hostname}
|
|
123
|
+
to:
|
|
124
|
+
kind: Service
|
|
125
|
+
name: ${cfg.name}
|
|
126
|
+
weight: 100
|
|
127
|
+
port:
|
|
128
|
+
targetPort: ${cfg.port}
|
|
129
|
+
tls:
|
|
130
|
+
termination: ${cfg.tls ? 'edge' : 'passthrough'}
|
|
131
|
+
insecureEdgeTerminationPolicy: Redirect`;
|
|
132
|
+
}
|
|
133
|
+
function serviceTemplate(cfg) {
|
|
134
|
+
return `apiVersion: v1
|
|
135
|
+
kind: Service
|
|
136
|
+
metadata:
|
|
137
|
+
name: ${cfg.name}
|
|
138
|
+
namespace: ${cfg.ns}
|
|
139
|
+
labels:
|
|
140
|
+
app: ${cfg.name}
|
|
141
|
+
spec:
|
|
142
|
+
ports:
|
|
143
|
+
- port: ${cfg.port}
|
|
144
|
+
targetPort: ${cfg.port}
|
|
145
|
+
protocol: TCP
|
|
146
|
+
selector:
|
|
147
|
+
app: ${cfg.name}`;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/infra/templates/okd/index.ts"],"names":[],"mappings":";;AAAA,4DAmEC;AAED,kDA0BC;AAED,kDAkBC;AAED,sCAmBC;AAED,0CAeC;AAzJD,SAAgB,wBAAwB,CAAC,GAQxC;IACC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO;QACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,CAAC;aACpE,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;UAGC,GAAG,CAAC,IAAI;eACH,GAAG,CAAC,EAAE;;WAEV,GAAG,CAAC,IAAI;;cAEL,GAAG,CAAC,QAAQ;;WAEf,GAAG,CAAC,IAAI;;;;eAIJ,GAAG,CAAC,IAAI;;;kBAGL,GAAG,CAAC,IAAI;mBACP,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK;;+BAEvB,GAAG,CAAC,IAAI;;;;;;;;;EASrC,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;;;;sBAIvB,GAAG,CAAC,IAAI;;;;;;sBAMR,GAAG,CAAC,IAAI;;;;;;;;;cAShB,GAAG,CAAC,IAAI;;;kBAGJ,GAAG,CAAC,IAAI,SAAS,CAAC;AACpC,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAiC;IACnE,OAAO;;;UAGC,GAAG,CAAC,IAAI;eACH,GAAG,CAAC,EAAE;;WAEV,GAAG,CAAC,IAAI;;;;;;;;;;;;;cAaL,GAAG,CAAC,IAAI;;;;;yBAKG,CAAC;AAC1B,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAmD;IACrF,OAAO;;;UAGC,GAAG,CAAC,IAAI;eACH,GAAG,CAAC,EAAE;;WAEV,GAAG,CAAC,IAAI;;;;;;;;gBAQH,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI;;wBAE1B,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa,CAAC,GAA+E;IAC3G,OAAO;;;UAGC,GAAG,CAAC,IAAI;eACH,GAAG,CAAC,EAAE;;WAEV,GAAG,CAAC,IAAI;;UAET,GAAG,CAAC,QAAQ;;;YAGV,GAAG,CAAC,IAAI;;;kBAGF,GAAG,CAAC,IAAI;;mBAEP,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;4CACP,CAAC;AAC7C,CAAC;AAED,SAAgB,eAAe,CAAC,GAA+C;IAC7E,OAAO;;;UAGC,GAAG,CAAC,IAAI;eACH,GAAG,CAAC,EAAE;;WAEV,GAAG,CAAC,IAAI;;;cAGL,GAAG,CAAC,IAAI;oBACF,GAAG,CAAC,IAAI;;;WAGjB,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
export type InfraProviderType = 'jenkins' | 'okd' | 'terraform';
|
|
2
|
+
export interface HealthStatus {
|
|
3
|
+
status: 'healthy' | 'degraded' | 'down';
|
|
4
|
+
latency: number;
|
|
5
|
+
details: Record<string, any>;
|
|
6
|
+
lastChecked: string;
|
|
7
|
+
}
|
|
8
|
+
export interface InfraStatus {
|
|
9
|
+
providers: Record<string, HealthStatus>;
|
|
10
|
+
lastDiscovery: string;
|
|
11
|
+
}
|
|
12
|
+
export interface JenkinsConfig {
|
|
13
|
+
url: string;
|
|
14
|
+
username?: string;
|
|
15
|
+
apiToken?: string;
|
|
16
|
+
credentialsId?: string;
|
|
17
|
+
folder?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface OKDConfig {
|
|
20
|
+
server: string;
|
|
21
|
+
project: string;
|
|
22
|
+
imageRegistry?: string;
|
|
23
|
+
token?: string;
|
|
24
|
+
route?: {
|
|
25
|
+
tls: boolean;
|
|
26
|
+
hostname: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface TerraformConfig {
|
|
30
|
+
backend: string;
|
|
31
|
+
bucket?: string;
|
|
32
|
+
key?: string;
|
|
33
|
+
region?: string;
|
|
34
|
+
workDir?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface InfraConfig {
|
|
37
|
+
jenkins?: JenkinsConfig;
|
|
38
|
+
okd?: OKDConfig;
|
|
39
|
+
terraform?: TerraformConfig;
|
|
40
|
+
deploy: {
|
|
41
|
+
autoApprove: boolean;
|
|
42
|
+
confirmationPrompt: boolean;
|
|
43
|
+
notifyOnSuccess: boolean;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface DeployResult {
|
|
47
|
+
provider: string;
|
|
48
|
+
success: boolean;
|
|
49
|
+
url?: string;
|
|
50
|
+
artifacts: string[];
|
|
51
|
+
logs: string[];
|
|
52
|
+
nextSteps: string[];
|
|
53
|
+
tokenEstimate: number;
|
|
54
|
+
}
|
|
55
|
+
export interface PipelineConfig {
|
|
56
|
+
name: string;
|
|
57
|
+
branch: string;
|
|
58
|
+
dockerImage?: string;
|
|
59
|
+
registry?: string;
|
|
60
|
+
namespace?: string;
|
|
61
|
+
buildArgs?: Record<string, string>;
|
|
62
|
+
envVars?: Record<string, string>;
|
|
63
|
+
triggers?: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface OKDManifests {
|
|
66
|
+
deploymentConfig: string;
|
|
67
|
+
buildConfig: string;
|
|
68
|
+
imageStream: string;
|
|
69
|
+
route: string;
|
|
70
|
+
service: string;
|
|
71
|
+
}
|
|
72
|
+
export type FindingSeverity = 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
|
|
73
|
+
export type FindingCategory = 'security' | 'reliability' | 'cost' | 'performance' | 'compliance';
|
|
74
|
+
export interface InfraFinding {
|
|
75
|
+
ruleId: string;
|
|
76
|
+
severity: FindingSeverity;
|
|
77
|
+
category: FindingCategory;
|
|
78
|
+
resource: string;
|
|
79
|
+
message: string;
|
|
80
|
+
suggestion: string;
|
|
81
|
+
autoFixAvailable: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface InfraAnalysisResult {
|
|
84
|
+
findings: InfraFinding[];
|
|
85
|
+
score: number;
|
|
86
|
+
provider: string;
|
|
87
|
+
summary: string;
|
|
88
|
+
}
|
|
89
|
+
export interface DriftResult {
|
|
90
|
+
resource: string;
|
|
91
|
+
type: 'config' | 'state' | 'permission';
|
|
92
|
+
expected: string;
|
|
93
|
+
actual: string;
|
|
94
|
+
severity: FindingSeverity;
|
|
95
|
+
}
|
|
96
|
+
export interface MonolithAnalysis {
|
|
97
|
+
modules: ModuleInfo[];
|
|
98
|
+
couplingScore: number;
|
|
99
|
+
suggestedSplits: SuggestedSplit[];
|
|
100
|
+
migrationPlan: MigrationStep[];
|
|
101
|
+
}
|
|
102
|
+
export interface ModuleInfo {
|
|
103
|
+
name: string;
|
|
104
|
+
files: number;
|
|
105
|
+
dependencies: string[];
|
|
106
|
+
entryPoints: string[];
|
|
107
|
+
complexity: number;
|
|
108
|
+
}
|
|
109
|
+
export interface SuggestedSplit {
|
|
110
|
+
name: string;
|
|
111
|
+
includes: string[];
|
|
112
|
+
rationale: string;
|
|
113
|
+
estimatedEffort: 'low' | 'medium' | 'high';
|
|
114
|
+
}
|
|
115
|
+
export interface MigrationStep {
|
|
116
|
+
order: number;
|
|
117
|
+
action: string;
|
|
118
|
+
detail: string;
|
|
119
|
+
risk: FindingSeverity;
|
|
120
|
+
}
|
|
121
|
+
export interface InfraCLIOptions {
|
|
122
|
+
provider?: string;
|
|
123
|
+
project?: string;
|
|
124
|
+
dryRun?: boolean;
|
|
125
|
+
verbose?: boolean;
|
|
126
|
+
json?: boolean;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/infra/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,OAAO,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE;QACN,WAAW,EAAE,OAAO,CAAC;QACrB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;AAEjG,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;CACvB;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/infra/types.ts"],"names":[],"mappings":";AAAA,kFAAkF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA2gCnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAC1C,IAAI,CA2DN"}
|
package/dist/cjs/mcp/tools.js
CHANGED
|
@@ -69,6 +69,7 @@ const SymbolSurgicalContext_1 = require("../utils/SymbolSurgicalContext");
|
|
|
69
69
|
const WormholeCompressor_1 = require("../utils/WormholeCompressor");
|
|
70
70
|
const ExecutiveReport_1 = require("../utils/ExecutiveReport");
|
|
71
71
|
const SurgicalASTInsert_1 = require("../utils/SurgicalASTInsert");
|
|
72
|
+
const mcp_tools_1 = require("../infra/mcp-tools");
|
|
72
73
|
// ── Pro License Gate ──────────────────────────────────────────────────────────
|
|
73
74
|
const LICENSE_FILE = path_1.default.join(os_1.default.homedir(), '.lemma-cache', 'license.json');
|
|
74
75
|
let _proStatusCache = null;
|
|
@@ -99,6 +100,8 @@ const FREE_TOOLS = new Set([
|
|
|
99
100
|
"read_token_budgeted", "bulk_file_digest", "auto_context_bundle", "repeat_guard",
|
|
100
101
|
// Phase 3 session & automation tools
|
|
101
102
|
"conversation_checkpoint", "test_autofix_interceptor", "prompt_pattern_cache",
|
|
103
|
+
// Infrastructure tools
|
|
104
|
+
...mcp_tools_1.INFRA_TOOL_NAMES,
|
|
102
105
|
]);
|
|
103
106
|
const PRO_GATE_MESSAGE = [
|
|
104
107
|
"🔒 This tool requires Lemma Pro.",
|
|
@@ -969,6 +972,10 @@ const toolDefinitions = [
|
|
|
969
972
|
}
|
|
970
973
|
}
|
|
971
974
|
];
|
|
975
|
+
// ── Infrastructure Tool Definitions ──────────────────────────────────────────
|
|
976
|
+
const _infraToolDefs = (0, mcp_tools_1.getInfraToolDefinitions)();
|
|
977
|
+
const allToolDefinitions = [...toolDefinitions, ..._infraToolDefs];
|
|
978
|
+
const toolDefinitionsArray = _infraToolDefs.length > 0 ? allToolDefinitions : toolDefinitions;
|
|
972
979
|
const toolHandlers = {
|
|
973
980
|
scrub_privacy: handleScrubPrivacy,
|
|
974
981
|
search_memory: handleSearchMemory,
|
|
@@ -1038,10 +1045,11 @@ const toolHandlers = {
|
|
|
1038
1045
|
conversation_checkpoint: handleConversationCheckpoint,
|
|
1039
1046
|
test_autofix_interceptor: handleTestAutofixInterceptor,
|
|
1040
1047
|
prompt_pattern_cache: handlePromptPatternCache,
|
|
1048
|
+
...(0, mcp_tools_1.getInfraToolHandlers)(),
|
|
1041
1049
|
};
|
|
1042
1050
|
function setupToolsHandlers(server, onToolCall) {
|
|
1043
1051
|
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
1044
|
-
tools:
|
|
1052
|
+
tools: toolDefinitionsArray,
|
|
1045
1053
|
}));
|
|
1046
1054
|
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
1047
1055
|
const { name, arguments: args } = request.params;
|