@vinhnt-sdk/tools 1.0.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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/dist/arity.d.ts +22 -0
  3. package/dist/arity.d.ts.map +1 -0
  4. package/dist/arity.js +96 -0
  5. package/dist/arity.js.map +1 -0
  6. package/dist/context.d.ts +43 -0
  7. package/dist/context.d.ts.map +1 -0
  8. package/dist/context.js +2 -0
  9. package/dist/context.js.map +1 -0
  10. package/dist/define-tool.d.ts +45 -0
  11. package/dist/define-tool.d.ts.map +1 -0
  12. package/dist/define-tool.js +120 -0
  13. package/dist/define-tool.js.map +1 -0
  14. package/dist/definitions.d.ts +24 -0
  15. package/dist/definitions.d.ts.map +1 -0
  16. package/dist/definitions.js +2 -0
  17. package/dist/definitions.js.map +1 -0
  18. package/dist/description-lint.d.ts +25 -0
  19. package/dist/description-lint.d.ts.map +1 -0
  20. package/dist/description-lint.js +90 -0
  21. package/dist/description-lint.js.map +1 -0
  22. package/dist/diff.d.ts +7 -0
  23. package/dist/diff.d.ts.map +1 -0
  24. package/dist/diff.js +26 -0
  25. package/dist/diff.js.map +1 -0
  26. package/dist/domain.d.ts +39 -0
  27. package/dist/domain.d.ts.map +1 -0
  28. package/dist/domain.js +20 -0
  29. package/dist/domain.js.map +1 -0
  30. package/dist/file-history.d.ts +43 -0
  31. package/dist/file-history.d.ts.map +1 -0
  32. package/dist/file-history.js +55 -0
  33. package/dist/file-history.js.map +1 -0
  34. package/dist/file-tools.d.ts +56 -0
  35. package/dist/file-tools.d.ts.map +1 -0
  36. package/dist/file-tools.js +542 -0
  37. package/dist/file-tools.js.map +1 -0
  38. package/dist/git-tools.d.ts +8 -0
  39. package/dist/git-tools.d.ts.map +1 -0
  40. package/dist/git-tools.js +114 -0
  41. package/dist/git-tools.js.map +1 -0
  42. package/dist/history-hook.d.ts +4 -0
  43. package/dist/history-hook.d.ts.map +1 -0
  44. package/dist/history-hook.js +62 -0
  45. package/dist/history-hook.js.map +1 -0
  46. package/dist/image-tools.d.ts +11 -0
  47. package/dist/image-tools.d.ts.map +1 -0
  48. package/dist/image-tools.js +55 -0
  49. package/dist/image-tools.js.map +1 -0
  50. package/dist/index.d.ts +57 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +36 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/json-schema.d.ts +22 -0
  55. package/dist/json-schema.d.ts.map +1 -0
  56. package/dist/json-schema.js +2 -0
  57. package/dist/json-schema.js.map +1 -0
  58. package/dist/lazy-registry.d.ts +23 -0
  59. package/dist/lazy-registry.d.ts.map +1 -0
  60. package/dist/lazy-registry.js +64 -0
  61. package/dist/lazy-registry.js.map +1 -0
  62. package/dist/policy.d.ts +5 -0
  63. package/dist/policy.d.ts.map +1 -0
  64. package/dist/policy.js +2 -0
  65. package/dist/policy.js.map +1 -0
  66. package/dist/provider-helpers.d.ts +26 -0
  67. package/dist/provider-helpers.d.ts.map +1 -0
  68. package/dist/provider-helpers.js +46 -0
  69. package/dist/provider-helpers.js.map +1 -0
  70. package/dist/provider.d.ts +80 -0
  71. package/dist/provider.d.ts.map +1 -0
  72. package/dist/provider.js +96 -0
  73. package/dist/provider.js.map +1 -0
  74. package/dist/providers/agent-provider.d.ts +32 -0
  75. package/dist/providers/agent-provider.d.ts.map +1 -0
  76. package/dist/providers/agent-provider.js +35 -0
  77. package/dist/providers/agent-provider.js.map +1 -0
  78. package/dist/providers/builtin-provider.d.ts +36 -0
  79. package/dist/providers/builtin-provider.d.ts.map +1 -0
  80. package/dist/providers/builtin-provider.js +86 -0
  81. package/dist/providers/builtin-provider.js.map +1 -0
  82. package/dist/providers/file-loader.d.ts +47 -0
  83. package/dist/providers/file-loader.d.ts.map +1 -0
  84. package/dist/providers/file-loader.js +120 -0
  85. package/dist/providers/file-loader.js.map +1 -0
  86. package/dist/providers/index.d.ts +6 -0
  87. package/dist/providers/index.d.ts.map +1 -0
  88. package/dist/providers/index.js +5 -0
  89. package/dist/providers/index.js.map +1 -0
  90. package/dist/providers/skill-provider.d.ts +23 -0
  91. package/dist/providers/skill-provider.d.ts.map +1 -0
  92. package/dist/providers/skill-provider.js +28 -0
  93. package/dist/providers/skill-provider.js.map +1 -0
  94. package/dist/question-tool.d.ts +15 -0
  95. package/dist/question-tool.d.ts.map +1 -0
  96. package/dist/question-tool.js +51 -0
  97. package/dist/question-tool.js.map +1 -0
  98. package/dist/read-tracker.d.ts +8 -0
  99. package/dist/read-tracker.d.ts.map +1 -0
  100. package/dist/read-tracker.js +33 -0
  101. package/dist/read-tracker.js.map +1 -0
  102. package/dist/registry.d.ts +58 -0
  103. package/dist/registry.d.ts.map +1 -0
  104. package/dist/registry.js +128 -0
  105. package/dist/registry.js.map +1 -0
  106. package/dist/sandbox.d.ts +85 -0
  107. package/dist/sandbox.d.ts.map +1 -0
  108. package/dist/sandbox.js +409 -0
  109. package/dist/sandbox.js.map +1 -0
  110. package/dist/search-tools.d.ts +11 -0
  111. package/dist/search-tools.d.ts.map +1 -0
  112. package/dist/search-tools.js +124 -0
  113. package/dist/search-tools.js.map +1 -0
  114. package/dist/shell-parser.d.ts +9 -0
  115. package/dist/shell-parser.d.ts.map +1 -0
  116. package/dist/shell-parser.js +68 -0
  117. package/dist/shell-parser.js.map +1 -0
  118. package/dist/shell-tool.d.ts +22 -0
  119. package/dist/shell-tool.d.ts.map +1 -0
  120. package/dist/shell-tool.js +100 -0
  121. package/dist/shell-tool.js.map +1 -0
  122. package/dist/todo-tool.d.ts +2 -0
  123. package/dist/todo-tool.d.ts.map +1 -0
  124. package/dist/todo-tool.js +121 -0
  125. package/dist/todo-tool.js.map +1 -0
  126. package/dist/tool-search.d.ts +14 -0
  127. package/dist/tool-search.d.ts.map +1 -0
  128. package/dist/tool-search.js +46 -0
  129. package/dist/tool-search.js.map +1 -0
  130. package/dist/types.d.ts +30 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/types.js +2 -0
  133. package/dist/types.js.map +1 -0
  134. package/dist/validate.d.ts +9 -0
  135. package/dist/validate.d.ts.map +1 -0
  136. package/dist/validate.js +26 -0
  137. package/dist/validate.js.map +1 -0
  138. package/dist/web-search-tool.d.ts +84 -0
  139. package/dist/web-search-tool.d.ts.map +1 -0
  140. package/dist/web-search-tool.js +134 -0
  141. package/dist/web-search-tool.js.map +1 -0
  142. package/dist/web-tools.d.ts +10 -0
  143. package/dist/web-tools.d.ts.map +1 -0
  144. package/dist/web-tools.js +62 -0
  145. package/dist/web-tools.js.map +1 -0
  146. package/package.json +58 -0
@@ -0,0 +1,80 @@
1
+ import type { ToolDefinition } from "./definitions.js";
2
+ import type { ToolRegistry } from "./registry.js";
3
+ /**
4
+ * ToolProvider — Interface for providing tools to the kernel.
5
+ *
6
+ * Built-in tools (coding) use BuiltinToolProvider.
7
+ * User tools use ToolFileProvider.
8
+ * MCP tools use McpToolProvider.
9
+ * Plugin tools use PluginToolProvider.
10
+ */
11
+ export interface ToolProvider {
12
+ readonly id: string;
13
+ readonly name: string;
14
+ readonly description?: string;
15
+ /**
16
+ * Get all tools provided by this provider.
17
+ * Called during registration to populate the registry.
18
+ */
19
+ readonly tools: ToolDefinition[];
20
+ /**
21
+ * Register all tools into the given registry.
22
+ * Called once when the provider is registered.
23
+ */
24
+ register(registry: ToolRegistry): void;
25
+ /**
26
+ * Unregister all tools from the given registry.
27
+ * Called when the provider is removed.
28
+ */
29
+ unregister?(registry: ToolRegistry): void;
30
+ /**
31
+ * Optional: refresh tools from external source (e.g., MCP).
32
+ * Called when external tools change.
33
+ */
34
+ refresh?(): Promise<void>;
35
+ }
36
+ /**
37
+ * ToolProviderRegistry — Manages multiple ToolProviders.
38
+ * Single source of truth for all available tools.
39
+ */
40
+ export declare class ToolProviderRegistry {
41
+ private readonly providers;
42
+ private readonly tools;
43
+ /**
44
+ * Register a tool provider and all its tools.
45
+ */
46
+ registerProvider(provider: ToolProvider): void;
47
+ /**
48
+ * Unregister a tool provider and remove all its tools.
49
+ */
50
+ unregisterProvider(id: string): void;
51
+ /**
52
+ * Get a tool provider by ID.
53
+ */
54
+ getProvider(id: string): ToolProvider | undefined;
55
+ /**
56
+ * List all registered providers.
57
+ */
58
+ listProviders(): ToolProvider[];
59
+ /**
60
+ * Get all tools from all providers.
61
+ */
62
+ getAllTools(): ToolDefinition[];
63
+ /**
64
+ * Get a tool by ID.
65
+ */
66
+ getTool(id: string): ToolDefinition | undefined;
67
+ /**
68
+ * Check if a tool exists.
69
+ */
70
+ hasTool(id: string): boolean;
71
+ /**
72
+ * Refresh a specific provider (e.g., MCP tools changed).
73
+ */
74
+ refreshProvider(id: string): Promise<void>;
75
+ /**
76
+ * Get tool count.
77
+ */
78
+ count(): number;
79
+ }
80
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAE3D;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAgB9C;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAepC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,aAAa,IAAI,YAAY,EAAE;IAI/B;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI/C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhD;;OAEG;IACH,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ToolProviderRegistry — Manages multiple ToolProviders.
3
+ * Single source of truth for all available tools.
4
+ */
5
+ export class ToolProviderRegistry {
6
+ providers = new Map();
7
+ tools = new Map();
8
+ /**
9
+ * Register a tool provider and all its tools.
10
+ */
11
+ registerProvider(provider) {
12
+ if (this.providers.has(provider.id)) {
13
+ throw new Error(`ToolProvider "${provider.id}" already registered`);
14
+ }
15
+ this.providers.set(provider.id, provider);
16
+ for (const tool of provider.tools) {
17
+ if (this.tools.has(tool.id)) {
18
+ // Workspace/global tools override built-in tools
19
+ console.log(`[ToolProvider] Overriding tool "${tool.id}" (provider: ${provider.id})`);
20
+ }
21
+ this.tools.set(tool.id, tool);
22
+ }
23
+ }
24
+ /**
25
+ * Unregister a tool provider and remove all its tools.
26
+ */
27
+ unregisterProvider(id) {
28
+ const provider = this.providers.get(id);
29
+ if (!provider)
30
+ return;
31
+ // Remove tools that belong to this provider
32
+ for (const tool of provider.tools) {
33
+ if (this.tools.get(tool.id) === tool) {
34
+ this.tools.delete(tool.id);
35
+ }
36
+ }
37
+ provider.unregister?.(undefined);
38
+ this.providers.delete(id);
39
+ }
40
+ /**
41
+ * Get a tool provider by ID.
42
+ */
43
+ getProvider(id) {
44
+ return this.providers.get(id);
45
+ }
46
+ /**
47
+ * List all registered providers.
48
+ */
49
+ listProviders() {
50
+ return [...this.providers.values()];
51
+ }
52
+ /**
53
+ * Get all tools from all providers.
54
+ */
55
+ getAllTools() {
56
+ return [...this.tools.values()];
57
+ }
58
+ /**
59
+ * Get a tool by ID.
60
+ */
61
+ getTool(id) {
62
+ return this.tools.get(id);
63
+ }
64
+ /**
65
+ * Check if a tool exists.
66
+ */
67
+ hasTool(id) {
68
+ return this.tools.has(id);
69
+ }
70
+ /**
71
+ * Refresh a specific provider (e.g., MCP tools changed).
72
+ */
73
+ async refreshProvider(id) {
74
+ const provider = this.providers.get(id);
75
+ if (!provider?.refresh)
76
+ return;
77
+ // Remove old tools from this provider
78
+ for (const tool of provider.tools) {
79
+ if (this.tools.get(tool.id) === tool) {
80
+ this.tools.delete(tool.id);
81
+ }
82
+ }
83
+ // Refresh and re-register
84
+ await provider.refresh();
85
+ for (const tool of provider.tools) {
86
+ this.tools.set(tool.id, tool);
87
+ }
88
+ }
89
+ /**
90
+ * Get tool count.
91
+ */
92
+ count() {
93
+ return this.tools.size;
94
+ }
95
+ }
96
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ToolProvider } from "../provider.js";
2
+ import type { ToolDefinition } from "../definitions.js";
3
+ import type { ToolRegistry } from "../registry.js";
4
+ /**
5
+ * Minimal kernel interface for tool registration.
6
+ * Avoids circular dependency with @vinhnt-sdk/core.
7
+ */
8
+ export interface KernelLike {
9
+ registerTool(tool: ToolDefinition): void;
10
+ }
11
+ /**
12
+ * AgentToolProvider — Provides agent-related tools.
13
+ *
14
+ * Tools are lazily created after the kernel is initialized
15
+ * to avoid circular dependencies.
16
+ */
17
+ export declare class AgentToolProvider implements ToolProvider {
18
+ readonly id = "agents";
19
+ readonly name = "Agent Tools";
20
+ readonly description = "Agent management tools: spawn, delegate, list, create";
21
+ private kernel;
22
+ private _tools;
23
+ /**
24
+ * Set the kernel instance (call after kernel is created).
25
+ */
26
+ setKernel(kernel: KernelLike): void;
27
+ get tools(): ToolDefinition[];
28
+ private createTools;
29
+ register(_registry: ToolRegistry): void;
30
+ unregister(_registry: ToolRegistry): void;
31
+ }
32
+ //# sourceMappingURL=agent-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.d.ts","sourceRoot":"","sources":["../../src/providers/agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,2DAA2D;IAE/E,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAwB;IAEtC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAED,OAAO,CAAC,WAAW;IAKnB,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * AgentToolProvider — Provides agent-related tools.
3
+ *
4
+ * Tools are lazily created after the kernel is initialized
5
+ * to avoid circular dependencies.
6
+ */
7
+ export class AgentToolProvider {
8
+ id = "agents";
9
+ name = "Agent Tools";
10
+ description = "Agent management tools: spawn, delegate, list, create";
11
+ kernel = null;
12
+ _tools = [];
13
+ /**
14
+ * Set the kernel instance (call after kernel is created).
15
+ */
16
+ setKernel(kernel) {
17
+ this.kernel = kernel;
18
+ this._tools = this.createTools();
19
+ }
20
+ get tools() {
21
+ return this._tools;
22
+ }
23
+ createTools() {
24
+ if (!this.kernel)
25
+ return [];
26
+ return [];
27
+ }
28
+ register(_registry) {
29
+ // Registration is handled by ToolProviderRegistry
30
+ }
31
+ unregister(_registry) {
32
+ this._tools = [];
33
+ }
34
+ }
35
+ //# sourceMappingURL=agent-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.js","sourceRoot":"","sources":["../../src/providers/agent-provider.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,QAAQ,CAAC;IACd,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,uDAAuD,CAAC;IAEvE,MAAM,GAAsB,IAAI,CAAC;IACjC,MAAM,GAAqB,EAAE,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,MAAkB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,CAAC,SAAuB;QAC9B,kDAAkD;IACpD,CAAC;IAED,UAAU,CAAC,SAAuB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import type { ToolProvider } from "../provider.js";
2
+ import type { ToolDefinition } from "../definitions.js";
3
+ import { type WebSearchProvider } from "../web-search-tool.js";
4
+ import type { ShellToolConfig } from "../shell-tool.js";
5
+ import type { ToolRegistry } from "../registry.js";
6
+ export interface BuiltinToolConfig {
7
+ workspaceRoot: string | (() => string);
8
+ shell: ShellToolConfig;
9
+ /** Web search provider — injectable dependency */
10
+ webSearchProvider?: WebSearchProvider;
11
+ /**
12
+ * @deprecated Use webSearchProvider instead. Will be removed in next major version.
13
+ * Kept for backward compatibility — creates a TavilySearchProvider automatically.
14
+ */
15
+ webSearchApiKey?: string | (() => string);
16
+ }
17
+ /**
18
+ * BuiltinToolProvider — Provides all built-in coding tools.
19
+ *
20
+ * These tools are always available and can be overridden
21
+ * by user tools in .vnt/tools/ or ~/.vnt/tools/.
22
+ */
23
+ export declare class BuiltinToolProvider implements ToolProvider {
24
+ readonly id = "builtin";
25
+ readonly name = "Built-in Tools";
26
+ readonly description = "Core coding tools: file operations, shell, search, git, web";
27
+ private _tools;
28
+ private readonly config;
29
+ constructor(config: BuiltinToolConfig);
30
+ get tools(): ToolDefinition[];
31
+ private createTools;
32
+ private createWebSearchTool;
33
+ register(_registry: ToolRegistry): void;
34
+ unregister(_registry: ToolRegistry): void;
35
+ }
36
+ //# sourceMappingURL=builtin-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-provider.d.ts","sourceRoot":"","sources":["../../src/providers/builtin-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAKpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,eAAe,CAAC;IACvB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,iEAAiE;IAErF,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,MAAM,EAAE,iBAAiB;IAIrC,IAAI,KAAK,IAAI,cAAc,EAAE,CAK5B;IAED,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,mBAAmB;IAuB3B,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,86 @@
1
+ import { createReadFileTool, createWriteFileTool, createEditFileTool, createApplyPatchTool, createListDirectoryTool } from "../file-tools.js";
2
+ import { createShellTool } from "../shell-tool.js";
3
+ import { createGlobFilesTool, createGrepFilesTool } from "../search-tools.js";
4
+ import { createWebFetchTool } from "../web-tools.js";
5
+ import { createWebSearchTool } from "../web-search-tool.js";
6
+ import { createGitStatusTool, createGitDiffTool, createGitLogTool, createGitCommitTool } from "../git-tools.js";
7
+ import { createTodoWriteTool } from "../todo-tool.js";
8
+ import { createQuestionTool } from "../question-tool.js";
9
+ import { createReadImageTool } from "../image-tools.js";
10
+ /**
11
+ * BuiltinToolProvider — Provides all built-in coding tools.
12
+ *
13
+ * These tools are always available and can be overridden
14
+ * by user tools in .vnt/tools/ or ~/.vnt/tools/.
15
+ */
16
+ export class BuiltinToolProvider {
17
+ id = "builtin";
18
+ name = "Built-in Tools";
19
+ description = "Core coding tools: file operations, shell, search, git, web";
20
+ _tools = null;
21
+ config;
22
+ constructor(config) {
23
+ this.config = config;
24
+ }
25
+ get tools() {
26
+ if (this._tools === null) {
27
+ this._tools = this.createTools();
28
+ }
29
+ return this._tools;
30
+ }
31
+ createTools() {
32
+ const { workspaceRoot, shell } = this.config;
33
+ const tools = [
34
+ // File tools
35
+ createReadFileTool(workspaceRoot),
36
+ createWriteFileTool(workspaceRoot),
37
+ createEditFileTool(workspaceRoot),
38
+ createApplyPatchTool(workspaceRoot),
39
+ createListDirectoryTool(workspaceRoot),
40
+ // Shell tool
41
+ createShellTool(shell),
42
+ // Search tools
43
+ createGlobFilesTool(workspaceRoot),
44
+ createGrepFilesTool(workspaceRoot),
45
+ // Web tools
46
+ createWebFetchTool(),
47
+ ...this.createWebSearchTool(),
48
+ // Git tools
49
+ createGitStatusTool(workspaceRoot),
50
+ createGitDiffTool(workspaceRoot),
51
+ createGitLogTool(workspaceRoot),
52
+ createGitCommitTool(workspaceRoot),
53
+ // Utility tools
54
+ createTodoWriteTool(),
55
+ createQuestionTool(),
56
+ createReadImageTool(),
57
+ ];
58
+ return tools;
59
+ }
60
+ createWebSearchTool() {
61
+ const { webSearchProvider, webSearchApiKey } = this.config;
62
+ if (webSearchProvider) {
63
+ return [createWebSearchTool({ provider: webSearchProvider })];
64
+ }
65
+ if (webSearchApiKey) {
66
+ // Backward compatibility: create TavilySearchProvider from API key
67
+ // Note: This imports TavilySearchProvider lazily to avoid circular deps
68
+ // and to keep it optional
69
+ const { TavilySearchProvider } = require("../web-search-tool.js");
70
+ const apiKey = typeof webSearchApiKey === "function" ? webSearchApiKey() : webSearchApiKey;
71
+ if (apiKey) {
72
+ return [createWebSearchTool({
73
+ provider: new TavilySearchProvider({ apiKey }),
74
+ })];
75
+ }
76
+ }
77
+ return [];
78
+ }
79
+ register(_registry) {
80
+ // Registration is handled by ToolProviderRegistry
81
+ }
82
+ unregister(_registry) {
83
+ // Cleanup is handled by ToolProviderRegistry
84
+ }
85
+ }
86
+ //# sourceMappingURL=builtin-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-provider.js","sourceRoot":"","sources":["../../src/providers/builtin-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ToolProvider } from "../provider.js";
2
+ import type { ToolDefinition } from "../definitions.js";
3
+ import type { ToolRegistry } from "../registry.js";
4
+ /**
5
+ * ToolFileProvider — Loads tools from .vnt/tools/ directories.
6
+ *
7
+ * Supports both workspace-local and global tools.
8
+ * Tools can override built-in tools by using the same name.
9
+ */
10
+ export declare class ToolFileProvider implements ToolProvider {
11
+ readonly id: string;
12
+ readonly name: string;
13
+ readonly description = "User-defined tools from .vnt/tools/";
14
+ private _tools;
15
+ constructor(id: string, name: string, tools: ToolDefinition[]);
16
+ get tools(): ToolDefinition[];
17
+ register(_registry: ToolRegistry): void;
18
+ unregister(_registry: ToolRegistry): void;
19
+ }
20
+ /**
21
+ * ToolFileLoader — Discovers and loads tools from .vnt/tools/ directories.
22
+ */
23
+ export declare class ToolFileLoader {
24
+ /**
25
+ * Load tools from a single directory.
26
+ */
27
+ loadFromDirectory(dir: string): Promise<ToolDefinition[]>;
28
+ /**
29
+ * Load a single tool from a file.
30
+ */
31
+ private loadToolFromFile;
32
+ /**
33
+ * Check if a value is a ToolDefinition.
34
+ */
35
+ private isToolDefinition;
36
+ /**
37
+ * Discover tools from workspace and global directories.
38
+ *
39
+ * Discovery order:
40
+ * 1. Workspace-local: .vnt/tools/*.ts
41
+ * 2. Global: ~/.vnt/tools/*.ts
42
+ *
43
+ * Workspace tools override global tools with the same name.
44
+ */
45
+ discover(workspaceRoot: string): Promise<ToolFileProvider>;
46
+ }
47
+ //# sourceMappingURL=file-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-loader.d.ts","sourceRoot":"","sources":["../../src/providers/file-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,yCAAyC;IAE7D,OAAO,CAAC,MAAM,CAAwB;gBAGpC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,EAAE;IAOzB,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAED,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA2B/D;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;;;;;OAQG;IACG,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyBjE"}
@@ -0,0 +1,120 @@
1
+ import { readdir } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ /**
5
+ * ToolFileProvider — Loads tools from .vnt/tools/ directories.
6
+ *
7
+ * Supports both workspace-local and global tools.
8
+ * Tools can override built-in tools by using the same name.
9
+ */
10
+ export class ToolFileProvider {
11
+ id;
12
+ name;
13
+ description = "User-defined tools from .vnt/tools/";
14
+ _tools = [];
15
+ constructor(id, name, tools) {
16
+ this.id = id;
17
+ this.name = name;
18
+ this._tools = tools;
19
+ }
20
+ get tools() {
21
+ return this._tools;
22
+ }
23
+ register(_registry) {
24
+ // Registration is handled by ToolProviderRegistry
25
+ }
26
+ unregister(_registry) {
27
+ this._tools = [];
28
+ }
29
+ }
30
+ /**
31
+ * ToolFileLoader — Discovers and loads tools from .vnt/tools/ directories.
32
+ */
33
+ export class ToolFileLoader {
34
+ /**
35
+ * Load tools from a single directory.
36
+ */
37
+ async loadFromDirectory(dir) {
38
+ const tools = [];
39
+ try {
40
+ const entries = await readdir(dir, { withFileTypes: true });
41
+ for (const entry of entries) {
42
+ if (!entry.isFile())
43
+ continue;
44
+ if (!entry.name.endsWith(".ts") && !entry.name.endsWith(".js"))
45
+ continue;
46
+ const filePath = join(dir, entry.name);
47
+ try {
48
+ const tool = await this.loadToolFromFile(filePath);
49
+ if (tool) {
50
+ tools.push(tool);
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.error(`[ToolFileLoader] Failed to load tool from ${filePath}:`, error);
55
+ }
56
+ }
57
+ }
58
+ catch {
59
+ // Directory doesn't exist, ignore
60
+ }
61
+ return tools;
62
+ }
63
+ /**
64
+ * Load a single tool from a file.
65
+ */
66
+ async loadToolFromFile(filePath) {
67
+ const fileUrl = pathToFileURL(filePath).href;
68
+ const mod = await import(fileUrl);
69
+ // Support default export
70
+ if (mod.default && this.isToolDefinition(mod.default)) {
71
+ return mod.default;
72
+ }
73
+ // Support named exports
74
+ for (const value of Object.values(mod)) {
75
+ if (this.isToolDefinition(value)) {
76
+ return value;
77
+ }
78
+ }
79
+ return null;
80
+ }
81
+ /**
82
+ * Check if a value is a ToolDefinition.
83
+ */
84
+ isToolDefinition(value) {
85
+ return (typeof value === "object" &&
86
+ value !== null &&
87
+ "id" in value &&
88
+ "description" in value &&
89
+ "risk" in value &&
90
+ "execute" in value &&
91
+ typeof value.execute === "function");
92
+ }
93
+ /**
94
+ * Discover tools from workspace and global directories.
95
+ *
96
+ * Discovery order:
97
+ * 1. Workspace-local: .vnt/tools/*.ts
98
+ * 2. Global: ~/.vnt/tools/*.ts
99
+ *
100
+ * Workspace tools override global tools with the same name.
101
+ */
102
+ async discover(workspaceRoot) {
103
+ const globalDir = join(process.env.HOME || process.env.USERPROFILE || "", ".vnt", "tools");
104
+ const workspaceDir = join(workspaceRoot, ".vnt", "tools");
105
+ // Load global tools first
106
+ const globalTools = await this.loadFromDirectory(globalDir);
107
+ // Load workspace tools (overrides global)
108
+ const workspaceTools = await this.loadFromDirectory(workspaceDir);
109
+ // Merge: workspace overrides global by name
110
+ const toolMap = new Map();
111
+ for (const tool of globalTools) {
112
+ toolMap.set(tool.id, tool);
113
+ }
114
+ for (const tool of workspaceTools) {
115
+ toolMap.set(tool.id, tool);
116
+ }
117
+ return new ToolFileProvider("user-tools", "User Tools", [...toolMap.values()]);
118
+ }
119
+ }
120
+ //# sourceMappingURL=file-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/providers/file-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAClB,EAAE,CAAS;IACX,IAAI,CAAS;IACb,WAAW,GAAG,qCAAqC,CAAC;IAErD,MAAM,GAAqB,EAAE,CAAC;IAEtC,YACE,EAAU,EACV,IAAY,EACZ,KAAuB;QAEvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,SAAuB;QAC9B,kDAAkD;IACpD,CAAC;IAED,UAAU,CAAC,SAAuB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACjC,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAAE,SAAS;gBAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAEzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACnD,IAAI,IAAI,EAAE,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAElC,yBAAyB;QACzB,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAc;QACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,IAAI,IAAI,KAAK;YACb,aAAa,IAAI,KAAK;YACtB,MAAM,IAAI,KAAK;YACf,SAAS,IAAI,KAAK;YAClB,OAAQ,KAAwB,CAAC,OAAO,KAAK,UAAU,CACxD,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,aAAqB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE1D,0BAA0B;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE5D,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAElE,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,gBAAgB,CACzB,YAAY,EACZ,YAAY,EACZ,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CACtB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export { BuiltinToolProvider } from "./builtin-provider.js";
2
+ export type { BuiltinToolConfig } from "./builtin-provider.js";
3
+ export { ToolFileProvider, ToolFileLoader } from "./file-loader.js";
4
+ export { AgentToolProvider } from "./agent-provider.js";
5
+ export { SkillToolProvider } from "./skill-provider.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { BuiltinToolProvider } from "./builtin-provider.js";
2
+ export { ToolFileProvider, ToolFileLoader } from "./file-loader.js";
3
+ export { AgentToolProvider } from "./agent-provider.js";
4
+ export { SkillToolProvider } from "./skill-provider.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { ToolProvider } from "../provider.js";
2
+ import type { ToolDefinition } from "../definitions.js";
3
+ import type { ToolRegistry } from "../registry.js";
4
+ /**
5
+ * SkillToolProvider — Provides skill-related tools.
6
+ *
7
+ * This is a metadata provider that declares skill tools exist.
8
+ * Actual tool creation happens in the composition root to avoid circular dependencies.
9
+ */
10
+ export declare class SkillToolProvider implements ToolProvider {
11
+ readonly id = "skills";
12
+ readonly name = "Skill Tools";
13
+ readonly description = "Skill management tools: load, search, create";
14
+ private _tools;
15
+ get tools(): ToolDefinition[];
16
+ /**
17
+ * Add tools externally (called by composition root).
18
+ */
19
+ addTools(tools: ToolDefinition[]): void;
20
+ register(_registry: ToolRegistry): void;
21
+ unregister(_registry: ToolRegistry): void;
22
+ }
23
+ //# sourceMappingURL=skill-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/providers/skill-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,kDAAkD;IAEtE,OAAO,CAAC,MAAM,CAAwB;IAEtC,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAIvC,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * SkillToolProvider — Provides skill-related tools.
3
+ *
4
+ * This is a metadata provider that declares skill tools exist.
5
+ * Actual tool creation happens in the composition root to avoid circular dependencies.
6
+ */
7
+ export class SkillToolProvider {
8
+ id = "skills";
9
+ name = "Skill Tools";
10
+ description = "Skill management tools: load, search, create";
11
+ _tools = [];
12
+ get tools() {
13
+ return this._tools;
14
+ }
15
+ /**
16
+ * Add tools externally (called by composition root).
17
+ */
18
+ addTools(tools) {
19
+ this._tools.push(...tools);
20
+ }
21
+ register(_registry) {
22
+ // Registration is handled by ToolProviderRegistry
23
+ }
24
+ unregister(_registry) {
25
+ this._tools = [];
26
+ }
27
+ }
28
+ //# sourceMappingURL=skill-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-provider.js","sourceRoot":"","sources":["../../src/providers/skill-provider.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,QAAQ,CAAC;IACd,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,8CAA8C,CAAC;IAE9D,MAAM,GAAqB,EAAE,CAAC;IAEtC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAuB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,SAAuB;QAC9B,kDAAkD;IACpD,CAAC;IAED,UAAU,CAAC,SAAuB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}