metheus-governance-mcp-cli 0.2.40 → 0.2.42
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/cli.mjs +35 -3
- package/package.json +1 -1
package/cli.mjs
CHANGED
|
@@ -676,9 +676,21 @@ function resolveWorkspaceDirForRequest(defaultWorkspaceDir, requestObj, toolArgs
|
|
|
676
676
|
const weakRequestCandidate = extractWeakWorkspaceCandidateFromRequest(requestObj);
|
|
677
677
|
const weakEnvCandidate = extractWeakWorkspaceCandidateFromEnv();
|
|
678
678
|
const homeCandidate = firstNonEmptyString([process.env.USERPROFILE, process.env.HOME]);
|
|
679
|
+
const strongEnvResolved = sanitizeWorkspaceCandidate(strongEnvCandidate);
|
|
680
|
+
const strongRequestResolved = sanitizeWorkspaceCandidate(strongRequestCandidate);
|
|
681
|
+
const weakRequestResolved = sanitizeWorkspaceCandidate(weakRequestCandidate);
|
|
682
|
+
|
|
683
|
+
if (strongRequestResolved) {
|
|
684
|
+
return strongRequestResolved;
|
|
685
|
+
}
|
|
686
|
+
if (strongEnvResolved) {
|
|
687
|
+
return strongEnvResolved;
|
|
688
|
+
}
|
|
689
|
+
if (weakRequestResolved) {
|
|
690
|
+
return weakRequestResolved;
|
|
691
|
+
}
|
|
692
|
+
|
|
679
693
|
const localPreferredCandidates = [
|
|
680
|
-
strongRequestCandidate,
|
|
681
|
-
weakRequestCandidate,
|
|
682
694
|
defaultWorkspaceDir,
|
|
683
695
|
process.cwd(),
|
|
684
696
|
];
|
|
@@ -3670,7 +3682,7 @@ function appendProjectHintToInitialize(responseObj, args, options = {}) {
|
|
|
3670
3682
|
"High-priority project bootstrap rule:",
|
|
3671
3683
|
...(useSafeToolAliases
|
|
3672
3684
|
? [
|
|
3673
|
-
"- This session
|
|
3685
|
+
"- This session supports safe MCP tool aliases (underscore format). Prefer `project_summary` / `ctxpack_ensure` / `workitem_list`; dotted names are also accepted.",
|
|
3674
3686
|
]
|
|
3675
3687
|
: []),
|
|
3676
3688
|
`- MUST call \`${projectSummaryTool}\` first when the user provides only a Project ID or asks project overview/agenda.`,
|
|
@@ -5250,6 +5262,26 @@ function runSelftest(flags = {}) {
|
|
|
5250
5262
|
keptExistingOk,
|
|
5251
5263
|
`input=${suspicious} recovered=${keptExisting || "(none)"}`,
|
|
5252
5264
|
);
|
|
5265
|
+
|
|
5266
|
+
const originalWorkspaceEnv = process.env.METHEUS_WORKSPACE_DIR;
|
|
5267
|
+
const forcedEnvWorkspace = path.join(tempRoot, "forced-workspace");
|
|
5268
|
+
const defaultWorkspace = path.join(tempRoot, "default-workspace");
|
|
5269
|
+
fs.mkdirSync(forcedEnvWorkspace, { recursive: true });
|
|
5270
|
+
fs.mkdirSync(defaultWorkspace, { recursive: true });
|
|
5271
|
+
process.env.METHEUS_WORKSPACE_DIR = forcedEnvWorkspace;
|
|
5272
|
+
const resolvedByEnvPriority = resolveWorkspaceDirForRequest(defaultWorkspace, {}, {});
|
|
5273
|
+
if (typeof originalWorkspaceEnv === "string") {
|
|
5274
|
+
process.env.METHEUS_WORKSPACE_DIR = originalWorkspaceEnv;
|
|
5275
|
+
} else {
|
|
5276
|
+
delete process.env.METHEUS_WORKSPACE_DIR;
|
|
5277
|
+
}
|
|
5278
|
+
const envPriorityOk =
|
|
5279
|
+
normalizedPathForCompare(resolvedByEnvPriority) === normalizedPathForCompare(forcedEnvWorkspace);
|
|
5280
|
+
push(
|
|
5281
|
+
"workspace_env_priority_over_default",
|
|
5282
|
+
envPriorityOk,
|
|
5283
|
+
`env=${forcedEnvWorkspace} default=${defaultWorkspace} resolved=${resolvedByEnvPriority || "(none)"}`,
|
|
5284
|
+
);
|
|
5253
5285
|
} catch (err) {
|
|
5254
5286
|
push("workspace_env_guard_test_setup", false, String(err?.message || err));
|
|
5255
5287
|
} finally {
|