/**
 * Tool Name Constants
 * ツール名の一元管理。クライアント（Realtime）で使用。
 *
 * NS 移植版: 記憶読み書き・イベントトリガー系・NeonDB 系・
 * UI Control 系 (`update_profile_panel`)・外部API依存系 (getCurrentPosition /
 * NeccosRAG / search_site_content / getForecast / web_search) は削除済み
 * (計画書 §5.1 / §5.4)。残るのはクライアント完結・postMessage 系の2ツールのみ。
 *
 * 2026-08 撤去記録: GetSystemDate (0.3.0-dev.60) — 現在の日時は
 * includes/prompt.php の current_datetime セクションが両モードに常時供給する
 * ようになったため、ツール経由での取得は不要になった。
 *
 * 新しいツールを追加する場合:
 *   1. このファイルに定数を追加
 *   2. tool-definitions.mjs にツール定義を追加
 *   3. tool-handler.js (クライアント) にハンドラーを追加
 */

// ============================================
// Navigation & Action Tools
// ============================================
export const NAVIGATE_PAGE = "navigate_page";
export const PREFILL_CONTACT_FORM = "prefill_contact_form";

/**
 * デフォルトのツール有効/無効マップ
 * テナント設定の tools_enabled でオーバーライド可能。
 * true = 有効、false = 無効（ALL_TOOLS からフィルタリングされる）
 */
export const DEFAULT_TOOLS_ENABLED = {
  [NAVIGATE_PAGE]: true,
  [PREFILL_CONTACT_FORM]: true,
};

/**
 * tools_enabled 設定に基づいてツール配列をフィルタリングする
 * @param {Array} allTools - ALL_TOOLS 配列
 * @param {Object} [toolsEnabled] - テナント設定の tools_enabled（未指定時はデフォルト使用）
 * @returns {Array} フィルタリング済みのツール配列
 */
export function filterTools(allTools, toolsEnabled) {
  const enabled = { ...DEFAULT_TOOLS_ENABLED, ...toolsEnabled };
  return allTools.filter(tool => enabled[tool.name] !== false);
}

/** 全ツール名をキー→値のマップで提供（後方互換 FunctionNames 相当） */
export const TOOL_NAMES = {
  NAVIGATE_PAGE,
  PREFILL_CONTACT_FORM,
};
