echo-cli-agent 0.1.17 → 0.1.18
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.
|
@@ -175,6 +175,11 @@ export type RemoteDirectory = {
|
|
|
175
175
|
path: string;
|
|
176
176
|
readable: boolean;
|
|
177
177
|
};
|
|
178
|
+
export type RemoteFile = {
|
|
179
|
+
name: string;
|
|
180
|
+
path: string;
|
|
181
|
+
readable: boolean;
|
|
182
|
+
};
|
|
178
183
|
export type DirectoryListAck = {
|
|
179
184
|
type: 'directory_list.ack';
|
|
180
185
|
request_id: string;
|
|
@@ -183,6 +188,7 @@ export type DirectoryListAck = {
|
|
|
183
188
|
path: string | null;
|
|
184
189
|
parent_path: string | null;
|
|
185
190
|
directories: RemoteDirectory[];
|
|
191
|
+
files: RemoteFile[];
|
|
186
192
|
error?: string;
|
|
187
193
|
duration_ms: number;
|
|
188
194
|
};
|
|
@@ -2,8 +2,8 @@ import type { DiagnosticLogger } from '../logging/diagnostic-log.js';
|
|
|
2
2
|
import type { DirectoryListAck, DirectoryListRequest } from '../types/protocol.js';
|
|
3
3
|
/**
|
|
4
4
|
* Read-only, one-level filesystem browser used by remote directory pickers.
|
|
5
|
-
* It
|
|
6
|
-
*
|
|
5
|
+
* It returns names and paths only; file contents and thumbnails never leave
|
|
6
|
+
* the device.
|
|
7
7
|
*/
|
|
8
8
|
export declare class DirectoryBrowser {
|
|
9
9
|
private readonly logger;
|
|
@@ -11,5 +11,6 @@ export declare class DirectoryBrowser {
|
|
|
11
11
|
handle(request: DirectoryListRequest): Promise<DirectoryListAck>;
|
|
12
12
|
private listRoots;
|
|
13
13
|
private listDirectories;
|
|
14
|
+
private listFiles;
|
|
14
15
|
private message;
|
|
15
16
|
}
|
|
@@ -3,8 +3,8 @@ import { dirname, parse, resolve } from 'node:path';
|
|
|
3
3
|
const MAX_DIRECTORY_ENTRIES = 1_000;
|
|
4
4
|
/**
|
|
5
5
|
* Read-only, one-level filesystem browser used by remote directory pickers.
|
|
6
|
-
* It
|
|
7
|
-
*
|
|
6
|
+
* It returns names and paths only; file contents and thumbnails never leave
|
|
7
|
+
* the device.
|
|
8
8
|
*/
|
|
9
9
|
export class DirectoryBrowser {
|
|
10
10
|
logger;
|
|
@@ -24,6 +24,7 @@ export class DirectoryBrowser {
|
|
|
24
24
|
path: null,
|
|
25
25
|
parent_path: null,
|
|
26
26
|
directories: await this.listRoots(),
|
|
27
|
+
files: [],
|
|
27
28
|
duration_ms: Date.now() - startedAt
|
|
28
29
|
};
|
|
29
30
|
}
|
|
@@ -40,6 +41,7 @@ export class DirectoryBrowser {
|
|
|
40
41
|
path: directoryPath,
|
|
41
42
|
parent_path: parentPath === directoryPath ? null : parentPath,
|
|
42
43
|
directories: await this.listDirectories(directoryPath),
|
|
44
|
+
files: await this.listFiles(directoryPath),
|
|
43
45
|
duration_ms: Date.now() - startedAt
|
|
44
46
|
};
|
|
45
47
|
}
|
|
@@ -58,6 +60,7 @@ export class DirectoryBrowser {
|
|
|
58
60
|
path: requestedPath,
|
|
59
61
|
parent_path: null,
|
|
60
62
|
directories: [],
|
|
63
|
+
files: [],
|
|
61
64
|
error: message,
|
|
62
65
|
duration_ms: Date.now() - startedAt
|
|
63
66
|
};
|
|
@@ -93,6 +96,18 @@ export class DirectoryBrowser {
|
|
|
93
96
|
}))
|
|
94
97
|
.sort((left, right) => left.name.localeCompare(right.name, undefined, { sensitivity: 'base' }));
|
|
95
98
|
}
|
|
99
|
+
async listFiles(directoryPath) {
|
|
100
|
+
const entries = await readdir(directoryPath, { withFileTypes: true });
|
|
101
|
+
return entries
|
|
102
|
+
.filter((entry) => entry.isFile() && !entry.isSymbolicLink())
|
|
103
|
+
.slice(0, MAX_DIRECTORY_ENTRIES)
|
|
104
|
+
.map((entry) => ({
|
|
105
|
+
name: entry.name,
|
|
106
|
+
path: resolve(directoryPath, entry.name),
|
|
107
|
+
readable: true
|
|
108
|
+
}))
|
|
109
|
+
.sort((left, right) => left.name.localeCompare(right.name, undefined, { sensitivity: 'base' }));
|
|
110
|
+
}
|
|
96
111
|
message(error) {
|
|
97
112
|
return error instanceof Error ? error.message : String(error);
|
|
98
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory-browser.js","sourceRoot":"","sources":["../../../src/workspace/directory-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"directory-browser.js","sourceRoot":"","sources":["../../../src/workspace/directory-browser.ts"],"names":[],"mappings":"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"}
|