UNPKG

mcp-casual-interview

Version:

MCP server for casual interview preparation workflow management

47 lines 2.08 kB
import { toStructuredCallToolResult, toCallToolResult } from '../util.js'; import { formatResetMessage, errorMessages } from './prompts.js'; // Effect layer imports import { clearState, getCurrentState } from '../../../effect/workflow-state-storage.js'; /** * Maps domain WorkflowState to schema WorkflowStateType */ const mapWorkflowStateToSchemaType = (domainState) => { return domainState; }; /** * Workflow reset handler - clears all stored workflow state and resets to initial state */ export const workflowResetHandler = async (args) => { try { // 1. Get current state before reset for reporting purposes const currentStateResult = await getCurrentState(); let previousState = null; if (currentStateResult.isOk()) { previousState = mapWorkflowStateToSchemaType(currentStateResult.value.state); } // 2. Clear all workflow state using existing clearState function const resetResult = await clearState(); if (resetResult.isErr()) { return toCallToolResult([errorMessages.resetFailed(resetResult.error.message)], true); } // 3. Extract reset data const resetData = resetResult.value; // 4. Map to output schema const outputData = { success: true, previousState: previousState, currentState: mapWorkflowStateToSchemaType(resetData.state), notionPageUrl: resetData.notionPageUrl, lastUpdated: resetData.lastUpdated, message: 'ワークフローが正常にリセットされました。最初から準備を開始できます。' }; // 5. Format for human consumption const message = formatResetMessage(outputData); return toStructuredCallToolResult([message], outputData, false); } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; return toCallToolResult([errorMessages.unexpectedError(errorMessage)], true); } }; //# sourceMappingURL=handler.js.map