# =============================================================================
# TAKT UI Labels — 日本語
# =============================================================================
# ユーザー向け表示文字列（AIプロンプトではない）。
# テンプレート変数は {variableName} 形式を使用します。
# =============================================================================

# ===== Interactive Mode UI =====
interactive:
  sourceContextLabel: "Source Context"
  userCommentLabel: "ユーザーからのコメント"
  conversationLabel: "会話:"
  noTranscript: "（ローカル履歴なし。現在のセッション文脈を要約してください。）"
  formalSpecPrompt: "形式仕様モード（Alloy, Quint）を有効にしますか？ モードの既定値は assistant.formal_spec.mode（または旧 scalar 形式の assistant.formal_spec）で変更できます。"
  ui:
    intro: "対話モード - タスク内容を入力してください。準備ができたら /go で指示書を作成・実行し、実行中タスクへの追加指示は /tell で送信します。"
    introGrillMe: "Grill Meモード - 推奨案付きの質問を1問ずつ行い、要件を固めます。準備ができたら /go で指示書を作成・実行するか、/tell で実行中タスクへ追加指示を送信します。"
    introWithoutTell: "対話モード - タスク内容を入力してください。準備ができたら /go で指示書を作成・実行します。"
    introGrillMeWithoutTell: "Grill Meモード - 推奨案付きの質問を1問ずつ行い、要件を固めます。準備ができたら /go で指示書を作成・実行します。"
    resume: "前回のセッションを再開します"
    noConversation: "まだ会話がありません。まずタスク内容を入力してください。"
    thinking: "アシスタントが応答を作成中..."
    creatingInstruction: "指示書を作成中..."
    summarizeFailed: "会話の要約に失敗しました。再度お試しください。"
    continuePrompt: "続けてタスク内容を入力してください。"
    proposed: "提案されたタスク指示:"
    actionPrompt: "どうしますか？"
    actions:
      execute: "実行する"
      createIssue: "Issueを建てる"
      saveTask: "タスクにつむ"
      continue: "会話を続ける"
    cancelled: "キャンセルしました"
    acceptNoAssistant: "アシスタント発言が見つかりません。まずタスク内容を入力してください。"
    retryNoOrder: "前回の指示書（order.md）が見つかりません。/retry はリトライ時のみ使用できます。"
    retryUnavailable: "/retry は `takt list` の Retry モードでのみ使用できます。"
    pasteImageUnavailable: "/paste-image は対話入力中の画像添付にのみ使用できます。"
    verifyUnavailable: "/verify は形式仕様モードでのみ使用できます。"
    personaFallback: "先頭ステップにペルソナがありません。アシスタントモードにフォールバックします。"
  modeSelection:
    prompt: "対話モードを選択してください:"
    assistant: "アシスタント"
    assistantDescription: "確認質問をしてから指示書を作成"
    grill-me: "Grill Me"
    grill-meDescription: "推奨案付きの質問を1問ずつ行い、要件を固める"
    persona: "ペルソナ"
    personaDescription: "先頭エージェントのペルソナで対話"
  providerSelection:
    prompt: "プロバイダを選択してください:"
  runSelector:
    confirm: "前回の実行結果を参照しますか？"
    prompt: "参照するrunを選択してください:"
    noRuns: "前回のrunが見つかりませんでした。"
  continueNoSession: "前回のアシスタントセッションが見つかりません。新しいセッションで開始します。"
  mcpUnavailable: "プロバイダ {provider} ではタスク状態の参照を利用できません。会話は継続します。理由: {error}"
  resumeSessionLoaded: "セッションを読み込みました。以降のAI呼び出しでこのセッションを使用します。"
  sessionSelector:
    prompt: "直近のセッションを引き継ぎますか？"
    newSession: "新しいセッション"
    newSessionDescription: "新しい会話を始める"
    noSessions: "引き継げるセッションが見つかりませんでした。新しいセッションで開始します。"
    lastResponse: "最後: {response}"
    messages: "{count}メッセージ"
  previousTask:
    success: "✅ 前回のタスクは正常に完了しました"
    error: "❌ 前回のタスクはエラーで終了しました: {error}"
    userStopped: "⚠️ 前回のタスクはユーザーによって中断されました"
    workflow: "使用ワークフロー: {workflowName}"
    timestamp: "実行時刻: {timestamp}"
  commands:
    accept: "最新のアシスタント発言を採用"
    go: "指示書を作成して実行"
    tell: "実行中タスクへ追加指示を送る"
    retry: "前回の指示書を確認して再実行"
    replay: "前回の指示書で即再実行"
    cancel: "対話モードを終了"
    open: "実行中タスクのディレクトリを開く"
    resume: "セッションを読み込む"
    pasteImage: "クリップボード画像を添付"
    setup: "exec エージェントを設定"
    workflow: "ワークフローを切り替える"
    mode: "対話モードを切り替える"
    provider: "プロバイダを切り替える"
    model: "この会話で使うモデルを指定する"
    effort: "この会話で使う推論強度を指定する"
    verify: "現在の形式仕様を検証する"

# ===== Workflow Maker =====
workflowMaker:
  basePrompt: "Workflow Maker の base を選択してください:"
  workflowPrompt: "ワークフローを選択してください:"
  namePrompt: "ワークフロー名"
  sources:
    new: "新規ワークフロー"
    project: "プロジェクトのワークフロー"
    user: "グローバルのワークフロー"
    builtin: "組み込みワークフロー"
    repertoire: "レパートリーのワークフロー"
  intro: "Workflow Maker - 作成したい workflow を説明してください。/workflow で base 変更、/go で生成準備、/cancel で終了します。"
  proposed: "Workflow Maker の実装指示:"
  plannedPath: "生成予定パス: {path}"
  actionPrompt: "どうしますか？"
  actions:
    execute: "実行"
    continue: "編集を続ける"
  continuePrompt: "Workflow Maker の要件編集を続けます。"
  noWorkflows: "この source で利用できる workflow はありません。"
  baseChanged: "Workflow Maker の base を {name} へ変更しました。"
  wait: "ワークフロー完了までお待ちください…"
  completed: "Workflow Maker が完了しました。成果物: {path}。Doctor レポート: {report}"
  completedWithoutReport: "Workflow Maker が完了しました。成果物: {path}。"
  failed: "Workflow Maker が失敗しました。成果物は {path} に保存されています。理由: {reason}。Doctor レポート: {report}"
  failedWithoutReport: "Workflow Maker が失敗しました。成果物は {path} に保存されています。理由: {reason}。"
  planningFailed: "Workflow Maker の成果物を準備できませんでした: {reason}"
  ttyRequired: "Workflow Maker には対話型ターミナル（TTY）が必要です。"

# ===== Exec Mode UI =====
exec:
  common:
    add: "追加"
    back: "戻る"
    builtin: "ビルトイン"
    cancel: "キャンセル"
    currentSuffix: "（現在）"
    default: "デフォルト"
    delete: "削除"
    discard: "破棄"
    global: "グローバル"
    none: "なし"
    project: "プロジェクト"
    providerDefault: "プロバイダーデフォルト"
    save: "保存"
    user: "ユーザー"
  scope:
    projectDescription: ".takt/facets"
    globalDescription: "~/.takt/facets"
  setup:
    teamConfiguration: "exec エージェント"
    assistantSummary: "アシスタントエージェント: {summary}"
    workersSummary: "ワーカーエージェント: {count}"
    reviewsSummary: "レビューエージェント: {count}"
    replanSummary: "再計画エージェント: {instruction}"
    loopSummary: "ループ検知: {small}/{large}/{max}"
    preset: "プリセット"
  actors:
    workers: "ワーカーエージェント"
    reviews: "レビューエージェント"
    mustContainOne: "{label} は少なくとも1件必要です。"
    deletePrompt: "{label}を削除"
    invalidIndex: "{label} のインデックスが不正です: {index}"
  settings:
    assistant: "アシスタントエージェント設定"
    actor: "{name} の設定"
    provider: "プロバイダー"
    model: "モデル"
    effort: "推論強度"
    name: "名前"
    instruction: "指示"
    knowledge: "知識"
    policy: "ポリシー"
    customModel: "カスタム入力..."
    customModelPrompt: "カスタムモデル"
    customModelRequired: "カスタムモデルは空にできません。"
    defaultModel: "デフォルト（{value}）"
    defaultEffort: "デフォルト（なし）"
  fields:
    provider: "プロバイダー: {value}"
    model: "モデル: {value}"
    effort: "推論強度: {value}"
    name: "名前: {value}"
    instruction: "指示: {value}"
    knowledge: "知識: {value}"
    policy: "ポリシー: {value}"
    smallLoopThreshold: "小ループ検知しきい値: {value}"
    largeLoopThreshold: "大ループ検知しきい値: {value}"
    maxSteps: "最大ステップ数: {value}"
    actorInstruction: "指示: {value}"
  replan:
    settings: "再計画エージェント設定"
  loop:
    settings: "ループ検知設定"
    smallThresholdPrompt: "小ループ検知しきい値"
    largeThresholdPrompt: "大ループ検知しきい値"
    maxStepsPrompt: "最大ステップ数"
  preset:
    menu: "プリセット"
    load: "プリセットを読み込む"
    saveCurrent: "現在のプリセットを保存"
    delete: "プリセットを削除"
    saveScope: "プリセット保存先"
    deleteScope: "プリセット削除先"
    loadSource: "プリセット読み込み元"
    defaultDescription: "デフォルトの exec 設定"
    builtinDescription: "builtins/exec/presets"
    projectDescription: ".takt/exec/presets"
    globalDescription: "~/.takt/exec/presets"
    loadFromSource: "{source}プリセットを読み込む"
    deleteFromSource: "{source}プリセットを削除"
    namePrompt: "プリセット名"
    descriptionPrompt: "プリセット説明"
    descriptionDefault: "カスタム exec プリセット"
    saved: "{scope} exec プリセットを保存しました: {name}"
    deleted: "{scope} exec プリセットを削除しました: {name}"
    exportAsWorkflow: "プリセットをワークフローとしてエクスポート"
    exportNamePrompt: "ワークフロー名"
    exported: "ワークフローをエクスポートしました: {name}"
  facets:
    instructions: "指示"
    knowledge: "知識"
    policies: "ポリシー"
    selectPrompt: "{kind}ファセットを選択"
    multiSelectPrompt: "{kind}ファセットを選択"
    multiSelectInstructions: "↑↓で移動、Spaceで切り替え、Enterで確定"
    listPrompt: "{kind}ファセット"
    saveScope: "ファセット保存先"
    editedSaveScope: "編集済みファセット保存先"
    saveGenerated: "生成したファセットを保存しますか？"
    generated: "{kind}ファセット \"{name}\" を生成しました:"
    created: "{scope} {kind}ファセットを作成しました: {name}"
    consultationPrompt: "{name} の {kind}ファセット変更内容を入力してください: "
    namePrompt: "ファセット名"
    instructionMenu: "指示ファセット"
    selectExisting: "既存を選択（{current}）"
    editWithAI: "AIで編集"
    createWithAI: "AIで作成"
    createWithEditor: "エディタで作成"
    openInEditor: "エディタで開く"
    restoreDefault: "デフォルトに戻す（{defaultRef}）"
    toggleExisting: "既存を切り替え"
    clearAll: "すべてクリア"

# ===== Workflow Execution UI =====
workflow:
  unconsumedLiveInstructions: "未消化の追加指示が {count} 件あります"
  teamLeader:
    decomposeWait: "チームリーダーがタスクを分解中です。しばらくお待ちください..."
    feedbackWait: "チームリーダーが結果を評価して次のタスクを計画中です..."
  iterationLimit:
    maxReached: "最大イテレーションに到達しました ({currentIteration}/{maxSteps})"
    currentStep: "現在のステップ: {currentStep}"
    continueQuestion: "続行しますか？"
    continueLabel: "続行する（追加イテレーション数を入力）"
    continueDescription: "入力した回数だけ上限を増やします"
    stopLabel: "終了する"
    inputPrompt: "追加するイテレーション数を入力してください（1以上）"
    invalidInput: "1以上の整数を入力してください。"
    userInputPrompt: "追加の指示を入力してください（空で中止）"
  notifyComplete: "ワークフロー完了 ({iteration} iterations)"
  notifyAbort: "中断: {reason}"
  notifyFailed: "失敗: {reason}"
  sigintGraceful: "Ctrl+C: ワークフローを中断しています..."
  sigintTimeout: "graceful停止がタイムアウトしました ({timeoutMs}ms)"
  sigintForce: "Ctrl+C: 強制終了します"

# ===== Instruct Mode UI (takt list -> instruct) =====
instruct:
  ui:
    intro: "指示モード - 追加指示を入力してください。コマンド: /go（指示書作成・実行）, /replay（前回の指示書で再投入）, /cancel（終了）"
    resume: "前回のセッションを再開します"
    noConversation: "まだ会話がありません。まず追加指示を入力してください。"
    summarizeFailed: "指示書の作成に失敗しました。再度お試しください。"
    continuePrompt: "続けて追加指示を入力してください。"
    proposed: "提案された追加指示:"
    actionPrompt: "どうしますか？"
    actions:
      execute: "実行する"
      saveTask: "タスクにつむ"
      continue: "会話を続ける"
    cancelled: "キャンセルしました"
    replayNoOrder: "前回の指示書（order.md）が見つかりません"

# ===== Retry Mode UI (takt list -> retry) =====
retry:
  ui:
    intro: "リトライモード - 追加指示を入力してください。/go で更新内容を確認し、タスクにつむか編集を続けます。/cancel で終了します。"
    resume: "前回のセッションを再開します"
    noConversation: "まだ会話がありません。まず追加指示を入力してください。"
    summarizeFailed: "指示書の作成に失敗しました。再度お試しください。"
    continuePrompt: "続けて追加指示を入力してください。"
    proposed: "更新されたタスク指示:"
    actionPrompt: "どうしますか？"
    actions:
      saveTask: "タスクにつむ"
      continue: "編集を続ける"
    cancelled: "キャンセルしました"
  usePreviousWorkflowConfirm: "前回のワークフロー \"{workflow}\" を使用しますか？"

orderRevision:
  attachmentsHeading: "添付画像"
  ui:
    proposed: "新しい order.md 案:"
    actionPrompt: "この指示書で置き換えますか？"
    actions:
      approve: "Yes（保存して実行）"
      reject: "No（会話に戻る）"

run:
  notifyComplete: "run完了 ({total} tasks)"
  notifyAbort: "runはエラー終了 ({failed})"

# ===== Issue Creation UI =====
issue:
  labelSelection:
    prompt: "ラベル:"
    none: "なし"
    custom: "入力（カスタム）"
    customPrompt: "ラベル名を入力"
  createdFromIssueComment: "実行用 Issue を作成しました: #{issueNumber}{issueUrl}"
  sourceIssueCommentFailed: "起点 Issue #{sourceIssueNumber} へのリンクコメント投稿に失敗しました: {error}"

# ===== Ink TUI =====
tui:
  ui:
    thinking: "考え中..."
    hint: "Enter: 送信  Shift+Enter: 改行  Tab: 補完  ↑↓: 行移動/履歴  Ctrl+C: 中止"
    placeholder: "タスクを入力、/ でコマンド"
    queuedHint: "↑ でキューを編集"
    queuedMore: "他 {count} 件をキュー中"
    interruptHint: "(Esc で中断)"
    responseInterrupted: "応答を中断しました。"
    instructionInterrupted: "指示書の生成を中断しました。"
    runFinished: "ワークフローの実行が完了しました。続けてタスクを入力するか、/cancel で終了できます。"
    taskSaved: "タスクを保存しました。続けてタスクを入力するか、/cancel で終了できます。"
    issueCreated: "Issue を作成しました。続けてタスクを入力するか、/cancel で終了できます。"
    promptHint: "Enter: 確定  Esc: キャンセル"
    promptKeepHint: "Enter: 確定  空のまま Enter: 現在値のまま  Esc: キャンセル"
    promptPlaceholder: "入力してください"
    model: "モデル: {value}"
  errors:
    requiresTty: "--tui は対話端末 (TTY) が必要です。TTY 上で takt を実行するか --tui を外してください。"
    exitedEarly: "タスク会話が完了する前に TUI が終了しました。"
    providerNotConfigured: "プロバイダが設定されていません。~/.takt/config.yaml で設定するか --provider を指定してください。"
    workflowNotFound: "ワークフローが見つかりません: {workflow}"
    messageRequired: "メッセージを入力してください。"
    taskTextRequired: "タスク本文が必要です。"
    emptyAiResponse: "アシスタントからの応答がありませんでした。"
    noConversation: "まだ会話がありません。先にタスクを説明してください。"
    instructionFailed: "タスク指示書の作成に失敗しました。"
    conversationRebuildFailed: "会話設定の切り替えに失敗しました: {error}"
    unsupportedCommand: "このコマンドは TUI では利用できません。"
    settingNoArguments: "{command} に引数は指定できません。"
    tellInstructionRequired: "追加指示を入力してから /tell を使用してください。"
    tellGenerationFailed: "追加指示を生成できませんでした: {error}"
    tellRequiresTty: "追加指示は送信されませんでした: /tell には対話端末 (TTY) が必要です。"
    tellNoCandidates: "追加指示を受け取れる worktree clone の実行中タスクがありません。"
    tellExcluded: "/tell の候補から除外した実行中タスク:\n{tasks}"
    tellCancelled: "追加指示は送信しませんでした。"
    tellStale: "追加指示は送信されませんでした: {error}"
    settingValueRequired: "{command} には値が必要です。"
    imagePasteFailed: "画像を貼り付けられませんでした。"
  tell:
    selectPrompt: "追加指示を送る実行中タスクを選択してください:"
    confirm: "この追加指示を送信しますか？\nタスク: {task}\n要約: {summary}\nワークフロー: {workflow}\n現在ステップ: {step}\nRun slug: {runSlug}\n追加指示:\n{content}"
    sent: "{task} へ追加指示を送信しました（指示 #{instructionId}）。"
