@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
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SkillForge `skills` subcommand.
4
+ *
5
+ * Terminal-side skill inspection and registry reload. Without this, skills
6
+ * could only be viewed from inside an LLM session via the `skills__list` or
7
+ * `skills__get` MCP tools. This subcommand exposes the same tool handlers to
8
+ * the shell — no separate registry logic.
9
+ *
10
+ * Note: the CLI reads config.json and skill files directly from disk. It
11
+ * reflects disk truth, NOT the state of any running MCP server session.
12
+ *
13
+ * Usage:
14
+ * skillforge skills list [flags] List skills from the registry
15
+ * skillforge skills get <name> [flags] Print full content of one skill
16
+ * skillforge skills reload Force a registry rebuild from disk
17
+ *
18
+ * list flags:
19
+ * --search <s> Case-insensitive substring filter over name + description.
20
+ * --source <format> Filter by skill format: claude | codex | persona | custom.
21
+ * --folder <path|alias> Restrict to one configured folder (alias or path).
22
+ * --folder-tag <tag> Restrict to folders with this tag in config.
23
+ * --folder-fmt <fmt> FOLDER column format: alias (default) or path.
24
+ * --json Emit raw JSON instead of a table.
25
+ *
26
+ * get flags:
27
+ * --json Emit raw JSON instead of human-readable output.
28
+ *
29
+ * This module keeps only the entry point + action dispatch; the handlers,
30
+ * table formatting, and shared parsing helpers live in sibling modules.
31
+ */
32
+ import type { ServerDeps } from '../server-deps.js';
33
+ export interface SkillsDeps {
34
+ stdout?: (text: string) => void;
35
+ stderr?: (text: string) => void;
36
+ /** Override the ServerDeps factory — tests inject a fake deps object here. */
37
+ buildDeps?: () => Promise<ServerDeps>;
38
+ }
39
+ /**
40
+ * `skills` subcommand entry. Returns an exit code:
41
+ * - 0 on success
42
+ * - 1 on a runtime failure (e.g. skill not found)
43
+ * - 2 on a missing/unknown sub-action or malformed flag
44
+ */
45
+ export declare function main(rawArgv: string[], deps?: SkillsDeps): Promise<number>;
46
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACvC;AA8BD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CpF"}
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SkillForge `skills` subcommand.
4
+ *
5
+ * Terminal-side skill inspection and registry reload. Without this, skills
6
+ * could only be viewed from inside an LLM session via the `skills__list` or
7
+ * `skills__get` MCP tools. This subcommand exposes the same tool handlers to
8
+ * the shell — no separate registry logic.
9
+ *
10
+ * Note: the CLI reads config.json and skill files directly from disk. It
11
+ * reflects disk truth, NOT the state of any running MCP server session.
12
+ *
13
+ * Usage:
14
+ * skillforge skills list [flags] List skills from the registry
15
+ * skillforge skills get <name> [flags] Print full content of one skill
16
+ * skillforge skills reload Force a registry rebuild from disk
17
+ *
18
+ * list flags:
19
+ * --search <s> Case-insensitive substring filter over name + description.
20
+ * --source <format> Filter by skill format: claude | codex | persona | custom.
21
+ * --folder <path|alias> Restrict to one configured folder (alias or path).
22
+ * --folder-tag <tag> Restrict to folders with this tag in config.
23
+ * --folder-fmt <fmt> FOLDER column format: alias (default) or path.
24
+ * --json Emit raw JSON instead of a table.
25
+ *
26
+ * get flags:
27
+ * --json Emit raw JSON instead of human-readable output.
28
+ *
29
+ * This module keeps only the entry point + action dispatch; the handlers,
30
+ * table formatting, and shared parsing helpers live in sibling modules.
31
+ */
32
+ import { handleSkillsList, handleSkillsGet, handleSkillsReload, } from './skills-handlers.js';
33
+ const USAGE = `skillforge skills — view and reload skills from the terminal.
34
+
35
+ Note: the CLI reads disk, not a live server session. Results reflect the
36
+ current state of config.json and skill files on disk.
37
+
38
+ Usage:
39
+ skillforge skills <action> [args]
40
+
41
+ Actions:
42
+ list [flags] Print a table of skills from the registry.
43
+ Flags: --search <s>, --source <format>,
44
+ --folder <path|alias>, --folder-tag <tag>,
45
+ --folder-fmt alias|path (default alias), --json
46
+ get <name> [flags] Print the full content of one skill.
47
+ Flags: --json
48
+ reload Force a registry rebuild + config reconcile from disk.
49
+ Prints: N folders, M skills, and any per-file errors.
50
+
51
+ Examples:
52
+ skillforge skills list
53
+ skillforge skills list --search review --json
54
+ skillforge skills list --folder work --folder-fmt path
55
+ skillforge skills list --source claude
56
+ skillforge skills get code-review
57
+ skillforge skills get code-review --json
58
+ skillforge skills reload
59
+ `;
60
+ /**
61
+ * `skills` subcommand entry. Returns an exit code:
62
+ * - 0 on success
63
+ * - 1 on a runtime failure (e.g. skill not found)
64
+ * - 2 on a missing/unknown sub-action or malformed flag
65
+ */
66
+ export async function main(rawArgv, deps = {}) {
67
+ const stdout = deps.stdout ?? ((text) => process.stdout.write(text));
68
+ const stderr = deps.stderr ?? ((text) => process.stderr.write(text));
69
+ const action = rawArgv[0];
70
+ const rest = rawArgv.slice(1);
71
+ if (action === undefined || (action !== 'list' && action !== 'get' && action !== 'reload')) {
72
+ if (action !== undefined) {
73
+ stderr(`skillforge skills: unknown action: ${action}\n\n`);
74
+ }
75
+ stderr(USAGE);
76
+ return 2;
77
+ }
78
+ let serverDeps;
79
+ try {
80
+ const factory = deps.buildDeps ?? (async () => {
81
+ const { buildDeps } = await import('../server.js');
82
+ return buildDeps();
83
+ });
84
+ serverDeps = await factory();
85
+ }
86
+ catch (err) {
87
+ const msg = err instanceof Error ? err.message : String(err);
88
+ stderr(`skillforge skills: failed to initialise registry: ${msg}\n`);
89
+ return 1;
90
+ }
91
+ try {
92
+ switch (action) {
93
+ case 'list':
94
+ return await handleSkillsList(serverDeps, rest, stdout, stderr);
95
+ case 'get':
96
+ return await handleSkillsGet(serverDeps, rest, stdout, stderr);
97
+ case 'reload':
98
+ return await handleSkillsReload(serverDeps, rest, stdout, stderr);
99
+ }
100
+ }
101
+ catch (err) {
102
+ const msg = err instanceof Error ? err.message : String(err);
103
+ stderr(`skillforge skills: ${msg}\n`);
104
+ return 1;
105
+ }
106
+ }
107
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAS9B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bb,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,EAAE,OAAmB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC3F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,sCAAsC,MAAM,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,CAAC;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,UAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;YAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACnD,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,UAAU,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,qDAAqD,GAAG,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,MAAM,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAClE,KAAK,KAAK;gBACR,OAAO,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjE,KAAK,QAAQ;gBACX,OAAO,MAAM,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -5,19 +5,19 @@ declare const folderEntrySchema: z.ZodObject<{
5
5
  enabled: z.ZodDefault<z.ZodBoolean>;
6
6
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
7
7
  alias: z.ZodOptional<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- path: string;
10
- priority: number;
11
- enabled: boolean;
12
- tags: string[];
13
- alias?: string | undefined;
14
- }, {
15
- path: string;
16
- priority?: number | undefined;
17
- enabled?: boolean | undefined;
18
- tags?: string[] | undefined;
19
- alias?: string | undefined;
20
- }>;
8
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
9
+ path: z.ZodString;
10
+ priority: z.ZodDefault<z.ZodNumber>;
11
+ enabled: z.ZodDefault<z.ZodBoolean>;
12
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
13
+ alias: z.ZodOptional<z.ZodString>;
14
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
15
+ path: z.ZodString;
16
+ priority: z.ZodDefault<z.ZodNumber>;
17
+ enabled: z.ZodDefault<z.ZodBoolean>;
18
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
19
+ alias: z.ZodOptional<z.ZodString>;
20
+ }, z.ZodTypeAny, "passthrough">>;
21
21
  export declare const configSchema: z.ZodObject<{
22
22
  version: z.ZodDefault<z.ZodLiteral<"1.0">>;
23
23
  folders: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -26,19 +26,193 @@ export declare const configSchema: z.ZodObject<{
26
26
  enabled: z.ZodDefault<z.ZodBoolean>;
27
27
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
28
28
  alias: z.ZodOptional<z.ZodString>;
29
- }, "strip", z.ZodTypeAny, {
30
- path: string;
31
- priority: number;
32
- enabled: boolean;
33
- tags: string[];
34
- alias?: string | undefined;
35
- }, {
36
- path: string;
37
- priority?: number | undefined;
38
- enabled?: boolean | undefined;
39
- tags?: string[] | undefined;
40
- alias?: string | undefined;
41
- }>, "many">>;
29
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
30
+ path: z.ZodString;
31
+ priority: z.ZodDefault<z.ZodNumber>;
32
+ enabled: z.ZodDefault<z.ZodBoolean>;
33
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
34
+ alias: z.ZodOptional<z.ZodString>;
35
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
36
+ path: z.ZodString;
37
+ priority: z.ZodDefault<z.ZodNumber>;
38
+ enabled: z.ZodDefault<z.ZodBoolean>;
39
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
40
+ alias: z.ZodOptional<z.ZodString>;
41
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
42
+ blacklist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
43
+ security: z.ZodDefault<z.ZodObject<{
44
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
45
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
46
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
47
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
48
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
49
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
50
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
51
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
52
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
53
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
54
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
55
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
56
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
57
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
58
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
59
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
60
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
61
+ }, z.ZodTypeAny, "passthrough">>>;
62
+ cache: z.ZodDefault<z.ZodObject<{
63
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
64
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
65
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
66
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
67
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
68
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
69
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
70
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
71
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
72
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
73
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
74
+ }, z.ZodTypeAny, "passthrough">>>;
75
+ watcher: z.ZodDefault<z.ZodObject<{
76
+ enabled: z.ZodDefault<z.ZodBoolean>;
77
+ debounceMs: z.ZodDefault<z.ZodNumber>;
78
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
79
+ enabled: z.ZodDefault<z.ZodBoolean>;
80
+ debounceMs: z.ZodDefault<z.ZodNumber>;
81
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
82
+ enabled: z.ZodDefault<z.ZodBoolean>;
83
+ debounceMs: z.ZodDefault<z.ZodNumber>;
84
+ }, z.ZodTypeAny, "passthrough">>>;
85
+ logging: z.ZodDefault<z.ZodObject<{
86
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
87
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
88
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
89
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
90
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
91
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
92
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
93
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
94
+ }, z.ZodTypeAny, "passthrough">>>;
95
+ invocation: z.ZodDefault<z.ZodObject<{
96
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
97
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
98
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
99
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
100
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
101
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
102
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
103
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
104
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
105
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
106
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
107
+ }, z.ZodTypeAny, "passthrough">>>;
108
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
109
+ version: z.ZodDefault<z.ZodLiteral<"1.0">>;
110
+ folders: z.ZodDefault<z.ZodArray<z.ZodObject<{
111
+ path: z.ZodString;
112
+ priority: z.ZodDefault<z.ZodNumber>;
113
+ enabled: z.ZodDefault<z.ZodBoolean>;
114
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
115
+ alias: z.ZodOptional<z.ZodString>;
116
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
117
+ path: z.ZodString;
118
+ priority: z.ZodDefault<z.ZodNumber>;
119
+ enabled: z.ZodDefault<z.ZodBoolean>;
120
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
121
+ alias: z.ZodOptional<z.ZodString>;
122
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
123
+ path: z.ZodString;
124
+ priority: z.ZodDefault<z.ZodNumber>;
125
+ enabled: z.ZodDefault<z.ZodBoolean>;
126
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
127
+ alias: z.ZodOptional<z.ZodString>;
128
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
129
+ blacklist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
130
+ security: z.ZodDefault<z.ZodObject<{
131
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
132
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
133
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
134
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
135
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
136
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
137
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
138
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
139
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
140
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
141
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
142
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
143
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
144
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
145
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
146
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
147
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
148
+ }, z.ZodTypeAny, "passthrough">>>;
149
+ cache: z.ZodDefault<z.ZodObject<{
150
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
151
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
152
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
153
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
154
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
155
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
156
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
157
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
158
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
159
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
160
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
161
+ }, z.ZodTypeAny, "passthrough">>>;
162
+ watcher: z.ZodDefault<z.ZodObject<{
163
+ enabled: z.ZodDefault<z.ZodBoolean>;
164
+ debounceMs: z.ZodDefault<z.ZodNumber>;
165
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
166
+ enabled: z.ZodDefault<z.ZodBoolean>;
167
+ debounceMs: z.ZodDefault<z.ZodNumber>;
168
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
169
+ enabled: z.ZodDefault<z.ZodBoolean>;
170
+ debounceMs: z.ZodDefault<z.ZodNumber>;
171
+ }, z.ZodTypeAny, "passthrough">>>;
172
+ logging: z.ZodDefault<z.ZodObject<{
173
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
174
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
175
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
176
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
177
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
178
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
179
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
180
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
181
+ }, z.ZodTypeAny, "passthrough">>>;
182
+ invocation: z.ZodDefault<z.ZodObject<{
183
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
184
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
185
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
186
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
187
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
188
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
189
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
190
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
191
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
192
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
193
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
194
+ }, z.ZodTypeAny, "passthrough">>>;
195
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
196
+ version: z.ZodDefault<z.ZodLiteral<"1.0">>;
197
+ folders: z.ZodDefault<z.ZodArray<z.ZodObject<{
198
+ path: z.ZodString;
199
+ priority: z.ZodDefault<z.ZodNumber>;
200
+ enabled: z.ZodDefault<z.ZodBoolean>;
201
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
202
+ alias: z.ZodOptional<z.ZodString>;
203
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
204
+ path: z.ZodString;
205
+ priority: z.ZodDefault<z.ZodNumber>;
206
+ enabled: z.ZodDefault<z.ZodBoolean>;
207
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
208
+ alias: z.ZodOptional<z.ZodString>;
209
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
210
+ path: z.ZodString;
211
+ priority: z.ZodDefault<z.ZodNumber>;
212
+ enabled: z.ZodDefault<z.ZodBoolean>;
213
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
214
+ alias: z.ZodOptional<z.ZodString>;
215
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
42
216
  blacklist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
43
217
  security: z.ZodDefault<z.ZodObject<{
44
218
  autoAudit: z.ZodDefault<z.ZodBoolean>;
@@ -46,136 +220,66 @@ export declare const configSchema: z.ZodObject<{
46
220
  allowScripts: z.ZodDefault<z.ZodBoolean>;
47
221
  sandboxScripts: z.ZodDefault<z.ZodBoolean>;
48
222
  sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
49
- }, "strip", z.ZodTypeAny, {
50
- autoAudit: boolean;
51
- auditPatterns: string[];
52
- allowScripts: boolean;
53
- sandboxScripts: boolean;
54
- sandboxRestrictedPaths: string[];
55
- }, {
56
- autoAudit?: boolean | undefined;
57
- auditPatterns?: string[] | undefined;
58
- allowScripts?: boolean | undefined;
59
- sandboxScripts?: boolean | undefined;
60
- sandboxRestrictedPaths?: string[] | undefined;
61
- }>>;
223
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
224
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
225
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
226
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
227
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
228
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
229
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
230
+ autoAudit: z.ZodDefault<z.ZodBoolean>;
231
+ auditPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
232
+ allowScripts: z.ZodDefault<z.ZodBoolean>;
233
+ sandboxScripts: z.ZodDefault<z.ZodBoolean>;
234
+ sandboxRestrictedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
235
+ }, z.ZodTypeAny, "passthrough">>>;
62
236
  cache: z.ZodDefault<z.ZodObject<{
63
237
  metadataTtlMs: z.ZodDefault<z.ZodNumber>;
64
238
  contentTtlMs: z.ZodDefault<z.ZodNumber>;
65
239
  maxSizeMb: z.ZodDefault<z.ZodNumber>;
66
- }, "strip", z.ZodTypeAny, {
67
- metadataTtlMs: number;
68
- contentTtlMs: number;
69
- maxSizeMb: number;
70
- }, {
71
- metadataTtlMs?: number | undefined;
72
- contentTtlMs?: number | undefined;
73
- maxSizeMb?: number | undefined;
74
- }>>;
240
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
241
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
242
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
243
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
244
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
245
+ metadataTtlMs: z.ZodDefault<z.ZodNumber>;
246
+ contentTtlMs: z.ZodDefault<z.ZodNumber>;
247
+ maxSizeMb: z.ZodDefault<z.ZodNumber>;
248
+ }, z.ZodTypeAny, "passthrough">>>;
75
249
  watcher: z.ZodDefault<z.ZodObject<{
76
250
  enabled: z.ZodDefault<z.ZodBoolean>;
77
251
  debounceMs: z.ZodDefault<z.ZodNumber>;
78
- }, "strip", z.ZodTypeAny, {
79
- enabled: boolean;
80
- debounceMs: number;
81
- }, {
82
- enabled?: boolean | undefined;
83
- debounceMs?: number | undefined;
84
- }>>;
252
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
253
+ enabled: z.ZodDefault<z.ZodBoolean>;
254
+ debounceMs: z.ZodDefault<z.ZodNumber>;
255
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
256
+ enabled: z.ZodDefault<z.ZodBoolean>;
257
+ debounceMs: z.ZodDefault<z.ZodNumber>;
258
+ }, z.ZodTypeAny, "passthrough">>>;
85
259
  logging: z.ZodDefault<z.ZodObject<{
86
260
  level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
87
261
  file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
88
- }, "strip", z.ZodTypeAny, {
89
- level: "debug" | "info" | "warn" | "error";
90
- file: string | null;
91
- }, {
92
- level?: "debug" | "info" | "warn" | "error" | undefined;
93
- file?: string | null | undefined;
94
- }>>;
262
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
263
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
264
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
265
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
266
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
267
+ file: z.ZodDefault<z.ZodNullable<z.ZodString>>;
268
+ }, z.ZodTypeAny, "passthrough">>>;
95
269
  invocation: z.ZodDefault<z.ZodObject<{
96
270
  defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
97
271
  cacheTtlMs: z.ZodDefault<z.ZodNumber>;
98
272
  cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
99
- }, "strip", z.ZodTypeAny, {
100
- defaultTimeoutMs: number;
101
- cacheTtlMs: number;
102
- cacheMaxEntries: number;
103
- }, {
104
- defaultTimeoutMs?: number | undefined;
105
- cacheTtlMs?: number | undefined;
106
- cacheMaxEntries?: number | undefined;
107
- }>>;
108
- }, "strip", z.ZodTypeAny, {
109
- version: "1.0";
110
- folders: {
111
- path: string;
112
- priority: number;
113
- enabled: boolean;
114
- tags: string[];
115
- alias?: string | undefined;
116
- }[];
117
- blacklist: string[];
118
- security: {
119
- autoAudit: boolean;
120
- auditPatterns: string[];
121
- allowScripts: boolean;
122
- sandboxScripts: boolean;
123
- sandboxRestrictedPaths: string[];
124
- };
125
- cache: {
126
- metadataTtlMs: number;
127
- contentTtlMs: number;
128
- maxSizeMb: number;
129
- };
130
- watcher: {
131
- enabled: boolean;
132
- debounceMs: number;
133
- };
134
- logging: {
135
- level: "debug" | "info" | "warn" | "error";
136
- file: string | null;
137
- };
138
- invocation: {
139
- defaultTimeoutMs: number;
140
- cacheTtlMs: number;
141
- cacheMaxEntries: number;
142
- };
143
- }, {
144
- version?: "1.0" | undefined;
145
- folders?: {
146
- path: string;
147
- priority?: number | undefined;
148
- enabled?: boolean | undefined;
149
- tags?: string[] | undefined;
150
- alias?: string | undefined;
151
- }[] | undefined;
152
- blacklist?: string[] | undefined;
153
- security?: {
154
- autoAudit?: boolean | undefined;
155
- auditPatterns?: string[] | undefined;
156
- allowScripts?: boolean | undefined;
157
- sandboxScripts?: boolean | undefined;
158
- sandboxRestrictedPaths?: string[] | undefined;
159
- } | undefined;
160
- cache?: {
161
- metadataTtlMs?: number | undefined;
162
- contentTtlMs?: number | undefined;
163
- maxSizeMb?: number | undefined;
164
- } | undefined;
165
- watcher?: {
166
- enabled?: boolean | undefined;
167
- debounceMs?: number | undefined;
168
- } | undefined;
169
- logging?: {
170
- level?: "debug" | "info" | "warn" | "error" | undefined;
171
- file?: string | null | undefined;
172
- } | undefined;
173
- invocation?: {
174
- defaultTimeoutMs?: number | undefined;
175
- cacheTtlMs?: number | undefined;
176
- cacheMaxEntries?: number | undefined;
177
- } | undefined;
178
- }>;
273
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
274
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
275
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
276
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
277
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
278
+ defaultTimeoutMs: z.ZodDefault<z.ZodNumber>;
279
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
280
+ cacheMaxEntries: z.ZodDefault<z.ZodNumber>;
281
+ }, z.ZodTypeAny, "passthrough">>>;
282
+ }, z.ZodTypeAny, "passthrough">>;
179
283
  export type PersistedConfig = z.infer<typeof configSchema>;
180
284
  export type FolderEntry = z.infer<typeof folderEntrySchema>;
181
285
  export declare function defaultConfig(): PersistedConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAWrB,CAAC;AAkCH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,wBAAgB,aAAa,IAAI,eAAe,CAE/C"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;gCAaP,CAAC;AA4CjB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAWT,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,wBAAgB,aAAa,IAAI,eAAe,CAE/C"}