workspace

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package workspace manages a bones workspace: the .agent-infra/ directory, its on-disk config, and the associated leaf daemon process.

Two entry points:

Init creates a fresh workspace and starts a leaf daemon.
Join locates an existing workspace (walking up from cwd) and verifies
its leaf is reachable.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAlreadyInitialized = errors.New("workspace already initialized")
	ErrNoWorkspace        = errors.New("no bones workspace found")
	ErrLeafUnreachable    = errors.New("leaf daemon not reachable")
	ErrLeafStartTimeout   = errors.New("leaf daemon failed to start within timeout")
)

Functions

func ExitCode

func ExitCode(err error) int

ExitCode maps errors returned by Init and Join to conventional process exit codes: 0 on success, 2-5 for known sentinels, 1 for anything else. Callers that want a different convention can inspect errors directly.

Types

type Info

type Info struct {
	AgentID      string
	NATSURL      string
	LeafHTTPURL  string
	RepoPath     string
	WorkspaceDir string
}

Info describes a live workspace. Returned by both Init and Join.

func Init

func Init(ctx context.Context, cwd string) (Info, error)

Init creates a fresh workspace rooted at cwd, starts a leaf daemon, and returns its connection info. Returns ErrAlreadyInitialized if .agent-infra/ already exists in cwd.

func Join

func Join(ctx context.Context, cwd string) (Info, error)

Join locates the nearest .agent-infra/ walking up from cwd and verifies the recorded leaf is still reachable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL