trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
60 lines • 2.41 kB
TypeScript
/**
* Agent Lane metadata and paths (ADR 0001, terminology ADR 0005).
* Journal I/O: {@link LaneOpLog} in ./op-log.js
*/
import type { VcsOp } from './types.js';
export type LaneStatus = 'active' | 'promoting' | 'promoted' | 'dropped';
/** ADR 0006 sibling; ADR 0007 child with virtualBaseOpHash. */
export type LaneForkKind = 'sibling' | 'child';
export interface LaneMeta {
id: string;
status: LaneStatus;
baseBranch: string;
baseOpHash: string;
targetBranch: string;
headOpHash?: string;
agentId: string;
issueId?: string;
sessionId?: string;
/** Human domain slug from `lane split --name` (TRL-117). */
name?: string;
parentLaneId?: string;
forkKind?: LaneForkKind;
forkedAt?: string;
/** Parent lane head at child fork (ADR 0007). */
virtualBaseOpHash?: string;
worktreePath?: string;
leaseExpiresAt?: string;
createdAt: string;
updatedAt: string;
}
/** Domain slug: lowercase letters, digits, hyphen, underscore. */
export declare function normalizeLaneName(raw: string): string;
export declare function lanesRoot(trellisDir: string): string;
export declare function laneDir(trellisDir: string, laneId: string): string;
export declare function laneMetaPath(trellisDir: string, laneId: string): string;
export declare function newLaneId(): string;
export declare function loadLaneMeta(trellisDir: string, laneId: string): LaneMeta | undefined;
export declare function saveLaneMeta(trellisDir: string, meta: LaneMeta): void;
export declare function listLaneIds(trellisDir: string): string[];
export interface CreateLaneParams {
baseBranch: string;
baseOpHash: string;
agentId: string;
targetBranch?: string;
issueId?: string;
sessionId?: string;
name?: string;
parentLaneId?: string;
forkKind?: LaneForkKind;
forkedAt?: string;
virtualBaseOpHash?: string;
worktreePath?: string;
leaseExpiresAt?: string;
}
/** Lane journal tail, else meta head, else integration fork base. */
export declare function resolveLaneHeadFromJournal(meta: LaneMeta, laneOps: VcsOp[]): string;
export declare function createLaneMeta(trellisDir: string, params: CreateLaneParams): LaneMeta;
export declare function updateLaneHead(trellisDir: string, laneId: string, headOpHash: string): void;
export declare function listLaneMetas(trellisDir: string): LaneMeta[];
//# sourceMappingURL=lane.d.ts.map