Download packages/protocol/src/groups/fs.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 2.28 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/protocol/src/groups/fs.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/protocol/src/groups/fs.ts
-
curl -L -o fs.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/protocol/src/groups/fs.ts
2.28 kB
| import { FileSystem } from "@opencode-ai/schema/filesystem" | |
| import { Location } from "@opencode-ai/schema/location" | |
| import { PositiveInt, RelativePath } from "@opencode-ai/schema/schema" | |
| import { Schema } from "effect" | |
| import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi" | |
| import { LocationQuery, locationQueryOpenApi } from "./location" | |
| const ListQuery = Schema.Struct({ | |
| ...LocationQuery.fields, | |
| path: RelativePath.pipe(Schema.optional), | |
| }) | |
| const FindQuery = Schema.Struct({ | |
| ...LocationQuery.fields, | |
| query: FileSystem.FindInput.fields.query, | |
| type: FileSystem.FindInput.fields.type, | |
| limit: Schema.NumberFromString.pipe(Schema.decodeTo(PositiveInt), Schema.optional), | |
| }) | |
| export const FileSystemGroup = HttpApiGroup.make("server.fs") | |
| .add( | |
| HttpApiEndpoint.get("fs.read", "/api/fs/read/*", { | |
| query: LocationQuery, | |
| success: Schema.Uint8Array.pipe(HttpApiSchema.asUint8Array()), | |
| }) | |
| .annotateMerge(locationQueryOpenApi) | |
| .annotateMerge( | |
| OpenApi.annotations({ | |
| identifier: "v2.fs.read", | |
| summary: "Read file", | |
| description: "Serve one file relative to the requested location.", | |
| }), | |
| ), | |
| ) | |
| .add( | |
| HttpApiEndpoint.get("fs.list", "/api/fs/list", { | |
| query: ListQuery, | |
| success: Location.response(Schema.Array(FileSystem.Entry)), | |
| }) | |
| .annotateMerge(locationQueryOpenApi) | |
| .annotateMerge( | |
| OpenApi.annotations({ | |
| identifier: "v2.fs.list", | |
| summary: "List directory", | |
| description: "List direct children of one directory relative to the requested location.", | |
| }), | |
| ), | |
| ) | |
| .add( | |
| HttpApiEndpoint.get("fs.find", "/api/fs/find", { | |
| query: FindQuery, | |
| success: Location.response(Schema.Array(FileSystem.Entry)), | |
| }) | |
| .annotateMerge(locationQueryOpenApi) | |
| .annotateMerge( | |
| OpenApi.annotations({ | |
| identifier: "v2.fs.find", | |
| summary: "Find files", | |
| description: "Find recursively ranked filesystem entries relative to the requested location.", | |
| }), | |
| ), | |
| ) | |
| .annotateMerge( | |
| OpenApi.annotations({ | |
| title: "filesystem", | |
| description: "Experimental location-scoped filesystem routes.", | |
| }), | |
| ) | |