@christianmaf80/agentic-workflow 1.21.0-beta.3 → 1.22.0-beta.6
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/bin/cli.js +7 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/acceptance.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-scores.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/1-dev-agent-scaffold.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/2-dev-agent-manifest-command.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/3-dev-agent-marketplace-evidence.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/4-qa-agent-verify-build.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/analysis.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/architect/review.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/metrics.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/plan.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/researcher/research.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/results-acceptance.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/task.md +6 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/verification.md +6 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/acceptance.md +6 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/task.md +6 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/acceptance.md +6 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/task.md +6 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/acceptance.md +6 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/architect/implementation.md +6 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/acceptance.md +6 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/task.md +6 -0
- package/dist/agent/artifacts/6-release-beta-11/task.md +6 -0
- package/dist/agent/artifacts/candidate/init.md +6 -0
- package/dist/agent/artifacts/candidate/task.md +6 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/acceptance.md +6 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/task.md +6 -0
- package/dist/agent/rules/constitution/clean-code.md +6 -0
- package/dist/agent/templates/acceptance.md +6 -0
- package/dist/agent/templates/init.md +6 -0
- package/dist/agent/templates/supplemental-report.md +6 -0
- package/dist/agent/templates/task.md +7 -0
- package/dist/agent/workflows/init.md +1 -1
- package/dist/cli/commands/init.js +6 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.js +5 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/runtime/engine/emitter.js +30 -0
- package/dist/runtime/engine/emitter.js.map +1 -0
- package/dist/runtime/engine/engine.js +130 -0
- package/dist/runtime/engine/engine.js.map +1 -0
- package/dist/runtime/engine/index.js +7 -0
- package/dist/runtime/engine/index.js.map +1 -0
- package/dist/runtime/engine/service.js +78 -0
- package/dist/runtime/engine/service.js.map +1 -0
- package/dist/runtime/engine/state-store.js +25 -0
- package/dist/runtime/engine/state-store.js.map +1 -0
- package/dist/runtime/engine/task-loader.js +51 -0
- package/dist/runtime/engine/task-loader.js.map +1 -0
- package/dist/runtime/engine/workflow-loader.js +82 -0
- package/dist/runtime/engine/workflow-loader.js.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/mcp/index.js +2 -0
- package/dist/runtime/mcp/index.js.map +1 -0
- package/dist/runtime/mcp/server.js +249 -0
- package/dist/runtime/mcp/server.js.map +1 -0
- package/package.json +5 -6
- package/media/agent-chat.svg +0 -20
package/bin/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { initCommand } from '../dist/cli/commands/init.js';
|
|
|
4
4
|
import { createCommand } from '../dist/cli/commands/create.js';
|
|
5
5
|
import { restoreCommand } from '../dist/cli/commands/restore.js';
|
|
6
6
|
import { cleanCommand } from '../dist/cli/commands/clean.js';
|
|
7
|
+
import { mcpCommand } from '../dist/cli/commands/mcp.js';
|
|
7
8
|
|
|
8
9
|
const program = new Command();
|
|
9
10
|
|
|
@@ -16,6 +17,7 @@ program
|
|
|
16
17
|
.command('init')
|
|
17
18
|
.description('Initialize the agentic system in the current directory')
|
|
18
19
|
.option('--non-interactive', 'Run without prompts (assume YES)')
|
|
20
|
+
.option('--start-mcp', 'Start MCP server after initialization (foreground)')
|
|
19
21
|
.action((options) => initCommand(options));
|
|
20
22
|
|
|
21
23
|
program
|
|
@@ -35,4 +37,9 @@ program
|
|
|
35
37
|
.description('Remove legacy configuration files (e.g. MCP)')
|
|
36
38
|
.action(cleanCommand);
|
|
37
39
|
|
|
40
|
+
program
|
|
41
|
+
.command('mcp')
|
|
42
|
+
.description('Start MCP runtime server (stdio)')
|
|
43
|
+
.action(() => mcpCommand());
|
|
44
|
+
|
|
38
45
|
program.parse();
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: artifact
|
|
3
|
+
name: acceptance
|
|
4
|
+
source: agentic-system-structure
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Acceptance Criteria — 5-reestructurar-src-para-extension-vscode
|
|
2
8
|
|
|
3
9
|
🏛️ **architect-agent**: Definición de criterios de aceptación para la reestructuración de src y scaffolding de extensión VSCode.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Workflow obligatorio de setup: carga constitutions base y define el idioma de conversación y la estrategia Long/Short.
|
|
2
|
+
description: "Workflow obligatorio de setup: carga constitutions base y define el idioma de conversación y la estrategia Long/Short."
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
---
|
|
@@ -4,11 +4,13 @@ import path from 'node:path';
|
|
|
4
4
|
import { detectAgentSystem } from '../../infrastructure/migration/detector.js';
|
|
5
5
|
import { resolveCorePath, resolveInstalledCorePath } from '../../infrastructure/mapping/resolver.js';
|
|
6
6
|
import { performBackup } from '../../infrastructure/utils/backup.js';
|
|
7
|
+
import { startRuntimeMcpServer } from '../../runtime/mcp/server.js';
|
|
7
8
|
export async function initCommand(options = {}) {
|
|
8
9
|
intro('Agentic Workflow Initialization');
|
|
9
10
|
const cwd = process.cwd();
|
|
10
11
|
const agentDir = path.join(cwd, '.agent');
|
|
11
12
|
const nonInteractive = Boolean(options.nonInteractive);
|
|
13
|
+
const startMcp = Boolean(options.startMcp);
|
|
12
14
|
// 1. Existing System Detection
|
|
13
15
|
const systemType = await detectAgentSystem(cwd);
|
|
14
16
|
if (systemType === 'legacy') {
|
|
@@ -71,6 +73,10 @@ export async function initCommand(options = {}) {
|
|
|
71
73
|
s.stop('Configuration complete.');
|
|
72
74
|
note(`Core copied from: ${corePath}\nLocal .agent created with full core files.`, 'Installed');
|
|
73
75
|
outro('Agentic System initialized successfully.');
|
|
76
|
+
if (startMcp) {
|
|
77
|
+
note('Starting MCP server (foreground)...', 'MCP');
|
|
78
|
+
await startRuntimeMcpServer();
|
|
79
|
+
}
|
|
74
80
|
}
|
|
75
81
|
catch (error) {
|
|
76
82
|
s.stop('Initialization failed.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,qBAAqB,EAAE,CAAC;AAChC,CAAC"}
|
package/dist/cli/index.js
CHANGED
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export class RuntimeEmitter {
|
|
4
|
+
eventsPath;
|
|
5
|
+
stdoutEnabled;
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
this.eventsPath = options.eventsPath;
|
|
8
|
+
this.stdoutEnabled = options.stdout ?? true;
|
|
9
|
+
}
|
|
10
|
+
async emit(event) {
|
|
11
|
+
if (this.stdoutEnabled) {
|
|
12
|
+
await this.writeToStdout(event);
|
|
13
|
+
}
|
|
14
|
+
await this.writeToFile(event);
|
|
15
|
+
}
|
|
16
|
+
async writeToStdout(event) {
|
|
17
|
+
process.stdout.write(`${JSON.stringify(event)}\n`);
|
|
18
|
+
}
|
|
19
|
+
async writeToFile(event) {
|
|
20
|
+
if (!this.eventsPath) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
await this.ensureEventsDir(this.eventsPath);
|
|
24
|
+
await fs.appendFile(this.eventsPath, `${JSON.stringify(event)}\n`);
|
|
25
|
+
}
|
|
26
|
+
async ensureEventsDir(eventsPath) {
|
|
27
|
+
await fs.mkdir(path.dirname(eventsPath), { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/runtime/engine/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,OAAO,cAAc;IACjB,UAAU,CAAU;IACpB,aAAa,CAAU;IAE/B,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAmB;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAmB;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAmB;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,UAAkB;QAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
export class RuntimeEngine {
|
|
3
|
+
dependencies;
|
|
4
|
+
executors;
|
|
5
|
+
constructor(dependencies) {
|
|
6
|
+
this.dependencies = dependencies;
|
|
7
|
+
this.executors = this.buildExecutorMap(dependencies.executors ?? []);
|
|
8
|
+
}
|
|
9
|
+
async run(state, workflow) {
|
|
10
|
+
const normalized = this.ensureSteps(state);
|
|
11
|
+
await this.emitEvent('run_started', normalized, workflow);
|
|
12
|
+
await this.emitEvent('workflow_loaded', normalized, workflow);
|
|
13
|
+
await this.emitEvent('context_resolved', normalized, workflow);
|
|
14
|
+
await this.log('info', 'Workflow context resolved', { workflowId: workflow.id, runId: state.runId });
|
|
15
|
+
for (const step of normalized.steps) {
|
|
16
|
+
if (step.status === 'completed') {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
await this.runStep(step, normalized, workflow);
|
|
20
|
+
}
|
|
21
|
+
const completed = this.withStatus(normalized, 'completed');
|
|
22
|
+
await this.log('info', 'Workflow execution completed', { runId: state.runId });
|
|
23
|
+
await this.persistState(completed, workflow, 'run_completed');
|
|
24
|
+
return completed;
|
|
25
|
+
}
|
|
26
|
+
async runStep(step, state, workflow) {
|
|
27
|
+
const running = this.withStepStatus(state, step.id, 'running');
|
|
28
|
+
await this.log('info', `Starting step execution: ${step.id}`, { stepId: step.id });
|
|
29
|
+
await this.persistState(running, workflow, 'step_started', step.id);
|
|
30
|
+
try {
|
|
31
|
+
await this.executeStep(step.id, running, workflow);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const failed = this.withStatus(running, 'failed');
|
|
35
|
+
await this.log('error', `Step execution failed: ${step.id}`, { stepId: step.id, error: String(error) });
|
|
36
|
+
await this.emitError(failed, workflow, error);
|
|
37
|
+
await this.persistState(failed, workflow, 'state_persisted');
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
const completed = this.withStepStatus(running, step.id, 'completed');
|
|
41
|
+
await this.log('info', `Step execution completed: ${step.id}`, { stepId: step.id });
|
|
42
|
+
await this.persistState(completed, workflow, 'step_completed', step.id);
|
|
43
|
+
}
|
|
44
|
+
async executeStep(stepId, state, workflow) {
|
|
45
|
+
const executor = this.executors.get(stepId) ?? this.executors.get('workflow');
|
|
46
|
+
if (executor) {
|
|
47
|
+
await executor.execute({ state, workflow });
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
await fs.access(workflow.path);
|
|
51
|
+
}
|
|
52
|
+
ensureSteps(state) {
|
|
53
|
+
if (state.steps.length > 0) {
|
|
54
|
+
return state;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
...state,
|
|
58
|
+
steps: [{ id: 'workflow', status: 'idle' }]
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
buildExecutorMap(executors) {
|
|
62
|
+
return new Map(executors.map((executor) => [executor.id, executor]));
|
|
63
|
+
}
|
|
64
|
+
async persistState(state, workflow, eventType, stepId) {
|
|
65
|
+
await this.dependencies.stateStore.save(state);
|
|
66
|
+
await this.emitEvent('state_persisted', state, workflow, stepId);
|
|
67
|
+
await this.emitEvent(eventType, state, workflow, stepId);
|
|
68
|
+
}
|
|
69
|
+
async emitEvent(type, state, workflow, stepId) {
|
|
70
|
+
const event = this.buildEvent(type, state, workflow, stepId);
|
|
71
|
+
await this.dependencies.emitter.emit(event);
|
|
72
|
+
}
|
|
73
|
+
async emitError(state, workflow, error) {
|
|
74
|
+
const payload = { error: error instanceof Error ? error.message : String(error) };
|
|
75
|
+
const event = this.buildEvent('error', state, workflow, undefined, payload);
|
|
76
|
+
await this.dependencies.emitter.emit(event);
|
|
77
|
+
}
|
|
78
|
+
async log(level, message, data) {
|
|
79
|
+
const event = this.buildEvent('log', { runId: 'system' }, { id: 'system' }, undefined, {
|
|
80
|
+
level,
|
|
81
|
+
message,
|
|
82
|
+
data
|
|
83
|
+
});
|
|
84
|
+
// Fix: minimal mock state for system logs if real state is not available contextually here
|
|
85
|
+
// In a real implementation we would want access to current state, but this helper is generic.
|
|
86
|
+
// For now, we rely on the payload.
|
|
87
|
+
// Actually, let's use a simpler approach. We need to pass state/workflow to buildEvent.
|
|
88
|
+
// However, log() is called from methods where we HAVE state.
|
|
89
|
+
// But to keep signature simple, let's just emit raw event manually here or refine signature.
|
|
90
|
+
// Better: let's change signature to accept nothing and use a generic builder,
|
|
91
|
+
// OR just emit the event directly since we are inside the class.
|
|
92
|
+
// Wait, buildEvent requires state and workflow.
|
|
93
|
+
// Let's manually construct the log event to avoid circular dependencies or complex signatures
|
|
94
|
+
// for this simple logging feature.
|
|
95
|
+
await this.dependencies.emitter.emit({
|
|
96
|
+
type: 'log',
|
|
97
|
+
timestamp: new Date().toISOString(),
|
|
98
|
+
runId: 'system', // or passed in data
|
|
99
|
+
payload: { level, message, ...data }
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
buildEvent(type, state, workflow, stepId, payload) {
|
|
103
|
+
return {
|
|
104
|
+
type,
|
|
105
|
+
timestamp: new Date().toISOString(),
|
|
106
|
+
runId: state.runId,
|
|
107
|
+
workflowId: workflow.id,
|
|
108
|
+
phase: state.phase,
|
|
109
|
+
stepId,
|
|
110
|
+
payload
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
withStatus(state, status) {
|
|
114
|
+
return {
|
|
115
|
+
...state,
|
|
116
|
+
status,
|
|
117
|
+
updatedAt: new Date().toISOString()
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
withStepStatus(state, stepId, status) {
|
|
121
|
+
const steps = state.steps.map((step) => step.id === stepId ? { ...step, status } : step);
|
|
122
|
+
return {
|
|
123
|
+
...state,
|
|
124
|
+
status: 'running',
|
|
125
|
+
steps,
|
|
126
|
+
updatedAt: new Date().toISOString()
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/runtime/engine/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/engine/index.ts"],"names":[],"mappings":"AAUA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
|