diff options
| author | James Long <[email protected]> | 2026-04-13 13:33:13 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-13 13:33:13 -0400 |
| commit | bf50d1c028e973ccc0beffdf568fca417b62f020 (patch) | |
| tree | cfbbaf0c18554bd442bb0058246480d4c79fe2e6 /packages/plugin/src/example-workspace.ts | |
| parent | b8801dbd22e561e3ddaf83744726d8d98744f255 (diff) | |
| download | opencode-bf50d1c028e973ccc0beffdf568fca417b62f020.tar.gz opencode-bf50d1c028e973ccc0beffdf568fca417b62f020.zip | |
feat(core): expose workspace adaptors to plugins (#21927)
Diffstat (limited to 'packages/plugin/src/example-workspace.ts')
| -rw-r--r-- | packages/plugin/src/example-workspace.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/plugin/src/example-workspace.ts b/packages/plugin/src/example-workspace.ts new file mode 100644 index 000000000..925328450 --- /dev/null +++ b/packages/plugin/src/example-workspace.ts @@ -0,0 +1,34 @@ +import type { Plugin } from "@opencode-ai/plugin" +import { mkdir, rm } from "node:fs/promises" + +export const FolderWorkspacePlugin: Plugin = async ({ experimental_workspace }) => { + experimental_workspace.register("folder", { + name: "Folder", + description: "Create a blank folder", + configure(config) { + const rand = "" + Math.random() + + return { + ...config, + directory: `/tmp/folder/folder-${rand}`, + } + }, + async create(config) { + if (!config.directory) return + await mkdir(config.directory, { recursive: true }) + }, + async remove(config) { + await rm(config.directory!, { recursive: true, force: true }) + }, + target(config) { + return { + type: "local", + directory: config.directory!, + } + }, + }) + + return {} +} + +export default FolderWorkspacePlugin |
