@vite-hub/workspace
v0.0.1
Published
Agent-oriented filesystem state and Vite/Nitro integration for ViteHub.
Downloads
312
Maintainers
Readme
@vite-hub/workspace
@vite-hub/workspace gives agents and server code a file-system context they can read, diff, and, when opened in write mode, update.
Install
pnpm add @vite-hub/workspaceMinimal API
server/
workspaces/
docs/
README.md
config.ts
api/
docs.get.ts
vite.config.ts// server/workspaces/docs/config.ts
import { defineWorkspace, source } from "@vite-hub/workspace"
export default defineWorkspace({
store: {
provider: "local",
root: ".vitehub/workspaces/docs",
},
sources: {
readme: source.file("README.md"),
vitehubDocs: source.github({
repo: "vite-hub/vitehub",
root: "docs/content/docs",
}),
guide: source.file({
workspacePath: "guide.md",
content: "# Guide\n",
}),
},
})// server/api/docs.get.ts
import { useWorkspace } from "@vite-hub/workspace"
import { defineEventHandler } from "h3"
export default defineEventHandler(async () => {
const workspace = useWorkspace("docs", { mode: "write" })
await workspace.fs.writeFile("generated/notes.md", "Generated by ViteHub\n")
return {
files: await workspace.fs.glob("**/*.md"),
diff: await workspace.diff(),
}
})// vite.config.ts
import { hubWorkspace } from "@vite-hub/workspace/vite"
import { defineConfig } from "vite"
export default defineConfig({
plugins: [hubWorkspace()],
})Sandbox sessions
Need the workspace to run generated code instead of only reading and writing files? Pair it with @vite-hub/sandbox so sessions can execute inside an isolated provider runtime.
Vite and Nitro
Nitro workspaces live under server/workspaces/**; an agent can also colocate one at server/agents/<name>/config.ts by adding workspace to its defineAgent() call. Vite emits the workspace manifest for local development, and @vite-hub/workspace/nitro registers the runtime store.
Built on @vite-hub/source, @vite-hub/shell, files-sdk, and isomorphic-git.
Learn more at vitehub.dev.
