@bluehawks/cli 1.0.16 → 1.0.17
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.
- package/.bluehawks/history.json +7 -20
- package/dist/config/constants.d.ts +1 -1
- package/dist/config/constants.js +1 -1
- package/dist/core/tools/definitions/file.d.ts.map +1 -1
- package/dist/core/tools/definitions/file.js +24 -6
- package/dist/core/tools/definitions/file.js.map +1 -1
- package/package.json +1 -1
- package/src/config/constants.ts +1 -1
- package/src/core/tools/definitions/file.ts +31 -6
package/.bluehawks/history.json
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"id": "
|
|
3
|
-
"startTime": "2026-02-
|
|
4
|
-
"messages": [
|
|
5
|
-
{
|
|
6
|
-
"role": "user",
|
|
7
|
-
"content": "What does the file client.ts contain?"
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"role": "assistant",
|
|
11
|
-
"content": "It seems there was an error when trying to read the file `src/client.ts`. The error suggests that the `paths` argument might have been incorrectly passed or the file path is not properly defined. Let me verify the correct path and try again. \n\nI will first check if `src/client.ts` exists in the directory structure.\n\nIt appears there was an issue with the `find_files` command, possibly due to an unexpected error in the tool's execution. Let me try a different approach to verify the existence of `client.ts` by directly checking the directory structure using a more robust method.\n\nI'll attempt to list the contents of the `src` directory to see if `client.ts` is present there.\n\nI see that the `ls` command is not available in the available tools. Let me instead use the `find_files` tool again, but this time with a more specific and safe query to check if `client.ts` exists in the project.\n\nIt seems there is a persistent issue with the `find_files` tool, possibly due to an internal error or misconfiguration. Let me take a step back and examine the provided directory structure:\n\nThe initial context lists the following files:\n- `README.md`\n- `package-lock.json`\n- `package.json`\n- `tsconfig.json`\n- `vitest.config.ts`\n- `src/` (a directory)\n\nWithin `src/`, there is no explicit listing of files. Since `client.ts` is not listed in the initial structure, and we have encountered repeated errors when trying to locate it, it is likely that `client.ts` either:\n1. Does not exist in the project, or\n2. Is missing from the provided context.\n\nGiven that the file `client.ts` was specifically requested and no valid path or content was found through available tools, I must conclude that **`client.ts` is not present in the current project structure** based on the available information.\n\nIf you have additional context or suspect the file exists elsewhere, please let me know so I can assist further."
|
|
12
|
-
}
|
|
13
|
-
],
|
|
2
|
+
"id": "session_1770653246104_3srxgk",
|
|
3
|
+
"startTime": "2026-02-09T16:07:26.104Z",
|
|
4
|
+
"messages": [],
|
|
14
5
|
"metadata": {
|
|
15
6
|
"projectPath": "/home/chandanv/Projects/bluehawks-cli",
|
|
16
7
|
"model": "Qwen/Qwen3-4B-Instruct-2507",
|
|
17
8
|
"tokensUsed": 0,
|
|
18
|
-
"toolsUsed": [
|
|
19
|
-
|
|
20
|
-
"find_files",
|
|
21
|
-
"ls"
|
|
22
|
-
],
|
|
23
|
-
"successfulToolCalls": 4,
|
|
9
|
+
"toolsUsed": [],
|
|
10
|
+
"successfulToolCalls": 0,
|
|
24
11
|
"failedToolCalls": 0,
|
|
25
|
-
"apiTime":
|
|
26
|
-
"toolTime":
|
|
12
|
+
"apiTime": 0,
|
|
13
|
+
"toolTime": 0
|
|
27
14
|
}
|
|
28
15
|
}
|
|
@@ -6,7 +6,7 @@ export declare const DEFAULT_MODEL = "Qwen/Qwen3-8B";
|
|
|
6
6
|
export declare const DEFAULT_EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B";
|
|
7
7
|
export declare const DEFAULT_RERANK_MODEL = "Qwen/Qwen3-Reranker-0.6B";
|
|
8
8
|
export declare const CLI_NAME = "bluehawks";
|
|
9
|
-
export declare const CLI_VERSION = "1.0.
|
|
9
|
+
export declare const CLI_VERSION = "1.0.17";
|
|
10
10
|
export declare const CLI_DESCRIPTION = "A production-ready multi-agent AI CLI assistant";
|
|
11
11
|
export declare const CONFIG_DIR_NAME = ".bluehawks";
|
|
12
12
|
export declare const SETTINGS_FILE = "settings.json";
|
package/dist/config/constants.js
CHANGED
|
@@ -8,7 +8,7 @@ export const DEFAULT_EMBEDDING_MODEL = 'Qwen/Qwen3-Embedding-0.6B';
|
|
|
8
8
|
export const DEFAULT_RERANK_MODEL = 'Qwen/Qwen3-Reranker-0.6B';
|
|
9
9
|
// CLI Metadata
|
|
10
10
|
export const CLI_NAME = 'bluehawks';
|
|
11
|
-
export const CLI_VERSION = '1.0.
|
|
11
|
+
export const CLI_VERSION = '1.0.17';
|
|
12
12
|
export const CLI_DESCRIPTION = 'A production-ready multi-agent AI CLI assistant';
|
|
13
13
|
// Configuration Paths
|
|
14
14
|
export const CONFIG_DIR_NAME = '.bluehawks';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/definitions/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/definitions/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsUH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC"}
|
|
@@ -36,9 +36,12 @@ const readFileTool = {
|
|
|
36
36
|
},
|
|
37
37
|
},
|
|
38
38
|
async execute(args) {
|
|
39
|
-
const filePath = args.path;
|
|
39
|
+
const filePath = (args.path || args.file);
|
|
40
40
|
const startLine = args.start_line;
|
|
41
41
|
const endLine = args.end_line;
|
|
42
|
+
if (!filePath) {
|
|
43
|
+
throw new Error('Missing required argument: path');
|
|
44
|
+
}
|
|
42
45
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
43
46
|
// Check if file exists
|
|
44
47
|
try {
|
|
@@ -89,8 +92,11 @@ const writeFileTool = {
|
|
|
89
92
|
},
|
|
90
93
|
},
|
|
91
94
|
async execute(args) {
|
|
92
|
-
const filePath = args.path;
|
|
95
|
+
const filePath = (args.path || args.file);
|
|
93
96
|
const content = args.content;
|
|
97
|
+
if (!filePath) {
|
|
98
|
+
throw new Error('Missing required argument: path');
|
|
99
|
+
}
|
|
94
100
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
95
101
|
// Create directory if it doesn't exist
|
|
96
102
|
const dir = path.dirname(absolutePath);
|
|
@@ -129,9 +135,12 @@ const editFileTool = {
|
|
|
129
135
|
},
|
|
130
136
|
},
|
|
131
137
|
async execute(args) {
|
|
132
|
-
const filePath = args.path;
|
|
138
|
+
const filePath = (args.path || args.file);
|
|
133
139
|
const oldContent = args.old_content;
|
|
134
140
|
const newContent = args.new_content;
|
|
141
|
+
if (!filePath) {
|
|
142
|
+
throw new Error('Missing required argument: path');
|
|
143
|
+
}
|
|
135
144
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
136
145
|
// Read current content
|
|
137
146
|
const content = await fs.readFile(absolutePath, 'utf-8');
|
|
@@ -176,9 +185,12 @@ const listDirTool = {
|
|
|
176
185
|
},
|
|
177
186
|
},
|
|
178
187
|
async execute(args) {
|
|
179
|
-
const dirPath = args.path;
|
|
188
|
+
const dirPath = (args.path || args.file);
|
|
180
189
|
const recursive = args.recursive ?? false;
|
|
181
190
|
const maxDepth = args.max_depth ?? 3;
|
|
191
|
+
if (!dirPath) {
|
|
192
|
+
throw new Error('Missing required argument: path');
|
|
193
|
+
}
|
|
182
194
|
const absolutePath = path.resolve(process.cwd(), dirPath);
|
|
183
195
|
async function listDir(dir, depth) {
|
|
184
196
|
if (depth > maxDepth)
|
|
@@ -225,7 +237,10 @@ const createDirTool = {
|
|
|
225
237
|
},
|
|
226
238
|
},
|
|
227
239
|
async execute(args) {
|
|
228
|
-
const dirPath = args.path;
|
|
240
|
+
const dirPath = (args.path || args.file);
|
|
241
|
+
if (!dirPath) {
|
|
242
|
+
throw new Error('Missing required argument: path');
|
|
243
|
+
}
|
|
229
244
|
const absolutePath = path.resolve(process.cwd(), dirPath);
|
|
230
245
|
await fs.mkdir(absolutePath, { recursive: true });
|
|
231
246
|
return `Successfully created directory: ${dirPath}`;
|
|
@@ -257,8 +272,11 @@ const deleteFileTool = {
|
|
|
257
272
|
},
|
|
258
273
|
},
|
|
259
274
|
async execute(args) {
|
|
260
|
-
const filePath = args.path;
|
|
275
|
+
const filePath = (args.path || args.file);
|
|
261
276
|
const recursive = args.recursive ?? false;
|
|
277
|
+
if (!filePath) {
|
|
278
|
+
throw new Error('Missing required argument: path');
|
|
279
|
+
}
|
|
262
280
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
263
281
|
await fs.rm(absolutePath, { recursive, force: false });
|
|
264
282
|
return `Successfully deleted: ${filePath}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/core/tools/definitions/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,iBAAiB;AACjB,MAAM,YAAY,GAAgB;IAC9B,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACN,IAAI,EAAE,WAAW;YACjB,WAAW,EACP,4FAA4F;YAChG,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,IAAI,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBACpE;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8DAA8D;qBAC9E;oBACD,QAAQ,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,0DAA0D;qBAC1E;iBACJ;gBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;aACrB;SACJ;KACJ;IACD,KAAK,CAAC,OAAO,CAAC,IAAI;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/core/tools/definitions/file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/config/constants.ts
CHANGED
|
@@ -10,7 +10,7 @@ export const DEFAULT_RERANK_MODEL = 'Qwen/Qwen3-Reranker-0.6B';
|
|
|
10
10
|
|
|
11
11
|
// CLI Metadata
|
|
12
12
|
export const CLI_NAME = 'bluehawks';
|
|
13
|
-
export const CLI_VERSION = '1.0.
|
|
13
|
+
export const CLI_VERSION = '1.0.17';
|
|
14
14
|
export const CLI_DESCRIPTION = 'A production-ready multi-agent AI CLI assistant';
|
|
15
15
|
|
|
16
16
|
// Configuration Paths
|
|
@@ -39,10 +39,14 @@ const readFileTool: ToolHandler = {
|
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
41
|
async execute(args) {
|
|
42
|
-
const filePath = args.path as string;
|
|
42
|
+
const filePath = (args.path || args.file) as string;
|
|
43
43
|
const startLine = args.start_line as number | undefined;
|
|
44
44
|
const endLine = args.end_line as number | undefined;
|
|
45
45
|
|
|
46
|
+
if (!filePath) {
|
|
47
|
+
throw new Error('Missing required argument: path');
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
47
51
|
|
|
48
52
|
// Check if file exists
|
|
@@ -99,9 +103,13 @@ const writeFileTool: ToolHandler = {
|
|
|
99
103
|
},
|
|
100
104
|
},
|
|
101
105
|
async execute(args) {
|
|
102
|
-
const filePath = args.path as string;
|
|
106
|
+
const filePath = (args.path || args.file) as string;
|
|
103
107
|
const content = args.content as string;
|
|
104
108
|
|
|
109
|
+
if (!filePath) {
|
|
110
|
+
throw new Error('Missing required argument: path');
|
|
111
|
+
}
|
|
112
|
+
|
|
105
113
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
106
114
|
|
|
107
115
|
// Create directory if it doesn't exist
|
|
@@ -145,10 +153,14 @@ const editFileTool: ToolHandler = {
|
|
|
145
153
|
},
|
|
146
154
|
},
|
|
147
155
|
async execute(args) {
|
|
148
|
-
const filePath = args.path as string;
|
|
156
|
+
const filePath = (args.path || args.file) as string;
|
|
149
157
|
const oldContent = args.old_content as string;
|
|
150
158
|
const newContent = args.new_content as string;
|
|
151
159
|
|
|
160
|
+
if (!filePath) {
|
|
161
|
+
throw new Error('Missing required argument: path');
|
|
162
|
+
}
|
|
163
|
+
|
|
152
164
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
153
165
|
|
|
154
166
|
// Read current content
|
|
@@ -199,10 +211,14 @@ const listDirTool: ToolHandler = {
|
|
|
199
211
|
},
|
|
200
212
|
},
|
|
201
213
|
async execute(args) {
|
|
202
|
-
const dirPath = args.path as string;
|
|
214
|
+
const dirPath = (args.path || args.file) as string;
|
|
203
215
|
const recursive = (args.recursive as boolean) ?? false;
|
|
204
216
|
const maxDepth = (args.max_depth as number) ?? 3;
|
|
205
217
|
|
|
218
|
+
if (!dirPath) {
|
|
219
|
+
throw new Error('Missing required argument: path');
|
|
220
|
+
}
|
|
221
|
+
|
|
206
222
|
const absolutePath = path.resolve(process.cwd(), dirPath);
|
|
207
223
|
|
|
208
224
|
async function listDir(dir: string, depth: number): Promise<string[]> {
|
|
@@ -255,7 +271,12 @@ const createDirTool: ToolHandler = {
|
|
|
255
271
|
},
|
|
256
272
|
},
|
|
257
273
|
async execute(args) {
|
|
258
|
-
const dirPath = args.path as string;
|
|
274
|
+
const dirPath = (args.path || args.file) as string;
|
|
275
|
+
|
|
276
|
+
if (!dirPath) {
|
|
277
|
+
throw new Error('Missing required argument: path');
|
|
278
|
+
}
|
|
279
|
+
|
|
259
280
|
const absolutePath = path.resolve(process.cwd(), dirPath);
|
|
260
281
|
|
|
261
282
|
await fs.mkdir(absolutePath, { recursive: true });
|
|
@@ -290,9 +311,13 @@ const deleteFileTool: ToolHandler = {
|
|
|
290
311
|
},
|
|
291
312
|
},
|
|
292
313
|
async execute(args) {
|
|
293
|
-
const filePath = args.path as string;
|
|
314
|
+
const filePath = (args.path || args.file) as string;
|
|
294
315
|
const recursive = (args.recursive as boolean) ?? false;
|
|
295
316
|
|
|
317
|
+
if (!filePath) {
|
|
318
|
+
throw new Error('Missing required argument: path');
|
|
319
|
+
}
|
|
320
|
+
|
|
296
321
|
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
297
322
|
|
|
298
323
|
await fs.rm(absolutePath, { recursive, force: false });
|