trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
78 lines • 2.79 kB
TypeScript
/**
* Trellis DB — Sprites Deployment
*
* Deploys a Trellis DB server to a Sprites cloud environment.
*
* Sprites is a cloud VM platform. Each Sprite gets a persistent URL from
* `sprite url` (typically `https://<name>-<org>.sprites.app`).
*
* Deployment steps:
* 1. Bundle the server entrypoint with Bun
* 2. Create or wake the target Sprite via `sprite exec`
* 3. Upload the bundle + SQLite file (if seeding)
* 4. Install Bun and register the server via `sprite-env services` (port 8080)
* 5. Write the resulting URL + API key back to .trellis-db.json
*
* Prerequisites:
* - `sprite` CLI installed and authenticated (https://docs.sprites.dev)
* - SPRITES_API_KEY env var (or passed directly)
*
* @module trellis/server
*/
export interface DeployOptions {
/** Sprite name (becomes the subdomain: <name>.sprites.app). */
name: string;
/** Path to the local .trellis-db directory to deploy. */
dbPath?: string;
/** API key for the deployed server. Auto-generated if not provided. */
apiKey?: string;
/** JWT secret for the deployed server. Auto-generated if not provided. */
jwtSecret?: string;
/** Port to run on inside the Sprite (default: 3000). */
port?: number;
/** Directory where .trellis-db.json lives. Default: cwd. */
configDir?: string;
/** Progress callback. */
onProgress?: (msg: string) => void;
/**
* Skip Sprite provisioning — validate name and write `.trellis-db.json` only.
* For local dry-runs and CI (`trellis deploy --stub`).
*/
stub?: boolean;
}
export interface DeployResult {
url: string;
name: string;
apiKey: string;
}
export declare function deploy(opts: DeployOptions): Promise<DeployResult>;
/**
* Slice D — install a sprite's device key on the sprite VM. Writes
* `.trellis/devices/local.json` (device key only; the root identity key never
* leaves the user's machine) so the sprite signs as the identity via
* `getSigningMaterial` (device-first).
*/
export declare function installSpriteDeviceKey(name: string, local: {
deviceId: string;
identityEntityId: string;
did: string;
publicKey: string;
privateKey: string;
deviceLabel?: string;
kind?: string;
transport?: string;
createdAt: string;
}, onProgress?: (msg: string) => void): Promise<void>;
/**
* Generate a self-contained server entrypoint script that starts the
* Trellis DB HTTP server with the given config baked in.
*
* Sprite deploys mount a durable {@link BlobStore} under
* `/home/sprite/trellis-db` so `/blob` survives restarts alongside graph data.
*/
export declare function generateServerEntrypoint(opts: {
port: number;
apiKey: string;
jwtSecret: string;
}): string;
//# sourceMappingURL=deploy.d.ts.map