metheus-governance-mcp-cli 0.2.18 → 0.2.20

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/cli.mjs +41 -25
  2. package/package.json +1 -1
package/cli.mjs CHANGED
@@ -388,8 +388,13 @@ function extractStrongWorkspaceCandidateFromRequest(requestObj, toolArgs) {
388
388
  }
389
389
 
390
390
  function extractWorkspaceCandidateFromRequest(requestObj, toolArgs) {
391
- const strongCandidate = extractStrongWorkspaceCandidateFromRequest(requestObj, toolArgs);
392
- if (strongCandidate) return strongCandidate;
391
+ return firstNonEmptyString([
392
+ extractStrongWorkspaceCandidateFromRequest(requestObj, toolArgs),
393
+ extractWeakWorkspaceCandidateFromRequest(requestObj),
394
+ ]);
395
+ }
396
+
397
+ function extractWeakWorkspaceCandidateFromRequest(requestObj) {
393
398
  const params = safeObject(requestObj?.params);
394
399
  const meta = safeObject(params._meta);
395
400
  const rawCandidate = firstNonEmptyString([
@@ -421,8 +426,14 @@ function extractStrongWorkspaceCandidateFromEnv() {
421
426
  }
422
427
 
423
428
  function extractWorkspaceCandidateFromEnv() {
424
- const rawCandidate = firstNonEmptyString([
429
+ return firstNonEmptyString([
425
430
  extractStrongWorkspaceCandidateFromEnv(),
431
+ extractWeakWorkspaceCandidateFromEnv(),
432
+ ]);
433
+ }
434
+
435
+ function extractWeakWorkspaceCandidateFromEnv() {
436
+ const rawCandidate = firstNonEmptyString([
426
437
  process.env.WORKSPACE_DIR,
427
438
  process.env.WORKSPACE_FOLDER,
428
439
  process.env.VSCODE_WORKSPACE_FOLDER,
@@ -434,10 +445,20 @@ function extractWorkspaceCandidateFromEnv() {
434
445
  }
435
446
 
436
447
  function resolveWorkspaceDirForRequest(defaultWorkspaceDir, requestObj, toolArgs) {
437
- const requestCandidate = extractWorkspaceCandidateFromRequest(requestObj, toolArgs);
438
- const envCandidate = extractWorkspaceCandidateFromEnv();
448
+ const strongRequestCandidate = extractStrongWorkspaceCandidateFromRequest(requestObj, toolArgs);
449
+ const strongEnvCandidate = extractStrongWorkspaceCandidateFromEnv();
450
+ const weakRequestCandidate = extractWeakWorkspaceCandidateFromRequest(requestObj);
451
+ const weakEnvCandidate = extractWeakWorkspaceCandidateFromEnv();
439
452
  const homeCandidate = firstNonEmptyString([process.env.USERPROFILE, process.env.HOME]);
440
- for (const rawCandidate of [requestCandidate, envCandidate, defaultWorkspaceDir, process.cwd(), homeCandidate]) {
453
+ for (const rawCandidate of [
454
+ strongRequestCandidate,
455
+ strongEnvCandidate,
456
+ weakRequestCandidate,
457
+ weakEnvCandidate,
458
+ defaultWorkspaceDir,
459
+ process.cwd(),
460
+ homeCandidate,
461
+ ]) {
441
462
  const resolved = sanitizeWorkspaceCandidate(rawCandidate);
442
463
  if (resolved) return resolved;
443
464
  }
@@ -3793,30 +3814,25 @@ async function runProxy(flags) {
3793
3814
  }
3794
3815
 
3795
3816
  const { name: toolName, args: toolArgs } = extractToolCall(requestObj);
3796
- let requestWorkspaceCandidate = "";
3797
3817
  let strongRequestWorkspaceCandidate = "";
3818
+ let weakRequestWorkspaceCandidate = "";
3798
3819
  let strongEnvWorkspaceCandidate = "";
3820
+ let weakEnvWorkspaceCandidate = "";
3799
3821
  if (!args.explicitPinnedWorkspace) {
3800
3822
  strongRequestWorkspaceCandidate = extractStrongWorkspaceCandidateFromRequest(requestObj, toolArgs);
3801
- requestWorkspaceCandidate = firstNonEmptyString([
3802
- strongRequestWorkspaceCandidate,
3803
- extractWorkspaceCandidateFromRequest(requestObj, toolArgs),
3804
- ]);
3823
+ weakRequestWorkspaceCandidate = extractWeakWorkspaceCandidateFromRequest(requestObj);
3805
3824
  strongEnvWorkspaceCandidate = extractStrongWorkspaceCandidateFromEnv();
3806
- const envWorkspaceCandidate = firstNonEmptyString([
3807
- strongEnvWorkspaceCandidate,
3808
- extractWorkspaceCandidateFromEnv(),
3809
- ]);
3810
- if (requestWorkspaceCandidate) {
3811
- sessionWorkspaceDir = requestWorkspaceCandidate;
3812
- if (strongRequestWorkspaceCandidate) {
3813
- sessionWorkspaceTrusted = true;
3814
- }
3815
- } else if (envWorkspaceCandidate) {
3816
- sessionWorkspaceDir = envWorkspaceCandidate;
3817
- if (strongEnvWorkspaceCandidate) {
3818
- sessionWorkspaceTrusted = true;
3819
- }
3825
+ weakEnvWorkspaceCandidate = extractWeakWorkspaceCandidateFromEnv();
3826
+ if (strongRequestWorkspaceCandidate) {
3827
+ sessionWorkspaceDir = strongRequestWorkspaceCandidate;
3828
+ sessionWorkspaceTrusted = true;
3829
+ } else if (strongEnvWorkspaceCandidate) {
3830
+ sessionWorkspaceDir = strongEnvWorkspaceCandidate;
3831
+ sessionWorkspaceTrusted = true;
3832
+ } else if (weakRequestWorkspaceCandidate) {
3833
+ sessionWorkspaceDir = weakRequestWorkspaceCandidate;
3834
+ } else if (weakEnvWorkspaceCandidate) {
3835
+ sessionWorkspaceDir = weakEnvWorkspaceCandidate;
3820
3836
  }
3821
3837
  }
3822
3838
  const workspaceSignalTrusted =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metheus-governance-mcp-cli",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "Metheus Governance MCP CLI (setup + stdio proxy)",
5
5
  "type": "module",
6
6
  "files": [