@ngocsangairvds/vsaf 3.2.5 → 3.2.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "3.2.5",
3
+ "version": "3.2.6",
4
4
  "description": "improve confluence format",
5
5
  "keywords": ["claude", "claude-code", "ai", "sdlc", "framework", "bmad", "gitnexus", "superpowers"],
6
6
  "bin": {
package/src/global.js CHANGED
@@ -131,7 +131,7 @@ async function setupVdsScriptsMcp() {
131
131
  ok('Đã tìm thấy file cấu hình ~/.vds/.env');
132
132
  }
133
133
 
134
- const cmd = `claude mcp add vds-orchestrator -- uv run --project "${mcpDir}" vds-mcp-server`;
134
+ const cmd = `claude mcp add vds-orchestrator -e VDS_SCRIPTS_ROOT="${destDir}" -- uv run --project "${mcpDir}" vds-mcp-server`;
135
135
 
136
136
  if (exec(cmd)) {
137
137
  ok('VDS Scripts MCP đã được cấu hình thành công');
package/src/status.js CHANGED
@@ -22,8 +22,8 @@ async function showStatus() {
22
22
  checkPath('AGENTS.md', 'Workflow rules (Codex/Gemini)');
23
23
  checkPath('.vsaf/_bmad', 'BMAD workspace');
24
24
  checkPath('.vsaf/docs', 'Project artifact folder');
25
- checkProjectSkillDir('.claude/skills', 'Project BMAD skills (.claude)');
26
- checkProjectSkillDir('.codex/skills', 'Project BMAD skills (.codex)');
25
+ checkProjectSkillDir('.claude/skills', 'Project skills (.claude)');
26
+ checkProjectSkillDir('.codex/skills', 'Project skills (.codex)');
27
27
  checkPath('.gitnexus', 'GitNexus index');
28
28
  console.log('');
29
29
  }
@@ -65,9 +65,12 @@ function checkProjectSkillDir(rel, label) {
65
65
  return;
66
66
  }
67
67
 
68
- const count = fs.readdirSync(dir).filter((name) => name.startsWith('bmad-')).length;
68
+ const entries = fs.readdirSync(dir);
69
+ const count = entries.length;
70
+ const bmad = entries.filter((n) => n.startsWith('bmad-')).length;
71
+ const vds = entries.filter((n) => n.startsWith('vds-')).length;
69
72
  if (count > 0) {
70
- console.log(` \x1b[32m✓\x1b[0m ${label} (${count})`);
73
+ console.log(` \x1b[32m✓\x1b[0m ${label} (${count}: ${bmad} bmad, ${vds} vds)`);
71
74
  } else {
72
75
  console.log(` \x1b[31m✗\x1b[0m ${label} (0)`);
73
76
  }
@@ -5,6 +5,7 @@ Context7: /websites/typer_tiangolo
5
5
  Key Features: typer.Typer(), @app.command(), Annotated options
6
6
  """
7
7
 
8
+ import os
8
9
  from pathlib import Path
9
10
 
10
11
  import typer
@@ -19,8 +20,8 @@ console = Console()
19
20
 
20
21
  PASS_THRU_CONTEXT = {"allow_extra_args": True, "ignore_unknown_options": True}
21
22
 
22
- # Get scripts directory (parent of vds_cli package)
23
- SCRIPT_DIR = Path(__file__).resolve().parent.parent.parent.parent
23
+ # Get scripts directory — prefer VDS_SCRIPTS_ROOT env var (set by vsaf MCP registration)
24
+ SCRIPT_DIR = Path(os.environ["VDS_SCRIPTS_ROOT"]) if "VDS_SCRIPTS_ROOT" in os.environ else Path(__file__).resolve().parent.parent.parent.parent
24
25
 
25
26
 
26
27
  @app.command()