@agntk/core 0.2.0 → 0.3.1

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 (190) hide show
  1. package/dist/agent-v2.d.ts +48 -0
  2. package/dist/agent-v2.d.ts.map +1 -0
  3. package/dist/agent-v2.js +365 -0
  4. package/dist/agent-v2.js.map +1 -0
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +61 -43
  7. package/dist/agent.js.map +1 -1
  8. package/dist/config/defaults.d.ts.map +1 -1
  9. package/dist/config/defaults.js +16 -4
  10. package/dist/config/defaults.js.map +1 -1
  11. package/dist/config/loader.d.ts +14 -6
  12. package/dist/config/loader.d.ts.map +1 -1
  13. package/dist/config/loader.js +38 -16
  14. package/dist/config/loader.js.map +1 -1
  15. package/dist/config/schema.d.ts +14 -14
  16. package/dist/config/schema.d.ts.map +1 -1
  17. package/dist/config/schema.js +1 -1
  18. package/dist/config/schema.js.map +1 -1
  19. package/dist/guardrails/runner.d.ts.map +1 -1
  20. package/dist/guardrails/runner.js +4 -0
  21. package/dist/guardrails/runner.js.map +1 -1
  22. package/dist/index.d.ts +5 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/memory/engine.d.ts +130 -0
  27. package/dist/memory/engine.d.ts.map +1 -0
  28. package/dist/memory/engine.js +227 -0
  29. package/dist/memory/engine.js.map +1 -0
  30. package/dist/memory/vectra-store.d.ts +31 -0
  31. package/dist/memory/vectra-store.d.ts.map +1 -0
  32. package/dist/memory/vectra-store.js +122 -0
  33. package/dist/memory/vectra-store.js.map +1 -0
  34. package/dist/models.d.ts +24 -1
  35. package/dist/models.d.ts.map +1 -1
  36. package/dist/models.js +50 -4
  37. package/dist/models.js.map +1 -1
  38. package/dist/pool/index.d.ts +7 -0
  39. package/dist/pool/index.d.ts.map +1 -0
  40. package/dist/pool/index.js +6 -0
  41. package/dist/pool/index.js.map +1 -0
  42. package/dist/pool/specialist-pool.d.ts +59 -0
  43. package/dist/pool/specialist-pool.d.ts.map +1 -0
  44. package/dist/pool/specialist-pool.js +224 -0
  45. package/dist/pool/specialist-pool.js.map +1 -0
  46. package/dist/pool/tools.d.ts +63 -0
  47. package/dist/pool/tools.d.ts.map +1 -0
  48. package/dist/pool/tools.js +83 -0
  49. package/dist/pool/tools.js.map +1 -0
  50. package/dist/pool/types.d.ts +79 -0
  51. package/dist/pool/types.d.ts.map +1 -0
  52. package/dist/pool/types.js +5 -0
  53. package/dist/pool/types.js.map +1 -0
  54. package/dist/presets/index.d.ts +5 -0
  55. package/dist/presets/index.d.ts.map +1 -0
  56. package/dist/presets/index.js +5 -0
  57. package/dist/presets/index.js.map +1 -0
  58. package/dist/presets/role-registry.d.ts +41 -0
  59. package/dist/presets/role-registry.d.ts.map +1 -0
  60. package/dist/presets/role-registry.js +213 -0
  61. package/dist/presets/role-registry.js.map +1 -0
  62. package/dist/presets/roles.d.ts +105 -0
  63. package/dist/presets/roles.d.ts.map +1 -0
  64. package/dist/presets/roles.js +207 -0
  65. package/dist/presets/roles.js.map +1 -0
  66. package/dist/presets/tools.d.ts +2 -2
  67. package/dist/prompts/templates.d.ts +11 -0
  68. package/dist/prompts/templates.d.ts.map +1 -0
  69. package/dist/prompts/templates.js +115 -0
  70. package/dist/prompts/templates.js.map +1 -0
  71. package/dist/provider-resolver.d.ts +38 -0
  72. package/dist/provider-resolver.d.ts.map +1 -0
  73. package/dist/provider-resolver.js +142 -0
  74. package/dist/provider-resolver.js.map +1 -0
  75. package/dist/reflection.d.ts +5 -2
  76. package/dist/reflection.d.ts.map +1 -1
  77. package/dist/reflection.js +8 -3
  78. package/dist/reflection.js.map +1 -1
  79. package/dist/skills/loader.d.ts +18 -0
  80. package/dist/skills/loader.d.ts.map +1 -1
  81. package/dist/skills/loader.js +58 -2
  82. package/dist/skills/loader.js.map +1 -1
  83. package/dist/streaming/data-parts.d.ts +163 -0
  84. package/dist/streaming/data-parts.d.ts.map +1 -0
  85. package/dist/streaming/data-parts.js +14 -0
  86. package/dist/streaming/data-parts.js.map +1 -0
  87. package/dist/streaming/index.d.ts +8 -0
  88. package/dist/streaming/index.d.ts.map +1 -0
  89. package/dist/streaming/index.js +10 -0
  90. package/dist/streaming/index.js.map +1 -0
  91. package/dist/streaming/transient.d.ts +136 -0
  92. package/dist/streaming/transient.d.ts.map +1 -0
  93. package/dist/streaming/transient.js +201 -0
  94. package/dist/streaming/transient.js.map +1 -0
  95. package/dist/system-detect.d.ts +59 -0
  96. package/dist/system-detect.d.ts.map +1 -0
  97. package/dist/system-detect.js +193 -0
  98. package/dist/system-detect.js.map +1 -0
  99. package/dist/tools/browser/tool.d.ts +2 -2
  100. package/dist/tools/browser/types.d.ts +2 -2
  101. package/dist/tools/file/tools.d.ts.map +1 -1
  102. package/dist/tools/file/tools.js +30 -1
  103. package/dist/tools/file/tools.js.map +1 -1
  104. package/dist/tools/index.d.ts +0 -1
  105. package/dist/tools/index.d.ts.map +1 -1
  106. package/dist/tools/index.js +0 -2
  107. package/dist/tools/index.js.map +1 -1
  108. package/dist/tools/progress/index.d.ts +1 -1
  109. package/dist/tools/provider.d.ts +97 -0
  110. package/dist/tools/provider.d.ts.map +1 -0
  111. package/dist/tools/provider.js +178 -0
  112. package/dist/tools/provider.js.map +1 -0
  113. package/dist/tools/shell/background.d.ts.map +1 -1
  114. package/dist/tools/shell/background.js +45 -3
  115. package/dist/tools/shell/background.js.map +1 -1
  116. package/dist/tools/shell/tools.d.ts.map +1 -1
  117. package/dist/tools/shell/tools.js +9 -2
  118. package/dist/tools/shell/tools.js.map +1 -1
  119. package/dist/tools/utils/shell.d.ts +14 -0
  120. package/dist/tools/utils/shell.d.ts.map +1 -1
  121. package/dist/tools/utils/shell.js +171 -12
  122. package/dist/tools/utils/shell.js.map +1 -1
  123. package/dist/types/agent-v2.d.ts +83 -0
  124. package/dist/types/agent-v2.d.ts.map +1 -0
  125. package/dist/types/agent-v2.js +8 -0
  126. package/dist/types/agent-v2.js.map +1 -0
  127. package/dist/types/agent.d.ts +10 -0
  128. package/dist/types/agent.d.ts.map +1 -1
  129. package/dist/utils/logger.d.ts +35 -0
  130. package/dist/utils/logger.d.ts.map +1 -0
  131. package/dist/utils/logger.js +149 -0
  132. package/dist/utils/logger.js.map +1 -0
  133. package/dist/workflow/builders/adapt.d.ts +20 -0
  134. package/dist/workflow/builders/adapt.d.ts.map +1 -0
  135. package/dist/workflow/builders/adapt.js +33 -0
  136. package/dist/workflow/builders/adapt.js.map +1 -0
  137. package/dist/workflow/builders/index.d.ts +8 -0
  138. package/dist/workflow/builders/index.d.ts.map +1 -0
  139. package/dist/workflow/builders/index.js +7 -0
  140. package/dist/workflow/builders/index.js.map +1 -0
  141. package/dist/workflow/builders/parallel.d.ts +25 -0
  142. package/dist/workflow/builders/parallel.d.ts.map +1 -0
  143. package/dist/workflow/builders/parallel.js +60 -0
  144. package/dist/workflow/builders/parallel.js.map +1 -0
  145. package/dist/workflow/builders/pipeline.d.ts +22 -0
  146. package/dist/workflow/builders/pipeline.d.ts.map +1 -0
  147. package/dist/workflow/builders/pipeline.js +48 -0
  148. package/dist/workflow/builders/pipeline.js.map +1 -0
  149. package/dist/workflow/builders/types.d.ts +54 -0
  150. package/dist/workflow/builders/types.d.ts.map +1 -0
  151. package/dist/workflow/builders/types.js +5 -0
  152. package/dist/workflow/builders/types.js.map +1 -0
  153. package/dist/workflow/durable-agent.d.ts +128 -0
  154. package/dist/workflow/durable-agent.d.ts.map +1 -0
  155. package/dist/workflow/durable-agent.js +323 -0
  156. package/dist/workflow/durable-agent.js.map +1 -0
  157. package/dist/workflow/schedulers.d.ts +231 -0
  158. package/dist/workflow/schedulers.d.ts.map +1 -0
  159. package/dist/workflow/schedulers.js +250 -0
  160. package/dist/workflow/schedulers.js.map +1 -0
  161. package/dist/workflow/team/create-team.d.ts +34 -0
  162. package/dist/workflow/team/create-team.d.ts.map +1 -0
  163. package/dist/workflow/team/create-team.js +242 -0
  164. package/dist/workflow/team/create-team.js.map +1 -0
  165. package/dist/workflow/team/index.d.ts +9 -0
  166. package/dist/workflow/team/index.d.ts.map +1 -0
  167. package/dist/workflow/team/index.js +8 -0
  168. package/dist/workflow/team/index.js.map +1 -0
  169. package/dist/workflow/team/machines.d.ts +152 -0
  170. package/dist/workflow/team/machines.d.ts.map +1 -0
  171. package/dist/workflow/team/machines.js +197 -0
  172. package/dist/workflow/team/machines.js.map +1 -0
  173. package/dist/workflow/team/task-board.d.ts +47 -0
  174. package/dist/workflow/team/task-board.d.ts.map +1 -0
  175. package/dist/workflow/team/task-board.js +111 -0
  176. package/dist/workflow/team/task-board.js.map +1 -0
  177. package/dist/workflow/team/tools.d.ts +66 -0
  178. package/dist/workflow/team/tools.d.ts.map +1 -0
  179. package/dist/workflow/team/tools.js +100 -0
  180. package/dist/workflow/team/tools.js.map +1 -0
  181. package/dist/workflow/team/types.d.ts +109 -0
  182. package/dist/workflow/team/types.d.ts.map +1 -0
  183. package/dist/workflow/team/types.js +5 -0
  184. package/dist/workflow/team/types.js.map +1 -0
  185. package/dist/workflow/templates.d.ts +71 -0
  186. package/dist/workflow/templates.d.ts.map +1 -0
  187. package/dist/workflow/templates.js +132 -0
  188. package/dist/workflow/templates.js.map +1 -0
  189. package/package.json +13 -13
  190. package/LICENSE +0 -22
@@ -0,0 +1,193 @@
1
+ /**
2
+ * @fileoverview System hardware detection for automatic Ollama model selection.
3
+ *
4
+ * Detects available RAM/VRAM and selects the largest Qwen3 model the system
5
+ * can comfortably run. Falls back conservatively — better to run a smaller
6
+ * model fast than a larger model that swaps to disk.
7
+ *
8
+ * Memory thresholds (Q4_K_M quantization):
9
+ * qwen3:8b ~5-6 GB → needs ≥8 GB total RAM
10
+ * qwen3:14b ~8-10 GB → needs ≥16 GB total RAM
11
+ * qwen3:32b ~18-22 GB → needs ≥32 GB total RAM
12
+ */
13
+ import { createLogger } from '@agntk/logger';
14
+ import os from 'node:os';
15
+ import { execSync } from 'node:child_process';
16
+ const log = createLogger('@agntk/core:system-detect');
17
+ // ============================================================================
18
+ // Model Tier Definitions
19
+ // ============================================================================
20
+ const MODEL_TIERS = {
21
+ small: {
22
+ tier: 'small',
23
+ fast: 'qwen3:8b',
24
+ standard: 'qwen3:8b',
25
+ reasoning: 'qwen3:8b',
26
+ powerful: 'qwen3:8b',
27
+ },
28
+ medium: {
29
+ tier: 'medium',
30
+ fast: 'qwen3:8b',
31
+ standard: 'qwen3:14b',
32
+ reasoning: 'qwen3:14b',
33
+ powerful: 'qwen3:14b',
34
+ },
35
+ large: {
36
+ tier: 'large',
37
+ fast: 'qwen3:8b',
38
+ standard: 'qwen3:14b',
39
+ reasoning: 'qwen3:32b',
40
+ powerful: 'qwen3:32b',
41
+ },
42
+ };
43
+ // ============================================================================
44
+ // System Detection
45
+ // ============================================================================
46
+ /**
47
+ * Detect whether this is an Apple Silicon Mac.
48
+ */
49
+ function detectAppleSilicon() {
50
+ if (os.platform() !== 'darwin')
51
+ return false;
52
+ try {
53
+ const brand = execSync('sysctl -n machdep.cpu.brand_string', { encoding: 'utf-8' }).trim();
54
+ return brand.includes('Apple');
55
+ }
56
+ catch {
57
+ // Fallback: check arch
58
+ return os.arch() === 'arm64';
59
+ }
60
+ }
61
+ /**
62
+ * Try to detect NVIDIA GPU VRAM via nvidia-smi.
63
+ * Returns VRAM in GB or null if no NVIDIA GPU / nvidia-smi not found.
64
+ */
65
+ function detectNvidiaVRAM() {
66
+ try {
67
+ const output = execSync('nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits', { encoding: 'utf-8', timeout: 3000 }).trim();
68
+ // nvidia-smi returns MB, could have multiple GPUs — take the first
69
+ const mb = parseInt(output.split('\n')[0], 10);
70
+ if (!isNaN(mb) && mb > 0) {
71
+ return Math.round(mb / 1024 * 10) / 10; // GB with 1 decimal
72
+ }
73
+ return null;
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ /**
80
+ * Detect system hardware profile.
81
+ */
82
+ export function detectSystem() {
83
+ const totalBytes = os.totalmem();
84
+ const totalRAMGb = Math.round(totalBytes / (1024 ** 3) * 10) / 10;
85
+ const platform = os.platform();
86
+ const isAppleSilicon = detectAppleSilicon();
87
+ const nvidiaVRAMGb = detectNvidiaVRAM();
88
+ // Calculate usable memory for models:
89
+ // - Reserve ~3 GB for OS + Ollama server overhead
90
+ // - On Apple Silicon: GPU gets ~75% of unified memory, but we're more conservative
91
+ // - On NVIDIA: model loads into VRAM, which is separate from system RAM
92
+ let usableForModelsGb;
93
+ if (nvidiaVRAMGb !== null) {
94
+ // NVIDIA GPU: model goes into VRAM. Use that as the constraint.
95
+ usableForModelsGb = nvidiaVRAMGb - 1; // reserve 1 GB for GPU driver/overhead
96
+ }
97
+ else if (isAppleSilicon) {
98
+ // Apple Silicon: unified memory shared between CPU and GPU.
99
+ // Ollama uses Metal — model sits in unified memory.
100
+ // Reserve ~25% for OS + apps + KV cache growth.
101
+ usableForModelsGb = totalRAMGb * 0.65;
102
+ }
103
+ else {
104
+ // CPU-only inference: slower but uses system RAM.
105
+ // Reserve 3 GB for OS overhead.
106
+ usableForModelsGb = totalRAMGb - 3;
107
+ }
108
+ usableForModelsGb = Math.max(0, usableForModelsGb);
109
+ const profile = {
110
+ totalRAMGb,
111
+ usableForModelsGb,
112
+ platform,
113
+ isAppleSilicon,
114
+ nvidiaVRAMGb,
115
+ };
116
+ log.debug('System profile', { ...profile });
117
+ return profile;
118
+ }
119
+ // ============================================================================
120
+ // Model Recommendation
121
+ // ============================================================================
122
+ /**
123
+ * Select the best Ollama model tier based on system capabilities.
124
+ *
125
+ * Thresholds (usable memory for the model weights):
126
+ * < 6 GB → too small, warn user
127
+ * 6-10 GB → small (qwen3:8b everywhere)
128
+ * 10-18 GB → medium (qwen3:14b for standard+)
129
+ * 18+ GB → large (qwen3:32b for reasoning/powerful)
130
+ */
131
+ export function recommendOllamaModels(profile) {
132
+ const sys = profile || detectSystem();
133
+ const mem = sys.usableForModelsGb;
134
+ if (mem < 4) {
135
+ log.warn('Very limited memory for local models', { usableGb: mem });
136
+ return {
137
+ ...MODEL_TIERS.small,
138
+ reason: `Only ${sys.totalRAMGb} GB RAM detected — qwen3:8b may be slow. Consider using the free tier instead.`,
139
+ };
140
+ }
141
+ if (mem < 10) {
142
+ return {
143
+ ...MODEL_TIERS.small,
144
+ reason: `${sys.totalRAMGb} GB RAM → qwen3:8b (best fit for your hardware)`,
145
+ };
146
+ }
147
+ if (mem < 18) {
148
+ return {
149
+ ...MODEL_TIERS.medium,
150
+ reason: `${sys.totalRAMGb} GB RAM → qwen3:14b for standard tasks, qwen3:8b for fast tasks`,
151
+ };
152
+ }
153
+ return {
154
+ ...MODEL_TIERS.large,
155
+ reason: `${sys.totalRAMGb} GB RAM → qwen3:32b for reasoning/powerful, qwen3:14b for standard`,
156
+ };
157
+ }
158
+ // ============================================================================
159
+ // Ollama Model Availability
160
+ // ============================================================================
161
+ /**
162
+ * Check which models Ollama already has pulled.
163
+ */
164
+ export async function getOllamaModels(baseUrl) {
165
+ const url = baseUrl || process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
166
+ const controller = new AbortController();
167
+ const timeout = setTimeout(() => controller.abort(), 2000);
168
+ try {
169
+ const res = await fetch(`${url}/api/tags`, {
170
+ signal: controller.signal,
171
+ method: 'GET',
172
+ });
173
+ clearTimeout(timeout);
174
+ if (!res.ok)
175
+ return [];
176
+ const data = (await res.json());
177
+ return (data.models || []).map((m) => m.name);
178
+ }
179
+ catch {
180
+ clearTimeout(timeout);
181
+ return [];
182
+ }
183
+ }
184
+ /**
185
+ * Check if a specific model is available in Ollama.
186
+ */
187
+ export async function hasOllamaModel(model, baseUrl) {
188
+ const models = await getOllamaModels(baseUrl);
189
+ // Normalize: "qwen3:8b" should match "qwen3:8b" and "qwen3:8b-q4_K_M"
190
+ const normalized = model.toLowerCase();
191
+ return models.some((m) => m.toLowerCase().startsWith(normalized));
192
+ }
193
+ //# sourceMappingURL=system-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-detect.js","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ export declare function executeBrowserCommand(args: string[], timeout?: number):
14
14
  durationMs: number;
15
15
  }>;
16
16
  export declare function createBrowserTool(config?: BrowserConfig): import("ai").Tool<{
17
- url: string;
18
17
  action: "open";
18
+ url: string;
19
19
  } | {
20
20
  action: "snapshot";
21
21
  interactive?: boolean | undefined;
@@ -78,8 +78,8 @@ export declare function createBrowserTool(config?: BrowserConfig): import("ai").
78
78
  action: "close";
79
79
  }, string>;
80
80
  export declare const browserTool: import("ai").Tool<{
81
- url: string;
82
81
  action: "open";
82
+ url: string;
83
83
  } | {
84
84
  action: "snapshot";
85
85
  interactive?: boolean | undefined;
@@ -7,11 +7,11 @@ export declare const browserInputSchema: z.ZodDiscriminatedUnion<"action", [z.Zo
7
7
  action: z.ZodLiteral<"open">;
8
8
  url: z.ZodString;
9
9
  }, "strip", z.ZodTypeAny, {
10
- url: string;
11
10
  action: "open";
12
- }, {
13
11
  url: string;
12
+ }, {
14
13
  action: "open";
14
+ url: string;
15
15
  }>, z.ZodObject<{
16
16
  action: z.ZodLiteral<"snapshot">;
17
17
  interactive: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/file/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2DH,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAsB;;;;WAgCvE;AAcD,wBAAgB,mBAAmB,CAAC,aAAa,GAAE,MAAsB;;;WAsBxE;AAiBD,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAsB;;;;WAsCvE;AAeD,wBAAgB,oBAAoB,CAAC,aAAa,GAAE,MAAsB;;;WA0BzE;AAMD,wBAAgB,eAAe,CAAC,aAAa,GAAE,MAAsB;;;;;;;;;;;;;;;;;;;EAOpE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/file/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuFH,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAsB;;;;WAqCvE;AAcD,wBAAgB,mBAAmB,CAAC,aAAa,GAAE,MAAsB;;;WAsBxE;AAiBD,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAsB;;;;WAsCvE;AAeD,wBAAgB,oBAAoB,CAAC,aAAa,GAAE,MAAsB;;;WA0BzE;AAMD,wBAAgB,eAAe,CAAC,aAAa,GAAE,MAAsB;;;;;;;;;;;;;;;;;;;EAOpE"}
@@ -39,7 +39,32 @@ function resolveAndValidatePath(filePath, workspaceRoot) {
39
39
  if (!realResolved.startsWith(realWorkspace + path.sep) && realResolved !== realWorkspace) {
40
40
  throw new Error(`Path "${filePath}" is outside workspace root`);
41
41
  }
42
- return resolved;
42
+ // F-1 fix: return the canonical (realpath) so all subsequent I/O uses the
43
+ // resolved target, not the original path that could race with symlink changes.
44
+ return realResolved;
45
+ }
46
+ // ============================================================================
47
+ // Sensitive Path Blocklist (A-2)
48
+ // ============================================================================
49
+ /**
50
+ * Patterns for paths that must never be read by the agent.
51
+ * Prevents accidental exposure of credentials and private keys.
52
+ */
53
+ const SENSITIVE_PATH_PATTERNS = [
54
+ /\/\.env(\.|$)/, // .env, .env.local, .env.production, etc.
55
+ /\/\.ssh\//, // ~/.ssh/ directory
56
+ /authorized_keys$/,
57
+ /id_rsa(\.pub)?$/,
58
+ /id_ed25519(\.pub)?$/,
59
+ /id_ecdsa(\.pub)?$/,
60
+ /id_dsa(\.pub)?$/,
61
+ /\/\.netrc$/,
62
+ /\/\.pgpass$/,
63
+ /\/\.aws\/credentials$/,
64
+ /\/\.aws\/config$/,
65
+ ];
66
+ function isSensitivePath(resolvedPath) {
67
+ return SENSITIVE_PATH_PATTERNS.some((p) => p.test(resolvedPath));
43
68
  }
44
69
  // ============================================================================
45
70
  // file_read
@@ -59,6 +84,10 @@ export function createFileReadTool(workspaceRoot = process.cwd()) {
59
84
  execute: async ({ path: filePath, startLine, endLine }) => {
60
85
  try {
61
86
  const resolved = resolveAndValidatePath(filePath, workspaceRoot);
87
+ // A-2: Block access to sensitive credential files
88
+ if (isSensitivePath(resolved)) {
89
+ return error(`Reading sensitive paths is not permitted: ${filePath}`);
90
+ }
62
91
  if (!fs.existsSync(resolved)) {
63
92
  return error(`File not found: ${filePath}`);
64
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/file/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/file/tools.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * Central export for tool factory, provider, and utilities.
5
5
  */
6
- export { ToolFactory, defaultToolFactory, mergeToolSets, filterTools, excludeTools, getToolNames, type ToolDependencies, type ToolSet, type ToolCreator, } from './factory.js';
7
6
  export { globTool, createGlobTool, runRgFiles, formatGlobResult, type GlobOptions, type GlobResult, type FileMatch, } from './glob/index.js';
8
7
  export { grepTool, createGrepTool, runRg, runRgCount, formatGrepResult, formatCountResult, downloadAndInstallRipgrep, type GrepOptions, type GrepMatch, type GrepResult, type CountResult, } from './grep/index.js';
9
8
  export { astGrepSearchTool, astGrepReplaceTool, createAstGrepTools, runSg, ensureAstGrepBinary, formatSearchResult, formatReplaceResult, type CliLanguage, type CliMatch, type SgResult, type SearchMatch, } from './ast-grep/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGxG,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGxG,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC"}
@@ -3,8 +3,6 @@
3
3
  *
4
4
  * Central export for tool factory, provider, and utilities.
5
5
  */
6
- // Factory
7
- export { ToolFactory, defaultToolFactory, mergeToolSets, filterTools, excludeTools, getToolNames, } from './factory.js';
8
6
  // Glob Tool
9
7
  export { globTool, createGlobTool, runRgFiles, formatGlobResult, } from './glob/index.js';
10
8
  // Grep Tool
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU;AACV,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,GAIb,MAAM,WAAW,CAAC;AAEnB,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,GAIjB,MAAM,QAAQ,CAAC;AAEhB,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,GAK1B,MAAM,QAAQ,CAAC;AAEhB,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,GAGrB,MAAM,SAAS,CAAC;AAEjB,YAAY;AACZ,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GASjB,MAAM,QAAQ,CAAC;AAEhB,sBAAsB;AACtB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,GAKxB,MAAM,kBAAkB,CAAC;AAE1B,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,cAAc;AACd,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAExG,eAAe;AACf,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GAKzB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,GAIjB,MAAM,QAAQ,CAAC;AAEhB,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,cAAc,EACd,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,GAK1B,MAAM,QAAQ,CAAC;AAEhB,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EACL,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,oBAAoB,GAGrB,MAAM,SAAS,CAAC;AAEjB,YAAY;AACZ,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GASjB,MAAM,QAAQ,CAAC;AAEhB,sBAAsB;AACtB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,GAKxB,MAAM,kBAAkB,CAAC;AAE1B,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,cAAc;AACd,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAExG,eAAe;AACf,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GAKzB,MAAM,WAAW,CAAC"}
@@ -40,8 +40,8 @@ export interface ProgressData {
40
40
  export declare function createProgressTools(workspaceRoot: string): {
41
41
  progress_read: import("ai").Tool<{}, string>;
42
42
  progress_update: import("ai").Tool<{
43
- sessionId?: string | undefined;
44
43
  action?: string | undefined;
44
+ sessionId?: string | undefined;
45
45
  featureId?: string | undefined;
46
46
  featureName?: string | undefined;
47
47
  featureStatus?: "blocked" | "completed" | "pending" | "in_progress" | undefined;
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @agntk/core - Tool Provider
3
+ *
4
+ * Central provider for creating and managing tool sets.
5
+ * Adapted from packages/core/src/tools/provider.ts
6
+ */
7
+ import { type ToolSet } from './factory.js';
8
+ /**
9
+ * Names of core tools that are always available.
10
+ */
11
+ export declare const CORE_TOOL_NAMES: readonly ["fs", "shell", "web", "memory", "delegate", "task", "plan", "validate", "reasoning"];
12
+ export type CoreToolName = (typeof CORE_TOOL_NAMES)[number];
13
+ export interface ToolProviderConfig {
14
+ /** Workspace root directory */
15
+ workspaceRoot?: string;
16
+ /** Allowed directories for file operations */
17
+ allowedDirectories?: string[];
18
+ /** Enable tool execution instrumentation/logging */
19
+ enableInstrumentation?: boolean;
20
+ /** Enable dynamic tool activation/deactivation */
21
+ enableActivation?: boolean;
22
+ /** Custom tool dependencies */
23
+ customDependencies?: Record<string, unknown>;
24
+ }
25
+ export interface ToolActivationManager {
26
+ /** Currently active tool names */
27
+ activeTools: Set<string>;
28
+ /** All available tool names */
29
+ availableTools: Set<string>;
30
+ /** Activate a tool */
31
+ activate(name: string): boolean;
32
+ /** Deactivate a tool */
33
+ deactivate(name: string): boolean;
34
+ /** Check if a tool is active */
35
+ isActive(name: string): boolean;
36
+ /** Get all active tools */
37
+ getActiveTools(): string[];
38
+ /** Set available tools */
39
+ setAvailableTools(names: string[]): void;
40
+ }
41
+ /**
42
+ * Create a tool activation manager.
43
+ */
44
+ export declare function createToolActivationManager(): ToolActivationManager;
45
+ export interface ToolRegistryEntry {
46
+ name: string;
47
+ description: string;
48
+ category: string;
49
+ tags: string[];
50
+ }
51
+ export interface ToolRegistry {
52
+ entries: Map<string, ToolRegistryEntry>;
53
+ register(entry: ToolRegistryEntry): void;
54
+ unregister(name: string): boolean;
55
+ get(name: string): ToolRegistryEntry | undefined;
56
+ search(query: string): ToolRegistryEntry[];
57
+ listByCategory(category: string): ToolRegistryEntry[];
58
+ listAll(): ToolRegistryEntry[];
59
+ }
60
+ /**
61
+ * Create a tool registry for metadata and search.
62
+ */
63
+ export declare function createToolRegistry(): ToolRegistry;
64
+ export interface ToolProviderResult {
65
+ /** All created tools */
66
+ tools: ToolSet;
67
+ /** Core tool names */
68
+ coreToolNames: readonly string[];
69
+ /** Activation manager instance */
70
+ activationManager: ToolActivationManager;
71
+ /** Registry instance */
72
+ registry: ToolRegistry;
73
+ /** Cleanup function */
74
+ cleanup: () => Promise<void>;
75
+ }
76
+ /**
77
+ * Wrap tools with instrumentation for logging and metrics.
78
+ */
79
+ export declare function instrumentTools(tools: ToolSet): ToolSet;
80
+ /**
81
+ * Create all tools with the given configuration.
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const { tools, cleanup } = await createAllTools({
86
+ * workspaceRoot: process.cwd(),
87
+ * enableInstrumentation: true,
88
+ * });
89
+ *
90
+ * // Use tools...
91
+ *
92
+ * await cleanup();
93
+ * ```
94
+ */
95
+ export declare function createAllTools(config?: ToolProviderConfig): Promise<ToolProviderResult>;
96
+ export { ToolFactory, type ToolDependencies, type ToolSet } from './factory.js';
97
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAsC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAM7E;;GAEG;AACH,eAAO,MAAM,eAAe,gGAUlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAM5D,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAMD,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,+BAA+B;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,wBAAwB;IACxB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,2BAA2B;IAC3B,cAAc,IAAI,MAAM,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CAqCnE;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAC3C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACtD,OAAO,IAAI,iBAAiB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAsCjD;AAMD,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,kCAAkC;IAClC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,wBAAwB;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,uBAAuB;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA6BvD;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CA4C7B;AAMD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * @agntk/core - Tool Provider
3
+ *
4
+ * Central provider for creating and managing tool sets.
5
+ * Adapted from packages/core/src/tools/provider.ts
6
+ */
7
+ import { ToolFactory } from './factory.js';
8
+ // ============================================================================
9
+ // Core Tool Names
10
+ // ============================================================================
11
+ /**
12
+ * Names of core tools that are always available.
13
+ */
14
+ export const CORE_TOOL_NAMES = [
15
+ 'fs',
16
+ 'shell',
17
+ 'web',
18
+ 'memory',
19
+ 'delegate',
20
+ 'task',
21
+ 'plan',
22
+ 'validate',
23
+ 'reasoning',
24
+ ];
25
+ /**
26
+ * Create a tool activation manager.
27
+ */
28
+ export function createToolActivationManager() {
29
+ const activeTools = new Set();
30
+ const availableTools = new Set();
31
+ return {
32
+ activeTools,
33
+ availableTools,
34
+ activate(name) {
35
+ if (!availableTools.has(name)) {
36
+ return false;
37
+ }
38
+ activeTools.add(name);
39
+ return true;
40
+ },
41
+ deactivate(name) {
42
+ return activeTools.delete(name);
43
+ },
44
+ isActive(name) {
45
+ return activeTools.has(name);
46
+ },
47
+ getActiveTools() {
48
+ return Array.from(activeTools);
49
+ },
50
+ setAvailableTools(names) {
51
+ availableTools.clear();
52
+ for (const name of names) {
53
+ availableTools.add(name);
54
+ // Activate all by default
55
+ activeTools.add(name);
56
+ }
57
+ },
58
+ };
59
+ }
60
+ /**
61
+ * Create a tool registry for metadata and search.
62
+ */
63
+ export function createToolRegistry() {
64
+ const entries = new Map();
65
+ return {
66
+ entries,
67
+ register(entry) {
68
+ entries.set(entry.name, entry);
69
+ },
70
+ unregister(name) {
71
+ return entries.delete(name);
72
+ },
73
+ get(name) {
74
+ return entries.get(name);
75
+ },
76
+ search(query) {
77
+ const lowerQuery = query.toLowerCase();
78
+ return Array.from(entries.values()).filter((entry) => entry.name.toLowerCase().includes(lowerQuery) ||
79
+ entry.description.toLowerCase().includes(lowerQuery) ||
80
+ entry.tags.some((tag) => tag.toLowerCase().includes(lowerQuery)));
81
+ },
82
+ listByCategory(category) {
83
+ return Array.from(entries.values()).filter((entry) => entry.category === category);
84
+ },
85
+ listAll() {
86
+ return Array.from(entries.values());
87
+ },
88
+ };
89
+ }
90
+ // ============================================================================
91
+ // Tool Instrumentation
92
+ // ============================================================================
93
+ /**
94
+ * Wrap tools with instrumentation for logging and metrics.
95
+ */
96
+ export function instrumentTools(tools) {
97
+ const instrumented = {};
98
+ for (const [name, tool] of Object.entries(tools)) {
99
+ if (!tool.execute) {
100
+ instrumented[name] = tool;
101
+ continue;
102
+ }
103
+ const originalExecute = tool.execute;
104
+ instrumented[name] = {
105
+ ...tool,
106
+ execute: async (input, options) => {
107
+ const startTime = Date.now();
108
+ try {
109
+ const result = await originalExecute(input, options);
110
+ const duration = Date.now() - startTime;
111
+ console.debug(`[tool:${name}] completed in ${duration}ms`);
112
+ return result;
113
+ }
114
+ catch (error) {
115
+ const duration = Date.now() - startTime;
116
+ console.error(`[tool:${name}] failed after ${duration}ms`, error);
117
+ throw error;
118
+ }
119
+ },
120
+ };
121
+ }
122
+ return instrumented;
123
+ }
124
+ // ============================================================================
125
+ // Create All Tools
126
+ // ============================================================================
127
+ /**
128
+ * Create all tools with the given configuration.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const { tools, cleanup } = await createAllTools({
133
+ * workspaceRoot: process.cwd(),
134
+ * enableInstrumentation: true,
135
+ * });
136
+ *
137
+ * // Use tools...
138
+ *
139
+ * await cleanup();
140
+ * ```
141
+ */
142
+ export async function createAllTools(config = {}) {
143
+ const { workspaceRoot = process.cwd(), allowedDirectories = [workspaceRoot], enableInstrumentation = true, enableActivation = false, customDependencies = {}, } = config;
144
+ const deps = {
145
+ workspaceRoot,
146
+ allowedDirectories,
147
+ context: customDependencies,
148
+ };
149
+ const activationManager = createToolActivationManager();
150
+ const registry = createToolRegistry();
151
+ const factory = new ToolFactory();
152
+ // Note: Individual tool creators will be registered by the tools themselves
153
+ // when they are imported. For now, return an empty tool set that will be
154
+ // populated when tools are migrated.
155
+ let tools = factory.createAll(deps);
156
+ // Set available tools in activation manager
157
+ activationManager.setAvailableTools(Object.keys(tools));
158
+ // Apply instrumentation if enabled
159
+ if (enableInstrumentation) {
160
+ tools = instrumentTools(tools);
161
+ }
162
+ const cleanup = async () => {
163
+ // Cleanup logic (close connections, release resources, etc.)
164
+ factory.clear();
165
+ };
166
+ return {
167
+ tools,
168
+ coreToolNames: CORE_TOOL_NAMES,
169
+ activationManager,
170
+ registry,
171
+ cleanup,
172
+ };
173
+ }
174
+ // ============================================================================
175
+ // Exports
176
+ // ============================================================================
177
+ export { ToolFactory } from './factory.js';
178
+ //# sourceMappingURL=provider.js.map