mcp-casual-interview
Version:
MCP server for casual interview preparation workflow management
57 lines (52 loc) • 2.64 kB
JavaScript
/**
* Format progress update message for human consumption
*/
export const formatProgressUpdateMessage = (data) => {
const stateMessages = {
'not_started': '未開始',
'initial_info_registered': '情報初期登録完了',
'career_summary_created': '経歴サマリ作成完了',
'match_position_determined': 'マッチポジション決定完了',
'match_degree_diagnosed': 'マッチ度合い事前診断完了',
'attract_plan_determined': 'アトラクプラン決定完了',
'completed': '全工程完了'
};
const previousStateText = stateMessages[data.previousState];
const currentStateText = stateMessages[data.currentState];
const notionUrlSection = data.notionUrl ? `
**Notion URL**: ${data.notionUrl}` : '';
return `✅ 進捗が更新されました
**前の状態**: ${previousStateText}
**現在の状態**: ${currentStateText}${notionUrlSection}
**次のアクション**:
${data.nextAction}`;
};
/**
* Error message templates for progress update operations
*/
export const errorMessages = {
invalidTransition: (from, to) => `❌ ワークフロー遷移エラー: ${from} から ${to} への遷移は許可されていません`,
invalidTransitionWithGuidance: (from, attempted, expectedNext) => {
const stateMessages = {
'information_initially_registered': '情報初期登録',
'career_summary_created': '経歴サマリ作成',
'match_position_determined': 'マッチポジション決定',
'match_degree_prediagnosed': 'マッチ度合い事前診断',
'attract_plan_determined': 'アトラクプラン決定',
'completed': '完了'
};
const fromText = stateMessages[from] || from;
const attemptedText = stateMessages[attempted] || attempted;
const expectedText = stateMessages[expectedNext] || expectedNext;
return `❌ ワークフロー遷移エラー: 現在「${fromText}」の状態です。
「${attemptedText}」に直接遷移することはできません。
次に完了すべきステップは「${expectedText}」です。
**正しい手順**:
1. まず「${expectedText}」を完了してください
2. その後、progress_update ツールで completedStep: "${expectedNext}" を指定してください`;
},
storageError: (message) => `❌ ストレージエラー: ${message}`,
progressUpdateError: (message) => `❌ 進捗更新エラー: ${message}`,
alreadyCompleted: (step) => `⚠️ ${step} は既に完了しています`
};
//# sourceMappingURL=prompts.js.map