mcp-casual-interview
Version:
MCP server for casual interview preparation workflow management
45 lines • 2.37 kB
TypeScript
import { Result } from 'neverthrow';
import { WorkflowState, WorkflowError } from '../../domain/term/interview-workflow/index.js';
/**
* Workflow State Effect Layer
*
* Handles side effects for workflow state persistence and retrieval.
* Abstracts storage implementation details from domain logic.
*/
type StateStorageError = {
type: 'StorageUnavailable' | 'SerializationError' | 'StateNotFound';
message: string;
cause?: unknown;
};
type GetWorkflowStateEffect = () => Promise<Result<WorkflowState, StateStorageError>>;
type SetWorkflowStateEffect = (state: WorkflowState) => Promise<Result<void, StateStorageError>>;
type ClearWorkflowStateEffect = () => Promise<Result<void, StateStorageError>>;
type GetNotionPageUrlEffect = () => Promise<Result<string, StateStorageError>>;
type SetNotionPageUrlEffect = (url: string) => Promise<Result<void, StateStorageError>>;
type StorageType = 'memory' | 'file' | 'database';
interface StorageConfig {
type: StorageType;
filePath?: string;
connectionString?: string;
}
export declare const WorkflowStateEffects: {
getWorkflowState: () => Promise<Result<WorkflowState, StateStorageError>>;
setWorkflowState: (state: WorkflowState) => Promise<Result<void, StateStorageError>>;
clearWorkflowState: () => Promise<Result<void, StateStorageError>>;
getNotionPageUrl: () => Promise<Result<string, StateStorageError>>;
setNotionPageUrl: (url: string) => Promise<Result<void, StateStorageError>>;
getLastUpdated: () => Date;
};
export declare const createWorkflowStateEffectsWithConfig: () => {
getWorkflowState: () => Promise<Result<WorkflowState, StateStorageError>>;
setWorkflowState: (state: WorkflowState) => Promise<Result<void, StateStorageError>>;
clearWorkflowState: () => Promise<Result<void, StateStorageError>>;
getNotionPageUrl: () => Promise<Result<string, StateStorageError>>;
setNotionPageUrl: (url: string) => Promise<Result<void, StateStorageError>>;
getLastUpdated: () => Date;
};
export declare const ErrorMapping: {
readonly mapStorageErrorToWorkflowError: (storageError: StateStorageError) => WorkflowError;
};
export type { StateStorageError, StorageConfig, StorageType, GetWorkflowStateEffect, SetWorkflowStateEffect, ClearWorkflowStateEffect, GetNotionPageUrlEffect, SetNotionPageUrlEffect };
//# sourceMappingURL=index.d.ts.map