server/backend.ts

Declarations
#

4 declarations

view source

Backend
#

server/backend.ts view source

Server for managing the Zzz application state and handling client messages.

inheritance

executor

type ActionExecutor

readonly

zzz_dir

The full path to the Zzz directory.

type DiskfileDirectoryPath

readonly

scoped_dirs

Filesystem paths that Zzz can access for user files.

type ReadonlyArray<DiskfileDirectoryPath>

readonly

config

type ZzzOptions

readonly

peer

type ActionPeer

readonly

api

API for backend-initiated actions.

type BackendActionsApi

readonly

pty_manager

Manages spawned PTY processes for terminal integration.

type PtyManager

readonly

scoped_fs

ScopedFs filesystem interface that restricts operations to allowed directories.

type ScopedFs

readonly

log

type Logger | null

readonly

filers

type Map<string, FilerInstance>

readonly

action_registry

readonly

providers

Available AI providers.

type Array<BackendProvider>

readonly

constructor

type new (options: BackendOptions): Backend

options

lookup_action_handler

type (method: "ping" | "session_load" | "filer_change" | "diskfile_update" | "diskfile_delete" | "directory_create" | "completion_create" | "completion_progress" | "ollama_progress" | ... 15 more ... | "terminal_close", phase: "send_request" | ... 7 more ... | "receive"): ((event: any) => any) | undefined

method
type "ping" | "session_load" | "filer_change" | "diskfile_update" | "diskfile_delete" | "directory_create" | "completion_create" | "completion_progress" | "ollama_progress" | ... 15 more ... | "terminal_close"
phase
type "send_request" | "execute" | "receive_request" | "send_response" | "receive_response" | "send_error" | "receive_error" | "send" | "receive"
returns ((event: any) => any) | undefined

lookup_action_spec

type (method: "ping" | "session_load" | "filer_change" | "diskfile_update" | "diskfile_delete" | "directory_create" | "completion_create" | "completion_progress" | "ollama_progress" | ... 15 more ... | "terminal_close"): { ...; } | ... 2 more ... | undefined

method
type "ping" | "session_load" | "filer_change" | "diskfile_update" | "diskfile_delete" | "directory_create" | "completion_create" | "completion_progress" | "ollama_progress" | ... 15 more ... | "terminal_close"
returns { method: string; initiator: "both" | "frontend" | "backend"; side_effects: true | null; input: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>; output: ZodType<unknown, unknown, $ZodTypeInternals<...>>; description: string; kind: "request_response"; auth: "public" | ... 2 more ... | { ...; }; async: ...

lookup_provider

type <T extends keyof BackendProviders>(provider_name: T): BackendProviders[T]

provider_name
type T
returns BackendProviders[T]

receive

Process a singular JSON-RPC message and return a response. Like MCP, Zzz breaks from JSON-RPC by not supporting batching.

type (message: unknown): Promise<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { ...; }; } | { ...; } | null>

message
type unknown
returns Promise<{ [x: string]: unknown; jsonrpc: "2.0"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: "2.0"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...

destroy

Server teardown and cleanup.

type (): Promise<void>

returns Promise<void>

add_provider

type (provider: BackendProvider<unknown>): void

provider
type BackendProvider<unknown>
returns void

BackendOptions
#

server/backend.ts view source

BackendOptions

zzz_dir

Zzz directory path, defaults to .zzz.

type string

scoped_dirs

Filesystem paths that Zzz can access for user files.

type Array<string>

config

Configuration for the backend and AI providers.

action_specs

Action specifications that determine what the backend can do.

type Array<ActionSpecUnion>

action_handlers

Handler function for processing client messages.

handle_filer_change

Handler function for file system changes.

log

Optional logger instance. Disabled when null, and undefined falls back to a new Logger instance.

type Logger | null | undefined

FilerChangeHandler
#

FilerInstance
#

server/backend.ts view source

FilerInstance

Structure to hold a Filer and its cleanup function.

filer

type Filer

cleanup_promise

type Promise<() => void>

Depends on
#

Imported by
#