@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows",
3
- "version": "6.16.0",
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.16.0"
54
+ "@codemcp/workflows-core": "6.17.0"
55
55
  },
56
56
  "lint-staged": {
57
57
  "*.{ts,js,mts,cts,tsx,jsx}": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-cli",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "description": "CLI tools for responsible-vibe development workflows",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,7 +1,7 @@
1
1
  # yaml-language-server: $schema=../state-machine-schema.json
2
2
  ---
3
3
  name: 'epcc'
4
- description: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-core",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  # yaml-language-server: $schema=../state-machine-schema.json
2
2
  ---
3
3
  name: 'epcc'
4
- description: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-docs",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "description": "Documentation site for Responsible Vibe MCP",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-server",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "description": "MCP server for responsible-vibe development workflows - provides structured workflow guidance",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +1,7 @@
1
1
  # yaml-language-server: $schema=../state-machine-schema.json
2
2
  ---
3
3
  name: 'epcc'
4
- description: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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, context3) => {
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-opencode",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "description": "OpenCode plugin for structured development workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  # yaml-language-server: $schema=../state-machine-schema.json
2
2
  ---
3
3
  name: 'epcc'
4
- description: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-opencode-tui",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "description": "OpenCode TUI sidebar plugin that displays the current responsible-vibe workflow phase and name",
5
5
  "main": "workflows-phase.tsx",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-visualizer",
3
- "version": "6.16.0",
3
+ "version": "6.17.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.ts",
6
6
  "module": "dist/index.ts",
@@ -1,7 +1,7 @@
1
1
  # yaml-language-server: $schema=../state-machine-schema.json
2
2
  ---
3
3
  name: 'epcc'
4
- description: "A comprehensive development workflow based on Anthropic's best practices: Explore, Plan, Code, Commit - ideal for smaller features and iterative development"
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: Explore (analysis + design) Implement (code + test + commit) - optimized for minor enhancements'
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