metheus-governance-mcp-cli 0.2.41 → 0.2.43
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 +58 -2
- package/package.json +1 -1
package/cli.mjs
CHANGED
|
@@ -676,9 +676,27 @@ 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 (weakRequestResolved) {
|
|
687
|
+
// Prefer client-provided current workspace over fallback env, unless request resolves to home.
|
|
688
|
+
if (isHomeWorkspaceRoot(weakRequestResolved)) {
|
|
689
|
+
if (strongEnvResolved && !isHomeWorkspaceRoot(strongEnvResolved)) {
|
|
690
|
+
return strongEnvResolved;
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
return weakRequestResolved;
|
|
694
|
+
}
|
|
695
|
+
if (strongEnvResolved) {
|
|
696
|
+
return strongEnvResolved;
|
|
697
|
+
}
|
|
698
|
+
|
|
679
699
|
const localPreferredCandidates = [
|
|
680
|
-
strongRequestCandidate,
|
|
681
|
-
weakRequestCandidate,
|
|
682
700
|
defaultWorkspaceDir,
|
|
683
701
|
process.cwd(),
|
|
684
702
|
];
|
|
@@ -5250,6 +5268,44 @@ function runSelftest(flags = {}) {
|
|
|
5250
5268
|
keptExistingOk,
|
|
5251
5269
|
`input=${suspicious} recovered=${keptExisting || "(none)"}`,
|
|
5252
5270
|
);
|
|
5271
|
+
|
|
5272
|
+
const originalWorkspaceEnv = process.env.METHEUS_WORKSPACE_DIR;
|
|
5273
|
+
const forcedEnvWorkspace = path.join(tempRoot, "forced-workspace");
|
|
5274
|
+
const defaultWorkspace = path.join(tempRoot, "default-workspace");
|
|
5275
|
+
const weakRequestWorkspace = path.join(tempRoot, "weak-request-workspace");
|
|
5276
|
+
fs.mkdirSync(forcedEnvWorkspace, { recursive: true });
|
|
5277
|
+
fs.mkdirSync(defaultWorkspace, { recursive: true });
|
|
5278
|
+
fs.mkdirSync(weakRequestWorkspace, { recursive: true });
|
|
5279
|
+
process.env.METHEUS_WORKSPACE_DIR = forcedEnvWorkspace;
|
|
5280
|
+
const resolvedByEnvPriority = resolveWorkspaceDirForRequest(defaultWorkspace, {}, {});
|
|
5281
|
+
const resolvedByWeakRequestPriority = resolveWorkspaceDirForRequest(
|
|
5282
|
+
defaultWorkspace,
|
|
5283
|
+
{
|
|
5284
|
+
params: {
|
|
5285
|
+
cwd: weakRequestWorkspace,
|
|
5286
|
+
},
|
|
5287
|
+
},
|
|
5288
|
+
{},
|
|
5289
|
+
);
|
|
5290
|
+
if (typeof originalWorkspaceEnv === "string") {
|
|
5291
|
+
process.env.METHEUS_WORKSPACE_DIR = originalWorkspaceEnv;
|
|
5292
|
+
} else {
|
|
5293
|
+
delete process.env.METHEUS_WORKSPACE_DIR;
|
|
5294
|
+
}
|
|
5295
|
+
const envPriorityOk =
|
|
5296
|
+
normalizedPathForCompare(resolvedByEnvPriority) === normalizedPathForCompare(forcedEnvWorkspace);
|
|
5297
|
+
push(
|
|
5298
|
+
"workspace_env_priority_over_default",
|
|
5299
|
+
envPriorityOk,
|
|
5300
|
+
`env=${forcedEnvWorkspace} default=${defaultWorkspace} resolved=${resolvedByEnvPriority || "(none)"}`,
|
|
5301
|
+
);
|
|
5302
|
+
const weakRequestPriorityOk =
|
|
5303
|
+
normalizedPathForCompare(resolvedByWeakRequestPriority) === normalizedPathForCompare(weakRequestWorkspace);
|
|
5304
|
+
push(
|
|
5305
|
+
"workspace_weak_request_priority_over_env",
|
|
5306
|
+
weakRequestPriorityOk,
|
|
5307
|
+
`request=${weakRequestWorkspace} env=${forcedEnvWorkspace} resolved=${resolvedByWeakRequestPriority || "(none)"}`,
|
|
5308
|
+
);
|
|
5253
5309
|
} catch (err) {
|
|
5254
5310
|
push("workspace_env_guard_test_setup", false, String(err?.message || err));
|
|
5255
5311
|
} finally {
|