@devxiyang/agent-skill 0.0.2 → 0.0.3

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.
@@ -1,7 +1,9 @@
1
1
  import type { SkillValidator } from '../validator.js';
2
2
  /**
3
3
  * Default SkillValidator for Node.js environments.
4
- * - checkBin: walks PATH segments and probes for the executable via fs.access
4
+ * - checkBin: walks an expanded PATH (process PATH + well-known install locations)
5
+ * so that tools installed via Homebrew, winget, pip, etc. are found even when
6
+ * the process was launched with a minimal PATH (e.g. Electron from Dock/Finder).
5
7
  * - checkEnv: reads process.env
6
8
  * - checkOs: compares against process.platform
7
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/validators/node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAkC9B,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/validators/node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwCtD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAiC9B,CAAC"}
@@ -1,21 +1,56 @@
1
1
  import fs from 'node:fs/promises';
2
+ import os from 'node:os';
2
3
  import path from 'node:path';
4
+ /**
5
+ * Returns well-known binary directories that are commonly missing from PATH
6
+ * when a process is launched outside a shell (e.g. Electron from Dock/Finder,
7
+ * GUI apps, some CI environments). These are prepended to the process PATH so
8
+ * that checkBin reflects what is actually installed on the system.
9
+ */
10
+ function extraPaths() {
11
+ const home = os.homedir();
12
+ if (process.platform === 'darwin') {
13
+ return [
14
+ '/opt/homebrew/bin', // Homebrew — Apple Silicon
15
+ '/opt/homebrew/sbin',
16
+ '/usr/local/bin', // Homebrew — Intel, manually installed tools
17
+ '/usr/local/sbin',
18
+ path.join(home, '.local', 'bin'), // pip --user, pipx, etc.
19
+ ];
20
+ }
21
+ if (process.platform === 'win32') {
22
+ const localAppData = process.env.LOCALAPPDATA ?? path.join(home, 'AppData', 'Local');
23
+ const appData = process.env.APPDATA ?? path.join(home, 'AppData', 'Roaming');
24
+ return [
25
+ path.join(localAppData, 'Microsoft', 'WindowsApps'), // winget-installed tools
26
+ path.join(localAppData, 'Programs', 'Git', 'cmd'), // Git for Windows (user install)
27
+ 'C:\\Program Files\\Git\\cmd', // Git for Windows (system install)
28
+ path.join(appData, 'npm'), // npm global binaries
29
+ ];
30
+ }
31
+ // Linux
32
+ return [
33
+ '/usr/local/bin',
34
+ path.join(home, '.local', 'bin'), // pip --user, pipx, etc.
35
+ '/snap/bin', // snap packages
36
+ ];
37
+ }
3
38
  /**
4
39
  * Default SkillValidator for Node.js environments.
5
- * - checkBin: walks PATH segments and probes for the executable via fs.access
40
+ * - checkBin: walks an expanded PATH (process PATH + well-known install locations)
41
+ * so that tools installed via Homebrew, winget, pip, etc. are found even when
42
+ * the process was launched with a minimal PATH (e.g. Electron from Dock/Finder).
6
43
  * - checkEnv: reads process.env
7
44
  * - checkOs: compares against process.platform
8
45
  */
9
46
  export const defaultValidator = {
10
47
  /**
11
- * Checks whether a binary exists somewhere on PATH.
48
+ * Checks whether a binary exists on PATH or in well-known install locations.
12
49
  * On Windows, also probes .exe / .cmd / .bat extensions.
13
50
  */
14
51
  async checkBin(name) {
15
- const pathEnv = process.env.PATH;
16
- if (!pathEnv)
17
- return false;
18
- const segments = pathEnv.split(path.delimiter).filter(Boolean);
52
+ const fromEnv = (process.env.PATH ?? '').split(path.delimiter).filter(Boolean);
53
+ const segments = [...extraPaths(), ...fromEnv];
19
54
  const candidates = process.platform === 'win32'
20
55
  ? [name, `${name}.exe`, `${name}.cmd`, `${name}.bat`]
21
56
  : [name];
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/validators/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC1B,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC;YACrD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC,CAAC,yCAAyC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,QAAQ,CAAC,IAAY;QACnB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,SAAmB;QACzB,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/validators/node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devxiyang/agent-skill",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "SDK for skill discovery and registration — integrates into any agent",
5
5
  "license": "MIT",
6
6
  "repository": {