@christianmaf80/agentic-workflow 1.24.0-beta.3 → 1.25.0-beta.3
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 +13 -57
- package/README.md +14 -56
- package/bin/cli.js +22 -29
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/acceptance.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-scores.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/1-dev-agent-scaffold.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/2-dev-agent-manifest-command.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/3-dev-agent-marketplace-evidence.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/4-qa-agent-verify-build.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/analysis.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/architect/review.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/metrics.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/plan.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/researcher/research.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/results-acceptance.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/task.md +0 -6
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/verification.md +0 -6
- package/dist/agent/artifacts/11-refinement-capas-constitution/analysis.md +24 -0
- package/dist/agent/artifacts/11-refinement-capas-constitution/roadmap-audit.md +34 -0
- package/dist/agent/artifacts/11-refinement-capas-constitution/task.md +58 -0
- package/dist/agent/artifacts/12-npm-workspaces/acceptance.md +78 -0
- package/dist/agent/artifacts/12-npm-workspaces/analysis.md +179 -0
- package/dist/agent/artifacts/12-npm-workspaces/plan.md +237 -0
- package/dist/agent/artifacts/12-npm-workspaces/researcher/research.md +186 -0
- package/dist/agent/artifacts/12-npm-workspaces/task.md +126 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/acceptance.md +75 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/researcher/research.md +121 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/task.md +104 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/acceptance.md +75 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/architect/analysis.md +90 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/planner/implementation_plan.md +44 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/researcher/research.md +113 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/task.md +107 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/verification/walkthrough.md +37 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/verifier/walkthrough.md +0 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/acceptance.md +0 -6
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/task.md +0 -6
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/acceptance.md +0 -6
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/task.md +0 -6
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/acceptance.md +0 -6
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/architect/implementation.md +0 -6
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/acceptance.md +0 -6
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/1-dev-agent-reestructurar-carpetas.md +1 -1
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/task.md +0 -6
- package/dist/agent/artifacts/6-release-beta-11/task.md +0 -6
- package/dist/agent/artifacts/7-extension-vscode-webview/acceptance.md +70 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-scores.md +24 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/1-vscode-specialist-scaffold-extension.md +99 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/2-vscode-specialist-update-manifest.md +101 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/3-vscode-specialist-webview-provider.md +96 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/4-vscode-specialist-activitybar-icon.md +95 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/5-qa-agent-manual-verify.md +97 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/analysis.md +195 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/architect/review.md +124 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/changelog.md +9 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/metrics.md +43 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/plan.md +181 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/researcher/research.md +118 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/results-acceptance.md +146 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/task.md +119 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/verification.md +81 -0
- package/dist/agent/artifacts/8-create-agentic-runtime-cli-first-as-the-single-execution-engine/task.md +126 -0
- package/dist/agent/artifacts/candidate/acceptance.md +23 -0
- package/dist/agent/artifacts/candidate/brief.md +39 -0
- package/dist/agent/artifacts/candidate/init.md +3 -9
- package/dist/agent/artifacts/candidate/task.md +4 -71
- package/dist/agent/artifacts/task-20260128-reorganize-structure/acceptance.md +0 -6
- package/dist/agent/artifacts/task-20260128-reorganize-structure/brief.md +1 -1
- package/dist/agent/artifacts/task-20260128-reorganize-structure/closure.md +3 -3
- package/dist/agent/artifacts/task-20260128-reorganize-structure/implementation.md +2 -2
- package/dist/agent/artifacts/task-20260128-reorganize-structure/task.md +0 -6
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/acceptance.md +65 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-scores.md +26 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/1-neo-agent-deps-chatkit.md +108 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/15-vscode-specialist-views-router.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/1b-vscode-specialist-review-deps.md +106 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/2-neo-agent-local-server.md +111 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/22-vscode-specialist-external-js.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/23-qa-agent-coverage-tests.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/24-vscode-specialist-class-refactor.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/25-vscode-specialist-external-html.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/26-vscode-specialist-template-js-html.md +110 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/27-vscode-specialist-fix-loading-setup.md +110 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/28-vscode-specialist-webview-debug-setup.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/29-vscode-specialist-webview-logging.md +109 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/3-neo-agent-webview-ui.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/30-vscode-specialist-csp-source.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/31-vscode-specialist-logging-prefix.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/32-vscode-specialist-logging-visibility.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/33-vscode-specialist-lit-setup.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/34-vscode-specialist-core-lit-base.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/35-vscode-specialist-lit-decorators-ts.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/36-vscode-specialist-lit-module-start.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/37-vscode-specialist-lit-ready-state.md +86 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/4-qa-agent-verification.md +106 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/5-vscode-specialist-api-key-ui.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/6-vscode-specialist-refactor-protocol.md +108 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/7-qa-agent-unit-tests.md +104 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-10-vscode-specialist-api-key-handshake.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-11-vscode-specialist-api-key-button-style.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-12-vscode-specialist-key-gate-view.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-13-vscode-specialist-status-timeout.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-14-vscode-specialist-init-flow.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-16-vscode-specialist-view-context.md +87 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-17-vscode-specialist-clear-key-command.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-18-vscode-specialist-context-sync.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-19-vscode-specialist-setup-visible.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-20-vscode-specialist-loading-state.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-21-vscode-specialist-loading-label.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-8-vscode-specialist-api-key-detect.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-9-vscode-specialist-api-key-state.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/analysis.md +156 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/architect/review.md +141 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/changelog.md +30 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/metrics.md +43 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/plan.md +151 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/research.md +115 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/results-acceptance.md +171 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/verification.md +87 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/acceptance.md +64 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/architect/implementation.md +30 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/brief.md +102 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/closure.md +95 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/acceptance.md +68 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/architect/implementation.md +33 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/brief.md +104 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/closure.md +100 -0
- package/dist/agent/artifacts/task-beta-release/acceptance.md +23 -0
- package/dist/agent/artifacts/task-beta-release/brief.md +39 -0
- package/dist/agent/artifacts/task-beta-release/closure.md +29 -0
- package/dist/agent/artifacts/task-beta-release/init.md +26 -0
- package/dist/agent/artifacts/task-beta-release/task.md +64 -0
- package/dist/agent/index.md +69 -30
- package/dist/agent/rules/constitution/agents-behavior.md +110 -100
- package/dist/agent/rules/constitution/backend.md +27 -0
- package/dist/agent/rules/constitution/background.md +30 -0
- package/dist/agent/rules/constitution/clean-code.md +5 -6
- package/dist/agent/rules/constitution/modular-architecture.md +66 -0
- package/dist/agent/rules/constitution/view.md +41 -0
- package/dist/agent/rules/constitution/vscode-extensions.md +32 -0
- package/dist/agent/rules/roles/architect.md +1 -2
- package/dist/agent/rules/roles/backend.md +21 -0
- package/dist/agent/rules/roles/background.md +20 -0
- package/dist/agent/rules/roles/devops.md +20 -0
- package/dist/agent/rules/roles/engine.md +26 -0
- package/dist/agent/rules/roles/neo.md +12 -13
- package/dist/agent/rules/roles/researcher.md +2 -2
- package/dist/agent/rules/roles/view.md +22 -0
- package/dist/agent/rules/roles/vscode-specialist.md +24 -0
- package/dist/agent/templates/acceptance.md +19 -25
- package/dist/agent/templates/agent-task.md +39 -39
- package/dist/agent/templates/analysis.md +92 -92
- package/dist/agent/templates/brief.md +43 -43
- package/dist/agent/templates/changelog.md +8 -8
- package/dist/agent/templates/closure.md +29 -29
- package/dist/agent/templates/coding/coding-integration-report.md +102 -0
- package/dist/agent/templates/coding/coding-layer-report.md +78 -0
- package/dist/agent/templates/init.md +0 -6
- package/dist/agent/templates/planning.md +73 -73
- package/dist/agent/templates/research.md +43 -43
- package/dist/agent/templates/results-acceptance.md +94 -94
- package/dist/agent/templates/review.md +59 -59
- package/dist/agent/templates/subtask-implementation.md +29 -29
- package/dist/agent/templates/supplemental-report.md +0 -6
- package/dist/agent/templates/task-metrics.md +14 -14
- package/dist/agent/templates/task.md +15 -15
- package/dist/agent/templates/todo-item.md +23 -23
- package/dist/agent/workflows/coding/coding-backend.md +147 -0
- package/dist/agent/workflows/coding/coding-background.md +149 -0
- package/dist/agent/workflows/coding/coding-integration.md +174 -0
- package/dist/agent/workflows/coding/coding-view.md +151 -0
- package/dist/agent/workflows/init.md +83 -90
- package/dist/agent/workflows/scaffold-module.md +38 -0
- package/dist/agent/workflows/tasklifecycle-long/phase-0-acceptance-criteria.md +124 -134
- package/dist/agent/workflows/tasklifecycle-long/phase-1-research.md +103 -97
- package/dist/agent/workflows/tasklifecycle-long/phase-2-analysis.md +107 -102
- package/dist/agent/workflows/tasklifecycle-long/phase-3-planning.md +125 -120
- package/dist/agent/workflows/tasklifecycle-long/phase-4-implementation.md +118 -118
- package/dist/agent/workflows/tasklifecycle-long/phase-5-verification.md +105 -101
- package/dist/agent/workflows/tasklifecycle-long/phase-6-results-acceptance.md +82 -78
- package/dist/agent/workflows/tasklifecycle-long/phase-7-evaluation.md +84 -75
- package/dist/agent/workflows/tasklifecycle-long/phase-8-commit-push.md +94 -89
- package/dist/agent/workflows/tasklifecycle-short/short-phase-1-brief.md +78 -71
- package/dist/agent/workflows/tasklifecycle-short/short-phase-2-implementation.md +79 -71
- package/dist/agent/workflows/tasklifecycle-short/short-phase-3-closure.md +73 -66
- package/dist/cli/commands/create.js +4 -29
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/mcp.js +0 -6
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/runtime/engine/engine.js +29 -57
- package/dist/runtime/engine/engine.js.map +1 -1
- package/dist/runtime/engine/service.js +1 -38
- package/dist/runtime/engine/service.js.map +1 -1
- package/dist/runtime/engine/task-loader.js +1 -1
- package/dist/runtime/engine/task-loader.js.map +1 -1
- package/dist/runtime/engine/workflow-loader.js +17 -25
- package/dist/runtime/engine/workflow-loader.js.map +1 -1
- package/dist/runtime/mcp/server.js +38 -277
- package/dist/runtime/mcp/server.js.map +1 -1
- package/package.json +69 -7
- package/dist/agent/artifacts/index.md +0 -25
- package/dist/agent/rules/constitution/index.md +0 -26
- package/dist/agent/rules/constitution/runtime-integration.md +0 -101
- package/dist/agent/rules/index.md +0 -70
- package/dist/agent/rules/roles/index.md +0 -44
- package/dist/agent/templates/index.md +0 -42
- package/dist/agent/workflows/index.md +0 -30
- package/dist/agent/workflows/tasklifecycle-long/index.md +0 -172
- package/dist/agent/workflows/tasklifecycle-short/index.md +0 -70
- package/dist/cli/commands/register-mcp.js +0 -116
- package/dist/cli/commands/register-mcp.js.map +0 -1
- package/dist/runtime/engine/logger.js +0 -74
- package/dist/runtime/engine/logger.js.map +0 -1
- package/dist/runtime/mcp/check-tools.js +0 -66
- package/dist/runtime/mcp/check-tools.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: workflow.tasklifecycle-short.short-phase-2-implementation
|
|
3
|
-
description:
|
|
3
|
+
description: Phase 2 of the Short lifecycle. Executes implementation according to the approved brief.
|
|
4
4
|
owner: architect-agent
|
|
5
5
|
version: 1.0.0
|
|
6
6
|
severity: PERMANENT
|
|
@@ -12,95 +12,103 @@ blocking: true
|
|
|
12
12
|
# WORKFLOW: tasklifecycle-short.short-phase-2-implementation
|
|
13
13
|
|
|
14
14
|
## Input (REQUIRED)
|
|
15
|
-
-
|
|
16
|
-
- task.md
|
|
15
|
+
- Approved brief exists: `.agent/artifacts/<taskId>-<taskTitle>/brief.md`
|
|
16
|
+
- task.md reflects `task.phase.current == "short-phase-2-implementation"`
|
|
17
17
|
|
|
18
18
|
> [!IMPORTANT]
|
|
19
|
-
> **
|
|
20
|
-
> -
|
|
21
|
-
> -
|
|
22
|
-
> -
|
|
19
|
+
> **Active constitution (MANDATORY)**:
|
|
20
|
+
> - Load `constitution.clean_code` before starting
|
|
21
|
+
> - Load `constitution.agents_behavior` (section 7: Gates, section 8: Constitution)
|
|
22
|
+
> - Load domain-specific constitutions as required by the task
|
|
23
23
|
|
|
24
24
|
## Output (REQUIRED)
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- Task
|
|
25
|
+
- Code implemented according to the brief plan.
|
|
26
|
+
- Implementation report: `.agent/artifacts/<taskId>-<taskTitle>/architect/implementation.md`
|
|
27
|
+
- Task updated.
|
|
28
28
|
|
|
29
|
-
##
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
29
|
+
## Objective (ONLY)
|
|
30
|
+
- Execute all implementation subtasks defined in the brief.
|
|
31
|
+
- Allow the architect-agent to verify coherence with the plan.
|
|
32
|
+
- Generate an architectural review report.
|
|
33
33
|
|
|
34
|
-
>
|
|
35
|
-
>
|
|
34
|
+
> This phase **DOES implement code**.
|
|
35
|
+
> This phase **DOES NOT redefine scope**.
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
0.
|
|
42
|
-
|
|
43
|
-
### 1.
|
|
44
|
-
-
|
|
45
|
-
- **
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
### 2.
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
### 3.
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
### 4.
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
### 5.
|
|
69
|
-
-
|
|
70
|
-
- **SI** →
|
|
71
|
-
- **NO** →
|
|
72
|
-
-
|
|
39
|
+
## Mandatory Steps
|
|
40
|
+
|
|
41
|
+
0. Activate `architect-agent` and use the mandatory prefix in every message.
|
|
42
|
+
|
|
43
|
+
### 1. Pre-Flight Validation Protocol (MANDATORY)
|
|
44
|
+
- The agent **MUST** physically read the previous phase artifact: `.agent/artifacts/<taskId>-<taskTitle>/brief.md`.
|
|
45
|
+
- **Explicitly cite** the developer's decision (e.g.: "Approved: SI") and the timestamp if it exists.
|
|
46
|
+
- If the file does not exist or does not have an affirmative approval mark, the process **MUST** stop immediately (FAIL).
|
|
47
|
+
- Verify that the phase in `task.md` is correct.
|
|
48
|
+
|
|
49
|
+
### 2. Execute implementation
|
|
50
|
+
- Follow the steps defined in `brief.md`.
|
|
51
|
+
- Document changes made.
|
|
52
|
+
- Document technical decisions.
|
|
53
|
+
|
|
54
|
+
### 3. Architectural review (MANDATORY)
|
|
55
|
+
The architect-agent **MUST** verify:
|
|
56
|
+
- Coherence with the brief plan.
|
|
57
|
+
- Compliance with architecture and clean code rules.
|
|
58
|
+
- Fulfillment of acceptance criteria.
|
|
59
|
+
|
|
60
|
+
### 4. Create implementation report
|
|
61
|
+
- Create `.agent/artifacts/<taskId>-<taskTitle>/architect/implementation.md`
|
|
62
|
+
- Include:
|
|
63
|
+
- Changes made.
|
|
64
|
+
- Modified/created files.
|
|
65
|
+
- Technical decisions.
|
|
66
|
+
- Status: APPROVED | REJECTED.
|
|
67
|
+
|
|
68
|
+
### 5. Request developer approval (MANDATORY, via console)
|
|
69
|
+
- The developer **MUST** approve the implementation:
|
|
70
|
+
- **SI** → approved
|
|
71
|
+
- **NO** → rejected
|
|
72
|
+
- Record the decision in `architect/implementation.md`:
|
|
73
73
|
```yaml
|
|
74
74
|
approval:
|
|
75
75
|
developer:
|
|
76
76
|
decision: SI | NO
|
|
77
77
|
date: <ISO-8601>
|
|
78
|
-
comments: <
|
|
78
|
+
comments: <optional>
|
|
79
79
|
```
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
### 6. PASS (
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
80
|
+
- If `decision != SI` → **FAIL**.
|
|
81
|
+
|
|
82
|
+
### 6. PASS (only if APPROVED)
|
|
83
|
+
- Report that Phase 2 (Implementation) is correctly completed.
|
|
84
|
+
- The `architect-agent` **MUST explicitly perform** the following actions:
|
|
85
|
+
- Mark the phase as completed in `task.md`.
|
|
86
|
+
- Set `task.lifecycle.phases.short-phase-2-implementation.completed = true`.
|
|
87
|
+
- Set `task.lifecycle.phases.short-phase-2-implementation.validated_at = <ISO-8601>`.
|
|
88
|
+
- Update `task.phase.updated_at = <ISO-8601>`.
|
|
89
|
+
- Update the state:
|
|
90
|
+
- `task.phase.current = short-phase-3-closure`
|
|
91
|
+
- This update is **NOT automatic** and **CANNOT be inferred**.
|
|
92
|
+
- Until this change is reflected in `task.md`, **Phase 3 cannot be started**.
|
|
93
|
+
- Indicate paths:
|
|
94
|
+
- `architect/implementation.md`
|
|
95
|
+
- `task.md` updated
|
|
88
96
|
|
|
89
97
|
---
|
|
90
98
|
|
|
91
99
|
## Gate (REQUIRED)
|
|
92
|
-
|
|
93
|
-
1.
|
|
94
|
-
2.
|
|
95
|
-
3.
|
|
96
|
-
4.
|
|
100
|
+
Requirements (all mandatory):
|
|
101
|
+
1. Implementation coherent with brief.
|
|
102
|
+
2. The `architect/implementation.md` starts with the `architect-agent` prefix.
|
|
103
|
+
3. Implementation report exists with APPROVED status.
|
|
104
|
+
4. Explicit developer approval recorded in `architect/implementation.md`:
|
|
97
105
|
- `approval.developer.decision == SI`
|
|
98
|
-
5. task.md
|
|
99
|
-
6. task.md
|
|
106
|
+
5. task.md reflects the phase as completed.
|
|
107
|
+
6. task.md reflects timestamp and state:
|
|
100
108
|
- `task.lifecycle.phases.short-phase-2-implementation.completed == true`
|
|
101
|
-
- `task.lifecycle.phases.short-phase-2-implementation.validated_at`
|
|
102
|
-
- `task.phase.updated_at`
|
|
109
|
+
- `task.lifecycle.phases.short-phase-2-implementation.validated_at` not null
|
|
110
|
+
- `task.phase.updated_at` not null
|
|
103
111
|
|
|
104
|
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
112
|
+
If Gate FAIL:
|
|
113
|
+
- Iterate to fix issues.
|
|
114
|
+
- Do not advance until resolved.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: workflow.tasklifecycle-short.short-phase-3-closure
|
|
3
|
-
description:
|
|
3
|
+
description: Phase 3 of the Short lifecycle. Merges Verification + Results + Commit.
|
|
4
4
|
owner: architect-agent
|
|
5
5
|
version: 1.0.0
|
|
6
6
|
severity: PERMANENT
|
|
@@ -12,93 +12,100 @@ blocking: true
|
|
|
12
12
|
# WORKFLOW: tasklifecycle-short.short-phase-3-closure
|
|
13
13
|
|
|
14
14
|
## Input (REQUIRED)
|
|
15
|
-
-
|
|
16
|
-
- task.md
|
|
15
|
+
- Approved implementation report exists.
|
|
16
|
+
- task.md reflects `task.phase.current == "short-phase-3-closure"`
|
|
17
17
|
|
|
18
18
|
> [!IMPORTANT]
|
|
19
|
-
> **
|
|
20
|
-
> -
|
|
21
|
-
> -
|
|
19
|
+
> **Active constitution (MANDATORY)**:
|
|
20
|
+
> - Load `constitution.clean_code` before starting
|
|
21
|
+
> - Load `constitution.agents_behavior` (section 7: Gates, section 8: Constitution)
|
|
22
22
|
|
|
23
23
|
## Output (REQUIRED)
|
|
24
|
-
-
|
|
25
|
-
- Commits
|
|
26
|
-
- Task
|
|
24
|
+
- Closure artifact: `.agent/artifacts/<taskId>-<taskTitle>/closure.md`
|
|
25
|
+
- Commits performed (if applicable).
|
|
26
|
+
- Task completed.
|
|
27
27
|
|
|
28
|
-
##
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
28
|
+
## Objective (ONLY)
|
|
29
|
+
- Verify the implementation through tests (if applicable).
|
|
30
|
+
- Present results to the developer.
|
|
31
|
+
- Obtain final acceptance.
|
|
32
|
+
- Consolidate and perform commit.
|
|
33
33
|
|
|
34
|
-
>
|
|
35
|
-
>
|
|
34
|
+
> This phase **DOES NOT implement new code**.
|
|
35
|
+
> This phase **CLOSES the task lifecycle**.
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## Mandatory Steps
|
|
40
40
|
|
|
41
|
-
0.
|
|
41
|
+
0. Activate `architect-agent` and use the mandatory prefix in every message.
|
|
42
42
|
|
|
43
|
-
### 1.
|
|
44
|
-
-
|
|
45
|
-
- **
|
|
46
|
-
-
|
|
47
|
-
-
|
|
43
|
+
### 1. Pre-Flight Validation Protocol (MANDATORY)
|
|
44
|
+
- The agent **MUST** physically read the approved implementation report: `.agent/artifacts/<taskId>-<taskTitle>/architect/implementation.md`.
|
|
45
|
+
- **Explicitly cite** the approval decision (e.g.: "Status: APPROVED").
|
|
46
|
+
- If the report does not exist or is not approved, the process **MUST** stop immediately (FAIL).
|
|
47
|
+
- Verify that the phase in `task.md` is correct.
|
|
48
48
|
|
|
49
|
-
### 2.
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
49
|
+
### 2. Execute verification
|
|
50
|
+
- **ALWAYS** validate unit tests and E2E tests if applicable.
|
|
51
|
+
- Run tests according to `constitution.clean_code`.
|
|
52
|
+
- Document results.
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
-
|
|
54
|
+
If tests are not required (justified exception):
|
|
55
|
+
- Document robust justification.
|
|
56
56
|
|
|
57
|
-
### 3.
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
57
|
+
### 3. Create closure.md artifact
|
|
58
|
+
- Use template `templates.closure`.
|
|
59
|
+
- Include:
|
|
60
|
+
- Verification summary.
|
|
61
|
+
- Status of each acceptance criterion (✅/❌).
|
|
62
|
+
- Test evidence (if applicable).
|
|
63
63
|
|
|
64
|
-
### 4.
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
64
|
+
### 4. Present results to the developer
|
|
65
|
+
- Show closure.md.
|
|
66
|
+
- Resolve questions.
|
|
67
|
+
- Request final acceptance via console (SI/NO) and record it in `closure.md`.
|
|
68
68
|
|
|
69
|
-
### 6.
|
|
70
|
-
-
|
|
71
|
-
- **GATE
|
|
72
|
-
-
|
|
69
|
+
### 6. Evaluate agents (MANDATORY)
|
|
70
|
+
- Request score (1-10) from the developer for each agent that participated.
|
|
71
|
+
- **MANDATORY GATE**: Without scores, the task CANNOT be closed.
|
|
72
|
+
- Record the scores in `closure.md`.
|
|
73
73
|
|
|
74
|
-
### 7.
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
74
|
+
### 7. Consolidate commits
|
|
75
|
+
If there are code changes:
|
|
76
|
+
- Prepare commits following Conventional Commits.
|
|
77
|
+
- Request developer approval for push.
|
|
78
78
|
|
|
79
79
|
### 8. PASS
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
80
|
+
- Report that Phase 3 (Closure) is correctly completed.
|
|
81
|
+
- The `architect-agent` **MUST explicitly perform** the following actions:
|
|
82
|
+
- Mark the task as **COMPLETED** in `task.md`.
|
|
83
|
+
- Set `task.lifecycle.phases.short-phase-3-closure.completed = true`.
|
|
84
|
+
- Set `task.lifecycle.phases.short-phase-3-closure.validated_at = <ISO-8601>`.
|
|
85
|
+
- Update `task.phase.updated_at = <ISO-8601>`.
|
|
86
|
+
- Mark the task as **technically closed**.
|
|
87
|
+
- This update is **NOT automatic** and **CANNOT be inferred**.
|
|
88
|
+
- Generate changelog (if applicable).
|
|
89
|
+
- Indicate paths:
|
|
90
|
+
- `closure.md`
|
|
91
|
+
- `task.md` updated
|
|
85
92
|
|
|
86
93
|
---
|
|
87
94
|
|
|
88
95
|
## Gate (REQUIRED)
|
|
89
|
-
|
|
90
|
-
1.
|
|
91
|
-
2.
|
|
92
|
-
3.
|
|
93
|
-
4.
|
|
94
|
-
5.
|
|
95
|
-
6. Commits
|
|
96
|
-
7. task.md
|
|
97
|
-
8. task.md
|
|
96
|
+
Requirements (all mandatory):
|
|
97
|
+
1. closure.md exists with correct template.
|
|
98
|
+
2. The `closure.md` starts with the `architect-agent` prefix.
|
|
99
|
+
3. All acceptance criteria are marked.
|
|
100
|
+
4. Final developer acceptance exists.
|
|
101
|
+
5. Agent scores have been recorded in `closure.md`.
|
|
102
|
+
6. Commits performed (if applicable).
|
|
103
|
+
7. task.md reflects the task as completed.
|
|
104
|
+
8. task.md reflects timestamp and state:
|
|
98
105
|
- `task.lifecycle.phases.short-phase-3-closure.completed == true`
|
|
99
|
-
- `task.lifecycle.phases.short-phase-3-closure.validated_at`
|
|
100
|
-
- `task.phase.updated_at`
|
|
106
|
+
- `task.lifecycle.phases.short-phase-3-closure.validated_at` not null
|
|
107
|
+
- `task.phase.updated_at` not null
|
|
101
108
|
|
|
102
|
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
109
|
+
If Gate FAIL:
|
|
110
|
+
- Indicate which requirement is missing.
|
|
111
|
+
- Block until resolved.
|
|
@@ -9,19 +9,13 @@ import { resolveCorePath, resolveInstalledCorePath } from '../../infrastructure/
|
|
|
9
9
|
export async function performCreate(type, name, force = false) {
|
|
10
10
|
const cwd = process.cwd();
|
|
11
11
|
const agentDir = path.join(cwd, '.agent');
|
|
12
|
-
const typeFolder = type === 'role' ? 'rules/roles' :
|
|
13
|
-
type === 'workflow' ? 'workflows' :
|
|
14
|
-
type === 'skill' ? `skills/${name}` :
|
|
15
|
-
'tools';
|
|
12
|
+
const typeFolder = type === 'role' ? 'rules/roles' : type === 'workflow' ? 'workflows' : 'tools';
|
|
16
13
|
const targetDir = path.join(agentDir, typeFolder);
|
|
17
|
-
const targetPath =
|
|
14
|
+
const targetPath = path.join(targetDir, `${name}.md`);
|
|
18
15
|
try {
|
|
19
16
|
const corePath = (await resolveInstalledCorePath(cwd)) ?? await resolveCorePath();
|
|
20
|
-
const coreTypeFolder = type === 'role' ? 'rules/roles' :
|
|
21
|
-
|
|
22
|
-
type === 'skill' ? 'skills' :
|
|
23
|
-
'templates';
|
|
24
|
-
const reservedPath = type === 'skill' ? path.join(corePath, coreTypeFolder, name) : path.join(corePath, coreTypeFolder, `${name}.md`);
|
|
17
|
+
const coreTypeFolder = type === 'role' ? 'rules/roles' : type === 'workflow' ? 'workflows' : 'templates';
|
|
18
|
+
const reservedPath = path.join(corePath, coreTypeFolder, `${name}.md`);
|
|
25
19
|
// 1. Reserved Namespace Check
|
|
26
20
|
try {
|
|
27
21
|
await fs.access(reservedPath);
|
|
@@ -86,25 +80,6 @@ severity: RECOMMENDED
|
|
|
86
80
|
|
|
87
81
|
## Output (REQUIRED)
|
|
88
82
|
- Expected result
|
|
89
|
-
`;
|
|
90
|
-
}
|
|
91
|
-
else if (type === 'skill') {
|
|
92
|
-
content = `# SKILL: ${name}
|
|
93
|
-
|
|
94
|
-
> [!NOTE]
|
|
95
|
-
> Define the identity and rules for this system skill.
|
|
96
|
-
|
|
97
|
-
## Objective
|
|
98
|
-
Explain what this skill enables the agent to do.
|
|
99
|
-
|
|
100
|
-
## 1. Capabilities
|
|
101
|
-
- (List technical capabilities here)
|
|
102
|
-
|
|
103
|
-
## 2. Execution Rules
|
|
104
|
-
1. (Add mandatory rules for using this skill)
|
|
105
|
-
|
|
106
|
-
## 3. Best Practices
|
|
107
|
-
- (Add usage recommendations)
|
|
108
83
|
`;
|
|
109
84
|
}
|
|
110
85
|
await fs.writeFile(targetPath, content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,QAAiB,KAAK;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { startRuntimeMcpServer } from '../../runtime/mcp/server.js';
|
|
2
|
-
import { checkMcpRegistration } from './register-mcp.js';
|
|
3
|
-
import { Logger } from '../../runtime/engine/logger.js';
|
|
4
2
|
export async function mcpCommand() {
|
|
5
|
-
const registration = await checkMcpRegistration();
|
|
6
|
-
if (!registration.antigravity && !registration.codex) {
|
|
7
|
-
Logger.warn('MCP', 'Server not registered in any MCP client. Run: agentic-workflow register-mcp');
|
|
8
|
-
}
|
|
9
3
|
await startRuntimeMcpServer();
|
|
10
4
|
}
|
|
11
5
|
//# sourceMappingURL=mcp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;
|
|
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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
|
-
import { Logger } from './logger.js';
|
|
3
2
|
export class RuntimeEngine {
|
|
4
3
|
dependencies;
|
|
5
4
|
executors;
|
|
@@ -8,62 +7,21 @@ export class RuntimeEngine {
|
|
|
8
7
|
this.executors = this.buildExecutorMap(dependencies.executors ?? []);
|
|
9
8
|
}
|
|
10
9
|
async run(state, workflow) {
|
|
11
|
-
let currentState = this.ensureSteps(state);
|
|
12
|
-
// Initial emit only if just starting
|
|
13
|
-
if (currentState.status === 'idle') {
|
|
14
|
-
await this.emitEvent('run_started', currentState, workflow);
|
|
15
|
-
await this.emitEvent('workflow_loaded', currentState, workflow);
|
|
16
|
-
await this.emitEvent('context_resolved', currentState, workflow);
|
|
17
|
-
await this.log('info', 'Workflow context resolved', { workflowId: workflow.id, runId: currentState.runId });
|
|
18
|
-
}
|
|
19
|
-
// Run loop
|
|
20
|
-
while (true) {
|
|
21
|
-
if (currentState.status === 'completed' || currentState.status === 'failed') {
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
const nextStep = currentState.steps.find(s => s.status !== 'completed');
|
|
25
|
-
if (!nextStep) {
|
|
26
|
-
// All steps completed
|
|
27
|
-
currentState = this.withStatus(currentState, 'completed');
|
|
28
|
-
await this.log('info', 'Workflow execution completed', { runId: currentState.runId });
|
|
29
|
-
await this.persistState(currentState, workflow, 'run_completed');
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
// Execute single step
|
|
33
|
-
currentState = await this.step(currentState, workflow);
|
|
34
|
-
}
|
|
35
|
-
return currentState;
|
|
36
|
-
}
|
|
37
|
-
async step(state, workflow) {
|
|
38
10
|
const normalized = this.ensureSteps(state);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
+
}
|
|
45
19
|
await this.runStep(step, normalized, workflow);
|
|
46
|
-
// Reload state after step execution to ensure we return the latest mutation
|
|
47
|
-
// In this in-memory implementation, 'normalized' was mutated by runStep wrappers?
|
|
48
|
-
// No, runStep calls withStepStatus which returns NEW state but runStep returns void.
|
|
49
|
-
// Wait, original implementations of runStep mutated state?
|
|
50
|
-
// Let's check the original runStep signature. It takes state but calls this.executeStep.
|
|
51
|
-
// REFACTOR NOTICE: The original runStep was assuming it was running inside the loop and managing state persistence internally.
|
|
52
|
-
// But it didn't return the new state to the caller of run().
|
|
53
|
-
// We need to fetch the latest state from the store because persistence happens inside runStep.
|
|
54
|
-
const latestState = await this.dependencies.stateStore.load();
|
|
55
|
-
if (!latestState)
|
|
56
|
-
throw new Error('State lost during step execution');
|
|
57
|
-
return latestState;
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
// Error handling is done inside runStep (emitError, persist failed state)
|
|
61
|
-
// We just need to return the failed state
|
|
62
|
-
const failedState = await this.dependencies.stateStore.load();
|
|
63
|
-
if (!failedState)
|
|
64
|
-
throw new Error('State lost during step failure');
|
|
65
|
-
return failedState;
|
|
66
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;
|
|
67
25
|
}
|
|
68
26
|
async runStep(step, state, workflow) {
|
|
69
27
|
const running = this.withStepStatus(state, step.id, 'running');
|
|
@@ -118,12 +76,26 @@ export class RuntimeEngine {
|
|
|
118
76
|
await this.dependencies.emitter.emit(event);
|
|
119
77
|
}
|
|
120
78
|
async log(level, message, data) {
|
|
121
|
-
|
|
122
|
-
|
|
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.
|
|
123
95
|
await this.dependencies.emitter.emit({
|
|
124
96
|
type: 'log',
|
|
125
97
|
timestamp: new Date().toISOString(),
|
|
126
|
-
runId: 'system',
|
|
98
|
+
runId: 'system', // or passed in data
|
|
127
99
|
payload: { level, message, ...data }
|
|
128
100
|
});
|
|
129
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/runtime/engine/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/runtime/engine/engine.ts"],"names":[],"mappings":"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"}
|