Buckets:
| import { FileSystem } from "@opencode-ai/core/filesystem" | |
| import { Location } from "@opencode-ai/core/location" | |
| import { PositiveInt, RelativePath } from "@opencode-ai/core/schema" | |
| import { Schema } from "effect" | |
| import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi" | |
| import { LocationQuery, locationQueryOpenApi, LocationMiddleware } 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.", | |
| }), | |
| ) | |
| .middleware(LocationMiddleware) | |
Xet Storage Details
- Size:
- 2.33 kB
- Xet hash:
- e1f1ffe5cea4edfc9ad96d12e3dca33e4182b6b95c52ca0503b85765fa67f3d4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.