feat(plugins): add files.listFiles directory listing to the plugin API

This commit is contained in:
Federico Jaramillo Martinez
2026-07-28 23:14:21 +02:00
parent 12f25282fc
commit d19fca4090
10 changed files with 199 additions and 26 deletions
+5 -1
View File
@@ -1,5 +1,5 @@
import type { TemplateResult } from "lit";
import type { FileContentResponse, MachineKind, PiWebStatusResponse, TerminalCommandRunHandle, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse } from "./shared/apiTypes.js";
import type { FileContentResponse, FileTreeResponse, MachineKind, PiWebStatusResponse, TerminalCommandRunHandle, WriteWorkspaceFileOptions, WriteWorkspaceFileResponse, DeleteWorkspaceFileResponse, MoveWorkspaceFileOptions, MoveWorkspaceFileResponse } from "./shared/apiTypes.js";
export type {
FileContentMediaType,
@@ -135,6 +135,10 @@ export interface Workspace {
export interface WorkspaceFiles {
/** Read a file from the workspace. Works for local and federated machines. */
readFile(path: string): Promise<FileContentResponse>;
/** List the entries of a workspace directory. Pass "" for the workspace root.
* Works for local and federated machines. Rejects when the directory does not
* exist or cannot be read, matching readFile error behavior. */
listFiles(path: string): Promise<FileTreeResponse>;
/** Write content to a workspace file. Creates intermediate directories by default.
* Works for local and federated machines. Auto-refreshes the file explorer after success. */
writeFile(path: string, content: string | Uint8Array, options?: WriteWorkspaceFileOptions): Promise<WriteWorkspaceFileResponse>;