@lyupro/skillforge-mcp 1.3.0 → 1.4.0

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 (59) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +25 -0
  4. package/README.md +2 -1
  5. package/dist/cli/dispatcher.d.ts.map +1 -1
  6. package/dist/cli/dispatcher.js +13 -10
  7. package/dist/cli/dispatcher.js.map +1 -1
  8. package/dist/cli/folders-handlers.js +1 -1
  9. package/dist/cli/folders-handlers.js.map +1 -1
  10. package/dist/cli/skills-format.d.ts +15 -0
  11. package/dist/cli/skills-format.d.ts.map +1 -0
  12. package/dist/cli/skills-format.js +84 -0
  13. package/dist/cli/skills-format.js.map +1 -0
  14. package/dist/cli/skills-handlers.d.ts +15 -0
  15. package/dist/cli/skills-handlers.d.ts.map +1 -0
  16. package/dist/cli/skills-handlers.js +112 -0
  17. package/dist/cli/skills-handlers.js.map +1 -0
  18. package/dist/cli/skills-shared.d.ts +32 -0
  19. package/dist/cli/skills-shared.d.ts.map +1 -0
  20. package/dist/cli/skills-shared.js +90 -0
  21. package/dist/cli/skills-shared.js.map +1 -0
  22. package/dist/cli/skills.d.ts +46 -0
  23. package/dist/cli/skills.d.ts.map +1 -0
  24. package/dist/cli/skills.js +107 -0
  25. package/dist/cli/skills.js.map +1 -0
  26. package/dist/config/config-schema.d.ts +246 -142
  27. package/dist/config/config-schema.d.ts.map +1 -1
  28. package/dist/config/config-schema.js +28 -14
  29. package/dist/config/config-schema.js.map +1 -1
  30. package/dist/detect/skill-source-conflict.d.ts +24 -7
  31. package/dist/detect/skill-source-conflict.d.ts.map +1 -1
  32. package/dist/detect/skill-source-conflict.js +62 -10
  33. package/dist/detect/skill-source-conflict.js.map +1 -1
  34. package/dist/reconcile.d.ts +5 -0
  35. package/dist/reconcile.d.ts.map +1 -0
  36. package/dist/reconcile.js +20 -0
  37. package/dist/reconcile.js.map +1 -0
  38. package/dist/runtime.d.ts +14 -0
  39. package/dist/runtime.d.ts.map +1 -0
  40. package/dist/runtime.js +29 -0
  41. package/dist/runtime.js.map +1 -0
  42. package/dist/server-deps.d.ts +3 -1
  43. package/dist/server-deps.d.ts.map +1 -1
  44. package/dist/server.d.ts.map +1 -1
  45. package/dist/server.js +23 -8
  46. package/dist/server.js.map +1 -1
  47. package/dist/tools/configure.d.ts.map +1 -1
  48. package/dist/tools/configure.js +8 -25
  49. package/dist/tools/configure.js.map +1 -1
  50. package/dist/watcher/config-watcher.d.ts +25 -0
  51. package/dist/watcher/config-watcher.d.ts.map +1 -0
  52. package/dist/watcher/config-watcher.js +92 -0
  53. package/dist/watcher/config-watcher.js.map +1 -0
  54. package/dist/watcher/index.d.ts +2 -0
  55. package/dist/watcher/index.d.ts.map +1 -1
  56. package/dist/watcher/index.js +1 -0
  57. package/dist/watcher/index.js.map +1 -1
  58. package/manifest.json +1 -1
  59. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/tools/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/tools/configure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ChokidarLike } from './chokidar-types.js';
2
+ export interface ConfigWatcherOptions {
3
+ /** Absolute path of the config file to watch (e.g. defaultConfigPath()). */
4
+ configPath: string;
5
+ debounceMs?: number;
6
+ /** Invoked (debounced) after the watched config file changes on disk. */
7
+ onChange: () => void | Promise<void>;
8
+ chokidar?: ChokidarLike;
9
+ setTimeoutFn?: typeof setTimeout;
10
+ clearTimeoutFn?: typeof clearTimeout;
11
+ }
12
+ /**
13
+ * Watches a single config file for out-of-process edits (e.g. the
14
+ * `skillforge folders` CLI rewriting config.json). Debounced — a burst of
15
+ * raw filesystem events coalesces into one onChange call.
16
+ */
17
+ export declare class ConfigWatcher {
18
+ #private;
19
+ constructor(opts: ConfigWatcherOptions);
20
+ isRunning(): boolean;
21
+ getConfigPath(): string;
22
+ start(): Promise<void>;
23
+ stop(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=config-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-watcher.d.ts","sourceRoot":"","sources":["../../src/watcher/config-watcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,YAAY,CAAC;CACtC;AAwBD;;;;GAIG;AACH,qBAAa,aAAa;;gBAcZ,IAAI,EAAE,oBAAoB;IAWtC,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,MAAM;IAIjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA+B5B"}
@@ -0,0 +1,92 @@
1
+ import { basename, dirname } from 'node:path';
2
+ // The config CLI writes via temp+rename (atomic), so a direct file watch goes
3
+ // dead after the first save. We watch the parent directory instead and filter
4
+ // raw events down to the config file's basename. Hidden-file ignore patterns
5
+ // must NOT be applied — config.json lives in a dotted dir (~/.lyupro/.skillforge).
6
+ const CHOKIDAR_OPTS = {
7
+ ignoreInitial: true,
8
+ persistent: true,
9
+ awaitWriteFinish: { stabilityThreshold: 100, pollInterval: 50 },
10
+ depth: 0,
11
+ };
12
+ async function loadDefaultChokidar() {
13
+ const mod = await import('chokidar');
14
+ return {
15
+ watch: (paths, options) => mod.watch(paths, options),
16
+ };
17
+ }
18
+ /**
19
+ * Watches a single config file for out-of-process edits (e.g. the
20
+ * `skillforge folders` CLI rewriting config.json). Debounced — a burst of
21
+ * raw filesystem events coalesces into one onChange call.
22
+ */
23
+ export class ConfigWatcher {
24
+ #configPath;
25
+ #configDir;
26
+ #configBasename;
27
+ #onChange;
28
+ #debounceMs;
29
+ #setTimeoutFn;
30
+ #clearTimeoutFn;
31
+ #injectedChokidar;
32
+ #watcher = null;
33
+ #resolvedChokidar = null;
34
+ #pendingTimer = null;
35
+ constructor(opts) {
36
+ this.#configPath = opts.configPath;
37
+ this.#configDir = dirname(opts.configPath);
38
+ this.#configBasename = basename(opts.configPath);
39
+ this.#onChange = opts.onChange;
40
+ this.#debounceMs = opts.debounceMs ?? 400;
41
+ this.#injectedChokidar = opts.chokidar;
42
+ this.#setTimeoutFn = opts.setTimeoutFn ?? setTimeout;
43
+ this.#clearTimeoutFn = opts.clearTimeoutFn ?? clearTimeout;
44
+ }
45
+ isRunning() {
46
+ return this.#watcher !== null;
47
+ }
48
+ getConfigPath() {
49
+ return this.#configPath;
50
+ }
51
+ async start() {
52
+ if (this.#watcher !== null)
53
+ return;
54
+ const chokidar = this.#injectedChokidar ?? (await this.#getResolvedChokidar());
55
+ this.#watcher = chokidar.watch(this.#configDir, CHOKIDAR_OPTS);
56
+ this.#watcher.on('add', (path) => this.#handleRaw(path));
57
+ this.#watcher.on('change', (path) => this.#handleRaw(path));
58
+ this.#watcher.on('unlink', (path) => this.#handleRaw(path));
59
+ this.#watcher.on('error', (err) => {
60
+ console.error(`[skillforge:config-watcher] error: ${String(err)}`);
61
+ });
62
+ }
63
+ async stop() {
64
+ if (this.#watcher === null)
65
+ return;
66
+ if (this.#pendingTimer !== null) {
67
+ this.#clearTimeoutFn(this.#pendingTimer);
68
+ this.#pendingTimer = null;
69
+ }
70
+ await this.#watcher.close();
71
+ this.#watcher = null;
72
+ }
73
+ async #getResolvedChokidar() {
74
+ if (this.#resolvedChokidar === null) {
75
+ this.#resolvedChokidar = await loadDefaultChokidar();
76
+ }
77
+ return this.#resolvedChokidar;
78
+ }
79
+ #handleRaw(path) {
80
+ // Only react to the config file itself — the parent dir may hold siblings.
81
+ if (basename(path) !== this.#configBasename)
82
+ return;
83
+ if (this.#pendingTimer !== null) {
84
+ this.#clearTimeoutFn(this.#pendingTimer);
85
+ }
86
+ this.#pendingTimer = this.#setTimeoutFn(() => {
87
+ this.#pendingTimer = null;
88
+ void this.#onChange();
89
+ }, this.#debounceMs);
90
+ }
91
+ }
92
+ //# sourceMappingURL=config-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-watcher.js","sourceRoot":"","sources":["../../src/watcher/config-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { FolderWatcher } from './folder-watcher.js';
2
2
  export type { FolderWatcherOptions, WatcherEvent, WatcherEventType } from './folder-watcher.js';
3
+ export { ConfigWatcher } from './config-watcher.js';
4
+ export type { ConfigWatcherOptions } from './config-watcher.js';
3
5
  export type { ChokidarLike, ChokidarWatcher, ChokidarOptions } from './chokidar-types.js';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChG,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { FolderWatcher } from './folder-watcher.js';
2
+ export { ConfigWatcher } from './config-watcher.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://modelcontextprotocol.io/schemas/manifest.json",
3
3
  "name": "@lyupro/skillforge-mcp",
4
4
  "displayName": "SkillForge MCP",
5
- "version": "1.3.0",
5
+ "version": "1.4.0",
6
6
  "description": "Universal Skills MCP server — load Markdown skills from arbitrary folders, lazy-by-design, cross-tool (Claude Code / Codex CLI / any MCP client).",
7
7
  "author": {
8
8
  "name": "Lyu Pro",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyupro/skillforge-mcp",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Universal Skills MCP Server — load Markdown skills from arbitrary folders, lazy-by-design, cross-tool (Claude Code / Codex CLI / any MCP client).",
5
5
  "keywords": [
6
6
  "mcp",