mirror of
https://github.com/jparkerweb/plan2code.git
synced 2026-07-21 18:33:22 -07:00
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
export type LoopMode = 'task' | 'phase';
|
|
|
|
export interface SessionConfig {
|
|
agent: string; // "claude-code" | "copilot-cli"
|
|
model: string; // Selected model
|
|
maxIterations: number; // 5-50
|
|
timeout: number; // Base timeout in minutes per iteration attempt
|
|
maxRetries: number; // Max retry attempts per iteration (timeout increments by 30s each retry)
|
|
verbose: boolean;
|
|
specPath: string; // Path to the spec directory
|
|
startedAt: string; // ISO timestamp
|
|
currentIteration: number;
|
|
jiraTicketId?: string; // JIRA ticket ID for commit messages
|
|
loopMode: LoopMode; // "task" = one task per loop, "phase" = one phase per loop
|
|
}
|
|
|
|
export interface IterationLogEntry {
|
|
iteration: number;
|
|
timestamp: string; // ISO timestamp
|
|
duration: number; // milliseconds
|
|
exitCode: number;
|
|
status: 'running' | 'completed' | 'error' | 'timeout' | 'interrupted' | 'blocked';
|
|
completionMarker?: string;
|
|
}
|
|
|
|
export type SessionState = 'new' | 'continue' | 'changed';
|
|
|
|
export const DEFAULT_CONFIG: Partial<SessionConfig> = {
|
|
maxIterations: 100,
|
|
timeout: 3,
|
|
maxRetries: 5,
|
|
verbose: false,
|
|
currentIteration: 0,
|
|
loopMode: 'task',
|
|
};
|