/**
 * Instruction context types and edit rule generation
 *
 * Defines the context structures used by instruction builders.
 */
/**
 * Build the edit rule string for the execution context section.
 *
 * Returns a localized string describing the edit permission for this step.
 * Returns empty string when edit is undefined (no explicit permission).
 */
export function buildEditRule(edit, language) {
    if (edit === true) {
        if (language === 'ja') {
            return '**このステップでは編集が許可されています。** ユーザーの要求に応じて、ファイルの作成・変更・削除を行ってください。';
        }
        return '**Editing is ENABLED for this step.** You may create, modify, and delete files as needed to fulfill the user\'s request.';
    }
    if (edit === false) {
        if (language === 'ja') {
            return '**このステップでは編集が禁止されています。** プロジェクトのソースファイルを作成・変更・削除しないでください。コードの読み取り・検索のみ行ってください。レポート出力は後のフェーズで自動的に行われます。';
        }
        return '**Editing is DISABLED for this step.** Do NOT create, modify, or delete any project source files. You may only read and search code. Report output will be handled automatically in a later phase.';
    }
    return '';
}
export function buildGitRules(allowGitCommit, language, phase) {
    if (allowGitCommit === true) {
        return '';
    }
    if (language === 'ja') {
        const rules = [
            '- **git commit を実行しないでください。** コミットはワークフロー完了後にシステムが自動で行います。',
            '- **git push を実行しないでください。** プッシュもシステムが自動で行います。',
        ];
        if (phase === 'phase1') {
            rules.push('- **git add を実行しないでください。** ステージングもシステムが自動で行います。新規ファイルが未追跡（`??`）でも正常です。');
        }
        return rules.join('\n');
    }
    const rules = [
        '- **Do NOT run git commit.** Commits are handled automatically by the system after workflow completion.',
        '- **Do NOT run git push.** Pushes are also handled automatically by the system.',
    ];
    if (phase === 'phase1') {
        rules.push('- **Do NOT run git add.** Staging is also handled automatically by the system. Untracked files (`??`) are normal.');
    }
    return rules.join('\n');
}
//# sourceMappingURL=instruction-context.js.map