mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 10:50:38 +09:00
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
|
|
# `@paperclipai/plugin-daytona`
|
||
|
|
|
||
|
|
Published Daytona sandbox provider plugin for Paperclip.
|
||
|
|
|
||
|
|
This package lives in the Paperclip monorepo, but it is intentionally excluded from the root `pnpm` workspace and shaped to publish and install like a standalone npm package. That lets operators install it from the Plugins page by package name without introducing root lockfile churn for Daytona's SDK dependencies.
|
||
|
|
|
||
|
|
## Install
|
||
|
|
|
||
|
|
From a Paperclip instance, install:
|
||
|
|
|
||
|
|
```text
|
||
|
|
@paperclipai/plugin-daytona
|
||
|
|
```
|
||
|
|
|
||
|
|
The host plugin installer runs `npm install` into the managed plugin directory, so transitive dependencies such as `@daytonaio/sdk` are pulled in during installation.
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
Configure Daytona from `Company Settings -> Environments`, not from the plugin's instance settings page.
|
||
|
|
|
||
|
|
- Put the Daytona API key on the sandbox environment itself.
|
||
|
|
- When you save an environment, Paperclip stores pasted API keys as company secrets.
|
||
|
|
- `DAYTONA_API_KEY` remains an optional host-level fallback when an environment omits the key.
|
||
|
|
- Optional `apiUrl` and `target` settings map directly to the Daytona SDK/client configuration. If `apiUrl` is omitted, the Daytona SDK uses its default endpoint.
|
||
|
|
|
||
|
|
Notes:
|
||
|
|
|
||
|
|
- The current published Daytona SDK package is `@daytonaio/sdk`.
|
||
|
|
- The driver supports both `snapshot`-based and `image`-based sandbox creation. If both are set, validation rejects the config as ambiguous.
|
||
|
|
- Reusable leases map to Daytona stop/start semantics. Non-reusable leases are deleted on release.
|
||
|
|
|
||
|
|
## Local development
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd packages/plugins/sandbox-providers/daytona
|
||
|
|
pnpm install --ignore-workspace --no-lockfile
|
||
|
|
pnpm build
|
||
|
|
pnpm test
|
||
|
|
pnpm typecheck
|
||
|
|
```
|
||
|
|
|
||
|
|
These commands assume the repo root has already been installed once so the local `@paperclipai/plugin-sdk` workspace package is available to the compiler during development.
|
||
|
|
|
||
|
|
## Package layout
|
||
|
|
|
||
|
|
- `src/manifest.ts` declares the sandbox-provider driver metadata
|
||
|
|
- `src/plugin.ts` implements the environment lifecycle hooks
|
||
|
|
- `paperclipPlugin.manifest` and `paperclipPlugin.worker` point the host at the built plugin entrypoints in `dist/`
|