mcp-casual-interview
Version:
MCP server for casual interview preparation workflow management
41 lines • 1.61 kB
TypeScript
import { Result } from 'neverthrow';
import { WorkflowState, WorkflowError, NextActionPrompt } from '../../term/interview-workflow/index.js';
/**
* Progress Check Command Aggregate
*
* Commands that handle interview preparation progress checking and workflow state management.
* Implements event-centric domain design where commands produce events.
*/
type ProgressCheckEvent = {
type: 'ProgressChecked';
workflowState: WorkflowState;
nextActionPrompt: NextActionPrompt;
timestamp: Date;
} | {
type: 'WorkflowStateUpdated';
previousState: WorkflowState;
newState: WorkflowState;
timestamp: Date;
};
type CheckProgressCommand = (currentState: WorkflowState) => Result<Extract<ProgressCheckEvent, {
type: 'ProgressChecked';
}>, WorkflowError>;
type UpdateWorkflowStateCommand = (currentState: WorkflowState, newState: WorkflowState) => Result<Extract<ProgressCheckEvent, {
type: 'WorkflowStateUpdated';
}>, WorkflowError>;
type CheckProgressRequest = {
currentState?: WorkflowState;
};
type UpdateStateRequest = {
currentState: WorkflowState;
newState: WorkflowState;
};
export declare const ProgressCheckAggregate: {
readonly checkProgress: CheckProgressCommand;
readonly updateState: UpdateWorkflowStateCommand;
readonly checkProgressWithUpdate: (request: CheckProgressRequest & {
updateToState?: WorkflowState;
}) => Result<ProgressCheckEvent[], WorkflowError>;
};
export type { ProgressCheckEvent, CheckProgressRequest, UpdateStateRequest, CheckProgressCommand, UpdateWorkflowStateCommand };
//# sourceMappingURL=index.d.ts.map