ai-agent-config 2.8.5 → 2.8.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": "ai-agent-config",
3
- "version": "2.8.5",
3
+ "version": "2.8.6",
4
4
  "description": "Universal skill & workflow manager for AI coding assistants with bi-directional GitHub sync",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -47,7 +47,7 @@
47
47
  "bin/",
48
48
  "scripts/",
49
49
  "config/",
50
- ".agent/",
50
+ ".agents/",
51
51
  "index.js",
52
52
  "README.md"
53
53
  ]
@@ -22,7 +22,7 @@ function loadConfig() {
22
22
 
23
23
  // Target directory is the user's configured repository
24
24
  const targetDir = config.repository && config.repository.local
25
- ? path.join(config.repository.local, ".agent/skills")
25
+ ? path.join(config.repository.local, ".agents/skills")
26
26
  : path.join(require("os").homedir(), ".ai-agent/skills");
27
27
 
28
28
  return { sources, targetDir };
@@ -12,9 +12,9 @@ const mcpInstaller = require("./mcp-installer");
12
12
 
13
13
  const REPO_URL = "https://github.com/dongitran/ai-agent-config.git";
14
14
  const CACHE_DIR = path.join(platforms.HOME, ".ai-agent-config-cache");
15
- const REPO_SKILLS_DIR = path.join(CACHE_DIR, ".agent", "skills");
16
- const REPO_WORKFLOWS_DIR = path.join(CACHE_DIR, ".agent", "workflows");
17
- const PACKAGE_SKILLS_DIR = path.join(__dirname, "..", ".agent", "skills");
15
+ const REPO_SKILLS_DIR = path.join(CACHE_DIR, ".agents", "skills");
16
+ const REPO_WORKFLOWS_DIR = path.join(CACHE_DIR, ".agents", "workflows");
17
+ const PACKAGE_SKILLS_DIR = path.join(__dirname, "..", ".agents", "skills");
18
18
 
19
19
  /**
20
20
  * Copy directory recursively
@@ -88,7 +88,7 @@ function isRepoCached() {
88
88
  function getAvailableSkills() {
89
89
  const skills = new Set();
90
90
 
91
- // Add package bundled skills first (.agent/skills/)
91
+ // Add package bundled skills first (.agents/skills/)
92
92
  if (fs.existsSync(PACKAGE_SKILLS_DIR)) {
93
93
  const packageSkills = fs.readdirSync(PACKAGE_SKILLS_DIR);
94
94
  packageSkills.forEach((name) => {
@@ -259,8 +259,10 @@ function install(options = {}) {
259
259
  }
260
260
  }
261
261
 
262
- if (!isRepoCached()) {
263
- console.log("\n⚠️ Skills repository not cached. Run 'ai-agent update' first.");
262
+ // Check if we have any skills to install
263
+ console.log("DEBUG: PACKAGE_SKILLS_DIR =", PACKAGE_SKILLS_DIR, "- EXISTS:", fs.existsSync(PACKAGE_SKILLS_DIR));
264
+ if (!isRepoCached() && !fs.existsSync(PACKAGE_SKILLS_DIR)) {
265
+ console.log("⚠️ Skills repository not cached. Run 'ai-agent update' first.");
264
266
  return { skillsCount: 0, platformsCount: 0, workflowsCount: 0, details: [] };
265
267
  }
266
268
 
@@ -19,7 +19,7 @@ const JSON_MCP_KEY = "mcpServers"; // CamelCase
19
19
 
20
20
  /**
21
21
  * Get the MCP servers directory from the user's sync repo
22
- * @returns {string|null} Path to .agent/mcp-servers/ or null
22
+ * @returns {string|null} Path to .agents/mcp-servers/ or null
23
23
  */
24
24
  function getMcpServersDir() {
25
25
  const config = configManager.loadConfig();
@@ -27,7 +27,7 @@ function getMcpServersDir() {
27
27
  if (!repoLocal) return null;
28
28
 
29
29
  const expanded = repoLocal.replace(/^~/, process.env.HOME || process.env.USERPROFILE);
30
- const mcpDir = path.join(expanded, ".agent", "mcp-servers");
30
+ const mcpDir = path.join(expanded, ".agents", "mcp-servers");
31
31
  return fs.existsSync(mcpDir) ? mcpDir : null;
32
32
  }
33
33
 
@@ -197,7 +197,7 @@ function tryReuseAntigravitySession() {
197
197
 
198
198
  /**
199
199
  * Discover required secrets from MCP server configs in the repo
200
- * Scans .agent/mcp-servers/{name}/config.json for bitwardenEnv fields
200
+ * Scans .agents/mcp-servers/{name}/config.json for bitwardenEnv fields
201
201
  */
202
202
  function discoverRequiredSecrets() {
203
203
  const mcpInstaller = require("./mcp-installer");
@@ -166,24 +166,24 @@ class SyncManager {
166
166
  */
167
167
  gitCommit(message) {
168
168
  try {
169
- // Add all .agent/ files except bundled package skills
170
- execSync("git add .agent/workflows/", { cwd: this.repoPath, stdio: "pipe" });
169
+ // Add all .agents/ files except bundled package skills
170
+ execSync("git add .agents/workflows/", { cwd: this.repoPath, stdio: "pipe" });
171
171
 
172
172
  // Add MCP servers
173
- const mcpServersDir = path.join(this.repoPath, ".agent/mcp-servers");
173
+ const mcpServersDir = path.join(this.repoPath, ".agents/mcp-servers");
174
174
  if (fs.existsSync(mcpServersDir)) {
175
- execSync("git add .agent/mcp-servers/", { cwd: this.repoPath, stdio: "pipe" });
175
+ execSync("git add .agents/mcp-servers/", { cwd: this.repoPath, stdio: "pipe" });
176
176
  }
177
177
 
178
178
  // Add skills individually, excluding bundled ones
179
- const skillsDir = path.join(this.repoPath, ".agent/skills");
179
+ const skillsDir = path.join(this.repoPath, ".agents/skills");
180
180
  const bundledSkills = ["ai-agent-config", "config-manager"];
181
181
 
182
182
  if (fs.existsSync(skillsDir)) {
183
183
  const skills = fs.readdirSync(skillsDir);
184
184
  skills.forEach(skill => {
185
185
  if (!bundledSkills.includes(skill)) {
186
- spawnSync("git", ["add", `.agent/skills/${skill}`], {
186
+ spawnSync("git", ["add", `.agents/skills/${skill}`], {
187
187
  cwd: this.repoPath,
188
188
  stdio: "pipe"
189
189
  });