@sowonai/crewx-sdk 0.5.0 → 0.6.0-rc.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 (75) hide show
  1. package/dist/adapters/MastraToolAdapter.d.ts +9 -0
  2. package/dist/adapters/MastraToolAdapter.js +66 -0
  3. package/dist/adapters/MastraToolAdapter.js.map +1 -0
  4. package/dist/config/api-provider-parser.d.ts +56 -0
  5. package/dist/config/api-provider-parser.js +214 -0
  6. package/dist/config/api-provider-parser.js.map +1 -0
  7. package/dist/config/index.d.ts +2 -0
  8. package/dist/config/index.js +2 -0
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/core/agent/agent-factory.d.ts +4 -2
  11. package/dist/core/agent/agent-factory.js +11 -0
  12. package/dist/core/agent/agent-factory.js.map +1 -1
  13. package/dist/core/providers/MastraAPIProvider.d.ts +24 -0
  14. package/dist/core/providers/MastraAPIProvider.js +264 -0
  15. package/dist/core/providers/MastraAPIProvider.js.map +1 -0
  16. package/dist/core/providers/ai-provider.interface.d.ts +1 -0
  17. package/dist/core/providers/ai-provider.interface.js.map +1 -1
  18. package/dist/core/providers/provider-factory.js +38 -0
  19. package/dist/core/providers/provider-factory.js.map +1 -1
  20. package/dist/index.d.ts +10 -0
  21. package/dist/index.js +37 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/schemas/api-provider.schema.d.ts +429 -0
  24. package/dist/schemas/api-provider.schema.js +48 -0
  25. package/dist/schemas/api-provider.schema.js.map +1 -0
  26. package/dist/tools/file-system.service.d.ts +10 -0
  27. package/dist/tools/file-system.service.js +33 -0
  28. package/dist/tools/file-system.service.js.map +1 -0
  29. package/dist/tools/find.tool.d.ts +85 -0
  30. package/dist/tools/find.tool.js +140 -0
  31. package/dist/tools/find.tool.js.map +1 -0
  32. package/dist/tools/glob.tool.d.ts +100 -0
  33. package/dist/tools/glob.tool.js +153 -0
  34. package/dist/tools/glob.tool.js.map +1 -0
  35. package/dist/tools/grep.tool.d.ts +54 -0
  36. package/dist/tools/grep.tool.js +137 -0
  37. package/dist/tools/grep.tool.js.map +1 -0
  38. package/dist/tools/index.d.ts +12 -0
  39. package/dist/tools/index.js +40 -0
  40. package/dist/tools/index.js.map +1 -0
  41. package/dist/tools/ls.tool.d.ts +42 -0
  42. package/dist/tools/ls.tool.js +94 -0
  43. package/dist/tools/ls.tool.js.map +1 -0
  44. package/dist/tools/read-file.tool.d.ts +54 -0
  45. package/dist/tools/read-file.tool.js +69 -0
  46. package/dist/tools/read-file.tool.js.map +1 -0
  47. package/dist/tools/replace.tool.d.ts +66 -0
  48. package/dist/tools/replace.tool.js +68 -0
  49. package/dist/tools/replace.tool.js.map +1 -0
  50. package/dist/tools/run-shell-command.tool.d.ts +42 -0
  51. package/dist/tools/run-shell-command.tool.js +64 -0
  52. package/dist/tools/run-shell-command.tool.js.map +1 -0
  53. package/dist/tools/tree.tool.d.ts +42 -0
  54. package/dist/tools/tree.tool.js +109 -0
  55. package/dist/tools/tree.tool.js.map +1 -0
  56. package/dist/tools/types.d.ts +42 -0
  57. package/dist/tools/types.js +13 -0
  58. package/dist/tools/types.js.map +1 -0
  59. package/dist/tools/utils/file-utils.d.ts +5 -0
  60. package/dist/tools/utils/file-utils.js +221 -0
  61. package/dist/tools/utils/file-utils.js.map +1 -0
  62. package/dist/tools/write-file.tool.d.ts +42 -0
  63. package/dist/tools/write-file.tool.js +55 -0
  64. package/dist/tools/write-file.tool.js.map +1 -0
  65. package/dist/types/agent.types.d.ts +2 -2
  66. package/dist/types/api-provider.types.d.ts +80 -0
  67. package/dist/types/api-provider.types.js +53 -0
  68. package/dist/types/api-provider.types.js.map +1 -0
  69. package/dist/types/index.d.ts +1 -0
  70. package/dist/types/index.js +1 -0
  71. package/dist/types/index.js.map +1 -1
  72. package/dist/utils/api-provider-normalizer.d.ts +16 -0
  73. package/dist/utils/api-provider-normalizer.js +135 -0
  74. package/dist/utils/api-provider-normalizer.js.map +1 -0
  75. package/package.json +5 -1
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.findTool = exports.findToolOutputSchema = exports.findToolInputSchema = void 0;
37
+ const core_1 = require("@mastra/core");
38
+ const zod_1 = require("zod");
39
+ const glob_1 = require("glob");
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ exports.findToolInputSchema = zod_1.z.object({
43
+ pattern: zod_1.z
44
+ .string()
45
+ .describe('Filename pattern to search for (supports * and ? wildcards). Example: "MastraAPIProvider.ts", "*Provider*.ts", "*.yaml"'),
46
+ dir_path: zod_1.z
47
+ .string()
48
+ .optional()
49
+ .describe('Directory to search in (default: current directory). Use "." for current, or relative/absolute path'),
50
+ case_sensitive: zod_1.z
51
+ .boolean()
52
+ .optional()
53
+ .default(false)
54
+ .describe('Whether to match case-sensitively (default: false)'),
55
+ max_results: zod_1.z
56
+ .number()
57
+ .optional()
58
+ .default(50)
59
+ .describe('Maximum number of results to return (default: 50)'),
60
+ });
61
+ exports.findToolOutputSchema = zod_1.z.string();
62
+ exports.findTool = (0, core_1.createTool)({
63
+ id: 'find',
64
+ description: 'Search for files by filename pattern. Supports wildcards (* and ?). Returns absolute file paths.',
65
+ inputSchema: exports.findToolInputSchema,
66
+ outputSchema: exports.findToolOutputSchema,
67
+ execute: async ({ context }) => {
68
+ const { pattern, dir_path = '.', case_sensitive = false, max_results = 50 } = context;
69
+ try {
70
+ const searchDir = path.resolve(process.cwd(), dir_path);
71
+ if (!fs.existsSync(searchDir)) {
72
+ return `Error: Directory not found: ${searchDir}`;
73
+ }
74
+ const globPattern = pattern.includes('/')
75
+ ? path.join(searchDir, pattern)
76
+ : path.join(searchDir, '**', pattern);
77
+ const matches = await (0, glob_1.glob)(globPattern, {
78
+ nocase: !case_sensitive,
79
+ ignore: [
80
+ '**/node_modules/**',
81
+ '**/.git/**',
82
+ '**/dist/**',
83
+ '**/build/**',
84
+ '**/.next/**',
85
+ '**/.crewx/**',
86
+ ],
87
+ absolute: true,
88
+ });
89
+ if (matches.length === 0) {
90
+ return `No files found matching pattern: ${pattern}\nSearched in: ${searchDir}`;
91
+ }
92
+ const exactMatches = [];
93
+ const partialMatches = [];
94
+ const patternBasename = path.basename(pattern.replace(/\*/g, ''));
95
+ for (const match of matches) {
96
+ const matchBasename = path.basename(match);
97
+ if (matchBasename === pattern.replace(/\*/g, '')) {
98
+ exactMatches.push(match);
99
+ }
100
+ else {
101
+ partialMatches.push(match);
102
+ }
103
+ }
104
+ const sortByMtime = (files) => {
105
+ return files.sort((a, b) => {
106
+ try {
107
+ const aStat = fs.statSync(a);
108
+ const bStat = fs.statSync(b);
109
+ return bStat.mtime.getTime() - aStat.mtime.getTime();
110
+ }
111
+ catch {
112
+ return 0;
113
+ }
114
+ });
115
+ };
116
+ const sortedMatches = [
117
+ ...sortByMtime(exactMatches),
118
+ ...sortByMtime(partialMatches),
119
+ ].slice(0, max_results);
120
+ const resultLines = sortedMatches.map((filePath, index) => {
121
+ const relativePath = path.relative(process.cwd(), filePath);
122
+ const stats = fs.statSync(filePath);
123
+ const sizeKB = (stats.size / 1024).toFixed(1);
124
+ const isExact = exactMatches.includes(filePath);
125
+ const marker = isExact ? '✓' : ' ';
126
+ return `${marker} ${index + 1}. ${relativePath} (${sizeKB} KB)`;
127
+ });
128
+ const header = `Found ${sortedMatches.length} file(s) matching "${pattern}":\n`;
129
+ const footer = sortedMatches.length >= max_results
130
+ ? `\n(Limited to ${max_results} results. Use max_results parameter to see more)`
131
+ : '';
132
+ return header + resultLines.join('\n') + footer;
133
+ }
134
+ catch (error) {
135
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
136
+ return `Error searching for files: ${errorMessage}`;
137
+ }
138
+ },
139
+ });
140
+ //# sourceMappingURL=find.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.tool.js","sourceRoot":"","sources":["../../src/tools/find.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { z } from 'zod';
2
+ export declare const globToolInputSchema: z.ZodObject<{
3
+ pattern: z.ZodString;
4
+ dir_path: z.ZodOptional<z.ZodString>;
5
+ case_sensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6
+ respect_git_ignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ max_results: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ pattern: string;
10
+ case_sensitive: boolean;
11
+ max_results: number;
12
+ respect_git_ignore: boolean;
13
+ dir_path?: string | undefined;
14
+ }, {
15
+ pattern: string;
16
+ dir_path?: string | undefined;
17
+ case_sensitive?: boolean | undefined;
18
+ max_results?: number | undefined;
19
+ respect_git_ignore?: boolean | undefined;
20
+ }>;
21
+ export declare const globToolOutputSchema: z.ZodString;
22
+ export type GlobToolInput = z.infer<typeof globToolInputSchema>;
23
+ export type GlobToolOutput = z.infer<typeof globToolOutputSchema>;
24
+ export declare const globTool: import("@mastra/core/tools").Tool<z.ZodObject<{
25
+ pattern: z.ZodString;
26
+ dir_path: z.ZodOptional<z.ZodString>;
27
+ case_sensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
28
+ respect_git_ignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
29
+ max_results: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ pattern: string;
32
+ case_sensitive: boolean;
33
+ max_results: number;
34
+ respect_git_ignore: boolean;
35
+ dir_path?: string | undefined;
36
+ }, {
37
+ pattern: string;
38
+ dir_path?: string | undefined;
39
+ case_sensitive?: boolean | undefined;
40
+ max_results?: number | undefined;
41
+ respect_git_ignore?: boolean | undefined;
42
+ }>, z.ZodString, any, any, import("@mastra/core").ToolExecutionContext<z.ZodObject<{
43
+ pattern: z.ZodString;
44
+ dir_path: z.ZodOptional<z.ZodString>;
45
+ case_sensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
46
+ respect_git_ignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
47
+ max_results: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ pattern: string;
50
+ case_sensitive: boolean;
51
+ max_results: number;
52
+ respect_git_ignore: boolean;
53
+ dir_path?: string | undefined;
54
+ }, {
55
+ pattern: string;
56
+ dir_path?: string | undefined;
57
+ case_sensitive?: boolean | undefined;
58
+ max_results?: number | undefined;
59
+ respect_git_ignore?: boolean | undefined;
60
+ }>, any, any>> & {
61
+ inputSchema: z.ZodObject<{
62
+ pattern: z.ZodString;
63
+ dir_path: z.ZodOptional<z.ZodString>;
64
+ case_sensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
65
+ respect_git_ignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
66
+ max_results: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ pattern: string;
69
+ case_sensitive: boolean;
70
+ max_results: number;
71
+ respect_git_ignore: boolean;
72
+ dir_path?: string | undefined;
73
+ }, {
74
+ pattern: string;
75
+ dir_path?: string | undefined;
76
+ case_sensitive?: boolean | undefined;
77
+ max_results?: number | undefined;
78
+ respect_git_ignore?: boolean | undefined;
79
+ }>;
80
+ outputSchema: z.ZodString;
81
+ execute: (context: import("@mastra/core").ToolExecutionContext<z.ZodObject<{
82
+ pattern: z.ZodString;
83
+ dir_path: z.ZodOptional<z.ZodString>;
84
+ case_sensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
85
+ respect_git_ignore: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
86
+ max_results: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ pattern: string;
89
+ case_sensitive: boolean;
90
+ max_results: number;
91
+ respect_git_ignore: boolean;
92
+ dir_path?: string | undefined;
93
+ }, {
94
+ pattern: string;
95
+ dir_path?: string | undefined;
96
+ case_sensitive?: boolean | undefined;
97
+ max_results?: number | undefined;
98
+ respect_git_ignore?: boolean | undefined;
99
+ }>, any, any>, options: import("@mastra/core").MastraToolInvocationOptions) => Promise<any>;
100
+ };
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.globTool = exports.globToolOutputSchema = exports.globToolInputSchema = void 0;
37
+ const core_1 = require("@mastra/core");
38
+ const zod_1 = require("zod");
39
+ const glob_1 = require("glob");
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ exports.globToolInputSchema = zod_1.z.object({
43
+ pattern: zod_1.z
44
+ .string()
45
+ .describe('Glob pattern to match files against (e.g., "**/*.ts", "src/**/*.yaml", "*.md"). Supports * (any chars), ? (single char), ** (recursive directories)'),
46
+ dir_path: zod_1.z
47
+ .string()
48
+ .optional()
49
+ .describe('Directory to search in (default: current directory). Use "." for current, or relative/absolute path'),
50
+ case_sensitive: zod_1.z
51
+ .boolean()
52
+ .optional()
53
+ .default(false)
54
+ .describe('Whether to match case-sensitively (default: false)'),
55
+ respect_git_ignore: zod_1.z
56
+ .boolean()
57
+ .optional()
58
+ .default(true)
59
+ .describe('Whether to respect .gitignore patterns (default: true)'),
60
+ max_results: zod_1.z
61
+ .number()
62
+ .optional()
63
+ .default(100)
64
+ .describe('Maximum number of results to return (default: 100)'),
65
+ });
66
+ exports.globToolOutputSchema = zod_1.z.string();
67
+ function sortFileEntries(entries) {
68
+ const oneDayInMs = 24 * 60 * 60 * 1000;
69
+ const nowTimestamp = Date.now();
70
+ return entries.sort((a, b) => {
71
+ const mtimeA = a.mtimeMs ?? 0;
72
+ const mtimeB = b.mtimeMs ?? 0;
73
+ const aIsRecent = nowTimestamp - mtimeA < oneDayInMs;
74
+ const bIsRecent = nowTimestamp - mtimeB < oneDayInMs;
75
+ if (aIsRecent && bIsRecent) {
76
+ return mtimeB - mtimeA;
77
+ }
78
+ if (aIsRecent) {
79
+ return -1;
80
+ }
81
+ if (bIsRecent) {
82
+ return 1;
83
+ }
84
+ return a.fullpath.localeCompare(b.fullpath);
85
+ });
86
+ }
87
+ exports.globTool = (0, core_1.createTool)({
88
+ id: 'glob',
89
+ description: 'Efficiently finds files matching glob patterns (e.g., "**/*.ts", "src/**/*.yaml"). Returns absolute paths sorted by modification time (newest first). Ideal for locating files by path structure.',
90
+ inputSchema: exports.globToolInputSchema,
91
+ outputSchema: exports.globToolOutputSchema,
92
+ execute: async ({ context }) => {
93
+ const { pattern, dir_path = '.', case_sensitive = false, respect_git_ignore = true, max_results = 100 } = context;
94
+ try {
95
+ const searchDir = path.resolve(process.cwd(), dir_path);
96
+ if (!fs.existsSync(searchDir)) {
97
+ return `Error: Directory not found: ${searchDir}`;
98
+ }
99
+ if (!fs.statSync(searchDir).isDirectory()) {
100
+ return `Error: Path is not a directory: ${searchDir}`;
101
+ }
102
+ const ignorePatterns = [
103
+ '**/node_modules/**',
104
+ '**/.git/**',
105
+ '**/dist/**',
106
+ '**/build/**',
107
+ '**/.next/**',
108
+ '**/.crewx/**',
109
+ ];
110
+ const matches = await (0, glob_1.glob)(pattern, {
111
+ cwd: searchDir,
112
+ nocase: !case_sensitive,
113
+ ignore: respect_git_ignore ? ignorePatterns : ['**/node_modules/**', '**/.git/**'],
114
+ nodir: true,
115
+ withFileTypes: true,
116
+ stat: true,
117
+ dot: true,
118
+ follow: false,
119
+ });
120
+ if (matches.length === 0) {
121
+ return `No files found matching pattern: ${pattern}\nSearched in: ${searchDir}`;
122
+ }
123
+ const fileEntries = matches.map((entry) => ({
124
+ fullpath: path.resolve(searchDir, entry.fullpath()),
125
+ mtimeMs: entry.mtimeMs,
126
+ }));
127
+ const sortedEntries = sortFileEntries(fileEntries);
128
+ const limitedEntries = sortedEntries.slice(0, max_results);
129
+ const resultLines = limitedEntries.map((entry, index) => {
130
+ const relativePath = path.relative(process.cwd(), entry.fullpath);
131
+ const stats = fs.statSync(entry.fullpath);
132
+ const sizeKB = (stats.size / 1024).toFixed(1);
133
+ const mtime = new Date(stats.mtime);
134
+ const now = new Date();
135
+ const isRecent = now.getTime() - mtime.getTime() < 24 * 60 * 60 * 1000;
136
+ const marker = isRecent ? '🔥' : ' ';
137
+ return `${marker} ${index + 1}. ${relativePath} (${sizeKB} KB)`;
138
+ });
139
+ const header = `Found ${limitedEntries.length} file(s) matching "${pattern}":\n`;
140
+ const footer = sortedEntries.length > max_results
141
+ ? `\n(Limited to ${max_results} results. Use max_results parameter to see more. Total matches: ${sortedEntries.length})`
142
+ : sortedEntries.length === limitedEntries.length && matches.length > sortedEntries.length
143
+ ? `\n(Total matches: ${matches.length})`
144
+ : '';
145
+ return header + resultLines.join('\n') + footer;
146
+ }
147
+ catch (error) {
148
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
149
+ return `Error during glob search: ${errorMessage}`;
150
+ }
151
+ },
152
+ });
153
+ //# sourceMappingURL=glob.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.tool.js","sourceRoot":"","sources":["../../src/tools/glob.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ export declare const grepTool: import("@mastra/core/tools").Tool<z.ZodObject<{
3
+ pattern: z.ZodString;
4
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
5
+ recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ path: string;
8
+ recursive: boolean;
9
+ pattern: string;
10
+ }, {
11
+ pattern: string;
12
+ path?: string | undefined;
13
+ recursive?: boolean | undefined;
14
+ }>, z.ZodString, any, any, import("@mastra/core/tools").ToolExecutionContext<z.ZodObject<{
15
+ pattern: z.ZodString;
16
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
17
+ recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ path: string;
20
+ recursive: boolean;
21
+ pattern: string;
22
+ }, {
23
+ pattern: string;
24
+ path?: string | undefined;
25
+ recursive?: boolean | undefined;
26
+ }>, any, any>> & {
27
+ inputSchema: z.ZodObject<{
28
+ pattern: z.ZodString;
29
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
30
+ recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ path: string;
33
+ recursive: boolean;
34
+ pattern: string;
35
+ }, {
36
+ pattern: string;
37
+ path?: string | undefined;
38
+ recursive?: boolean | undefined;
39
+ }>;
40
+ outputSchema: z.ZodString;
41
+ execute: (context: import("@mastra/core/tools").ToolExecutionContext<z.ZodObject<{
42
+ pattern: z.ZodString;
43
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
44
+ recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ path: string;
47
+ recursive: boolean;
48
+ pattern: string;
49
+ }, {
50
+ pattern: string;
51
+ path?: string | undefined;
52
+ recursive?: boolean | undefined;
53
+ }>, any, any>, options: import("@mastra/core/tools").MastraToolInvocationOptions) => Promise<any>;
54
+ };
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.grepTool = void 0;
7
+ const tools_1 = require("@mastra/core/tools");
8
+ const zod_1 = require("zod");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const promises_1 = __importDefault(require("node:fs/promises"));
11
+ async function searchFile(filePath, pattern, basePath) {
12
+ try {
13
+ const content = await promises_1.default.readFile(filePath, 'utf-8');
14
+ const lines = content.split('\n');
15
+ const matches = [];
16
+ const relativePath = node_path_1.default.relative(basePath, filePath);
17
+ for (let i = 0; i < lines.length; i++) {
18
+ const line = lines[i];
19
+ if (line !== undefined && pattern.test(line)) {
20
+ matches.push(`${relativePath}:${i + 1}: ${line}`);
21
+ }
22
+ }
23
+ return matches;
24
+ }
25
+ catch (error) {
26
+ return [];
27
+ }
28
+ }
29
+ async function searchRecursive(dirPath, pattern, basePath, maxDepth = 10, currentDepth = 0) {
30
+ if (currentDepth >= maxDepth) {
31
+ return [];
32
+ }
33
+ const results = [];
34
+ const entries = await promises_1.default.readdir(dirPath, { withFileTypes: true });
35
+ for (const entry of entries) {
36
+ const fullPath = node_path_1.default.join(dirPath, entry.name);
37
+ if (entry.isDirectory()) {
38
+ const dirName = entry.name;
39
+ if (dirName === 'node_modules' ||
40
+ dirName === '.git' ||
41
+ dirName === 'dist' ||
42
+ dirName === 'build' ||
43
+ dirName === '.next') {
44
+ continue;
45
+ }
46
+ try {
47
+ const subResults = await searchRecursive(fullPath, pattern, basePath, maxDepth, currentDepth + 1);
48
+ results.push(...subResults);
49
+ }
50
+ catch {
51
+ }
52
+ }
53
+ else {
54
+ const matches = await searchFile(fullPath, pattern, basePath);
55
+ results.push(...matches);
56
+ }
57
+ }
58
+ return results;
59
+ }
60
+ exports.grepTool = (0, tools_1.createTool)({
61
+ id: 'grep',
62
+ description: `Searches for a pattern in files using regular expressions. Can search recursively through directories. Returns matching lines with file paths and line numbers. Automatically skips common build directories (node_modules, .git, dist, build, .next).`,
63
+ inputSchema: zod_1.z.object({
64
+ pattern: zod_1.z
65
+ .string()
66
+ .describe('The regular expression pattern to search for.'),
67
+ path: zod_1.z
68
+ .string()
69
+ .optional()
70
+ .default('.')
71
+ .describe('The file or directory path to search in (default: current directory).'),
72
+ recursive: zod_1.z
73
+ .boolean()
74
+ .optional()
75
+ .default(true)
76
+ .describe('Optional: Search recursively through subdirectories (default: true).'),
77
+ }),
78
+ outputSchema: zod_1.z.string().describe('Search results or error message'),
79
+ execute: async ({ context }) => {
80
+ const { pattern, path: searchPath = '.', recursive = true } = context;
81
+ if (pattern.trim() === '') {
82
+ throw new Error("The 'pattern' parameter must be non-empty.");
83
+ }
84
+ let regex;
85
+ try {
86
+ regex = new RegExp(pattern);
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Invalid regular expression: ${error.message}`);
90
+ }
91
+ const resolvedPath = node_path_1.default.resolve(searchPath);
92
+ try {
93
+ const stats = await promises_1.default.stat(resolvedPath);
94
+ const basePath = stats.isDirectory() ? resolvedPath : node_path_1.default.dirname(resolvedPath);
95
+ let matches = [];
96
+ if (stats.isDirectory()) {
97
+ if (recursive) {
98
+ matches = await searchRecursive(resolvedPath, regex, basePath);
99
+ }
100
+ else {
101
+ const entries = await promises_1.default.readdir(resolvedPath, { withFileTypes: true });
102
+ for (const entry of entries) {
103
+ if (!entry.isDirectory()) {
104
+ const fullPath = node_path_1.default.join(resolvedPath, entry.name);
105
+ const fileMatches = await searchFile(fullPath, regex, basePath);
106
+ matches.push(...fileMatches);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ else {
112
+ matches = await searchFile(resolvedPath, regex, basePath);
113
+ }
114
+ if (matches.length === 0) {
115
+ return `No matches found for pattern: ${pattern}`;
116
+ }
117
+ const maxResults = 100;
118
+ const limited = matches.slice(0, maxResults);
119
+ let output = `Found ${matches.length} match(es) for pattern: ${pattern}\n\n`;
120
+ output += limited.join('\n');
121
+ if (matches.length > maxResults) {
122
+ output += `\n\n... and ${matches.length - maxResults} more matches (output truncated)`;
123
+ }
124
+ return output;
125
+ }
126
+ catch (error) {
127
+ if (error.code === 'ENOENT') {
128
+ throw new Error(`Path not found: ${searchPath}`);
129
+ }
130
+ if (error.code === 'EACCES') {
131
+ throw new Error(`Permission denied: ${searchPath}`);
132
+ }
133
+ throw error;
134
+ }
135
+ },
136
+ });
137
+ //# sourceMappingURL=grep.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.tool.js","sourceRoot":"","sources":["../../src/tools/grep.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export { readFileTool } from './read-file.tool.js';
2
+ export { replaceTool } from './replace.tool.js';
3
+ export { runShellCommandTool } from './run-shell-command.tool.js';
4
+ export { lsTool } from './ls.tool.js';
5
+ export { treeTool } from './tree.tool.js';
6
+ export { writeFileTool } from './write-file.tool.js';
7
+ export { grepTool } from './grep.tool.js';
8
+ export { findTool } from './find.tool.js';
9
+ export { globTool } from './glob.tool.js';
10
+ export { StandardFileSystemService } from './file-system.service.js';
11
+ export * from './types.js';
12
+ export * from './utils/file-utils.js';