@codemcp/workflows-opencode 6.6.3 → 6.7.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/dist/index.js +61 -63
- 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
|
-
*
|
|
15658
|
-
*
|
|
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
|
|
15752
|
-
process.env
|
|
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
|
|
15759
|
+
process.env["WORKFLOW_DOMAINS"] = originalEnv;
|
|
15759
15760
|
} else {
|
|
15760
|
-
delete process.env
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
25783
|
-
*
|
|
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
|
|
25877
|
-
process.env
|
|
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
|
|
25885
|
+
process.env["WORKFLOW_DOMAINS"] = originalEnv;
|
|
25884
25886
|
} else {
|
|
25885
|
-
delete process.env
|
|
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
|
|
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
|
|
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.
|
|
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();
|
|
@@ -28514,6 +28516,7 @@ var WorkflowsPlugin = async (input) => {
|
|
|
28514
28516
|
sessionID: hookInput.sessionID,
|
|
28515
28517
|
messageID: hookInput.messageID || output.message.id,
|
|
28516
28518
|
type: "text",
|
|
28519
|
+
synthetic: true,
|
|
28517
28520
|
text: `No Active Workflow Use the \`start_development\` tool to begin.`
|
|
28518
28521
|
});
|
|
28519
28522
|
return;
|
|
@@ -28530,6 +28533,7 @@ var WorkflowsPlugin = async (input) => {
|
|
|
28530
28533
|
sessionID: hookInput.sessionID,
|
|
28531
28534
|
messageID: hookInput.messageID || output.message.id,
|
|
28532
28535
|
type: "text",
|
|
28536
|
+
synthetic: true,
|
|
28533
28537
|
text: `No Active Workflow Use the \`start_development\` tool to begin.`
|
|
28534
28538
|
});
|
|
28535
28539
|
return;
|
|
@@ -28554,6 +28558,7 @@ var WorkflowsPlugin = async (input) => {
|
|
|
28554
28558
|
sessionID: hookInput.sessionID,
|
|
28555
28559
|
messageID: hookInput.messageID || output.message.id,
|
|
28556
28560
|
type: "text",
|
|
28561
|
+
synthetic: true,
|
|
28557
28562
|
text: instructionText
|
|
28558
28563
|
});
|
|
28559
28564
|
logger37.info("chat.message: injected phase instructions", {
|
|
@@ -28670,48 +28675,41 @@ Current state: ${workflowsEnabled ? "enabled" : "disabled"}`
|
|
|
28670
28675
|
}
|
|
28671
28676
|
},
|
|
28672
28677
|
/**
|
|
28673
|
-
* Custom tools -
|
|
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.
|
|
28674
28681
|
*/
|
|
28675
|
-
tool: {
|
|
28676
|
-
|
|
28677
|
-
|
|
28678
|
-
|
|
28679
|
-
|
|
28680
|
-
|
|
28681
|
-
|
|
28682
|
-
|
|
28683
|
-
|
|
28684
|
-
|
|
28685
|
-
|
|
28686
|
-
|
|
28687
|
-
|
|
28688
|
-
|
|
28689
|
-
|
|
28690
|
-
|
|
28691
|
-
|
|
28692
|
-
|
|
28693
|
-
|
|
28694
|
-
|
|
28695
|
-
|
|
28696
|
-
|
|
28697
|
-
|
|
28698
|
-
|
|
28699
|
-
|
|
28700
|
-
|
|
28701
|
-
|
|
28702
|
-
|
|
28703
|
-
|
|
28704
|
-
|
|
28705
|
-
|
|
28706
|
-
/**
|
|
28707
|
-
* Tool: setup_project_docs
|
|
28708
|
-
* Creates project documentation artifacts
|
|
28709
|
-
*/
|
|
28710
|
-
setup_project_docs: await createSetupProjectDocsTool(
|
|
28711
|
-
input.directory,
|
|
28712
|
-
getServerContext
|
|
28713
|
-
)
|
|
28714
|
-
}
|
|
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
|
+
})()
|
|
28715
28713
|
};
|
|
28716
28714
|
};
|
|
28717
28715
|
var plugin_default = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemcp/workflows-opencode",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.7.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-core": "6.
|
|
23
|
-
"@codemcp/workflows-server": "6.
|
|
22
|
+
"@codemcp/workflows-core": "6.7.0",
|
|
23
|
+
"@codemcp/workflows-server": "6.7.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"@anthropic-ai/sdk": "*"
|