@codemcp/workflows 6.16.0 → 6.17.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/package.json +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/cli/resources/workflows/epcc.yaml +1 -1
- package/packages/cli/resources/workflows/minor.yaml +1 -1
- package/packages/core/package.json +1 -1
- package/packages/core/resources/workflows/epcc.yaml +1 -1
- package/packages/core/resources/workflows/minor.yaml +1 -1
- package/packages/docs/.vitepress/dist/workflows/epcc.yaml +1 -1
- package/packages/docs/.vitepress/dist/workflows/minor.yaml +1 -1
- package/packages/docs/package.json +1 -1
- package/packages/mcp-server/package.json +1 -1
- package/packages/mcp-server/resources/workflows/epcc.yaml +1 -1
- package/packages/mcp-server/resources/workflows/minor.yaml +1 -1
- package/packages/opencode-plugin/dist/index.js +51 -43
- package/packages/opencode-plugin/package.json +1 -1
- package/packages/opencode-plugin/resources/workflows/epcc.yaml +1 -1
- package/packages/opencode-plugin/resources/workflows/minor.yaml +1 -1
- package/packages/opencode-tui-plugin/package.json +1 -1
- package/packages/visualizer/package.json +1 -1
- package/resources/workflows/epcc.yaml +1 -1
- package/resources/workflows/minor.yaml +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemcp/workflows",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.17.0",
|
|
4
4
|
"description": "A Model Context Protocol server that acts as an intelligent conversation state manager and development guide for LLMs, featuring comprehensive long-term memory with persistent project artifacts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "packages/cli/dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"typescript": "^5.9.3",
|
|
52
52
|
"vitepress": "^1.6.4",
|
|
53
53
|
"vitest": "4.0.18",
|
|
54
|
-
"@codemcp/workflows-core": "6.
|
|
54
|
+
"@codemcp/workflows-core": "6.17.0"
|
|
55
55
|
},
|
|
56
56
|
"lint-staged": {
|
|
57
57
|
"*.{ts,js,mts,cts,tsx,jsx}": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -33591,14 +33591,6 @@ function createProceedToPhaseTool(getServerContext, setBufferedInstructions, cli
|
|
|
33591
33591
|
const serverContext = await getServerContext();
|
|
33592
33592
|
const logger37 = serverContext.loggerFactory ? serverContext.loggerFactory("proceed_to_phase") : createLogger2("proceed_to_phase");
|
|
33593
33593
|
logger37.debug("proceed_to_phase called", { to: target_phase, reason });
|
|
33594
|
-
if (context3 && typeof context3.ask === "function") {
|
|
33595
|
-
await context3.ask({
|
|
33596
|
-
permission: "proceed_to_phase",
|
|
33597
|
-
patterns: ["*"],
|
|
33598
|
-
always: ["*"],
|
|
33599
|
-
metadata: { target_phase, reason }
|
|
33600
|
-
});
|
|
33601
|
-
}
|
|
33602
33594
|
try {
|
|
33603
33595
|
const handler = new ProceedToPhaseHandler();
|
|
33604
33596
|
const result3 = await handler.handle(
|
|
@@ -33677,14 +33669,6 @@ function createConductReviewTool(getServerContext) {
|
|
|
33677
33669
|
const serverContext = await getServerContext();
|
|
33678
33670
|
const logger37 = serverContext.loggerFactory ? serverContext.loggerFactory("conduct_review") : createLogger2("conduct_review");
|
|
33679
33671
|
logger37.debug("conduct_review called", { targetPhase: target_phase });
|
|
33680
|
-
if (context3 && typeof context3.ask === "function") {
|
|
33681
|
-
await context3.ask({
|
|
33682
|
-
permission: "conduct_review",
|
|
33683
|
-
patterns: ["*"],
|
|
33684
|
-
always: ["*"],
|
|
33685
|
-
metadata: { target_phase }
|
|
33686
|
-
});
|
|
33687
|
-
}
|
|
33688
33672
|
try {
|
|
33689
33673
|
const handler = new ConductReviewHandler();
|
|
33690
33674
|
const result3 = await handler.handle({ target_phase }, serverContext);
|
|
@@ -33718,14 +33702,6 @@ function createResetDevelopmentTool(projectDir, getServerContext) {
|
|
|
33718
33702
|
const serverContext = await getServerContext();
|
|
33719
33703
|
const logger37 = serverContext.loggerFactory ? serverContext.loggerFactory("reset_development") : createLogger2("reset_development");
|
|
33720
33704
|
logger37.debug("reset_development called", { confirm, delete_plan });
|
|
33721
|
-
if (context3 && typeof context3.ask === "function") {
|
|
33722
|
-
await context3.ask({
|
|
33723
|
-
permission: "reset_development",
|
|
33724
|
-
patterns: ["*"],
|
|
33725
|
-
always: ["*"],
|
|
33726
|
-
metadata: { delete_plan, reason }
|
|
33727
|
-
});
|
|
33728
|
-
}
|
|
33729
33705
|
if (!confirm) {
|
|
33730
33706
|
return `Reset requires confirm: true. Will delete conversation state${delete_plan ? " and plan file" : ""}.`;
|
|
33731
33707
|
}
|
|
@@ -33790,14 +33766,6 @@ function createStartDevelopmentTool(projectDir, getServerContext, setBufferedIns
|
|
|
33790
33766
|
const serverContext = await getServerContext();
|
|
33791
33767
|
const logger37 = serverContext.loggerFactory ? serverContext.loggerFactory("start_development") : createLogger2("start_development");
|
|
33792
33768
|
logger37.debug("start_development called", { workflow: args2.workflow });
|
|
33793
|
-
if (context3 && typeof context3.ask === "function") {
|
|
33794
|
-
await context3.ask({
|
|
33795
|
-
permission: "start_development",
|
|
33796
|
-
patterns: ["*"],
|
|
33797
|
-
always: ["*"],
|
|
33798
|
-
metadata: { workflow: args2.workflow }
|
|
33799
|
-
});
|
|
33800
|
-
}
|
|
33801
33769
|
try {
|
|
33802
33770
|
const handler = new StartDevelopmentHandler();
|
|
33803
33771
|
const result3 = await handler.handle(
|
|
@@ -33847,18 +33815,10 @@ async function createSetupProjectDocsTool(projectDir, getServerContext) {
|
|
|
33847
33815
|
requirements: z9.string().default("none").describe('Template name, "none", or file path'),
|
|
33848
33816
|
design: z9.string().default("freestyle").describe('Template name, "none", or file path')
|
|
33849
33817
|
},
|
|
33850
|
-
execute: async (args2,
|
|
33818
|
+
execute: async (args2, _context) => {
|
|
33851
33819
|
const serverContext = await getServerContext();
|
|
33852
33820
|
const logger37 = serverContext.loggerFactory ? serverContext.loggerFactory("setup_project_docs") : createLogger2("setup_project_docs");
|
|
33853
33821
|
logger37.debug("setup_project_docs called", args2);
|
|
33854
|
-
if (context3 && typeof context3.ask === "function") {
|
|
33855
|
-
await context3.ask({
|
|
33856
|
-
permission: "setup_project_docs",
|
|
33857
|
-
patterns: ["*"],
|
|
33858
|
-
always: ["*"],
|
|
33859
|
-
metadata: args2
|
|
33860
|
-
});
|
|
33861
|
-
}
|
|
33862
33822
|
try {
|
|
33863
33823
|
const handler = new SetupProjectDocsHandler();
|
|
33864
33824
|
const result3 = await handler.handle(
|
|
@@ -34375,6 +34335,51 @@ ${phaseInstructions}`
|
|
|
34375
34335
|
* an error if the agent is not allowed to use workflows.
|
|
34376
34336
|
*/
|
|
34377
34337
|
tool: await (async () => {
|
|
34338
|
+
const buildPermissionPatterns = (toolName, args2) => {
|
|
34339
|
+
const entry = (key, value) => {
|
|
34340
|
+
if (value === void 0 || value === null || value === "")
|
|
34341
|
+
return null;
|
|
34342
|
+
return `${key}: ${value}`;
|
|
34343
|
+
};
|
|
34344
|
+
switch (toolName) {
|
|
34345
|
+
case "start_development": {
|
|
34346
|
+
const patterns = [entry("workflow", args2["workflow"])].filter(
|
|
34347
|
+
(p) => p !== null
|
|
34348
|
+
);
|
|
34349
|
+
return patterns.length > 0 ? patterns : ["*"];
|
|
34350
|
+
}
|
|
34351
|
+
case "proceed_to_phase": {
|
|
34352
|
+
const patterns = [
|
|
34353
|
+
entry("target_phase", args2["target_phase"]),
|
|
34354
|
+
entry("reason", args2["reason"])
|
|
34355
|
+
].filter((p) => p !== null);
|
|
34356
|
+
return patterns.length > 0 ? patterns : ["*"];
|
|
34357
|
+
}
|
|
34358
|
+
case "conduct_review": {
|
|
34359
|
+
const patterns = [
|
|
34360
|
+
entry("target_phase", args2["target_phase"])
|
|
34361
|
+
].filter((p) => p !== null);
|
|
34362
|
+
return patterns.length > 0 ? patterns : ["*"];
|
|
34363
|
+
}
|
|
34364
|
+
case "reset_development": {
|
|
34365
|
+
const patterns = [
|
|
34366
|
+
args2["delete_plan"] === true ? entry("delete_plan", args2["delete_plan"]) : null,
|
|
34367
|
+
entry("reason", args2["reason"])
|
|
34368
|
+
].filter((p) => p !== null);
|
|
34369
|
+
return patterns.length > 0 ? patterns : ["*"];
|
|
34370
|
+
}
|
|
34371
|
+
case "setup_project_docs": {
|
|
34372
|
+
const patterns = [
|
|
34373
|
+
entry("architecture", args2["architecture"]),
|
|
34374
|
+
entry("requirements", args2["requirements"]),
|
|
34375
|
+
entry("design", args2["design"])
|
|
34376
|
+
].filter((p) => p !== null);
|
|
34377
|
+
return patterns.length > 0 ? patterns : ["*"];
|
|
34378
|
+
}
|
|
34379
|
+
default:
|
|
34380
|
+
return ["*"];
|
|
34381
|
+
}
|
|
34382
|
+
};
|
|
34378
34383
|
const wrap = (toolName, def) => ({
|
|
34379
34384
|
...def,
|
|
34380
34385
|
execute: async (args2, ctx) => {
|
|
@@ -34387,9 +34392,12 @@ ${phaseInstructions}`
|
|
|
34387
34392
|
await Effect_exports.runPromise(
|
|
34388
34393
|
ctx.ask({
|
|
34389
34394
|
permission: toolName,
|
|
34390
|
-
patterns:
|
|
34395
|
+
patterns: buildPermissionPatterns(
|
|
34396
|
+
toolName,
|
|
34397
|
+
args2
|
|
34398
|
+
),
|
|
34391
34399
|
always: ["*"],
|
|
34392
|
-
metadata:
|
|
34400
|
+
metadata: args2
|
|
34393
34401
|
})
|
|
34394
34402
|
);
|
|
34395
34403
|
return def.execute(args2, ctx);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'epcc'
|
|
4
|
-
description:
|
|
4
|
+
description: 'Explore, Plan, Code, Commit - ideal for features and iterative development'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# yaml-language-server: $schema=../state-machine-schema.json
|
|
2
2
|
---
|
|
3
3
|
name: 'minor'
|
|
4
|
-
description: 'A streamlined workflow for small-impact changes
|
|
4
|
+
description: 'A streamlined workflow for small-impact changes. Only use it for really trivial cases.'
|
|
5
5
|
initial_state: 'explore'
|
|
6
6
|
|
|
7
7
|
# Enhanced metadata for better discoverability
|