@s_s/harmonia 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -392
- package/build/cli/setup.d.ts +4 -2
- package/build/cli/setup.js +44 -18
- package/build/cli/setup.js.map +1 -1
- package/build/core/action-registry.d.ts +36 -0
- package/build/core/action-registry.js +53 -0
- package/build/core/action-registry.js.map +1 -0
- package/build/core/artifacts.d.ts +66 -0
- package/build/core/artifacts.js +178 -0
- package/build/core/artifacts.js.map +1 -0
- package/build/core/dispatch.d.ts +6 -2
- package/build/core/dispatch.js +12 -7
- package/build/core/dispatch.js.map +1 -1
- package/build/core/overrides.d.ts +19 -26
- package/build/core/overrides.js +32 -98
- package/build/core/overrides.js.map +1 -1
- package/build/core/plugin.d.ts +86 -0
- package/build/core/plugin.js +332 -0
- package/build/core/plugin.js.map +1 -0
- package/build/core/registry.d.ts +4 -5
- package/build/core/registry.js +8 -9
- package/build/core/registry.js.map +1 -1
- package/build/core/reviews.d.ts +11 -12
- package/build/core/reviews.js +18 -21
- package/build/core/reviews.js.map +1 -1
- package/build/core/schema.d.ts +43 -15
- package/build/core/schema.js +124 -20
- package/build/core/schema.js.map +1 -1
- package/build/core/state.d.ts +26 -27
- package/build/core/state.js +36 -90
- package/build/core/state.js.map +1 -1
- package/build/core/steps.d.ts +13 -14
- package/build/core/steps.js +26 -29
- package/build/core/steps.js.map +1 -1
- package/build/core/tree-utils.d.ts +52 -0
- package/build/core/tree-utils.js +226 -0
- package/build/core/tree-utils.js.map +1 -0
- package/build/core/types.d.ts +389 -118
- package/build/core/types.js +15 -1
- package/build/core/types.js.map +1 -1
- package/build/core/workflow-engine.d.ts +68 -0
- package/build/core/workflow-engine.js +821 -0
- package/build/core/workflow-engine.js.map +1 -0
- package/build/core/workflow-validator.d.ts +22 -0
- package/build/core/workflow-validator.js +489 -0
- package/build/core/workflow-validator.js.map +1 -0
- package/build/index.js +25 -26
- package/build/index.js.map +1 -1
- package/build/setup/inject.d.ts +4 -4
- package/build/setup/inject.js +6 -6
- package/build/setup/inject.js.map +1 -1
- package/build/setup/templates.d.ts +9 -7
- package/build/setup/templates.js +68 -172
- package/build/setup/templates.js.map +1 -1
- package/build/tools/artifact-approve.d.ts +8 -0
- package/build/tools/{approve-doc.js → artifact-approve.js} +24 -16
- package/build/tools/artifact-approve.js.map +1 -0
- package/build/tools/artifact-schema.d.ts +12 -0
- package/build/tools/artifact-schema.js +148 -0
- package/build/tools/artifact-schema.js.map +1 -0
- package/build/tools/artifact-tools.d.ts +18 -0
- package/build/tools/artifact-tools.js +465 -0
- package/build/tools/artifact-tools.js.map +1 -0
- package/build/tools/{report-dispatch.d.ts → dispatch-report.d.ts} +7 -3
- package/build/tools/{report-dispatch.js → dispatch-report.js} +106 -28
- package/build/tools/dispatch-report.js.map +1 -0
- package/build/tools/engine-helpers.d.ts +41 -0
- package/build/tools/engine-helpers.js +182 -0
- package/build/tools/engine-helpers.js.map +1 -0
- package/build/tools/get-project-status.d.ts +6 -4
- package/build/tools/get-project-status.js +265 -248
- package/build/tools/get-project-status.js.map +1 -1
- package/build/tools/get-role-prompt.d.ts +1 -1
- package/build/tools/get-role-prompt.js +7 -41
- package/build/tools/get-role-prompt.js.map +1 -1
- package/build/tools/iteration-start.d.ts +7 -4
- package/build/tools/iteration-start.js +45 -19
- package/build/tools/iteration-start.js.map +1 -1
- package/build/tools/loop-done.d.ts +11 -0
- package/build/tools/loop-done.js +109 -0
- package/build/tools/loop-done.js.map +1 -0
- package/build/tools/patch-start.d.ts +4 -2
- package/build/tools/patch-start.js +36 -11
- package/build/tools/patch-start.js.map +1 -1
- package/build/tools/project-init.d.ts +5 -5
- package/build/tools/project-init.js +41 -10
- package/build/tools/project-init.js.map +1 -1
- package/build/tools/role-dispatch.d.ts +55 -0
- package/build/tools/role-dispatch.js +508 -0
- package/build/tools/role-dispatch.js.map +1 -0
- package/build/tools/utils.d.ts +6 -0
- package/build/tools/utils.js +36 -0
- package/build/tools/utils.js.map +1 -1
- package/package.json +1 -1
- package/{build/hooks/claude-code.js → workflows/dev/hooks/claude.js} +34 -23
- package/{build → workflows/dev}/hooks/content.js +27 -18
- package/workflows/dev/hooks/index.js +52 -0
- package/{build → workflows/dev}/hooks/openclaw.js +31 -20
- package/{build → workflows/dev}/hooks/opencode.js +31 -20
- package/workflows/dev/roles/architect.md +68 -28
- package/workflows/dev/roles/coordinator.md +103 -0
- package/workflows/dev/roles/developer.md +5 -5
- package/workflows/dev/roles/tester.md +19 -19
- package/workflows/dev/schemas/api-contract.json +42 -0
- package/workflows/dev/schemas/api-design.json +30 -13
- package/workflows/dev/schemas/data-model.json +20 -7
- package/workflows/dev/schemas/prd.completeness-check.json +6 -5
- package/workflows/dev/schemas/prd.draft.json +13 -5
- package/workflows/dev/schemas/prd.final.json +34 -11
- package/workflows/dev/schemas/prd.json +29 -11
- package/workflows/dev/schemas/prd.requirements.json +6 -5
- package/workflows/dev/schemas/prototype.json +6 -2
- package/workflows/dev/schemas/task-breakdown.coarse.json +4 -3
- package/workflows/dev/schemas/task-breakdown.dependencies.json +5 -4
- package/workflows/dev/schemas/task-breakdown.detailed.json +8 -3
- package/workflows/dev/schemas/task-breakdown.final.json +8 -3
- package/workflows/dev/schemas/task-breakdown.json +8 -3
- package/workflows/dev/schemas/tech-design.analysis.json +6 -5
- package/workflows/dev/schemas/tech-design.draft.json +14 -5
- package/workflows/dev/schemas/tech-design.final.json +39 -13
- package/workflows/dev/schemas/tech-design.json +34 -13
- package/workflows/dev/schemas/tech-design.research.json +21 -0
- package/workflows/dev/schemas/test-plan.json +17 -7
- package/workflows/dev/schemas/test-report.json +26 -9
- package/workflows/dev/schemas/user-stories.json +7 -3
- package/workflows/dev/tools/index.js +23 -0
- package/workflows/dev/workflow.json +234 -101
- package/build/core/docs.d.ts +0 -36
- package/build/core/docs.js +0 -96
- package/build/core/docs.js.map +0 -1
- package/build/core/workflow.d.ts +0 -33
- package/build/core/workflow.js +0 -140
- package/build/core/workflow.js.map +0 -1
- package/build/hooks/claude-code.d.ts +0 -20
- package/build/hooks/claude-code.js.map +0 -1
- package/build/hooks/content.d.ts +0 -43
- package/build/hooks/content.js.map +0 -1
- package/build/hooks/install.d.ts +0 -40
- package/build/hooks/install.js +0 -63
- package/build/hooks/install.js.map +0 -1
- package/build/hooks/openclaw.d.ts +0 -24
- package/build/hooks/openclaw.js.map +0 -1
- package/build/hooks/opencode.d.ts +0 -29
- package/build/hooks/opencode.js.map +0 -1
- package/build/tools/approve-doc.d.ts +0 -6
- package/build/tools/approve-doc.js.map +0 -1
- package/build/tools/dispatch-role.d.ts +0 -16
- package/build/tools/dispatch-role.js +0 -266
- package/build/tools/dispatch-role.js.map +0 -1
- package/build/tools/doc-tools.d.ts +0 -16
- package/build/tools/doc-tools.js +0 -425
- package/build/tools/doc-tools.js.map +0 -1
- package/build/tools/override-tools.d.ts +0 -6
- package/build/tools/override-tools.js +0 -129
- package/build/tools/override-tools.js.map +0 -1
- package/build/tools/report-dispatch.js.map +0 -1
- package/build/tools/set-scale.d.ts +0 -6
- package/build/tools/set-scale.js +0 -95
- package/build/tools/set-scale.js.map +0 -1
- package/build/tools/setup-project.d.ts +0 -8
- package/build/tools/setup-project.js +0 -116
- package/build/tools/setup-project.js.map +0 -1
- package/build/tools/update-phase.d.ts +0 -12
- package/build/tools/update-phase.js +0 -148
- package/build/tools/update-phase.js.map +0 -1
- package/workflows/dev/roles/pm.md +0 -99
- package/workflows/dev/schemas/deploy.json +0 -20
- package/workflows/dev/schemas/fsd.json +0 -25
- package/workflows/dev/schemas/project-plan.json +0 -20
- package/workflows/dev/schemas/retrospective.json +0 -20
- package/workflows/dev/schemas/risk-assessment.json +0 -15
- package/workflows/dev/schemas/tech-design.api-contract.json +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-project-status.js","sourceRoot":"","sources":["../../src/tools/get-project-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-project-status.js","sourceRoot":"","sources":["../../src/tools/get-project-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* with capability overrides injected into the prompt.
|
|
5
5
|
*/
|
|
6
6
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
7
|
-
export declare function registerGetRolePrompt(server: McpServer,
|
|
7
|
+
export declare function registerGetRolePrompt(server: McpServer, workflowsDir: string): void;
|
|
@@ -4,53 +4,19 @@
|
|
|
4
4
|
* with capability overrides injected into the prompt.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
import { loadWorkflow } from '../core/
|
|
7
|
+
import { loadWorkflow } from '../core/plugin.js';
|
|
8
8
|
import { getMergedOverrides } from '../core/overrides.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function buildOverridePromptSection(roleId, overrides) {
|
|
13
|
-
const roleOverrides = overrides.roles?.[roleId]?.capabilities;
|
|
14
|
-
if (!roleOverrides || Object.keys(roleOverrides).length === 0) {
|
|
15
|
-
return '';
|
|
16
|
-
}
|
|
17
|
-
const lines = [
|
|
18
|
-
'',
|
|
19
|
-
'## Enhanced Capabilities',
|
|
20
|
-
'',
|
|
21
|
-
'The following capabilities have been configured to use external tools.',
|
|
22
|
-
'When performing these actions, use the specified tool instead of built-in behavior.',
|
|
23
|
-
'',
|
|
24
|
-
];
|
|
25
|
-
for (const [capId, override] of Object.entries(roleOverrides)) {
|
|
26
|
-
const o = override;
|
|
27
|
-
const toolRef = o.type === 'mcp' && o.server
|
|
28
|
-
? `\`${o.server}\` MCP server's \`${o.tool}\` tool`
|
|
29
|
-
: `\`${o.tool}\` skill tool`;
|
|
30
|
-
let instruction = `- **${capId}**: Use ${toolRef}`;
|
|
31
|
-
if (o.params && Object.keys(o.params).length > 0) {
|
|
32
|
-
const paramStr = Object.entries(o.params)
|
|
33
|
-
.map(([k, v]) => `${k}: ${JSON.stringify(v)}`)
|
|
34
|
-
.join(', ');
|
|
35
|
-
instruction += ` with fixed parameters: ${paramStr}`;
|
|
36
|
-
}
|
|
37
|
-
if (o.notes) {
|
|
38
|
-
instruction += `. Note: ${o.notes}`;
|
|
39
|
-
}
|
|
40
|
-
lines.push(instruction);
|
|
41
|
-
}
|
|
42
|
-
return lines.join('\n');
|
|
43
|
-
}
|
|
44
|
-
export function registerGetRolePrompt(server, builtinDir, customDir) {
|
|
45
|
-
server.tool('role_prompt', "Get the system prompt and configuration for a specific role in the workflow. Includes any capability overrides configured at global or project level. Use this to understand what a role does or to set up an agent with the role's prompt.", {
|
|
9
|
+
import { buildOverrideSection } from './utils.js';
|
|
10
|
+
export function registerGetRolePrompt(server, workflowsDir) {
|
|
11
|
+
server.tool('role_prompt', "Get the system prompt and configuration for a specific role in the workflow. Includes any capability overrides configured at project level. Use this to understand what a role does or to set up an agent with the role's prompt.", {
|
|
46
12
|
workflow: z.string().default('dev').describe('Workflow name (default: dev)'),
|
|
47
|
-
role: z.string().describe('Role ID (e.g.
|
|
13
|
+
role: z.string().describe('Role ID (e.g. coordinator, architect, developer, tester)'),
|
|
48
14
|
project_name: z
|
|
49
15
|
.string()
|
|
50
16
|
.optional()
|
|
51
17
|
.describe('Project name — if provided, includes project-specific capability overrides in the prompt'),
|
|
52
18
|
}, async ({ workflow: workflowName, role, project_name }) => {
|
|
53
|
-
const wf = await loadWorkflow(
|
|
19
|
+
const wf = await loadWorkflow(workflowsDir, workflowName);
|
|
54
20
|
const roleDef = wf.roles[role];
|
|
55
21
|
if (!roleDef) {
|
|
56
22
|
const available = Object.keys(wf.roles).join(', ');
|
|
@@ -68,7 +34,7 @@ export function registerGetRolePrompt(server, builtinDir, customDir) {
|
|
|
68
34
|
let overrideSection = '';
|
|
69
35
|
if (project_name) {
|
|
70
36
|
const overrides = await getMergedOverrides(project_name);
|
|
71
|
-
overrideSection =
|
|
37
|
+
overrideSection = buildOverrideSection(role, overrides);
|
|
72
38
|
}
|
|
73
39
|
return {
|
|
74
40
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-role-prompt.js","sourceRoot":"","sources":["../../src/tools/get-role-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"get-role-prompt.js","sourceRoot":"","sources":["../../src/tools/get-role-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,YAAoB;IACzE,MAAM,CAAC,IAAI,CACP,aAAa,EACb,mOAAmO,EACnO;QACI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;QACrF,YAAY,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0FAA0F,CAAC;KAC5G,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,SAAS,IAAI,4BAA4B,YAAY,uBAAuB,SAAS,EAAE;qBAChG;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,qDAAqD;QACrD,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACzD,eAAe,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;wBACF,WAAW,OAAO,CAAC,EAAE,EAAE;wBACvB,EAAE;wBACF,kBAAkB;wBAClB,kBAAkB,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE;wBAC7C,cAAc,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE;wBAC3C,eAAe,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;wBAC7C,EAAE;wBACF,WAAW;wBACX,EAAE;wBACF,OAAO,CAAC,MAAM;wBACd,eAAe;qBAClB,CAAC,IAAI,CAAC,IAAI,CAAC;iBACf;aACJ;SACJ,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* MCP Tool: iteration_start
|
|
3
3
|
* Start a new iteration for a registered project.
|
|
4
4
|
*
|
|
5
|
-
* Creates the iteration directory (iter-N/), initializes state.json
|
|
6
|
-
* and updates the registry
|
|
5
|
+
* Creates the iteration directory (iter-N/), initializes state.json
|
|
6
|
+
* with node-based workflow state, and updates the registry.
|
|
7
|
+
*
|
|
8
|
+
* After initialization, starts the workflow engine to activate the root
|
|
9
|
+
* node and returns the initial nextAction.
|
|
7
10
|
*
|
|
8
11
|
* Guards:
|
|
9
12
|
* - Project must be registered (use project_init first)
|
|
10
|
-
* - If a current iteration exists,
|
|
13
|
+
* - If a current iteration exists, workflow must be completed (or use force)
|
|
11
14
|
*/
|
|
12
15
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
13
|
-
export declare function registerIterationStart(server: McpServer,
|
|
16
|
+
export declare function registerIterationStart(server: McpServer, workflowsDir: string): void;
|
|
@@ -2,19 +2,25 @@
|
|
|
2
2
|
* MCP Tool: iteration_start
|
|
3
3
|
* Start a new iteration for a registered project.
|
|
4
4
|
*
|
|
5
|
-
* Creates the iteration directory (iter-N/), initializes state.json
|
|
6
|
-
* and updates the registry
|
|
5
|
+
* Creates the iteration directory (iter-N/), initializes state.json
|
|
6
|
+
* with node-based workflow state, and updates the registry.
|
|
7
|
+
*
|
|
8
|
+
* After initialization, starts the workflow engine to activate the root
|
|
9
|
+
* node and returns the initial nextAction.
|
|
7
10
|
*
|
|
8
11
|
* Guards:
|
|
9
12
|
* - Project must be registered (use project_init first)
|
|
10
|
-
* - If a current iteration exists,
|
|
13
|
+
* - If a current iteration exists, workflow must be completed (or use force)
|
|
11
14
|
*/
|
|
12
15
|
import { z } from 'zod';
|
|
13
16
|
import { getProject, startIteration, getIterationDir, resolveContextDir } from '../core/registry.js';
|
|
14
|
-
import { loadWorkflow } from '../core/
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
import { loadWorkflow } from '../core/plugin.js';
|
|
18
|
+
import { initWorkflowState, readState } from '../core/state.js';
|
|
19
|
+
import { startWorkflow } from '../core/workflow-engine.js';
|
|
20
|
+
import { persistState } from '../core/state.js';
|
|
21
|
+
import { formatNextAction } from './engine-helpers.js';
|
|
22
|
+
export function registerIterationStart(server, workflowsDir) {
|
|
23
|
+
server.tool('iteration_start', 'Start a new iteration for a registered project. Creates iteration directory, initializes state, and updates registry. Call this after project_init to begin the first iteration, or after completing the workflow to start a new iteration.', {
|
|
18
24
|
project_name: z.string().describe('项目名称'),
|
|
19
25
|
force: z.boolean().optional().describe('强制开始新迭代,即使当前迭代未完成 (default: false)'),
|
|
20
26
|
}, async ({ project_name, force }) => {
|
|
@@ -32,25 +38,30 @@ export function registerIterationStart(server, builtinDir, customDir) {
|
|
|
32
38
|
isError: true,
|
|
33
39
|
};
|
|
34
40
|
}
|
|
35
|
-
// Guard: if there's a current iteration, check if
|
|
41
|
+
// Guard: if there's a current iteration, check if the workflow root is completed
|
|
36
42
|
if (entry.currentIteration > 0 && !force) {
|
|
37
43
|
try {
|
|
38
|
-
// Resolve the current iteration's context dir
|
|
39
44
|
const currentIterDir = entry.activeContext
|
|
40
45
|
? resolveContextDir(project_name, `iter-${entry.currentIteration}`)?.dir
|
|
41
46
|
: undefined;
|
|
42
47
|
const currentState = await readState(project_name, entry.currentIteration, currentIterDir);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
48
|
+
// Check if any node is still active or pending (workflow not done)
|
|
49
|
+
const incompleteNodes = Object.values(currentState.nodes).filter((n) => n.status === 'active' || n.status === 'pending');
|
|
50
|
+
if (incompleteNodes.length > 0) {
|
|
51
|
+
const summary = incompleteNodes
|
|
52
|
+
.slice(0, 5)
|
|
53
|
+
.map((n) => `${n.id} (${n.status})`)
|
|
54
|
+
.join(', ');
|
|
55
|
+
const moreText = incompleteNodes.length > 5 ? ` ...及其他 ${incompleteNodes.length - 5} 个节点` : '';
|
|
46
56
|
return {
|
|
47
57
|
content: [
|
|
48
58
|
{
|
|
49
59
|
type: 'text',
|
|
50
60
|
text: [
|
|
51
|
-
`当前迭代 (iter-${entry.currentIteration})
|
|
61
|
+
`当前迭代 (iter-${entry.currentIteration}) 工作流尚未完成。`,
|
|
62
|
+
`未完成节点: ${summary}${moreText}`,
|
|
52
63
|
``,
|
|
53
|
-
|
|
64
|
+
`请先完成当前迭代的工作流,或使用 force=true 强制开始新迭代。`,
|
|
54
65
|
].join('\n'),
|
|
55
66
|
},
|
|
56
67
|
],
|
|
@@ -65,9 +76,25 @@ export function registerIterationStart(server, builtinDir, customDir) {
|
|
|
65
76
|
// Start new iteration (creates directory, updates registry)
|
|
66
77
|
const newIteration = await startIteration(project_name);
|
|
67
78
|
// Load workflow and initialize state
|
|
68
|
-
const wf = await loadWorkflow(
|
|
79
|
+
const wf = await loadWorkflow(workflowsDir, entry.workflow);
|
|
69
80
|
const newIterDir = getIterationDir(project_name, newIteration);
|
|
70
|
-
const state = await
|
|
81
|
+
const state = await initWorkflowState(project_name, entry.dir, wf, newIteration, 'iteration', newIterDir);
|
|
82
|
+
// Start the workflow engine — activates root node and returns initial nextAction
|
|
83
|
+
const emptyGate = {
|
|
84
|
+
artifactExists: () => false,
|
|
85
|
+
artifactApproved: () => false,
|
|
86
|
+
artifactField: () => undefined,
|
|
87
|
+
};
|
|
88
|
+
const engineCtx = {
|
|
89
|
+
gate: emptyGate,
|
|
90
|
+
getRolePrompt: (role) => {
|
|
91
|
+
const roleDef = wf.roles[role];
|
|
92
|
+
return roleDef?.prompt ?? `Role "${role}" prompt not found`;
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
const result = startWorkflow(wf.definition, state, engineCtx);
|
|
96
|
+
await persistState(project_name, newIteration, result.state, newIterDir);
|
|
97
|
+
const nextActionText = formatNextAction(result.nextAction);
|
|
71
98
|
return {
|
|
72
99
|
content: [
|
|
73
100
|
{
|
|
@@ -78,10 +105,9 @@ export function registerIterationStart(server, builtinDir, customDir) {
|
|
|
78
105
|
`项目: ${project_name}`,
|
|
79
106
|
`源代码目录: ${entry.dir}`,
|
|
80
107
|
`工作流: ${wf.definition.name}`,
|
|
81
|
-
|
|
82
|
-
`当前阶段: ${state.currentPhase}`,
|
|
108
|
+
`可用角色: ${Object.keys(wf.roles).join(', ')}`,
|
|
83
109
|
``,
|
|
84
|
-
|
|
110
|
+
nextActionText,
|
|
85
111
|
].join('\n'),
|
|
86
112
|
},
|
|
87
113
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iteration-start.js","sourceRoot":"","sources":["../../src/tools/iteration-start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"iteration-start.js","sourceRoot":"","sources":["../../src/tools/iteration-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: loop_done
|
|
3
|
+
* Signal that a loop node should terminate after the current iteration completes.
|
|
4
|
+
*
|
|
5
|
+
* The coordinator calls this when it determines the loop's work is done
|
|
6
|
+
* (e.g., all items processed). The engine marks the loop's `done` flag,
|
|
7
|
+
* but does NOT immediately terminate — the current iteration's body
|
|
8
|
+
* continues to completion first.
|
|
9
|
+
*/
|
|
10
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
11
|
+
export declare function registerLoopDone(server: McpServer, workflowsDir: string): void;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: loop_done
|
|
3
|
+
* Signal that a loop node should terminate after the current iteration completes.
|
|
4
|
+
*
|
|
5
|
+
* The coordinator calls this when it determines the loop's work is done
|
|
6
|
+
* (e.g., all items processed). The engine marks the loop's `done` flag,
|
|
7
|
+
* but does NOT immediately terminate — the current iteration's body
|
|
8
|
+
* continues to completion first.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { readState } from '../core/state.js';
|
|
12
|
+
import { loadWorkflow } from '../core/plugin.js';
|
|
13
|
+
import { resolveActive, isError } from './utils.js';
|
|
14
|
+
import { processWorkflowEvent, formatNextAction } from './engine-helpers.js';
|
|
15
|
+
import { findNodeInTree } from '../core/tree-utils.js';
|
|
16
|
+
export function registerLoopDone(server, workflowsDir) {
|
|
17
|
+
server.tool('loop_done', "Signal that a loop node should terminate. The current iteration will complete normally, then the loop ends. Call this when the loop's work is finished (e.g., all items have been processed).", {
|
|
18
|
+
project_name: z.string().describe('Project name'),
|
|
19
|
+
node_id: z.string().describe('The loop node ID to terminate'),
|
|
20
|
+
}, async ({ project_name, node_id }) => {
|
|
21
|
+
try {
|
|
22
|
+
const ctx = await resolveActive(project_name);
|
|
23
|
+
if (isError(ctx))
|
|
24
|
+
return ctx;
|
|
25
|
+
// Load state and workflow to validate the node
|
|
26
|
+
const state = await readState(project_name, ctx.number, ctx.dir);
|
|
27
|
+
const wf = await loadWorkflow(workflowsDir, state.workflow);
|
|
28
|
+
// Validate: node exists and is a loop
|
|
29
|
+
const node = findNodeInTree(wf.definition.root, node_id);
|
|
30
|
+
if (!node) {
|
|
31
|
+
return {
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: `Node "${node_id}" not found in the workflow definition.`,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
isError: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (node.type !== 'loop') {
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Node "${node_id}" is a ${node.type} node, not a loop. Only loop nodes can be terminated with loop_done.`,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
isError: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Validate: loop is active
|
|
53
|
+
const nodeState = state.nodes[node_id];
|
|
54
|
+
if (!nodeState || nodeState.status !== 'active') {
|
|
55
|
+
return {
|
|
56
|
+
content: [
|
|
57
|
+
{
|
|
58
|
+
type: 'text',
|
|
59
|
+
text: `Loop "${node_id}" is not active (current status: ${nodeState?.status ?? 'unknown'}). Only active loops can be terminated.`,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// Check if already marked done
|
|
66
|
+
if (nodeState.done) {
|
|
67
|
+
return {
|
|
68
|
+
content: [
|
|
69
|
+
{
|
|
70
|
+
type: 'text',
|
|
71
|
+
text: `Loop "${node_id}" is already marked for termination (iteration ${nodeState.currentIteration}). It will end after the current iteration completes.`,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Process the loop_done event through the engine
|
|
77
|
+
const engineResult = await processWorkflowEvent(workflowsDir, project_name, ctx, {
|
|
78
|
+
type: 'loop_done',
|
|
79
|
+
nodeId: node_id,
|
|
80
|
+
});
|
|
81
|
+
const loopStateAfter = engineResult.state.nodes[node_id];
|
|
82
|
+
return {
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: 'text',
|
|
86
|
+
text: [
|
|
87
|
+
`Loop "${node_id}" marked for termination.`,
|
|
88
|
+
`Current iteration: ${loopStateAfter.currentIteration}`,
|
|
89
|
+
`The current iteration's body will complete normally, then the loop will end.`,
|
|
90
|
+
formatNextAction(engineResult.nextAction),
|
|
91
|
+
].join('\n'),
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
return {
|
|
98
|
+
content: [
|
|
99
|
+
{
|
|
100
|
+
type: 'text',
|
|
101
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
isError: true,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=loop-done.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-done.js","sourceRoot":"","sources":["../../src/tools/loop-done.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
* Start a new patch for a registered project.
|
|
4
4
|
*
|
|
5
5
|
* Creates the patch directory (patch-N/), initializes state.json with
|
|
6
|
-
*
|
|
6
|
+
* node-based workflow state, type=patch.
|
|
7
7
|
* Optionally links to an issue via issue_id.
|
|
8
8
|
*
|
|
9
|
+
* After initialization, starts the workflow engine and returns initial nextAction.
|
|
10
|
+
*
|
|
9
11
|
* Guards:
|
|
10
12
|
* - Project must be registered (use project_init first)
|
|
11
13
|
* - At least one iteration must have been started (patches fix existing work)
|
|
12
14
|
*/
|
|
13
15
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
14
|
-
export declare function registerPatchStart(server: McpServer,
|
|
16
|
+
export declare function registerPatchStart(server: McpServer, workflowsDir: string): void;
|
|
@@ -3,19 +3,23 @@
|
|
|
3
3
|
* Start a new patch for a registered project.
|
|
4
4
|
*
|
|
5
5
|
* Creates the patch directory (patch-N/), initializes state.json with
|
|
6
|
-
*
|
|
6
|
+
* node-based workflow state, type=patch.
|
|
7
7
|
* Optionally links to an issue via issue_id.
|
|
8
8
|
*
|
|
9
|
+
* After initialization, starts the workflow engine and returns initial nextAction.
|
|
10
|
+
*
|
|
9
11
|
* Guards:
|
|
10
12
|
* - Project must be registered (use project_init first)
|
|
11
13
|
* - At least one iteration must have been started (patches fix existing work)
|
|
12
14
|
*/
|
|
13
15
|
import { z } from 'zod';
|
|
14
16
|
import { getProject, startPatch, getPatchDir } from '../core/registry.js';
|
|
15
|
-
import { loadWorkflow } from '../core/
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
import { loadWorkflow } from '../core/plugin.js';
|
|
18
|
+
import { initWorkflowState, persistState } from '../core/state.js';
|
|
19
|
+
import { startWorkflow } from '../core/workflow-engine.js';
|
|
20
|
+
import { formatNextAction } from './engine-helpers.js';
|
|
21
|
+
export function registerPatchStart(server, workflowsDir) {
|
|
22
|
+
server.tool('patch_start', 'Start a new patch for a registered project. Patches are lightweight fix cycles for bug fixes and small improvements. Use this for resolving issues found during testing or from user feedback.', {
|
|
19
23
|
project_name: z.string().describe('项目名称'),
|
|
20
24
|
description: z.string().optional().describe('补丁描述(简要说明修复内容)'),
|
|
21
25
|
issue_id: z.string().optional().describe('关联的 issue ID(如果是修复某个 issue)'),
|
|
@@ -52,9 +56,33 @@ export function registerPatchStart(server, builtinDir, customDir) {
|
|
|
52
56
|
// Start new patch (creates directory, updates registry)
|
|
53
57
|
const newPatch = await startPatch(project_name);
|
|
54
58
|
// Load workflow and initialize state in patch mode
|
|
55
|
-
const wf = await loadWorkflow(
|
|
59
|
+
const wf = await loadWorkflow(workflowsDir, entry.workflow);
|
|
56
60
|
const patchDir = getPatchDir(project_name, newPatch);
|
|
57
|
-
const state = await
|
|
61
|
+
const state = await initWorkflowState(project_name, entry.dir, wf, newPatch, 'patch', patchDir);
|
|
62
|
+
// Persist patch metadata (issue_id, description)
|
|
63
|
+
if (issue_id || description) {
|
|
64
|
+
state.meta = {
|
|
65
|
+
...(description ? { description } : {}),
|
|
66
|
+
...(issue_id ? { issueId: issue_id } : {}),
|
|
67
|
+
};
|
|
68
|
+
await persistState(project_name, newPatch, state, patchDir);
|
|
69
|
+
}
|
|
70
|
+
// Start the workflow engine
|
|
71
|
+
const emptyGate = {
|
|
72
|
+
artifactExists: () => false,
|
|
73
|
+
artifactApproved: () => false,
|
|
74
|
+
artifactField: () => undefined,
|
|
75
|
+
};
|
|
76
|
+
const engineCtx = {
|
|
77
|
+
gate: emptyGate,
|
|
78
|
+
getRolePrompt: (role) => {
|
|
79
|
+
const roleDef = wf.roles[role];
|
|
80
|
+
return roleDef?.prompt ?? `Role "${role}" prompt not found`;
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
const result = startWorkflow(wf.definition, state, engineCtx);
|
|
84
|
+
await persistState(project_name, newPatch, result.state, patchDir);
|
|
85
|
+
const nextActionText = formatNextAction(result.nextAction);
|
|
58
86
|
const descLine = description ? `描述: ${description}` : '';
|
|
59
87
|
const issueLine = issue_id ? `关联 issue: ${issue_id}` : '';
|
|
60
88
|
return {
|
|
@@ -67,13 +95,10 @@ export function registerPatchStart(server, builtinDir, customDir) {
|
|
|
67
95
|
`项目: ${project_name}`,
|
|
68
96
|
`源代码目录: ${entry.dir}`,
|
|
69
97
|
`工作流: ${wf.definition.name}`,
|
|
70
|
-
`规模: small (固定)`,
|
|
71
|
-
`当前阶段: ${state.currentPhase}`,
|
|
72
|
-
`跳过阶段: clarify, design`,
|
|
73
98
|
descLine,
|
|
74
99
|
issueLine,
|
|
75
100
|
``,
|
|
76
|
-
|
|
101
|
+
nextActionText,
|
|
77
102
|
]
|
|
78
103
|
.filter(Boolean)
|
|
79
104
|
.join('\n'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-start.js","sourceRoot":"","sources":["../../src/tools/patch-start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"patch-start.js","sourceRoot":"","sources":["../../src/tools/patch-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool: project_init
|
|
3
|
-
* Register a new Harmonia project in the global registry.
|
|
3
|
+
* Register a new Harmonia project in the global registry and install workflow hooks.
|
|
4
4
|
*
|
|
5
|
-
* This tool
|
|
6
|
-
*
|
|
7
|
-
* first iteration.
|
|
5
|
+
* This tool registers the project AND installs workflow-defined hooks for the
|
|
6
|
+
* detected agent. It does NOT create iteration directories or initialize state.
|
|
7
|
+
* After registration, call `iteration_start` to begin the first iteration.
|
|
8
8
|
*
|
|
9
9
|
* Supports an optional `workflow` parameter. When multiple workflows are
|
|
10
10
|
* available and none is specified, returns an error with the available list
|
|
11
11
|
* so the agent can re-call with a specific choice.
|
|
12
12
|
*/
|
|
13
13
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
14
|
-
export declare function registerProjectInit(server: McpServer,
|
|
14
|
+
export declare function registerProjectInit(server: McpServer, workflowsDir: string): void;
|