# Copyright 2026 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chrome_build.gni")
import("//ui/webui/resources/tools/build_webui.gni")

assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android)

action("generate_tool_definitions") {
  script = "tools/generate_tool_definitions.py"
  sources = [ "//chrome/browser/ui/webui/ai_overlay_dialog/tools/tools.mojom" ]
  outputs = [
    "$target_gen_dir/generated_tool_definitions.h",
    "$target_gen_dir/generated_tool_definitions.ts",
  ]
  args = [
    "--in-files",
    rebase_path(sources[0], root_build_dir),
    "--out-file",
    rebase_path(outputs[0], root_build_dir),
    "--out-ts-file",
    rebase_path(outputs[1], root_build_dir),
  ]
}

build_webui("build") {
  grd_prefix = "ai_overlay_dialog_untrusted"

  static_files = [
    "ai_overlay_dialog.html",
    "notes/notes.html",
  ]

  css_files = [
    "app.css",
    "notes/app.css",
  ]

  web_component_files = [ "app.ts" ]

  ts_files = [
    "audio_capturer.ts",
    "audio_player.ts",
    "audio_processor.ts",
    "audio_utils.ts",
    "caption_block_manager.ts",
    "journal.ts",
    "local_speech_recognition.ts",
    "logging.ts",
    "notes/app.html.ts",
    "notes/app.ts",
    "notes/browser_proxy.ts",
    "page_context_manager.ts",
  ]

  if (is_chrome_branded) {
    ts_files += [
      "internal/api_session.ts",
      "internal/conversation.ts",
      "internal/page_context_verbalizer.ts",
      "internal/persona.ts",
      "internal/tools/tool_executor.ts",
    ]
  }

  ts_deps = [
    "//third_party/lit/v3_0:build_ts",
    "//ui/webui/resources/cr_elements:build_ts",
    "//ui/webui/resources/js:build_ts",
    "//ui/webui/resources/mojo:build_ts",
  ]

  mojo_files_deps = [
    ":generate_tool_definitions",
    "//chrome/browser/ui/webui/ai_overlay_dialog:mojo_bindings_ts__generator",
    "//third_party/blink/public/mojom:dom_node_id_ts__generator",
  ]
  mojo_files = [
    "$root_gen_dir/chrome/browser/ui/webui/ai_overlay_dialog/ai_overlay_dialog.mojom-webui.ts",
    "$root_gen_dir/chrome/browser/ui/webui/ai_overlay_dialog/tools/tools.mojom-webui.ts",
    "$root_gen_dir/third_party/blink/public/mojom/dom/dom_node_id.mojom-webui.ts",
    "$target_gen_dir/generated_tool_definitions.ts",
  ]

  ts_composite = true

  webui_context_type = "untrusted"
}
