@evolith/smart-cli 1.1.4 → 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 -1
- 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/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/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 +17 -3
- 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/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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoreApiClient = void 0;
|
|
4
|
+
class CoreApiClient {
|
|
5
|
+
constructor(baseUrl) {
|
|
6
|
+
this.baseUrl = baseUrl || process.env.EVOLITH_CORE_URL || 'http://localhost:3000';
|
|
7
|
+
}
|
|
8
|
+
async evaluateArchitecturePlan(plan) {
|
|
9
|
+
const url = `${this.baseUrl}/v1/architecture-plans/evaluate`;
|
|
10
|
+
const response = await fetch(url, {
|
|
11
|
+
method: 'POST',
|
|
12
|
+
headers: {
|
|
13
|
+
'Content-Type': 'application/json',
|
|
14
|
+
},
|
|
15
|
+
body: JSON.stringify(plan)
|
|
16
|
+
});
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
const errorText = await response.text();
|
|
19
|
+
throw new Error(`Core API Evaluation failed: ${response.status} ${response.statusText} - ${errorText}`);
|
|
20
|
+
}
|
|
21
|
+
return response.json();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.CoreApiClient = CoreApiClient;
|
|
25
|
+
//# sourceMappingURL=CoreApiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoreApiClient.js","sourceRoot":"","sources":["../src/CoreApiClient.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IAGxB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAS;QACtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,iCAAiC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;CACF;AAxBD,sCAwBC"}
|
package/dist/app.module.js
CHANGED
|
@@ -9,13 +9,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.AppModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const init_command_1 = require("./commands/init/init.command");
|
|
12
|
-
const agents_command_1 = require("./commands/
|
|
12
|
+
const agents_command_1 = require("./commands/agents/agents.command");
|
|
13
13
|
const validate_command_1 = require("./commands/validate/validate.command");
|
|
14
|
+
const evaluate_command_1 = require("./commands/evaluate/evaluate.command");
|
|
14
15
|
const alias_service_1 = require("./config/alias.service");
|
|
15
16
|
const alias_command_1 = require("./commands/alias/alias.command");
|
|
16
17
|
const docs_command_1 = require("./commands/docs/docs.command");
|
|
17
|
-
const upgrade_command_1 = require("./commands/
|
|
18
|
-
const mcp_serve_command_1 = require("./commands/mcp/mcp-serve.command");
|
|
18
|
+
const upgrade_command_1 = require("./commands/upgrade/upgrade.command");
|
|
19
19
|
const config_service_1 = require("./infrastructure/config/config.service");
|
|
20
20
|
const file_manager_service_1 = require("./infrastructure/filesystem/file-manager.service");
|
|
21
21
|
const sync_service_1 = require("@evolith/core-domain/application/sync/sync.service");
|
|
@@ -35,6 +35,10 @@ const profile_command_1 = require("./commands/profile/profile.command");
|
|
|
35
35
|
const fixtures_command_1 = require("./commands/fixtures/fixtures.command");
|
|
36
36
|
const api_command_1 = require("./commands/api/api.command");
|
|
37
37
|
const update_command_1 = require("./commands/update/update.command");
|
|
38
|
+
const satellite_1 = require("./commands/satellite");
|
|
39
|
+
const satellite_adopt_command_1 = require("./commands/satellite/satellite-adopt.command");
|
|
40
|
+
const chat_command_1 = require("./commands/chat/chat.command");
|
|
41
|
+
const mcp_command_1 = require("./commands/mcp/mcp.command");
|
|
38
42
|
const validate_satellite_use_case_1 = require("@evolith/core-domain/application/use-cases/validate-satellite.use-case");
|
|
39
43
|
const evaluate_gate_use_case_1 = require("@evolith/core-domain/application/use-cases/evaluate-gate.use-case");
|
|
40
44
|
const phase_gate_validator_service_1 = require("@evolith/core-domain/application/validators/phase-gate-validator.service");
|
|
@@ -58,9 +62,9 @@ exports.AppModule = AppModule = __decorate([
|
|
|
58
62
|
init_command_1.InitCommand,
|
|
59
63
|
agents_command_1.AgentsCommand,
|
|
60
64
|
validate_command_1.ValidateCommand,
|
|
65
|
+
evaluate_command_1.EvaluateCommand,
|
|
61
66
|
docs_command_1.DocsCommand,
|
|
62
67
|
upgrade_command_1.UpgradeCommand,
|
|
63
|
-
mcp_serve_command_1.McpServeCommand,
|
|
64
68
|
config_service_1.ConfigService,
|
|
65
69
|
file_manager_service_1.FileManagerService,
|
|
66
70
|
sync_service_1.SyncService,
|
|
@@ -84,8 +88,12 @@ exports.AppModule = AppModule = __decorate([
|
|
|
84
88
|
fixtures_command_1.FixturesCommand,
|
|
85
89
|
api_command_1.ApiCommand,
|
|
86
90
|
update_command_1.UpdateCommand,
|
|
91
|
+
satellite_adopt_command_1.SatelliteAdoptCommand,
|
|
87
92
|
alias_service_1.AliasService,
|
|
88
93
|
alias_command_1.AliasCommand,
|
|
94
|
+
satellite_1.SatelliteCreateCommand,
|
|
95
|
+
chat_command_1.ChatCommand,
|
|
96
|
+
mcp_command_1.McpCommand,
|
|
89
97
|
validate_satellite_use_case_1.ValidateSatelliteUseCase,
|
|
90
98
|
evaluate_gate_use_case_1.EvaluateGateUseCase,
|
|
91
99
|
propose_phase_advance_use_case_1.ProposePhaseAdvanceUseCase,
|
package/dist/app.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,27 @@
|
|
|
1
|
+
import { PromptService } from '../../infrastructure/prompts/prompt.service';
|
|
1
2
|
import { BaseEvolithCommand } from '../../infrastructure/cli/base-command';
|
|
2
3
|
interface AgentsCommandOptions {
|
|
3
|
-
list?: boolean;
|
|
4
4
|
install?: string;
|
|
5
|
-
|
|
5
|
+
remove?: string;
|
|
6
|
+
list?: boolean;
|
|
7
|
+
run?: string;
|
|
8
|
+
dryRun?: boolean;
|
|
6
9
|
}
|
|
7
10
|
export declare class AgentsCommand extends BaseEvolithCommand {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
private readonly registry;
|
|
12
|
+
constructor(promptService: PromptService);
|
|
13
|
+
executeCommand(passedParam: string[], options?: AgentsCommandOptions): Promise<void>;
|
|
14
|
+
private showMenu;
|
|
15
|
+
private installAgent;
|
|
16
|
+
private listAgents;
|
|
17
|
+
private validateAgent;
|
|
18
|
+
private removeAgent;
|
|
19
|
+
private upgradeAgent;
|
|
20
|
+
private runAgent;
|
|
11
21
|
parseInstall(val: string): string;
|
|
12
|
-
|
|
22
|
+
parseRemove(val: string): string;
|
|
23
|
+
parseList(): boolean;
|
|
24
|
+
parseDryRun(): boolean;
|
|
25
|
+
parseRun(val: string): string;
|
|
13
26
|
}
|
|
14
27
|
export {};
|
|
@@ -8,54 +8,366 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.AgentsCommand = void 0;
|
|
16
|
+
const prompt_service_1 = require("../../infrastructure/prompts/prompt.service");
|
|
13
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");
|
|
14
22
|
const base_command_1 = require("../../infrastructure/cli/base-command");
|
|
23
|
+
const sdk_1 = require("@evolith/sdk");
|
|
24
|
+
let cachedFileSystem = null;
|
|
25
|
+
function getFileSystem() {
|
|
26
|
+
if (!cachedFileSystem) {
|
|
27
|
+
cachedFileSystem = new node_filesystem_provider_1.NodeFileSystemProvider().createFileSystem();
|
|
28
|
+
}
|
|
29
|
+
return cachedFileSystem;
|
|
30
|
+
}
|
|
31
|
+
const AGENT_TEMPLATES = [
|
|
32
|
+
{
|
|
33
|
+
value: 'standard',
|
|
34
|
+
label: 'Standard Agent',
|
|
35
|
+
description: 'Default agent with basic governance rules (ACL-01 through ACL-06)',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
value: 'minimal',
|
|
39
|
+
label: 'Minimal Agent',
|
|
40
|
+
description: 'Lightweight agent with essential rules only',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
value: 'enterprise',
|
|
44
|
+
label: 'Enterprise Agent',
|
|
45
|
+
description: 'Full compliance agent with audit trail and approval chains',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
const AVAILABLE_ADRS = [
|
|
49
|
+
{ value: 'adr-0002', label: 'ADR-0002: Hexagonal Architecture', selected: true },
|
|
50
|
+
{ value: 'adr-0018', label: 'ADR-0018: Testing Pyramid', selected: true },
|
|
51
|
+
{ value: 'adr-0032', label: 'ADR-0032: Protocol Selection', selected: false },
|
|
52
|
+
{ value: 'adr-0040', label: 'ADR-0040: Multi-Runtime', selected: false },
|
|
53
|
+
{ value: 'adr-0050', label: 'ADR-0050: GitFlow Branching', selected: true },
|
|
54
|
+
];
|
|
55
|
+
const AVAILABLE_RULESETS = [
|
|
56
|
+
{ value: 'acl', label: 'ACL Rules (Anti-Corruption Layer)', selected: true },
|
|
57
|
+
{ value: 'open-core', label: 'Open-Core Boundary Rules', selected: true },
|
|
58
|
+
{ value: 'inheritance', label: 'Inheritance Rules', selected: true },
|
|
59
|
+
];
|
|
15
60
|
let AgentsCommand = class AgentsCommand extends base_command_1.BaseEvolithCommand {
|
|
16
|
-
constructor() {
|
|
17
|
-
super('AgentsCommand');
|
|
61
|
+
constructor(promptService) {
|
|
62
|
+
super('AgentsCommand', promptService);
|
|
63
|
+
this.registry = new agent_registry_service_1.AgentRegistryService(getFileSystem());
|
|
64
|
+
}
|
|
65
|
+
async executeCommand(passedParam, options) {
|
|
66
|
+
const action = passedParam[0] || 'menu';
|
|
67
|
+
console.clear();
|
|
68
|
+
switch (action) {
|
|
69
|
+
case 'install':
|
|
70
|
+
await this.installAgent(options);
|
|
71
|
+
break;
|
|
72
|
+
case 'remove':
|
|
73
|
+
await this.removeAgent(options);
|
|
74
|
+
break;
|
|
75
|
+
case 'list':
|
|
76
|
+
await this.listAgents(options);
|
|
77
|
+
break;
|
|
78
|
+
case 'validate':
|
|
79
|
+
await this.validateAgent(options);
|
|
80
|
+
break;
|
|
81
|
+
case 'upgrade':
|
|
82
|
+
await this.upgradeAgent(options);
|
|
83
|
+
break;
|
|
84
|
+
case 'run':
|
|
85
|
+
await this.runAgent(options);
|
|
86
|
+
break;
|
|
87
|
+
case 'menu':
|
|
88
|
+
default:
|
|
89
|
+
await this.showMenu();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
18
92
|
}
|
|
19
|
-
async
|
|
20
|
-
|
|
21
|
-
|
|
93
|
+
async showMenu() {
|
|
94
|
+
this.promptService.showIntro('Evolith SDK - Agent Management');
|
|
95
|
+
const selection = await this.promptService.select({
|
|
96
|
+
message: 'Select an action:',
|
|
97
|
+
options: [
|
|
98
|
+
{ value: 'install', label: 'Install New Agent', hint: 'Create a new agent with template and rulesets' },
|
|
99
|
+
{ value: 'list', label: 'List Installed Agents', hint: 'Show all agents in this repository' },
|
|
100
|
+
{ value: 'validate', label: 'Validate Agent', hint: 'Check agent ruleset compliance' },
|
|
101
|
+
{ value: 'upgrade', label: 'Upgrade Agent', hint: 'Update agent to latest version' },
|
|
102
|
+
{ value: 'run', label: 'Run Agent (Runtime)', hint: 'Execute an intent on the Agent Runtime API' },
|
|
103
|
+
{ value: 'remove', label: 'Remove Agent', hint: 'Delete an installed agent' },
|
|
104
|
+
{ value: 'exit', label: 'Exit', hint: 'Close agent management' },
|
|
105
|
+
],
|
|
106
|
+
});
|
|
107
|
+
if (selection === 'exit') {
|
|
108
|
+
this.promptService.showOutro(chalk_1.default.blue('Agent management closed.'));
|
|
22
109
|
return;
|
|
23
110
|
}
|
|
24
|
-
|
|
25
|
-
|
|
111
|
+
switch (selection) {
|
|
112
|
+
case 'install':
|
|
113
|
+
await this.installAgent({});
|
|
114
|
+
break;
|
|
115
|
+
case 'list':
|
|
116
|
+
await this.listAgents({});
|
|
117
|
+
break;
|
|
118
|
+
case 'validate':
|
|
119
|
+
await this.validateAgent({});
|
|
120
|
+
break;
|
|
121
|
+
case 'upgrade':
|
|
122
|
+
await this.upgradeAgent({});
|
|
123
|
+
break;
|
|
124
|
+
case 'run':
|
|
125
|
+
await this.runAgent({});
|
|
126
|
+
break;
|
|
127
|
+
case 'remove':
|
|
128
|
+
await this.removeAgent({});
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async installAgent(_options) {
|
|
133
|
+
this.promptService.showIntro('Evolith SDK - Agent Installation');
|
|
134
|
+
const name = await this.promptService.text({
|
|
135
|
+
message: 'Agent name (kebab-case, e.g., my-agent):',
|
|
136
|
+
placeholder: 'my-agent',
|
|
137
|
+
validate: (value) => {
|
|
138
|
+
if (!value)
|
|
139
|
+
return 'Agent name is required';
|
|
140
|
+
if (value.includes(' '))
|
|
141
|
+
return 'Name cannot contain spaces';
|
|
142
|
+
if (!/^[a-z0-9-]+$/.test(value))
|
|
143
|
+
return 'Use lowercase letters, numbers, and hyphens only';
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
const template = await this.promptService.select({
|
|
147
|
+
message: 'Select agent template:',
|
|
148
|
+
options: AGENT_TEMPLATES,
|
|
149
|
+
});
|
|
150
|
+
const description = await this.promptService.text({
|
|
151
|
+
message: 'Agent description (optional):',
|
|
152
|
+
placeholder: 'Agent for handling specific governance tasks',
|
|
153
|
+
});
|
|
154
|
+
const adrs = await this.promptService.multiselect({
|
|
155
|
+
message: 'Select ADR rulesets to include:',
|
|
156
|
+
options: AVAILABLE_ADRS,
|
|
157
|
+
required: false,
|
|
158
|
+
});
|
|
159
|
+
const rulesets = await this.promptService.multiselect({
|
|
160
|
+
message: 'Select additional rulesets:',
|
|
161
|
+
options: AVAILABLE_RULESETS,
|
|
162
|
+
required: false,
|
|
163
|
+
});
|
|
164
|
+
const confirmInstall = await this.promptService.confirm('Ready to install agent?', true);
|
|
165
|
+
if (!confirmInstall) {
|
|
166
|
+
this.promptService.showOutro(chalk_1.default.yellow('Installation cancelled.'));
|
|
26
167
|
return;
|
|
27
168
|
}
|
|
28
|
-
|
|
29
|
-
|
|
169
|
+
const rulesetContent = (0, agent_ruleset_builder_1.buildAgentRuleset)({
|
|
170
|
+
name,
|
|
171
|
+
template,
|
|
172
|
+
adrs,
|
|
173
|
+
rulesets,
|
|
174
|
+
});
|
|
175
|
+
const config = {
|
|
176
|
+
name,
|
|
177
|
+
version: '1.0.0',
|
|
178
|
+
template,
|
|
179
|
+
description,
|
|
180
|
+
adrs,
|
|
181
|
+
rulesets,
|
|
182
|
+
rulesetFiles: ['agent.rules.json'],
|
|
183
|
+
installedAt: new Date().toISOString()
|
|
184
|
+
};
|
|
185
|
+
await this.registry.installAgent(process.cwd(), config, rulesetContent);
|
|
186
|
+
this.promptService.showSuccess(`\n✓ Agent '${name}' installed successfully`);
|
|
187
|
+
this.promptService.showInfo(`Next steps:\n 1. Review agent rules\n 2. Validate agent: evolith agents validate`);
|
|
188
|
+
this.promptService.showOutro(chalk_1.default.green('Agent installation complete.'));
|
|
189
|
+
}
|
|
190
|
+
async listAgents(_options) {
|
|
191
|
+
this.promptService.showIntro('Evolith SDK - Agent List');
|
|
192
|
+
const agents = await this.registry.discover(process.cwd());
|
|
193
|
+
if (agents.length === 0) {
|
|
194
|
+
this.promptService.showWarning('No agents installed.');
|
|
195
|
+
this.promptService.showInfo('Run "evolith agents install" to install your first agent.');
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this.promptService.showInfo(`Found ${agents.length} installed agent(s):\n`);
|
|
199
|
+
for (const agent of agents) {
|
|
200
|
+
const _principlesCount = 0;
|
|
201
|
+
this.promptService.showInfo(chalk_1.default.cyan(` • ${agent.name}`));
|
|
202
|
+
this.promptService.showInfo(chalk_1.default.gray(` Version: ${agent.version} | Template: ${agent.template}`));
|
|
203
|
+
}
|
|
204
|
+
this.promptService.showOutro(chalk_1.default.green(`\n${agents.length} agent(s) found.`));
|
|
205
|
+
}
|
|
206
|
+
async validateAgent(_options) {
|
|
207
|
+
this.promptService.showIntro('Evolith SDK - Agent Validation');
|
|
208
|
+
const agents = await this.registry.discover(process.cwd());
|
|
209
|
+
if (agents.length === 0) {
|
|
210
|
+
this.promptService.showWarning('No agents installed to validate.');
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const agentToValidate = await this.promptService.select({
|
|
214
|
+
message: 'Select agent to validate:',
|
|
215
|
+
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
216
|
+
});
|
|
217
|
+
this.promptService.showInfo('\nValidating agent ruleset against engine...\n');
|
|
218
|
+
const fs = getFileSystem();
|
|
219
|
+
const rulesetPath = `${process.cwd()}/rulesets/agents/${String(agentToValidate)}/agent.rules.json`;
|
|
220
|
+
if (!await fs.exists(rulesetPath)) {
|
|
221
|
+
this.promptService.showError(`Ruleset file not found: ${rulesetPath}`);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const ruleset = await fs.readJson(rulesetPath);
|
|
225
|
+
const issues = [];
|
|
226
|
+
if (!ruleset.agent?.name)
|
|
227
|
+
issues.push({ field: 'agent.name', message: 'Agent name is required' });
|
|
228
|
+
if (!ruleset.ruleset?.version)
|
|
229
|
+
issues.push({ field: 'ruleset.version', message: 'Ruleset version is required' });
|
|
230
|
+
if (!ruleset.principles || ruleset.principles.length === 0)
|
|
231
|
+
issues.push({ field: 'principles', message: 'At least one principle is required' });
|
|
232
|
+
for (const principle of ruleset.principles || []) {
|
|
233
|
+
if (!principle.id)
|
|
234
|
+
issues.push({ field: `principle.missing-id`, message: `Principle "${principle.principle}" missing ID` });
|
|
235
|
+
if (!principle.severity)
|
|
236
|
+
issues.push({ field: `principle.missing-severity`, message: `Principle "${principle.id}" missing severity` });
|
|
237
|
+
}
|
|
238
|
+
if (issues.length === 0) {
|
|
239
|
+
await this.registry.updateLastValidated(process.cwd(), String(agentToValidate));
|
|
240
|
+
this.promptService.showSuccess('\n✓ Agent validation passed');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
this.promptService.showError(`\n✗ Agent validation failed: ${issues.length} issue(s) found`);
|
|
244
|
+
for (const issue of issues) {
|
|
245
|
+
this.promptService.showError(` - [${issue.field}] ${issue.message}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
this.promptService.showOutro(issues.length === 0 ? chalk_1.default.green('Validation complete.') : chalk_1.default.red('Validation complete with errors.'));
|
|
249
|
+
}
|
|
250
|
+
async removeAgent(_options) {
|
|
251
|
+
this.promptService.showIntro('Evolith SDK - Agent Removal');
|
|
252
|
+
const agents = await this.registry.discover(process.cwd());
|
|
253
|
+
if (agents.length === 0) {
|
|
254
|
+
this.promptService.showWarning('No agents installed to remove.');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const agentToRemove = await this.promptService.select({
|
|
258
|
+
message: 'Select agent to remove:',
|
|
259
|
+
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
260
|
+
});
|
|
261
|
+
const confirm = await this.promptService.confirm(`Are you sure you want to remove agent '${String(agentToRemove)}'? This cannot be undone.`, false);
|
|
262
|
+
if (!confirm) {
|
|
263
|
+
this.promptService.showOutro(chalk_1.default.yellow('Removal cancelled.'));
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
await this.registry.unregister(process.cwd(), String(agentToRemove));
|
|
267
|
+
this.promptService.showSuccess(`\n✓ Agent '${String(agentToRemove)}' removed successfully`);
|
|
268
|
+
this.promptService.showOutro(chalk_1.default.green('Agent removal complete.'));
|
|
269
|
+
}
|
|
270
|
+
async upgradeAgent(_options) {
|
|
271
|
+
this.promptService.showIntro('Evolith SDK - Agent Upgrade');
|
|
272
|
+
const agents = await this.registry.discover(process.cwd());
|
|
273
|
+
if (agents.length === 0) {
|
|
274
|
+
this.promptService.showWarning('No agents installed to upgrade.');
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
const agentName = await this.promptService.select({
|
|
278
|
+
message: 'Select agent to upgrade:',
|
|
279
|
+
options: agents.map(a => ({ value: a.name, label: a.name })),
|
|
280
|
+
});
|
|
281
|
+
const agent = await this.registry.getAgent(process.cwd(), String(agentName));
|
|
282
|
+
if (!agent)
|
|
283
|
+
return;
|
|
284
|
+
const fs = getFileSystem();
|
|
285
|
+
const rulesetPath = `${process.cwd()}/rulesets/agents/${agent.name}/agent.rules.json`;
|
|
286
|
+
if (!await fs.exists(rulesetPath)) {
|
|
287
|
+
this.promptService.showError('Agent ruleset not found');
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const ruleset = await fs.readJson(rulesetPath);
|
|
291
|
+
const parts = agent.version.split('.').map(Number);
|
|
292
|
+
parts[2]++;
|
|
293
|
+
const newVersion = parts.join('.');
|
|
294
|
+
agent.version = newVersion;
|
|
295
|
+
if (ruleset.agent)
|
|
296
|
+
ruleset.agent.version = newVersion;
|
|
297
|
+
await this.registry.updateAgent(process.cwd(), agent.name, agent, ruleset);
|
|
298
|
+
this.promptService.showSuccess(`\n✓ Agent '${agent.name}' upgraded: ${parts.join('.')} → ${newVersion}`);
|
|
299
|
+
this.promptService.showOutro(chalk_1.default.green('Agent upgrade complete.'));
|
|
300
|
+
}
|
|
301
|
+
async runAgent(options) {
|
|
302
|
+
this.promptService.showIntro('Evolith SDK - Agent Runtime Execution');
|
|
303
|
+
const intent = options?.run || await this.promptService.text({
|
|
304
|
+
message: 'Enter your request intent for the Agent Runtime:',
|
|
305
|
+
placeholder: 'e.g. Generate architecture plan for new microservice',
|
|
306
|
+
});
|
|
307
|
+
if (!intent) {
|
|
308
|
+
this.promptService.showError('Intent is required to run the agent.');
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const apiUrl = process.env.AGENT_RUNTIME_URL || 'http://localhost:3000';
|
|
312
|
+
this.promptService.showInfo(`Connecting to Agent Runtime at: ${apiUrl}`);
|
|
313
|
+
try {
|
|
314
|
+
const client = new sdk_1.EvolithRestClient({ baseUrl: apiUrl, agentUrl: apiUrl });
|
|
315
|
+
this.promptService.showInfo('Sending request to Agent Runtime API...');
|
|
316
|
+
const request = {
|
|
317
|
+
intent: String(intent),
|
|
318
|
+
parameters: { cwd: process.cwd() }
|
|
319
|
+
};
|
|
320
|
+
const result = await client.agent.handle(request);
|
|
321
|
+
this.promptService.showSuccess(`\n✓ Agent Runtime execution completed`);
|
|
322
|
+
this.promptService.showInfo(`Result:\n${JSON.stringify(result, null, 2)}`);
|
|
323
|
+
this.promptService.showOutro(chalk_1.default.green('Run complete.'));
|
|
324
|
+
}
|
|
325
|
+
catch (err) {
|
|
326
|
+
this.promptService.showError(`\n✗ Agent Runtime execution failed: ${err.message}`);
|
|
327
|
+
}
|
|
30
328
|
}
|
|
31
|
-
parseList() { return true; }
|
|
32
329
|
parseInstall(val) { return val; }
|
|
33
|
-
|
|
330
|
+
parseRemove(val) { return val; }
|
|
331
|
+
parseList() { return true; }
|
|
332
|
+
parseDryRun() { return true; }
|
|
333
|
+
parseRun(val) { return val; }
|
|
34
334
|
};
|
|
35
335
|
exports.AgentsCommand = AgentsCommand;
|
|
36
336
|
__decorate([
|
|
37
|
-
(0, nest_commander_1.Option)({ flags: '--
|
|
337
|
+
(0, nest_commander_1.Option)({ flags: '-i, --install [name]', description: 'Install a new agent' }),
|
|
38
338
|
__metadata("design:type", Function),
|
|
39
|
-
__metadata("design:paramtypes", []),
|
|
40
|
-
__metadata("design:returntype",
|
|
41
|
-
], AgentsCommand.prototype, "
|
|
339
|
+
__metadata("design:paramtypes", [String]),
|
|
340
|
+
__metadata("design:returntype", String)
|
|
341
|
+
], AgentsCommand.prototype, "parseInstall", null);
|
|
42
342
|
__decorate([
|
|
43
|
-
(0, nest_commander_1.Option)({ flags: '--
|
|
343
|
+
(0, nest_commander_1.Option)({ flags: '-r, --remove [name]', description: 'Remove an agent' }),
|
|
44
344
|
__metadata("design:type", Function),
|
|
45
345
|
__metadata("design:paramtypes", [String]),
|
|
46
346
|
__metadata("design:returntype", String)
|
|
47
|
-
], AgentsCommand.prototype, "
|
|
347
|
+
], AgentsCommand.prototype, "parseRemove", null);
|
|
48
348
|
__decorate([
|
|
49
|
-
(0, nest_commander_1.Option)({ flags: '--
|
|
349
|
+
(0, nest_commander_1.Option)({ flags: '-l, --list', description: 'List installed agents' }),
|
|
50
350
|
__metadata("design:type", Function),
|
|
51
351
|
__metadata("design:paramtypes", []),
|
|
52
352
|
__metadata("design:returntype", Boolean)
|
|
53
|
-
], AgentsCommand.prototype, "
|
|
353
|
+
], AgentsCommand.prototype, "parseList", null);
|
|
354
|
+
__decorate([
|
|
355
|
+
(0, nest_commander_1.Option)({ flags: '-d, --dry-run', description: 'Dry run' }),
|
|
356
|
+
__metadata("design:type", Function),
|
|
357
|
+
__metadata("design:paramtypes", []),
|
|
358
|
+
__metadata("design:returntype", Boolean)
|
|
359
|
+
], AgentsCommand.prototype, "parseDryRun", null);
|
|
360
|
+
__decorate([
|
|
361
|
+
(0, nest_commander_1.Option)({ flags: '--run [intent]', description: 'Run agent with intent' }),
|
|
362
|
+
__metadata("design:type", Function),
|
|
363
|
+
__metadata("design:paramtypes", [String]),
|
|
364
|
+
__metadata("design:returntype", String)
|
|
365
|
+
], AgentsCommand.prototype, "parseRun", null);
|
|
54
366
|
exports.AgentsCommand = AgentsCommand = __decorate([
|
|
55
367
|
(0, nest_commander_1.Command)({
|
|
56
368
|
name: 'agents',
|
|
57
|
-
description: '
|
|
369
|
+
description: 'Instala, lista, valida o remueve agentes de Evolith en el repositorio satélite',
|
|
58
370
|
}),
|
|
59
|
-
__metadata("design:paramtypes", [])
|
|
371
|
+
__metadata("design:paramtypes", [prompt_service_1.PromptService])
|
|
60
372
|
], AgentsCommand);
|
|
61
373
|
//# sourceMappingURL=agents.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.command.js","sourceRoot":"","sources":["../../../src/commands/agents/agents.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiD;AACjD,wEAA2E;AAYpE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iCAAkB;IACnD;QACE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAsB,EAAE,OAA8B;QACzE,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sEAAsE,CAAC,CAAC;IACtG,CAAC;IAGD,SAAS,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAGrC,YAAY,CAAC,GAAW,IAAY,OAAO,GAAG,CAAC,CAAC,CAAC;IAGjD,WAAW,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;CACxC,CAAA;AA1BY,sCAAa;AAmBxB;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;;;8CAC7B;AAGrC;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;;;iDAC5B;AAGjD;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;;;;gDACvC;wBAzB5B,aAAa;IAJzB,IAAA,wBAAO,EAAC;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;KAClE,CAAC;;GACW,aAAa,CA0BzB"}
|
|
1
|
+
{"version":3,"file":"agents.command.js","sourceRoot":"","sources":["../../../src/commands/agents/agents.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseEvolithCommand } from '../../infrastructure/cli/base-command';
|
|
2
|
+
import { PromptService } from '../../infrastructure/prompts/prompt.service';
|
|
3
|
+
export declare class ChatCommand extends BaseEvolithCommand {
|
|
4
|
+
constructor(promptService: PromptService);
|
|
5
|
+
executeCommand(passed: string[], options?: any): Promise<void>;
|
|
6
|
+
parseDryRun(val: string): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ChatCommand = void 0;
|
|
13
|
+
const nest_commander_1 = require("nest-commander");
|
|
14
|
+
const base_command_1 = require("../../infrastructure/cli/base-command");
|
|
15
|
+
const prompt_service_1 = require("../../infrastructure/prompts/prompt.service");
|
|
16
|
+
const agent_runtime_factory_1 = require("../../infrastructure/agent/agent-runtime.factory");
|
|
17
|
+
let ChatCommand = class ChatCommand extends base_command_1.BaseEvolithCommand {
|
|
18
|
+
constructor(promptService) {
|
|
19
|
+
super('ChatCommand', promptService);
|
|
20
|
+
}
|
|
21
|
+
async executeCommand(passed, options) {
|
|
22
|
+
this.promptService.showInfo('Starting Smart CLI Chat Interface...');
|
|
23
|
+
const message = passed.join(' ');
|
|
24
|
+
if (!message) {
|
|
25
|
+
this.promptService.showError('Please provide a message or intent to the chat.');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
this.promptService.showInfo(`Processing intent via Agent Runtime: "${message}"`);
|
|
30
|
+
const result = await agent_runtime_factory_1.AgentRuntimeFactory.executeChat({
|
|
31
|
+
intent: message,
|
|
32
|
+
dry_run: options?.dryRun,
|
|
33
|
+
});
|
|
34
|
+
this.promptService.showSuccess(`Status: ${result.status}`);
|
|
35
|
+
if (result.summary) {
|
|
36
|
+
console.log(`Summary: ${result.summary}`);
|
|
37
|
+
}
|
|
38
|
+
if (result.findings.length > 0) {
|
|
39
|
+
console.log(`Findings: ${result.findings.length}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
this.promptService.showError(`Agent Runtime error: ${err instanceof Error ? err.message : String(err)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
parseDryRun(val) {
|
|
47
|
+
return val !== 'false';
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.ChatCommand = ChatCommand;
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, nest_commander_1.Option)({ flags: '--dry-run [boolean]', description: 'Override default dry run behavior' }),
|
|
53
|
+
__metadata("design:type", Function),
|
|
54
|
+
__metadata("design:paramtypes", [String]),
|
|
55
|
+
__metadata("design:returntype", Boolean)
|
|
56
|
+
], ChatCommand.prototype, "parseDryRun", null);
|
|
57
|
+
exports.ChatCommand = ChatCommand = __decorate([
|
|
58
|
+
(0, nest_commander_1.Command)({
|
|
59
|
+
name: 'chat',
|
|
60
|
+
description: 'Conversational interaction with the Evolith Agent Runtime (Smart CLI Chat)',
|
|
61
|
+
}),
|
|
62
|
+
__metadata("design:paramtypes", [prompt_service_1.PromptService])
|
|
63
|
+
], ChatCommand);
|
|
64
|
+
//# sourceMappingURL=chat.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.command.js","sourceRoot":"","sources":["../../../src/commands/chat/chat.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiD;AACjD,wEAA2E;AAC3E,gFAA4E;AAC5E,4FAAuF;AAMhF,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,iCAAkB;IACjD,YAAY,aAA4B;QACtC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAgB,EAAE,OAAa;QAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,2CAAmB,CAAC,WAAW,CAAC;gBACnD,MAAM,EAAE,OAAO;gBAEf,OAAO,EAAE,OAAO,EAAE,MAAM;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAGD,WAAW,CAAC,GAAW;QACrB,OAAO,GAAG,KAAK,OAAO,CAAC;IACzB,CAAC;CACF,CAAA;AAtCY,kCAAW;AAmCtB;IADC,IAAA,uBAAM,EAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;;;;8CAG1F;sBArCU,WAAW;IAJvB,IAAA,wBAAO,EAAC;QACP,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,4EAA4E;KAC1F,CAAC;qCAE2B,8BAAa;GAD7B,WAAW,CAsCvB"}
|