@evolith/smart-cli 1.1.3 → 1.1.5
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.es.md +989 -200
- package/README.md +98 -20
- package/dist/.tsbuildinfo +1 -0
- package/dist/CoreApiClient.d.ts +5 -0
- package/dist/CoreApiClient.js +25 -0
- package/dist/CoreApiClient.js.map +1 -0
- package/dist/app.module.js +12 -4
- package/dist/app.module.js.map +1 -1
- package/dist/commands/agents/agents.command.d.ts +19 -6
- package/dist/commands/agents/agents.command.js +333 -21
- package/dist/commands/agents/agents.command.js.map +1 -1
- package/dist/commands/architecture/scaffold.command.js +15 -8
- package/dist/commands/architecture/scaffold.command.js.map +1 -1
- package/dist/commands/chat/chat.command.d.ts +7 -0
- package/dist/commands/chat/chat.command.js +64 -0
- package/dist/commands/chat/chat.command.js.map +1 -0
- package/dist/commands/drift/drift.command.js +12 -3
- package/dist/commands/drift/drift.command.js.map +1 -1
- package/dist/commands/evaluate/evaluate.command.d.ts +28 -0
- package/dist/commands/evaluate/evaluate.command.js +197 -0
- package/dist/commands/evaluate/evaluate.command.js.map +1 -0
- package/dist/commands/mcp/mcp.command.d.ts +17 -0
- package/dist/commands/mcp/mcp.command.js +109 -0
- package/dist/commands/mcp/mcp.command.js.map +1 -0
- package/dist/commands/plan/index.d.ts +2 -0
- package/dist/commands/plan/index.js +133 -0
- package/dist/commands/plan/index.js.map +1 -0
- package/dist/commands/satellite/index.d.ts +2 -0
- package/dist/commands/satellite/index.js +8 -0
- package/dist/commands/satellite/index.js.map +1 -0
- package/dist/commands/satellite/satellite-adopt.command.d.ts +21 -0
- package/dist/commands/satellite/satellite-adopt.command.js +193 -0
- package/dist/commands/satellite/satellite-adopt.command.js.map +1 -0
- package/dist/commands/satellite/satellite-create.command.d.ts +26 -0
- package/dist/commands/satellite/satellite-create.command.js +192 -0
- package/dist/commands/satellite/satellite-create.command.js.map +1 -0
- package/dist/commands/upgrade/upgrade.command.d.ts +12 -4
- package/dist/commands/upgrade/upgrade.command.js +139 -19
- package/dist/commands/upgrade/upgrade.command.js.map +1 -1
- package/dist/commands/validate/validate.command.js +42 -14
- package/dist/commands/validate/validate.command.js.map +1 -1
- package/dist/infrastructure/agent/agent-runtime.factory.d.ts +9 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js +47 -0
- package/dist/infrastructure/agent/agent-runtime.factory.js.map +1 -0
- package/dist/infrastructure/architecture/topology-catalog.d.ts +17 -0
- package/dist/infrastructure/architecture/topology-catalog.js +69 -0
- package/dist/infrastructure/architecture/topology-catalog.js.map +1 -0
- package/dist/infrastructure/cli/command-executor.d.ts +1 -0
- package/dist/infrastructure/cli/command-executor.js +16 -0
- package/dist/infrastructure/cli/command-executor.js.map +1 -1
- package/dist/infrastructure/cli/providers/index.js +32 -29
- package/dist/infrastructure/cli/providers/index.js.map +1 -1
- package/dist/main.js +12 -1
- package/dist/main.js.map +1 -1
- package/package.json +8 -5
- package/dist/commands/init/agents.command.d.ts +0 -24
- package/dist/commands/init/agents.command.js +0 -330
- package/dist/commands/init/agents.command.js.map +0 -1
- package/dist/commands/init/upgrade.command.d.ts +0 -22
- package/dist/commands/init/upgrade.command.js +0 -178
- package/dist/commands/init/upgrade.command.js.map +0 -1
- package/dist/commands/mcp/mcp-serve.command.d.ts +0 -17
- package/dist/commands/mcp/mcp-serve.command.js +0 -153
- package/dist/commands/mcp/mcp-serve.command.js.map +0 -1
- package/dist/commands/upgrade/index.d.ts +0 -1
- package/dist/commands/upgrade/index.js +0 -6
- package/dist/commands/upgrade/index.js.map +0 -1
|
@@ -37,18 +37,21 @@ exports.githubActionsProvider = exports.nxProvider = exports.dockerProvider = ex
|
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const fs_1 = require("fs");
|
|
39
39
|
const command_executor_1 = require("../command-executor");
|
|
40
|
+
function splitFlags(flags) {
|
|
41
|
+
return flags ? flags.trim().split(/\s+/).filter(Boolean) : [];
|
|
42
|
+
}
|
|
40
43
|
class NpmProvider {
|
|
41
44
|
async init(cwd) {
|
|
42
|
-
return command_executor_1.commandExecutor.
|
|
45
|
+
return command_executor_1.commandExecutor.executeFile('npm', ['init', '-y'], cwd);
|
|
43
46
|
}
|
|
44
47
|
async install(cwd, flags) {
|
|
45
|
-
return command_executor_1.commandExecutor.
|
|
48
|
+
return command_executor_1.commandExecutor.executeFile('npm', ['install', ...splitFlags(flags)], cwd);
|
|
46
49
|
}
|
|
47
50
|
async installDev(deps, cwd) {
|
|
48
|
-
return command_executor_1.commandExecutor.
|
|
51
|
+
return command_executor_1.commandExecutor.executeFile('npm', ['install', '-D', ...deps], cwd);
|
|
49
52
|
}
|
|
50
53
|
async run(script, cwd) {
|
|
51
|
-
return command_executor_1.commandExecutor.
|
|
54
|
+
return command_executor_1.commandExecutor.executeFile('npm', ['run', script], cwd);
|
|
52
55
|
}
|
|
53
56
|
async exec(cmd, cwd) {
|
|
54
57
|
return command_executor_1.commandExecutor.execute(cmd, cwd);
|
|
@@ -61,23 +64,23 @@ class NpmProvider {
|
|
|
61
64
|
exports.NpmProvider = NpmProvider;
|
|
62
65
|
class DotnetProvider {
|
|
63
66
|
async new(template, name, cwd) {
|
|
64
|
-
return command_executor_1.commandExecutor.
|
|
67
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', ['new', template, '-n', name, '-o', '.'], cwd);
|
|
65
68
|
}
|
|
66
69
|
async build(cwd, config) {
|
|
67
|
-
const
|
|
68
|
-
return command_executor_1.commandExecutor.
|
|
70
|
+
const args = config ? ['build', '-c', config] : ['build'];
|
|
71
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', args, cwd);
|
|
69
72
|
}
|
|
70
73
|
async test(cwd) {
|
|
71
|
-
return command_executor_1.commandExecutor.
|
|
74
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', ['test'], cwd);
|
|
72
75
|
}
|
|
73
76
|
async run(cwd) {
|
|
74
|
-
return command_executor_1.commandExecutor.
|
|
77
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', ['run'], cwd);
|
|
75
78
|
}
|
|
76
79
|
async addPackage(packageName, cwd) {
|
|
77
|
-
return command_executor_1.commandExecutor.
|
|
80
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', ['add', 'package', packageName], cwd);
|
|
78
81
|
}
|
|
79
82
|
async restore(cwd) {
|
|
80
|
-
return command_executor_1.commandExecutor.
|
|
83
|
+
return command_executor_1.commandExecutor.executeFile('dotnet', ['restore'], cwd);
|
|
81
84
|
}
|
|
82
85
|
async isAvailable() {
|
|
83
86
|
const check = await command_executor_1.commandExecutor.checkTool('dotnet', 'dotnet --version');
|
|
@@ -87,25 +90,25 @@ class DotnetProvider {
|
|
|
87
90
|
exports.DotnetProvider = DotnetProvider;
|
|
88
91
|
class PythonProvider {
|
|
89
92
|
async install(packages, cwd) {
|
|
90
|
-
return command_executor_1.commandExecutor.
|
|
93
|
+
return command_executor_1.commandExecutor.executeFile('pip', ['install', ...packages], cwd);
|
|
91
94
|
}
|
|
92
95
|
async installRequirements(cwd) {
|
|
93
|
-
return command_executor_1.commandExecutor.
|
|
96
|
+
return command_executor_1.commandExecutor.executeFile('pip', ['install', '-r', 'requirements.txt'], cwd);
|
|
94
97
|
}
|
|
95
98
|
async runModule(module, cwd) {
|
|
96
|
-
return command_executor_1.commandExecutor.
|
|
99
|
+
return command_executor_1.commandExecutor.executeFile('python', ['-m', module], cwd);
|
|
97
100
|
}
|
|
98
101
|
async runPytest(cwd, flags) {
|
|
99
|
-
return command_executor_1.commandExecutor.
|
|
102
|
+
return command_executor_1.commandExecutor.executeFile('pytest', splitFlags(flags), cwd);
|
|
100
103
|
}
|
|
101
104
|
async formatBlack(cwd) {
|
|
102
|
-
return command_executor_1.commandExecutor.
|
|
105
|
+
return command_executor_1.commandExecutor.executeFile('black', ['.'], cwd);
|
|
103
106
|
}
|
|
104
107
|
async lintRuff(cwd) {
|
|
105
|
-
return command_executor_1.commandExecutor.
|
|
108
|
+
return command_executor_1.commandExecutor.executeFile('ruff', ['check', '.'], cwd);
|
|
106
109
|
}
|
|
107
110
|
async typeCheckMypy(cwd) {
|
|
108
|
-
return command_executor_1.commandExecutor.
|
|
111
|
+
return command_executor_1.commandExecutor.executeFile('mypy', ['.'], cwd);
|
|
109
112
|
}
|
|
110
113
|
async isAvailable() {
|
|
111
114
|
const check = await command_executor_1.commandExecutor.checkTool('python', 'python --version');
|
|
@@ -115,17 +118,17 @@ class PythonProvider {
|
|
|
115
118
|
exports.PythonProvider = PythonProvider;
|
|
116
119
|
class DockerProvider {
|
|
117
120
|
async build(imageName, dockerfile, cwd) {
|
|
118
|
-
return command_executor_1.commandExecutor.
|
|
121
|
+
return command_executor_1.commandExecutor.executeFile('docker', ['build', '-t', imageName, '-f', dockerfile, '.'], cwd);
|
|
119
122
|
}
|
|
120
123
|
async run(containerName, imageName, ports) {
|
|
121
|
-
return command_executor_1.commandExecutor.
|
|
124
|
+
return command_executor_1.commandExecutor.executeFile('docker', ['run', '--name', containerName, '-p', ports, imageName]);
|
|
122
125
|
}
|
|
123
126
|
async composeUp(cwd, detached = false) {
|
|
124
|
-
const
|
|
125
|
-
return command_executor_1.commandExecutor.
|
|
127
|
+
const args = detached ? ['up', '-d'] : ['up'];
|
|
128
|
+
return command_executor_1.commandExecutor.executeFile('docker-compose', args, cwd);
|
|
126
129
|
}
|
|
127
130
|
async composeDown(cwd) {
|
|
128
|
-
return command_executor_1.commandExecutor.
|
|
131
|
+
return command_executor_1.commandExecutor.executeFile('docker-compose', ['down'], cwd);
|
|
129
132
|
}
|
|
130
133
|
async isAvailable() {
|
|
131
134
|
const check = await command_executor_1.commandExecutor.checkTool('docker', 'docker --version');
|
|
@@ -139,18 +142,18 @@ class DockerProvider {
|
|
|
139
142
|
exports.DockerProvider = DockerProvider;
|
|
140
143
|
class NxProvider {
|
|
141
144
|
async generate(appName, template, cwd) {
|
|
142
|
-
return command_executor_1.commandExecutor.
|
|
145
|
+
return command_executor_1.commandExecutor.executeFile('npx', ['nx', 'generate', template, appName], cwd);
|
|
143
146
|
}
|
|
144
147
|
async build(cwd, target) {
|
|
145
|
-
const
|
|
146
|
-
return command_executor_1.commandExecutor.
|
|
148
|
+
const args = target ? ['nx', 'build', target] : ['nx', 'build'];
|
|
149
|
+
return command_executor_1.commandExecutor.executeFile('npx', args, cwd);
|
|
147
150
|
}
|
|
148
151
|
async serve(cwd, target) {
|
|
149
|
-
const
|
|
150
|
-
return command_executor_1.commandExecutor.
|
|
152
|
+
const args = target ? ['nx', 'serve', target] : ['nx', 'serve'];
|
|
153
|
+
return command_executor_1.commandExecutor.executeFile('npx', args, cwd);
|
|
151
154
|
}
|
|
152
155
|
async affectedBuild(cwd) {
|
|
153
|
-
return command_executor_1.commandExecutor.
|
|
156
|
+
return command_executor_1.commandExecutor.executeFile('npx', ['nx', 'affected:build'], cwd);
|
|
154
157
|
}
|
|
155
158
|
async isAvailable() {
|
|
156
159
|
const check = await command_executor_1.commandExecutor.checkTool('nx', 'npx nx --version');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/cli/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,2BAAoC;AACpC,0DAAqE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/cli/providers/index.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
4
6
|
const otel_tracing_1 = require("./infrastructure/observability/otel-tracing");
|
|
5
7
|
const nest_commander_1 = require("nest-commander");
|
|
6
8
|
const app_module_1 = require("./app.module");
|
|
7
9
|
const alias_service_1 = require("./config/alias.service");
|
|
10
|
+
const CLI_VERSION = (() => {
|
|
11
|
+
try {
|
|
12
|
+
return (JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, '..', 'package.json'), 'utf-8')).version ||
|
|
13
|
+
'0.0.0');
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return '0.0.0';
|
|
17
|
+
}
|
|
18
|
+
})();
|
|
8
19
|
(0, otel_tracing_1.initCliOtel)();
|
|
9
20
|
async function bootstrap() {
|
|
10
21
|
const aliasService = new alias_service_1.AliasService();
|
|
@@ -16,7 +27,7 @@ async function bootstrap() {
|
|
|
16
27
|
process.argv = [process.argv[0], process.argv[1], ...args];
|
|
17
28
|
}
|
|
18
29
|
}
|
|
19
|
-
await nest_commander_1.CommandFactory.run(app_module_1.AppModule, ['warn', 'error']);
|
|
30
|
+
await nest_commander_1.CommandFactory.run(app_module_1.AppModule, { logger: ['warn', 'error'], version: CLI_VERSION });
|
|
20
31
|
}
|
|
21
32
|
bootstrap()
|
|
22
33
|
.catch((err) => {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,8EAA2F;AAC3F,mDAAgD;AAChD,6CAAyC;AACzC,0DAAsD;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AACvC,yCAAiC;AACjC,8EAA2F;AAC3F,mDAAgD;AAChD,6CAAyC;AACzC,0DAAsD;AAGtD,MAAM,WAAW,GAAW,CAAC,GAAG,EAAE;IAChC,IAAI,CAAC;QACH,OAAO,CACJ,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAA0B,CAAC,OAAO;YAC1G,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAA,0BAAW,GAAE,CAAC;AAEd,KAAK,UAAU,SAAS;IAEtB,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YAEnB,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,+BAAc,CAAC,GAAG,CAAC,sBAAS,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,EAAE;KACR,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAe,GAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolith/smart-cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "Evolith Smart CLI - Governance, standards validation, and AI agent integration for satellite repositories",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"smart-cli": "
|
|
7
|
+
"smart-cli": "dist/main.js"
|
|
8
8
|
},
|
|
9
9
|
"directories": {
|
|
10
10
|
"doc": "docs"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "https://github.com/beyondnetcode/evolith_arch32.git",
|
|
48
|
+
"url": "git+https://github.com/beyondnetcode/evolith_arch32.git",
|
|
49
49
|
"directory": "sdk/cli"
|
|
50
50
|
},
|
|
51
51
|
"engines": {
|
|
@@ -60,8 +60,11 @@
|
|
|
60
60
|
],
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@clack/prompts": "1.5.1",
|
|
63
|
-
"@evolith/
|
|
64
|
-
"@evolith/
|
|
63
|
+
"@evolith/agent-runtime": "^1.0.0",
|
|
64
|
+
"@evolith/core-domain": "^1.0.5",
|
|
65
|
+
"@evolith/infra-providers": "1.0.2",
|
|
66
|
+
"@evolith/mcp-server": "^1.0.1",
|
|
67
|
+
"@evolith/sdk": "^0.1.0",
|
|
65
68
|
"@hono/node-server": "1.19.14",
|
|
66
69
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
67
70
|
"@nestjs/common": "11.1.27",
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { PromptService } from '../../infrastructure/prompts/prompt.service';
|
|
2
|
-
import { BaseEvolithCommand } from '../../infrastructure/cli/base-command';
|
|
3
|
-
interface AgentsCommandOptions {
|
|
4
|
-
install?: string;
|
|
5
|
-
remove?: string;
|
|
6
|
-
list?: boolean;
|
|
7
|
-
dryRun?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare class AgentsCommand extends BaseEvolithCommand {
|
|
10
|
-
private readonly registry;
|
|
11
|
-
constructor(promptService: PromptService);
|
|
12
|
-
executeCommand(passedParam: string[], options?: AgentsCommandOptions): Promise<void>;
|
|
13
|
-
private showMenu;
|
|
14
|
-
private installAgent;
|
|
15
|
-
private listAgents;
|
|
16
|
-
private validateAgent;
|
|
17
|
-
private removeAgent;
|
|
18
|
-
private upgradeAgent;
|
|
19
|
-
parseInstall(val: string): string;
|
|
20
|
-
parseRemove(val: string): string;
|
|
21
|
-
parseList(): boolean;
|
|
22
|
-
parseDryRun(): boolean;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AgentsCommand = void 0;
|
|
16
|
-
const prompt_service_1 = require("../../infrastructure/prompts/prompt.service");
|
|
17
|
-
const nest_commander_1 = require("nest-commander");
|
|
18
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
19
|
-
const node_filesystem_provider_1 = require("../../infrastructure/providers/node-filesystem.provider");
|
|
20
|
-
const agent_registry_service_1 = require("../../infrastructure/adapters/agent-registry.service");
|
|
21
|
-
const agent_ruleset_builder_1 = require("@evolith/core-domain/application/agents/agent-ruleset-builder");
|
|
22
|
-
const base_command_1 = require("../../infrastructure/cli/base-command");
|
|
23
|
-
let cachedFileSystem = null;
|
|
24
|
-
function getFileSystem() {
|
|
25
|
-
if (!cachedFileSystem) {
|
|
26
|
-
cachedFileSystem = new node_filesystem_provider_1.NodeFileSystemProvider().createFileSystem();
|
|
27
|
-
}
|
|
28
|
-
return cachedFileSystem;
|
|
29
|
-
}
|
|
30
|
-
const AGENT_TEMPLATES = [
|
|
31
|
-
{
|
|
32
|
-
value: 'standard',
|
|
33
|
-
label: 'Standard Agent',
|
|
34
|
-
description: 'Default agent with basic governance rules (ACL-01 through ACL-06)',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
value: 'minimal',
|
|
38
|
-
label: 'Minimal Agent',
|
|
39
|
-
description: 'Lightweight agent with essential rules only',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
value: 'enterprise',
|
|
43
|
-
label: 'Enterprise Agent',
|
|
44
|
-
description: 'Full compliance agent with audit trail and approval chains',
|
|
45
|
-
},
|
|
46
|
-
];
|
|
47
|
-
const AVAILABLE_ADRS = [
|
|
48
|
-
{ value: 'adr-0002', label: 'ADR-0002: Hexagonal Architecture', selected: true },
|
|
49
|
-
{ value: 'adr-0018', label: 'ADR-0018: Testing Pyramid', selected: true },
|
|
50
|
-
{ value: 'adr-0032', label: 'ADR-0032: Protocol Selection', selected: false },
|
|
51
|
-
{ value: 'adr-0040', label: 'ADR-0040: Multi-Runtime', selected: false },
|
|
52
|
-
{ value: 'adr-0050', label: 'ADR-0050: GitFlow Branching', selected: true },
|
|
53
|
-
];
|
|
54
|
-
const AVAILABLE_RULESETS = [
|
|
55
|
-
{ value: 'acl', label: 'ACL Rules (Anti-Corruption Layer)', selected: true },
|
|
56
|
-
{ value: 'open-core', label: 'Open-Core Boundary Rules', selected: true },
|
|
57
|
-
{ value: 'inheritance', label: 'Inheritance Rules', selected: true },
|
|
58
|
-
];
|
|
59
|
-
let AgentsCommand = class AgentsCommand extends base_command_1.BaseEvolithCommand {
|
|
60
|
-
constructor(promptService) {
|
|
61
|
-
super('AgentsCommand', promptService);
|
|
62
|
-
this.registry = new agent_registry_service_1.AgentRegistryService(getFileSystem());
|
|
63
|
-
}
|
|
64
|
-
async executeCommand(passedParam, options) {
|
|
65
|
-
const action = passedParam[0] || 'menu';
|
|
66
|
-
console.clear();
|
|
67
|
-
switch (action) {
|
|
68
|
-
case 'install':
|
|
69
|
-
await this.installAgent(options);
|
|
70
|
-
break;
|
|
71
|
-
case 'remove':
|
|
72
|
-
await this.removeAgent(options);
|
|
73
|
-
break;
|
|
74
|
-
case 'list':
|
|
75
|
-
await this.listAgents(options);
|
|
76
|
-
break;
|
|
77
|
-
case 'validate':
|
|
78
|
-
await this.validateAgent(options);
|
|
79
|
-
break;
|
|
80
|
-
case 'upgrade':
|
|
81
|
-
await this.upgradeAgent(options);
|
|
82
|
-
break;
|
|
83
|
-
case 'menu':
|
|
84
|
-
default:
|
|
85
|
-
await this.showMenu();
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async showMenu() {
|
|
90
|
-
this.promptService.showIntro('Evolith SDK - Agent Management');
|
|
91
|
-
const selection = await this.promptService.select({
|
|
92
|
-
message: 'Select an action:',
|
|
93
|
-
options: [
|
|
94
|
-
{ value: 'install', label: 'Install New Agent', hint: 'Create a new agent with template and rulesets' },
|
|
95
|
-
{ value: 'list', label: 'List Installed Agents', hint: 'Show all agents in this repository' },
|
|
96
|
-
{ value: 'validate', label: 'Validate Agent', hint: 'Check agent ruleset compliance' },
|
|
97
|
-
{ value: 'upgrade', label: 'Upgrade Agent', hint: 'Update agent to latest version' },
|
|
98
|
-
{ value: 'remove', label: 'Remove Agent', hint: 'Delete an installed agent' },
|
|
99
|
-
{ value: 'exit', label: 'Exit', hint: 'Close agent management' },
|
|
100
|
-
],
|
|
101
|
-
});
|
|
102
|
-
if (selection === 'exit') {
|
|
103
|
-
this.promptService.showOutro(chalk_1.default.blue('Agent management closed.'));
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
switch (selection) {
|
|
107
|
-
case 'install':
|
|
108
|
-
await this.installAgent({});
|
|
109
|
-
break;
|
|
110
|
-
case 'list':
|
|
111
|
-
await this.listAgents({});
|
|
112
|
-
break;
|
|
113
|
-
case 'validate':
|
|
114
|
-
await this.validateAgent({});
|
|
115
|
-
break;
|
|
116
|
-
case 'upgrade':
|
|
117
|
-
await this.upgradeAgent({});
|
|
118
|
-
break;
|
|
119
|
-
case 'remove':
|
|
120
|
-
await this.removeAgent({});
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
async installAgent(_options) {
|
|
125
|
-
this.promptService.showIntro('Evolith SDK - Agent Installation');
|
|
126
|
-
const name = await this.promptService.text({
|
|
127
|
-
message: 'Agent name (kebab-case, e.g., my-agent):',
|
|
128
|
-
placeholder: 'my-agent',
|
|
129
|
-
validate: (value) => {
|
|
130
|
-
if (!value)
|
|
131
|
-
return 'Agent name is required';
|
|
132
|
-
if (value.includes(' '))
|
|
133
|
-
return 'Name cannot contain spaces';
|
|
134
|
-
if (!/^[a-z0-9-]+$/.test(value))
|
|
135
|
-
return 'Use lowercase letters, numbers, and hyphens only';
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
const template = await this.promptService.select({
|
|
139
|
-
message: 'Select agent template:',
|
|
140
|
-
options: AGENT_TEMPLATES,
|
|
141
|
-
});
|
|
142
|
-
const description = await this.promptService.text({
|
|
143
|
-
message: 'Agent description (optional):',
|
|
144
|
-
placeholder: 'Agent for handling specific governance tasks',
|
|
145
|
-
});
|
|
146
|
-
const adrs = await this.promptService.multiselect({
|
|
147
|
-
message: 'Select ADR rulesets to include:',
|
|
148
|
-
options: AVAILABLE_ADRS,
|
|
149
|
-
required: false,
|
|
150
|
-
});
|
|
151
|
-
const rulesets = await this.promptService.multiselect({
|
|
152
|
-
message: 'Select additional rulesets:',
|
|
153
|
-
options: AVAILABLE_RULESETS,
|
|
154
|
-
required: false,
|
|
155
|
-
});
|
|
156
|
-
const confirmInstall = await this.promptService.confirm('Ready to install agent?', true);
|
|
157
|
-
if (!confirmInstall) {
|
|
158
|
-
this.promptService.showOutro(chalk_1.default.yellow('Installation cancelled.'));
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
const rulesetContent = (0, agent_ruleset_builder_1.buildAgentRuleset)({
|
|
162
|
-
name,
|
|
163
|
-
template,
|
|
164
|
-
adrs,
|
|
165
|
-
rulesets,
|
|
166
|
-
});
|
|
167
|
-
const config = {
|
|
168
|
-
name,
|
|
169
|
-
version: '1.0.0',
|
|
170
|
-
template,
|
|
171
|
-
description,
|
|
172
|
-
adrs,
|
|
173
|
-
rulesets,
|
|
174
|
-
rulesetFiles: ['agent.rules.json'],
|
|
175
|
-
installedAt: new Date().toISOString()
|
|
176
|
-
};
|
|
177
|
-
await this.registry.installAgent(process.cwd(), config, rulesetContent);
|
|
178
|
-
this.promptService.showSuccess(`\n✓ Agent '${name}' installed successfully`);
|
|
179
|
-
this.promptService.showInfo(`Next steps:\n 1. Review agent rules\n 2. Validate agent: evolith agents validate`);
|
|
180
|
-
this.promptService.showOutro(chalk_1.default.green('Agent installation complete.'));
|
|
181
|
-
}
|
|
182
|
-
async listAgents(_options) {
|
|
183
|
-
this.promptService.showIntro('Evolith SDK - Agent List');
|
|
184
|
-
const agents = await this.registry.discover(process.cwd());
|
|
185
|
-
if (agents.length === 0) {
|
|
186
|
-
this.promptService.showWarning('No agents installed.');
|
|
187
|
-
this.promptService.showInfo('Run "evolith agents install" to install your first agent.');
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
this.promptService.showInfo(`Found ${agents.length} installed agent(s):\n`);
|
|
191
|
-
for (const agent of agents) {
|
|
192
|
-
const _principlesCount = 0;
|
|
193
|
-
this.promptService.showInfo(chalk_1.default.cyan(` • ${agent.name}`));
|
|
194
|
-
this.promptService.showInfo(chalk_1.default.gray(` Version: ${agent.version} | Template: ${agent.template}`));
|
|
195
|
-
}
|
|
196
|
-
this.promptService.showOutro(chalk_1.default.green(`\n${agents.length} agent(s) found.`));
|
|
197
|
-
}
|
|
198
|
-
async validateAgent(_options) {
|
|
199
|
-
this.promptService.showIntro('Evolith SDK - Agent Validation');
|
|
200
|
-
const agents = await this.registry.discover(process.cwd());
|
|
201
|
-
if (agents.length === 0) {
|
|
202
|
-
this.promptService.showWarning('No agents installed to validate.');
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
const agentToValidate = await this.promptService.select({
|
|
206
|
-
message: 'Select agent to validate:',
|
|
207
|
-
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
208
|
-
});
|
|
209
|
-
this.promptService.showInfo('\nValidating agent ruleset against engine...\n');
|
|
210
|
-
const fs = getFileSystem();
|
|
211
|
-
const rulesetPath = `${process.cwd()}/rulesets/agents/${String(agentToValidate)}/agent.rules.json`;
|
|
212
|
-
if (!await fs.exists(rulesetPath)) {
|
|
213
|
-
this.promptService.showError(`Ruleset file not found: ${rulesetPath}`);
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
const ruleset = await fs.readJson(rulesetPath);
|
|
217
|
-
const issues = [];
|
|
218
|
-
if (!ruleset.agent?.name)
|
|
219
|
-
issues.push({ field: 'agent.name', message: 'Agent name is required' });
|
|
220
|
-
if (!ruleset.ruleset?.version)
|
|
221
|
-
issues.push({ field: 'ruleset.version', message: 'Ruleset version is required' });
|
|
222
|
-
if (!ruleset.principles || ruleset.principles.length === 0)
|
|
223
|
-
issues.push({ field: 'principles', message: 'At least one principle is required' });
|
|
224
|
-
for (const principle of ruleset.principles || []) {
|
|
225
|
-
if (!principle.id)
|
|
226
|
-
issues.push({ field: `principle.missing-id`, message: `Principle "${principle.principle}" missing ID` });
|
|
227
|
-
if (!principle.severity)
|
|
228
|
-
issues.push({ field: `principle.missing-severity`, message: `Principle "${principle.id}" missing severity` });
|
|
229
|
-
}
|
|
230
|
-
if (issues.length === 0) {
|
|
231
|
-
await this.registry.updateLastValidated(process.cwd(), String(agentToValidate));
|
|
232
|
-
this.promptService.showSuccess('\n✓ Agent validation passed');
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
this.promptService.showError(`\n✗ Agent validation failed: ${issues.length} issue(s) found`);
|
|
236
|
-
for (const issue of issues) {
|
|
237
|
-
this.promptService.showError(` - [${issue.field}] ${issue.message}`);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
this.promptService.showOutro(issues.length === 0 ? chalk_1.default.green('Validation complete.') : chalk_1.default.red('Validation complete with errors.'));
|
|
241
|
-
}
|
|
242
|
-
async removeAgent(_options) {
|
|
243
|
-
this.promptService.showIntro('Evolith SDK - Agent Removal');
|
|
244
|
-
const agents = await this.registry.discover(process.cwd());
|
|
245
|
-
if (agents.length === 0) {
|
|
246
|
-
this.promptService.showWarning('No agents installed to remove.');
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
const agentToRemove = await this.promptService.select({
|
|
250
|
-
message: 'Select agent to remove:',
|
|
251
|
-
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
252
|
-
});
|
|
253
|
-
const confirm = await this.promptService.confirm(`Are you sure you want to remove agent '${String(agentToRemove)}'? This cannot be undone.`, false);
|
|
254
|
-
if (!confirm) {
|
|
255
|
-
this.promptService.showOutro(chalk_1.default.yellow('Removal cancelled.'));
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
await this.registry.unregister(process.cwd(), String(agentToRemove));
|
|
259
|
-
this.promptService.showSuccess(`\n✓ Agent '${String(agentToRemove)}' removed successfully`);
|
|
260
|
-
this.promptService.showOutro(chalk_1.default.green('Agent removal complete.'));
|
|
261
|
-
}
|
|
262
|
-
async upgradeAgent(_options) {
|
|
263
|
-
this.promptService.showIntro('Evolith SDK - Agent Upgrade');
|
|
264
|
-
const agents = await this.registry.discover(process.cwd());
|
|
265
|
-
if (agents.length === 0) {
|
|
266
|
-
this.promptService.showWarning('No agents installed to upgrade.');
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
const agentName = await this.promptService.select({
|
|
270
|
-
message: 'Select agent to upgrade:',
|
|
271
|
-
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
272
|
-
});
|
|
273
|
-
const agent = await this.registry.getAgent(process.cwd(), String(agentName));
|
|
274
|
-
if (!agent)
|
|
275
|
-
return;
|
|
276
|
-
const fs = getFileSystem();
|
|
277
|
-
const rulesetPath = `${process.cwd()}/rulesets/agents/${agent.name}/agent.rules.json`;
|
|
278
|
-
if (!await fs.exists(rulesetPath)) {
|
|
279
|
-
this.promptService.showError('Agent ruleset not found');
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
const ruleset = await fs.readJson(rulesetPath);
|
|
283
|
-
const parts = agent.version.split('.').map(Number);
|
|
284
|
-
parts[2]++;
|
|
285
|
-
const newVersion = parts.join('.');
|
|
286
|
-
agent.version = newVersion;
|
|
287
|
-
if (ruleset.agent)
|
|
288
|
-
ruleset.agent.version = newVersion;
|
|
289
|
-
await this.registry.updateAgent(process.cwd(), agent.name, agent, ruleset);
|
|
290
|
-
this.promptService.showSuccess(`\n✓ Agent '${agent.name}' upgraded: ${parts.join('.')} → ${newVersion}`);
|
|
291
|
-
this.promptService.showOutro(chalk_1.default.green('Agent upgrade complete.'));
|
|
292
|
-
}
|
|
293
|
-
parseInstall(val) { return val; }
|
|
294
|
-
parseRemove(val) { return val; }
|
|
295
|
-
parseList() { return true; }
|
|
296
|
-
parseDryRun() { return true; }
|
|
297
|
-
};
|
|
298
|
-
exports.AgentsCommand = AgentsCommand;
|
|
299
|
-
__decorate([
|
|
300
|
-
(0, nest_commander_1.Option)({ flags: '-i, --install [name]', description: 'Install a new agent' }),
|
|
301
|
-
__metadata("design:type", Function),
|
|
302
|
-
__metadata("design:paramtypes", [String]),
|
|
303
|
-
__metadata("design:returntype", String)
|
|
304
|
-
], AgentsCommand.prototype, "parseInstall", null);
|
|
305
|
-
__decorate([
|
|
306
|
-
(0, nest_commander_1.Option)({ flags: '-r, --remove [name]', description: 'Remove an agent' }),
|
|
307
|
-
__metadata("design:type", Function),
|
|
308
|
-
__metadata("design:paramtypes", [String]),
|
|
309
|
-
__metadata("design:returntype", String)
|
|
310
|
-
], AgentsCommand.prototype, "parseRemove", null);
|
|
311
|
-
__decorate([
|
|
312
|
-
(0, nest_commander_1.Option)({ flags: '-l, --list', description: 'List installed agents' }),
|
|
313
|
-
__metadata("design:type", Function),
|
|
314
|
-
__metadata("design:paramtypes", []),
|
|
315
|
-
__metadata("design:returntype", Boolean)
|
|
316
|
-
], AgentsCommand.prototype, "parseList", null);
|
|
317
|
-
__decorate([
|
|
318
|
-
(0, nest_commander_1.Option)({ flags: '-d, --dry-run', description: 'Dry run' }),
|
|
319
|
-
__metadata("design:type", Function),
|
|
320
|
-
__metadata("design:paramtypes", []),
|
|
321
|
-
__metadata("design:returntype", Boolean)
|
|
322
|
-
], AgentsCommand.prototype, "parseDryRun", null);
|
|
323
|
-
exports.AgentsCommand = AgentsCommand = __decorate([
|
|
324
|
-
(0, nest_commander_1.Command)({
|
|
325
|
-
name: 'agents',
|
|
326
|
-
description: 'Instala, lista, valida o remueve agentes de Evolith en el repositorio satélite',
|
|
327
|
-
}),
|
|
328
|
-
__metadata("design:paramtypes", [prompt_service_1.PromptService])
|
|
329
|
-
], AgentsCommand);
|
|
330
|
-
//# sourceMappingURL=agents.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents.command.js","sourceRoot":"","sources":["../../../src/commands/init/agents.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gFAA4E;AAC5E,mDAAiD;AACjD,kDAA0B;AAC1B,sGAAiG;AAEjG,iGAAuG;AACvG,yGAAkG;AAClG,wEAA2E;AAE3E,IAAI,gBAAgB,GAAuB,IAAI,CAAC;AAGhD,SAAS,aAAa;IACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,IAAI,iDAAsB,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AASD,MAAM,eAAe,GAAG;IACtB;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,mEAAmE;KACjF;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,4DAA4D;KAC1E;CACF,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,kCAAkC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChF,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC7E,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC5E,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5E,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;CACrE,CAAC;AAMK,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iCAAkB;IAGnD,YAAY,aAA4B;QACtC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,6CAAoB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAqB,EAAE,OAA8B;QACxE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QACxC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YACxD,KAAK,QAAQ;gBAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YACtD,KAAK,MAAM;gBAAE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YACnD,KAAK,UAAU;gBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YAC1D,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YACxD,KAAK,MAAM,CAAC;YACZ;gBAAS,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAAC,MAAM;QACxC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,+CAA+C,EAAE;gBACvG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,oCAAoC,EAAE;gBAC7F,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,gCAAgC,EAAE;gBACtF,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,gCAAgC,EAAE;gBACpF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,2BAA2B,EAAE;gBAC7E,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE;aACjE;SACF,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YACnD,KAAK,MAAM;gBAAE,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YAC9C,KAAK,UAAU;gBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YACrD,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YACnD,KAAK,QAAQ;gBAAE,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;QACnD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAA+B;QACxD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACzC,OAAO,EAAE,0CAA0C;YACnD,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK;oBAAE,OAAO,wBAAwB,CAAC;gBAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,4BAA4B,CAAC;gBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAO,kDAAkD,CAAC;YAC7F,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC/C,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAChD,OAAO,EAAE,+BAA+B;YACxC,WAAW,EAAE,8CAA8C;SAC5D,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAChD,OAAO,EAAE,iCAAiC;YAC1C,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAEzF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAA,yCAAiB,EAAC;YACvC,IAAI;YACJ,QAAQ;YACR,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,MAAM,GAAc;YACxB,IAAI;YACJ,OAAO,EAAE,OAAO;YAChB,QAAQ;YACR,WAAW;YACX,IAAI;YACJ,QAAQ;YACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAExE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,IAAI,0BAA0B,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oFAAoF,CAAC,CAAC;QAClH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAA+B;QACtD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,2DAA2D,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAC;QAE5E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,gBAAgB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,OAAO,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAA+B;QACzD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACtD,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;QAI9E,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC;QAEnG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAOD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAiB,CAAC;QAC/D,MAAM,MAAM,GAA8C,EAAE,CAAC;QAE7D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;QAEhJ,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,SAAS,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;YAC5H,IAAI,CAAC,SAAS,CAAC,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,cAAc,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACzI,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gCAAgC,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAC7F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAA+B;QACvD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACpD,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,0CAA0C,MAAM,CAAC,aAAa,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAEpJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAA+B;QACxD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,0BAA0B;YACnC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,KAAK,CAAC,IAAI,mBAAmB,CAAC;QAEtF,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAgK,CAAC;QAE9M,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAEtD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACvE,CAAC;IAGD,YAAY,CAAC,GAAW,IAAY,OAAO,GAAG,CAAC,CAAC,CAAC;IAGjD,WAAW,CAAC,GAAW,IAAY,OAAO,GAAG,CAAC,CAAC,CAAC;IAGhD,SAAS,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAGrC,WAAW,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;CACxC,CAAA;AAtRY,sCAAa;AA4QxB;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;;;;iDAC7B;AAGjD;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;;;;gDACzB;AAGhD;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;;;8CACjC;AAGrC;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;;;;gDACpB;wBArR5B,aAAa;IAJzB,IAAA,wBAAO,EAAC;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gFAAgF;KAC9F,CAAC;qCAI2B,8BAAa;GAH7B,aAAa,CAsRzB"}
|