@codemcp/workflows-opencode 6.6.4 → 6.8.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.
Files changed (2) hide show
  1. package/dist/index.js +58 -63
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -15653,9 +15653,10 @@ var WorkflowManager = class _WorkflowManager {
15653
15653
  this.loadPredefinedWorkflows();
15654
15654
  }
15655
15655
  /**
15656
- * Parse enabled domains from environment variable
15657
- * Supports both WORKFLOW_DOMAINS and VIBE_WORKFLOW_DOMAINS (legacy)
15658
- * WORKFLOW_DOMAINS takes precedence if both are set (modern, non-prefixed version preferred)
15656
+ * Parse enabled domains from environment variable.
15657
+ * WORKFLOW_DOMAINS is the canonical name.
15658
+ * VIBE_WORKFLOW_DOMAINS is supported as a legacy alias for backward compatibility.
15659
+ * WORKFLOW_DOMAINS takes precedence when both are set.
15659
15660
  */
15660
15661
  parseEnabledDomains() {
15661
15662
  const domainsEnv = process.env["WORKFLOW_DOMAINS"] || process.env["VIBE_WORKFLOW_DOMAINS"];
@@ -15665,7 +15666,7 @@ var WorkflowManager = class _WorkflowManager {
15665
15666
  }
15666
15667
  const domains = new Set(domainsEnv.split(",").map((d) => d.trim()).filter((d) => d));
15667
15668
  logger4.debug("Parsed enabled domains", {
15668
- source: process.env["WORKFLOW_DOMAINS"] ? "WORKFLOW_DOMAINS" : "VIBE_WORKFLOW_DOMAINS",
15669
+ source: process.env["WORKFLOW_DOMAINS"] ? "WORKFLOW_DOMAINS" : "VIBE_WORKFLOW_DOMAINS (legacy)",
15669
15670
  domains: Array.from(domains)
15670
15671
  });
15671
15672
  return domains;
@@ -15748,16 +15749,16 @@ var WorkflowManager = class _WorkflowManager {
15748
15749
  * Get all available workflows regardless of domain filtering
15749
15750
  */
15750
15751
  getAllAvailableWorkflows() {
15751
- const originalEnv = process.env.VIBE_WORKFLOW_DOMAINS;
15752
- process.env.VIBE_WORKFLOW_DOMAINS = "code,architecture,office,sdd";
15752
+ const originalEnv = process.env["WORKFLOW_DOMAINS"];
15753
+ process.env["WORKFLOW_DOMAINS"] = "code,architecture,office,sdd";
15753
15754
  try {
15754
15755
  const tempManager = new _WorkflowManager();
15755
15756
  return tempManager.getAvailableWorkflows();
15756
15757
  } finally {
15757
15758
  if (originalEnv !== void 0) {
15758
- process.env.VIBE_WORKFLOW_DOMAINS = originalEnv;
15759
+ process.env["WORKFLOW_DOMAINS"] = originalEnv;
15759
15760
  } else {
15760
- delete process.env.VIBE_WORKFLOW_DOMAINS;
15761
+ delete process.env["WORKFLOW_DOMAINS"];
15761
15762
  }
15762
15763
  }
15763
15764
  }
@@ -15841,7 +15842,7 @@ var WorkflowManager = class _WorkflowManager {
15841
15842
  if (!workflowName) {
15842
15843
  const availableWorkflows = this.getAvailableWorkflowsForProject(projectPath);
15843
15844
  if (availableWorkflows.length === 0) {
15844
- throw new Error("No workflows available. Please install a workflow or adjust VIBE_WORKFLOW_DOMAINS environment variable.");
15845
+ throw new Error("No workflows available. Please install a workflow or adjust WORKFLOW_DOMAINS environment variable.");
15845
15846
  }
15846
15847
  workflowName = availableWorkflows[0].name;
15847
15848
  }
@@ -18753,9 +18754,9 @@ function validateRequiredArgs(args, requiredFields) {
18753
18754
  function createConversationNotFoundResult(availableWorkflows = []) {
18754
18755
  if (availableWorkflows.length === 0) {
18755
18756
  return createErrorResult(
18756
- "No development conversation has been started for this project. Please call start_development() to begin. First, set up workflows by adjusting the VIBE_WORKFLOW_DOMAINS environment variable or copying a workflow to .vibe/workflows/ directory.",
18757
+ "No development conversation has been started for this project. Please call start_development() to begin. First, set up workflows by adjusting the WORKFLOW_DOMAINS environment variable or copying a workflow to .vibe/workflows/ directory.",
18757
18758
  {
18758
- suggestion: "Set VIBE_WORKFLOW_DOMAINS=code,architecture,office or copy a workflow file to .vibe/workflows/",
18759
+ suggestion: "Set WORKFLOW_DOMAINS=code,architecture,office or copy a workflow file to .vibe/workflows/",
18759
18760
  availableWorkflows: []
18760
18761
  }
18761
18762
  );
@@ -25778,9 +25779,10 @@ var WorkflowManager2 = class _WorkflowManager2 {
25778
25779
  this.loadPredefinedWorkflows();
25779
25780
  }
25780
25781
  /**
25781
- * Parse enabled domains from environment variable
25782
- * Supports both WORKFLOW_DOMAINS and VIBE_WORKFLOW_DOMAINS (legacy)
25783
- * WORKFLOW_DOMAINS takes precedence if both are set (modern, non-prefixed version preferred)
25782
+ * Parse enabled domains from environment variable.
25783
+ * WORKFLOW_DOMAINS is the canonical name.
25784
+ * VIBE_WORKFLOW_DOMAINS is supported as a legacy alias for backward compatibility.
25785
+ * WORKFLOW_DOMAINS takes precedence when both are set.
25784
25786
  */
25785
25787
  parseEnabledDomains() {
25786
25788
  const domainsEnv = process.env["WORKFLOW_DOMAINS"] || process.env["VIBE_WORKFLOW_DOMAINS"];
@@ -25790,7 +25792,7 @@ var WorkflowManager2 = class _WorkflowManager2 {
25790
25792
  }
25791
25793
  const domains = new Set(domainsEnv.split(",").map((d) => d.trim()).filter((d) => d));
25792
25794
  logger27.debug("Parsed enabled domains", {
25793
- source: process.env["WORKFLOW_DOMAINS"] ? "WORKFLOW_DOMAINS" : "VIBE_WORKFLOW_DOMAINS",
25795
+ source: process.env["WORKFLOW_DOMAINS"] ? "WORKFLOW_DOMAINS" : "VIBE_WORKFLOW_DOMAINS (legacy)",
25794
25796
  domains: Array.from(domains)
25795
25797
  });
25796
25798
  return domains;
@@ -25873,16 +25875,16 @@ var WorkflowManager2 = class _WorkflowManager2 {
25873
25875
  * Get all available workflows regardless of domain filtering
25874
25876
  */
25875
25877
  getAllAvailableWorkflows() {
25876
- const originalEnv = process.env.VIBE_WORKFLOW_DOMAINS;
25877
- process.env.VIBE_WORKFLOW_DOMAINS = "code,architecture,office,sdd";
25878
+ const originalEnv = process.env["WORKFLOW_DOMAINS"];
25879
+ process.env["WORKFLOW_DOMAINS"] = "code,architecture,office,sdd";
25878
25880
  try {
25879
25881
  const tempManager = new _WorkflowManager2();
25880
25882
  return tempManager.getAvailableWorkflows();
25881
25883
  } finally {
25882
25884
  if (originalEnv !== void 0) {
25883
- process.env.VIBE_WORKFLOW_DOMAINS = originalEnv;
25885
+ process.env["WORKFLOW_DOMAINS"] = originalEnv;
25884
25886
  } else {
25885
- delete process.env.VIBE_WORKFLOW_DOMAINS;
25887
+ delete process.env["WORKFLOW_DOMAINS"];
25886
25888
  }
25887
25889
  }
25888
25890
  }
@@ -25966,7 +25968,7 @@ var WorkflowManager2 = class _WorkflowManager2 {
25966
25968
  if (!workflowName) {
25967
25969
  const availableWorkflows = this.getAvailableWorkflowsForProject(projectPath);
25968
25970
  if (availableWorkflows.length === 0) {
25969
- throw new Error("No workflows available. Please install a workflow or adjust VIBE_WORKFLOW_DOMAINS environment variable.");
25971
+ throw new Error("No workflows available. Please install a workflow or adjust WORKFLOW_DOMAINS environment variable.");
25970
25972
  }
25971
25973
  workflowName = availableWorkflows[0].name;
25972
25974
  }
@@ -28164,7 +28166,7 @@ function createStartDevelopmentTool(projectDir, getServerContext, setBufferedIns
28164
28166
  const workflowManager = new WorkflowManager2();
28165
28167
  const availableWorkflows = workflowManager.getAvailableWorkflowsForProject(projectDir);
28166
28168
  const workflowNames = availableWorkflows.map((w) => w.name);
28167
- const toolDescription = workflowNames.length > 0 ? `Start a development workflow. Available: ${workflowNames.join(", ")}` : "Start a development workflow (no workflows available - check VIBE_WORKFLOW_DOMAINS)";
28169
+ const toolDescription = workflowNames.length > 0 ? `Start a development workflow. Available: ${workflowNames.join(", ")}` : "Start a development workflow (no workflows available - check WORKFLOW_DOMAINS)";
28168
28170
  return tool({
28169
28171
  description: toolDescription,
28170
28172
  args: {
@@ -28390,7 +28392,7 @@ var WorkflowsPlugin = async (input) => {
28390
28392
  directory: input.directory,
28391
28393
  worktree: input.worktree
28392
28394
  });
28393
- const envWorkflows = process.env.WORKFLOWS?.toLowerCase();
28395
+ const envWorkflows = process.env.WORKFLOW?.toLowerCase();
28394
28396
  let workflowsEnabled = envWorkflows === "off" ? false : true;
28395
28397
  logger37.info("Workflows state initialized", { workflowsEnabled });
28396
28398
  const planManager = new PlanManager2();
@@ -28673,48 +28675,41 @@ Current state: ${workflowsEnabled ? "enabled" : "disabled"}`
28673
28675
  }
28674
28676
  },
28675
28677
  /**
28676
- * Custom tools - matching MCP server tool names for consistency
28678
+ * Custom tools - always registered so /workflow on can re-enable them mid-session.
28679
+ * Each tool's execute method checks workflowsEnabled at call time and throws a
28680
+ * clear message when disabled, rather than silently failing.
28677
28681
  */
28678
- tool: {
28679
- /**
28680
- * Tool: start_development
28681
- * Starts a new development workflow in the current project
28682
- */
28683
- start_development: createStartDevelopmentTool(
28684
- input.directory,
28685
- getServerContext,
28686
- setBufferedInstructions
28687
- ),
28688
- /**
28689
- * Tool: proceed_to_phase
28690
- * Transitions to a new workflow phase
28691
- */
28692
- proceed_to_phase: createProceedToPhaseTool(
28693
- getServerContext,
28694
- setBufferedInstructions
28695
- ),
28696
- /**
28697
- * Tool: conduct_review
28698
- * Conducts a review before phase transition
28699
- */
28700
- conduct_review: createConductReviewTool(getServerContext),
28701
- /**
28702
- * Tool: reset_development
28703
- * Resets the current workflow and starts fresh
28704
- */
28705
- reset_development: createResetDevelopmentTool(
28706
- input.directory,
28707
- getServerContext
28708
- ),
28709
- /**
28710
- * Tool: setup_project_docs
28711
- * Creates project documentation artifacts
28712
- */
28713
- setup_project_docs: await createSetupProjectDocsTool(
28714
- input.directory,
28715
- getServerContext
28716
- )
28717
- }
28682
+ tool: await (async () => {
28683
+ const DISABLED_MSG = "Workflows are disabled (WORKFLOW=off). Enable with /workflow on or /wf on";
28684
+ const wrap = (def) => ({
28685
+ ...def,
28686
+ execute: async (args, ctx) => {
28687
+ if (!workflowsEnabled) {
28688
+ throw new Error(DISABLED_MSG);
28689
+ }
28690
+ return def.execute(args, ctx);
28691
+ }
28692
+ });
28693
+ return {
28694
+ start_development: wrap(
28695
+ createStartDevelopmentTool(
28696
+ input.directory,
28697
+ getServerContext,
28698
+ setBufferedInstructions
28699
+ )
28700
+ ),
28701
+ proceed_to_phase: wrap(
28702
+ createProceedToPhaseTool(getServerContext, setBufferedInstructions)
28703
+ ),
28704
+ conduct_review: wrap(createConductReviewTool(getServerContext)),
28705
+ reset_development: wrap(
28706
+ createResetDevelopmentTool(input.directory, getServerContext)
28707
+ ),
28708
+ setup_project_docs: wrap(
28709
+ await createSetupProjectDocsTool(input.directory, getServerContext)
28710
+ )
28711
+ };
28712
+ })()
28718
28713
  };
28719
28714
  };
28720
28715
  var plugin_default = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-opencode",
3
- "version": "6.6.4",
3
+ "version": "6.8.0",
4
4
  "description": "OpenCode plugin for structured development workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,8 +19,8 @@
19
19
  "rimraf": "^6.0.1",
20
20
  "tsup": "^8.0.0",
21
21
  "vitest": "4.0.18",
22
- "@codemcp/workflows-server": "6.6.4",
23
- "@codemcp/workflows-core": "6.6.4"
22
+ "@codemcp/workflows-server": "6.8.0",
23
+ "@codemcp/workflows-core": "6.8.0"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "@anthropic-ai/sdk": "*"