mcp-casual-interview
Version:
MCP server for casual interview preparation workflow management
46 lines • 1.86 kB
TypeScript
import { WorkflowState, NextActionPrompt } from '../../term/interview-workflow/index.js';
import { ProgressCheckEvent } from '../../command/progress-check/index.js';
/**
* Progress View Read Model
*
* Optimized read models for progress queries and UI presentation.
* Built from event projections following CQRS patterns.
*/
type ProgressResponse = {
readonly currentState: WorkflowState;
readonly nextAction: NextActionPrompt;
readonly canAdvance: boolean;
readonly lastUpdated: Date;
};
type DetailedProgressView = ProgressResponse & {
readonly stateHistory: readonly {
readonly state: WorkflowState;
readonly timestamp: Date;
readonly transitionType: 'manual' | 'automatic';
}[];
};
export declare const ProgressViewQueries: {
readonly fromState: (currentState: WorkflowState) => ProgressResponse;
readonly fromEvents: (events: ProgressCheckEvent[]) => ProgressResponse;
readonly detailed: (currentState: WorkflowState, events?: ProgressCheckEvent[]) => DetailedProgressView;
readonly completionStatus: (currentState: WorkflowState) => {
isCompleted: boolean;
hasNextStep: boolean;
nextStep: WorkflowState | null;
};
readonly availableActions: (currentState: WorkflowState) => {
canAdvance: boolean;
canGoBack: boolean;
nextState: WorkflowState | null;
availableTransitions: WorkflowState[];
currentStateActions: {
readonly message: string;
};
};
};
export declare const ProgressProjections: {
readonly projectCurrentStateFromEvents: (events: ProgressCheckEvent[]) => WorkflowState;
readonly buildStateHistoryFromEvents: (events: ProgressCheckEvent[]) => DetailedProgressView["stateHistory"];
};
export type { ProgressResponse, DetailedProgressView };
//# sourceMappingURL=index.d.ts.map