From 12a56d4d46dd837237d59e4f7dfe097810d03074 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 4 Jun 2026 20:56:47 -0400 Subject: [PATCH] docs: document control ui sources --- ui/config/control-ui-chunking.ts | 1 + ui/src/css.d.ts | 1 + ui/src/i18n/index.ts | 1 + ui/src/i18n/lib/lit-controller.ts | 1 + ui/src/i18n/lib/registry.ts | 1 + ui/src/i18n/lib/translate.ts | 1 + ui/src/i18n/lib/types.ts | 1 + ui/src/i18n/locales/en.ts | 1 + ui/src/i18n/test/translate.test.ts | 1 + ui/src/local-storage.ts | 1 + ui/src/main.ts | 1 + ui/src/markdown-it-task-lists.d.ts | 1 + ui/src/test-helpers/control-ui-e2e.test.ts | 1 + ui/src/test-helpers/control-ui-e2e.ts | 1 + ui/src/test-helpers/custom-theme.ts | 1 + ui/src/test-helpers/load-styles.ts | 1 + ui/src/test-helpers/modal-dialog.ts | 1 + ui/src/test-helpers/storage.ts | 1 + ui/src/types/create-markdown-preview.d.ts | 1 + ui/src/types/highlight-js-subpaths.d.ts | 1 + ui/src/ui/activity-model.ts | 1 + ui/src/ui/app-channels.test.ts | 1 + ui/src/ui/app-channels.ts | 1 + ui/src/ui/app-chat.ts | 1 + ui/src/ui/app-defaults.test.ts | 1 + ui/src/ui/app-defaults.ts | 1 + ui/src/ui/app-events.ts | 1 + ui/src/ui/app-gateway.ts | 1 + ui/src/ui/app-last-active-session.ts | 1 + ui/src/ui/app-lifecycle.ts | 1 + ui/src/ui/app-native-bridge.test.ts | 1 + ui/src/ui/app-native-bridge.ts | 1 + ui/src/ui/app-polling.ts | 1 + ui/src/ui/app-render-usage-tab.ts | 1 + ui/src/ui/app-render.dreaming.test.ts | 1 + ui/src/ui/app-render.helpers.browser.test.ts | 1 + ui/src/ui/app-render.helpers.ts | 1 + ui/src/ui/app-render.ts | 1 + ui/src/ui/app-scroll.test.ts | 1 + ui/src/ui/app-scroll.ts | 1 + ui/src/ui/app-settings.test.ts | 1 + ui/src/ui/app-settings.ts | 1 + ui/src/ui/app-tool-stream.ts | 1 + ui/src/ui/app-view-state.ts | 1 + ui/src/ui/app.ts | 1 + ui/src/ui/assistant-identity.test.ts | 1 + ui/src/ui/assistant-identity.ts | 1 + ui/src/ui/browser-redact.test.ts | 1 + ui/src/ui/browser-redact.ts | 1 + ui/src/ui/canvas-url.test.ts | 1 + ui/src/ui/canvas-url.ts | 1 + ui/src/ui/chat-event-reload.test.ts | 1 + ui/src/ui/chat-event-reload.ts | 1 + ui/src/ui/chat-model-ref.test.ts | 1 + ui/src/ui/chat-model-ref.ts | 1 + ui/src/ui/chat-model-ref.types.ts | 1 + ui/src/ui/chat-model-select-state.test.ts | 1 + ui/src/ui/chat-model-select-state.ts | 1 + ui/src/ui/chat-model.test-helpers.ts | 1 + ui/src/ui/chat/attachment-payload-store.ts | 1 + ui/src/ui/chat/attachment-support.ts | 1 + ui/src/ui/chat/build-chat-items.test.ts | 1 + ui/src/ui/chat/build-chat-items.ts | 1 + ui/src/ui/chat/chat-avatar.ts | 1 + ui/src/ui/chat/chat-queue.ts | 1 + ui/src/ui/chat/chat-responsive.browser.test.ts | 1 + ui/src/ui/chat/chat-sidebar-raw.ts | 1 + ui/src/ui/chat/chat-welcome.ts | 1 + ui/src/ui/chat/composer-persistence.ts | 1 + ui/src/ui/chat/context-notice.ts | 1 + ui/src/ui/chat/copy-as-markdown.ts | 1 + ui/src/ui/chat/deleted-messages.ts | 1 + ui/src/ui/chat/export.ts | 1 + ui/src/ui/chat/grouped-render.ts | 1 + ui/src/ui/chat/heartbeat-display.ts | 1 + ui/src/ui/chat/history-limits.ts | 1 + ui/src/ui/chat/history-merge.test.ts | 1 + ui/src/ui/chat/input-history.ts | 1 + ui/src/ui/chat/message-extract.test.ts | 1 + ui/src/ui/chat/message-extract.ts | 1 + ui/src/ui/chat/message-normalizer.test.ts | 1 + ui/src/ui/chat/pinned-messages.ts | 1 + ui/src/ui/chat/pinned-summary.ts | 1 + ui/src/ui/chat/realtime-talk-audio.ts | 1 + ui/src/ui/chat/realtime-talk-conversation.test.ts | 1 + ui/src/ui/chat/realtime-talk-conversation.ts | 1 + ui/src/ui/chat/realtime-talk-gateway-relay.ts | 1 + ui/src/ui/chat/realtime-talk-google-live.ts | 1 + ui/src/ui/chat/realtime-talk-pcm-output.ts | 1 + ui/src/ui/chat/realtime-talk-shared.ts | 1 + ui/src/ui/chat/realtime-talk-webrtc.ts | 1 + ui/src/ui/chat/realtime-talk.ts | 1 + ui/src/ui/chat/role-normalizer.test.ts | 1 + ui/src/ui/chat/run-controls.ts | 1 + ui/src/ui/chat/run-lifecycle.test.ts | 1 + ui/src/ui/chat/run-lifecycle.ts | 1 + ui/src/ui/chat/search-match.ts | 1 + ui/src/ui/chat/session-cache.ts | 1 + ui/src/ui/chat/session-controls.ts | 1 + ui/src/ui/chat/side-result-render.ts | 1 + ui/src/ui/chat/side-result.ts | 1 + ui/src/ui/chat/slash-commands.ts | 1 + ui/src/ui/chat/status-indicators.ts | 1 + ui/src/ui/chat/stream-reconciliation.ts | 1 + ui/src/ui/chat/stream-text.ts | 1 + ui/src/ui/chat/tool-cards.ts | 1 + ui/src/ui/chat/tool-expansion-state.test.ts | 1 + ui/src/ui/chat/tool-expansion-state.ts | 1 + ui/src/ui/chat/tool-helpers.test.ts | 1 + ui/src/ui/chat/tool-message-refs.test.ts | 1 + ui/src/ui/chat/tool-message-refs.ts | 1 + ui/src/ui/chat/user-message-content.ts | 1 + ui/src/ui/components/dashboard-header.ts | 1 + ui/src/ui/components/file-preview-modal.ts | 1 + ui/src/ui/components/modal-dialog.ts | 1 + ui/src/ui/components/resizable-divider.ts | 1 + ui/src/ui/config-form.browser.test.ts | 1 + ui/src/ui/connect-error.test.ts | 1 + ui/src/ui/connect-error.ts | 1 + ui/src/ui/control-ui-auth.ts | 1 + ui/src/ui/control-ui-chunking.test.ts | 6 ++++-- ui/src/ui/control-ui-performance.test.ts | 1 + ui/src/ui/control-ui-performance.ts | 1 + ui/src/ui/control-ui-vite-config.node.test.ts | 1 + ui/src/ui/controllers/agent-files.ts | 1 + ui/src/ui/controllers/agent-identity.ts | 1 + ui/src/ui/controllers/agent-skills.ts | 1 + ui/src/ui/controllers/agents.test.ts | 1 + ui/src/ui/controllers/agents.ts | 1 + ui/src/ui/controllers/assistant-identity.ts | 1 + ui/src/ui/controllers/channels.test.ts | 1 + ui/src/ui/controllers/channels.ts | 1 + ui/src/ui/controllers/channels.types.ts | 1 + ui/src/ui/controllers/chat.test.ts | 1 + ui/src/ui/controllers/chat.ts | 1 + ui/src/ui/controllers/config.test.ts | 1 + ui/src/ui/controllers/config.ts | 1 + ui/src/ui/controllers/config/form-coerce.ts | 1 + ui/src/ui/controllers/config/form-utils.ts | 1 + ui/src/ui/controllers/control-ui-bootstrap.ts | 1 + ui/src/ui/controllers/cron-filters.test.ts | 1 + ui/src/ui/controllers/cron.test.ts | 1 + ui/src/ui/controllers/cron.ts | 1 + ui/src/ui/controllers/debug.ts | 1 + ui/src/ui/controllers/devices.ts | 1 + ui/src/ui/controllers/dreaming.test.ts | 1 + ui/src/ui/controllers/dreaming.ts | 1 + ui/src/ui/controllers/exec-approval.test.ts | 1 + ui/src/ui/controllers/exec-approval.ts | 1 + ui/src/ui/controllers/exec-approvals.ts | 1 + ui/src/ui/controllers/health.ts | 1 + ui/src/ui/controllers/logs.test.ts | 1 + ui/src/ui/controllers/logs.ts | 1 + ui/src/ui/controllers/model-auth-status.ts | 1 + ui/src/ui/controllers/models.test.ts | 1 + ui/src/ui/controllers/models.ts | 1 + ui/src/ui/controllers/nodes.ts | 1 + ui/src/ui/controllers/presence.ts | 1 + ui/src/ui/controllers/scope-errors.ts | 1 + ui/src/ui/controllers/sessions.test.ts | 1 + ui/src/ui/controllers/sessions.ts | 1 + ui/src/ui/controllers/skill-workshop.ts | 1 + ui/src/ui/controllers/skills.test.ts | 1 + ui/src/ui/controllers/skills.ts | 1 + ui/src/ui/controllers/usage.ts | 1 + ui/src/ui/controllers/workboard.test.ts | 1 + ui/src/ui/controllers/workboard.ts | 1 + ui/src/ui/cron-payload.ts | 1 + ui/src/ui/cron-status.ts | 1 + ui/src/ui/custom-theme.test.ts | 1 + ui/src/ui/custom-theme.ts | 1 + ui/src/ui/device-auth.ts | 1 + ui/src/ui/device-identity.ts | 1 + ui/src/ui/e2e/chat-flow.e2e.test.ts | 1 + ui/src/ui/e2e/chat-picker-pagination.e2e.test.ts | 1 + ui/src/ui/e2e/cron-filters.e2e.test.ts | 1 + ui/src/ui/e2e/workboard-status-persistence.e2e.test.ts | 1 + ui/src/ui/e2e/workboard.e2e.test.ts | 1 + ui/src/ui/embed-sandbox.ts | 1 + ui/src/ui/external-link.test.ts | 1 + ui/src/ui/external-link.ts | 1 + ui/src/ui/form-controls.browser.test.ts | 1 + ui/src/ui/format.test.ts | 1 + ui/src/ui/format.ts | 1 + ui/src/ui/gateway.ts | 1 + ui/src/ui/icons.ts | 1 + ui/src/ui/lazy-view.browser.test.ts | 1 + ui/src/ui/lazy-view.ts | 1 + ui/src/ui/markdown.test.ts | 1 + ui/src/ui/markdown.ts | 1 + ui/src/ui/model-auth-helpers.ts | 1 + ui/src/ui/mount-fallback.test.ts | 1 + ui/src/ui/navigation-groups.test.ts | 1 + ui/src/ui/navigation.browser.test.ts | 1 + ui/src/ui/navigation.test.ts | 1 + ui/src/ui/navigation.ts | 1 + ui/src/ui/open-external-url.test.ts | 1 + ui/src/ui/open-external-url.ts | 1 + ui/src/ui/plugin-activation.test.ts | 1 + ui/src/ui/plugin-activation.ts | 1 + ui/src/ui/presenter.test.ts | 1 + ui/src/ui/presenter.ts | 1 + ui/src/ui/provider-quota-summary.test.ts | 1 + ui/src/ui/provider-quota-summary.ts | 1 + ui/src/ui/public-assets.test.ts | 1 + ui/src/ui/public-assets.ts | 1 + ui/src/ui/push-subscription.ts | 1 + ui/src/ui/realtime-talk-google-live.test.ts | 1 + ui/src/ui/select-options.ts | 1 + ui/src/ui/service-worker-cache.test.ts | 1 + ui/src/ui/session-display.ts | 1 + ui/src/ui/session-goal.test.ts | 1 + ui/src/ui/session-goal.ts | 1 + ui/src/ui/session-key.ts | 1 + ui/src/ui/session-run-state.test.ts | 1 + ui/src/ui/session-run-state.ts | 1 + ui/src/ui/sidebar-content.ts | 1 + ui/src/ui/storage.ts | 1 + ui/src/ui/string-coerce.ts | 1 + ui/src/ui/strip-thinking-tags.ts | 1 + ui/src/ui/test-helpers/app-mount.ts | 1 + ui/src/ui/text-direction.test.ts | 1 + ui/src/ui/theme-transition.ts | 1 + ui/src/ui/theme.test.ts | 1 + ui/src/ui/theme.ts | 1 + ui/src/ui/thinking-labels.ts | 1 + ui/src/ui/thinking.ts | 1 + ui/src/ui/tool-display.ts | 1 + ui/src/ui/types.ts | 1 + ui/src/ui/ui-types.ts | 1 + ui/src/ui/usage-cache-status.ts | 1 + ui/src/ui/usage-helpers.ts | 1 + ui/src/ui/usage-types.ts | 1 + ui/src/ui/user-identity.test.ts | 1 + ui/src/ui/user-identity.ts | 1 + ui/src/ui/uuid.test.ts | 1 + ui/src/ui/uuid.ts | 1 + ui/src/ui/views/activity.ts | 1 + ui/src/ui/views/agents-panels-overview.ts | 1 + ui/src/ui/views/agents-panels-status-files.ts | 1 + ui/src/ui/views/agents-panels-tools-skills.browser.test.ts | 1 + ui/src/ui/views/agents-panels-tools-skills.ts | 1 + ui/src/ui/views/agents-utils.test.ts | 1 + ui/src/ui/views/agents-utils.ts | 1 + ui/src/ui/views/agents.test.ts | 1 + ui/src/ui/views/agents.ts | 1 + ui/src/ui/views/agents.types.ts | 1 + ui/src/ui/views/channel-config-extras.ts | 1 + ui/src/ui/views/channels.config.ts | 1 + ui/src/ui/views/channels.discord.ts | 1 + ui/src/ui/views/channels.googlechat.ts | 1 + ui/src/ui/views/channels.imessage.ts | 1 + ui/src/ui/views/channels.nostr.ts | 1 + ui/src/ui/views/channels.shared.ts | 1 + ui/src/ui/views/channels.signal.ts | 1 + ui/src/ui/views/channels.slack.ts | 1 + ui/src/ui/views/channels.telegram.ts | 1 + ui/src/ui/views/channels.test.ts | 1 + ui/src/ui/views/channels.ts | 1 + ui/src/ui/views/channels.types.ts | 1 + ui/src/ui/views/channels.whatsapp.ts | 1 + ui/src/ui/views/chat.ts | 1 + ui/src/ui/views/command-palette.test.ts | 1 + ui/src/ui/views/command-palette.ts | 1 + ui/src/ui/views/config-form.analyze.ts | 1 + ui/src/ui/views/config-form.node.ts | 1 + ui/src/ui/views/config-form.render.ts | 1 + ui/src/ui/views/config-form.shared.ts | 1 + ui/src/ui/views/config-form.ts | 1 + ui/src/ui/views/config-presets.test.ts | 1 + ui/src/ui/views/config.browser.test.ts | 1 + ui/src/ui/views/config.ts | 1 + ui/src/ui/views/connect-command.ts | 1 + ui/src/ui/views/cron.test.ts | 1 + ui/src/ui/views/cron.ts | 1 + ui/src/ui/views/debug.test.ts | 1 + ui/src/ui/views/debug.ts | 1 + ui/src/ui/views/dreaming-restart-confirmation.ts | 1 + ui/src/ui/views/dreaming.ts | 1 + ui/src/ui/views/exec-approval.browser.test.ts | 1 + ui/src/ui/views/exec-approval.ts | 1 + ui/src/ui/views/gateway-url-confirmation.ts | 1 + ui/src/ui/views/instances.ts | 1 + ui/src/ui/views/login-gate.ts | 1 + ui/src/ui/views/logs.ts | 1 + ui/src/ui/views/markdown-sidebar.ts | 1 + ui/src/ui/views/mcp.ts | 1 + ui/src/ui/views/nodes-exec-approvals.ts | 1 + ui/src/ui/views/nodes-shared.ts | 1 + ui/src/ui/views/nodes.ts | 1 + ui/src/ui/views/nodes.types.ts | 1 + ui/src/ui/views/overview-attention.ts | 1 + ui/src/ui/views/overview-cards.ts | 1 + ui/src/ui/views/overview-event-log.ts | 1 + ui/src/ui/views/overview-hints.ts | 1 + ui/src/ui/views/overview-log-tail.ts | 1 + ui/src/ui/views/overview.ts | 1 + ui/src/ui/views/sessions.browser.test.ts | 1 + ui/src/ui/views/sessions.ts | 1 + ui/src/ui/views/skill-workshop.ts | 1 + ui/src/ui/views/skills-grouping.ts | 1 + ui/src/ui/views/skills-shared.ts | 1 + ui/src/ui/views/skills.ts | 1 + ui/src/ui/views/usage-metrics.test.ts | 1 + ui/src/ui/views/usage-metrics.ts | 1 + ui/src/ui/views/usage-query.ts | 1 + ui/src/ui/views/usage-render-details.test.ts | 1 + ui/src/ui/views/usage-render-details.ts | 1 + ui/src/ui/views/usage-render-overview.ts | 1 + ui/src/ui/views/usage.ts | 1 + ui/src/ui/views/usageTypes.ts | 1 + ui/src/ui/views/workboard.browser.test.ts | 1 + ui/src/ui/views/workboard.test.ts | 1 + ui/src/ui/views/workboard.ts | 1 + ui/vite.config.ts | 1 + ui/vitest.config.ts | 1 + ui/vitest.node.config.ts | 1 + 317 files changed, 320 insertions(+), 2 deletions(-) diff --git a/ui/config/control-ui-chunking.ts b/ui/config/control-ui-chunking.ts index 2c6d5f4775ae..d1a63b901b80 100644 --- a/ui/config/control-ui-chunking.ts +++ b/ui/config/control-ui-chunking.ts @@ -1,3 +1,4 @@ +// Control UI config module wires control ui chunking behavior. export function normalizeModuleId(id: string): string { return id.replace(/\\/g, "/"); } diff --git a/ui/src/css.d.ts b/ui/src/css.d.ts index cbe652dbe00b..3028483f9cbb 100644 --- a/ui/src/css.d.ts +++ b/ui/src/css.d.ts @@ -1 +1,2 @@ +// Control UI type declarations define css contracts. declare module "*.css"; diff --git a/ui/src/i18n/index.ts b/ui/src/i18n/index.ts index fcc90f3dbc3e..e9a2606211c1 100644 --- a/ui/src/i18n/index.ts +++ b/ui/src/i18n/index.ts @@ -1,3 +1,4 @@ +// Control UI i18n module implements index behavior. export * from "./lib/types.ts"; export * from "./lib/translate.ts"; export * from "./lib/lit-controller.ts"; diff --git a/ui/src/i18n/lib/lit-controller.ts b/ui/src/i18n/lib/lit-controller.ts index ec5580d8eabc..dfe7646a1e5c 100644 --- a/ui/src/i18n/lib/lit-controller.ts +++ b/ui/src/i18n/lib/lit-controller.ts @@ -1,3 +1,4 @@ +// Control UI i18n module implements lit controller behavior. import type { ReactiveController, ReactiveControllerHost } from "lit"; import { i18n } from "./translate.ts"; diff --git a/ui/src/i18n/lib/registry.ts b/ui/src/i18n/lib/registry.ts index d8517486fe09..79260fbac6ff 100644 --- a/ui/src/i18n/lib/registry.ts +++ b/ui/src/i18n/lib/registry.ts @@ -1,3 +1,4 @@ +// Control UI i18n module implements registry behavior. import type { Locale, TranslationMap } from "./types.ts"; type LazyLocale = Exclude; diff --git a/ui/src/i18n/lib/translate.ts b/ui/src/i18n/lib/translate.ts index 11759bc6d8d0..bb8484085ae2 100644 --- a/ui/src/i18n/lib/translate.ts +++ b/ui/src/i18n/lib/translate.ts @@ -1,3 +1,4 @@ +// Control UI i18n module implements translate behavior. import { getSafeLocalStorage } from "../../local-storage.ts"; import { en } from "../locales/en.ts"; import { diff --git a/ui/src/i18n/lib/types.ts b/ui/src/i18n/lib/types.ts index f186747140c9..1962c6306ba9 100644 --- a/ui/src/i18n/lib/types.ts +++ b/ui/src/i18n/lib/types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define types contracts. export type TranslationMap = { [key: string]: string | TranslationMap }; export type Locale = diff --git a/ui/src/i18n/locales/en.ts b/ui/src/i18n/locales/en.ts index f802f300d805..c5b2ef3b9a0f 100644 --- a/ui/src/i18n/locales/en.ts +++ b/ui/src/i18n/locales/en.ts @@ -1,3 +1,4 @@ +// Control UI English locale strings are the i18n source bundle. import type { TranslationMap } from "../lib/types.ts"; export const en: TranslationMap = { diff --git a/ui/src/i18n/test/translate.test.ts b/ui/src/i18n/test/translate.test.ts index 3444b2f2f0fb..eaa635af2c74 100644 --- a/ui/src/i18n/test/translate.test.ts +++ b/ui/src/i18n/test/translate.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover translate behavior. import { importFreshModule } from "openclaw/plugin-sdk/test-fixtures"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createStorageMock } from "../../test-helpers/storage.ts"; diff --git a/ui/src/local-storage.ts b/ui/src/local-storage.ts index d5af666d1e25..3eba7b4ef83c 100644 --- a/ui/src/local-storage.ts +++ b/ui/src/local-storage.ts @@ -1,3 +1,4 @@ +// Control UI module implements local storage behavior. function isStorage(value: unknown): value is Storage { return ( Boolean(value) && diff --git a/ui/src/main.ts b/ui/src/main.ts index b001d6858561..0925ca0e08e9 100644 --- a/ui/src/main.ts +++ b/ui/src/main.ts @@ -1,3 +1,4 @@ +// Control UI module implements main behavior. import "./styles.css"; import "./ui/app.ts"; import { inferControlUiPublicAssetPath } from "./ui/public-assets.ts"; diff --git a/ui/src/markdown-it-task-lists.d.ts b/ui/src/markdown-it-task-lists.d.ts index 80f53dddadce..fd2be698951f 100644 --- a/ui/src/markdown-it-task-lists.d.ts +++ b/ui/src/markdown-it-task-lists.d.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define markdown it task lists contracts. declare module "markdown-it-task-lists" { import type MarkdownIt from "markdown-it"; interface TaskListsOptions { diff --git a/ui/src/test-helpers/control-ui-e2e.test.ts b/ui/src/test-helpers/control-ui-e2e.test.ts index 6b5008bce78a..ccc6f4b32aa7 100644 --- a/ui/src/test-helpers/control-ui-e2e.test.ts +++ b/ui/src/test-helpers/control-ui-e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover control ui e2e behavior. import { describe, expect, it } from "vitest"; import { resolvePlaywrightChromiumExecutablePath, diff --git a/ui/src/test-helpers/control-ui-e2e.ts b/ui/src/test-helpers/control-ui-e2e.ts index fd5cd40f1cf6..6186715ed021 100644 --- a/ui/src/test-helpers/control-ui-e2e.ts +++ b/ui/src/test-helpers/control-ui-e2e.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports control ui e2e setup. import { spawnSync } from "node:child_process"; import { existsSync } from "node:fs"; import { createRequire } from "node:module"; diff --git a/ui/src/test-helpers/custom-theme.ts b/ui/src/test-helpers/custom-theme.ts index 05f6735aefcc..7c44b60ca1ba 100644 --- a/ui/src/test-helpers/custom-theme.ts +++ b/ui/src/test-helpers/custom-theme.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports custom theme setup. import { normalizeImportedCustomTheme } from "../ui/custom-theme.ts"; export function createTweakcnThemePayload() { diff --git a/ui/src/test-helpers/load-styles.ts b/ui/src/test-helpers/load-styles.ts index 26e729b8ae2f..55bd49d94627 100644 --- a/ui/src/test-helpers/load-styles.ts +++ b/ui/src/test-helpers/load-styles.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports load styles setup. import "../styles/base.css"; import "../styles/layout.css"; import "../styles/layout.mobile.css"; diff --git a/ui/src/test-helpers/modal-dialog.ts b/ui/src/test-helpers/modal-dialog.ts index fe60d9a22653..010988250656 100644 --- a/ui/src/test-helpers/modal-dialog.ts +++ b/ui/src/test-helpers/modal-dialog.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports modal dialog setup. import { expect } from "vitest"; import type { OpenClawModalDialog } from "../ui/components/modal-dialog.ts"; diff --git a/ui/src/test-helpers/storage.ts b/ui/src/test-helpers/storage.ts index 0ad4ce4fd38b..1a26a5017a34 100644 --- a/ui/src/test-helpers/storage.ts +++ b/ui/src/test-helpers/storage.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports storage setup. export function createStorageMock(): Storage { const store = new Map(); return { diff --git a/ui/src/types/create-markdown-preview.d.ts b/ui/src/types/create-markdown-preview.d.ts index 88a9ce8fcbdf..9778ae9bdc68 100644 --- a/ui/src/types/create-markdown-preview.d.ts +++ b/ui/src/types/create-markdown-preview.d.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define create markdown preview contracts. declare module "@create-markdown/preview" { export type PreviewThemeOptions = { sanitize?: ((html: string) => string) | undefined; diff --git a/ui/src/types/highlight-js-subpaths.d.ts b/ui/src/types/highlight-js-subpaths.d.ts index 25e6ea3a13bb..1c9151463d44 100644 --- a/ui/src/types/highlight-js-subpaths.d.ts +++ b/ui/src/types/highlight-js-subpaths.d.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define highlight js subpaths contracts. declare module "highlight.js/lib/core" { import hljs from "highlight.js/lib/core"; diff --git a/ui/src/ui/activity-model.ts b/ui/src/ui/activity-model.ts index c3cb9e7e09f5..62bb507b266d 100644 --- a/ui/src/ui/activity-model.ts +++ b/ui/src/ui/activity-model.ts @@ -1,3 +1,4 @@ +// Control UI module implements activity model behavior. import { formatUnknownText, truncateText } from "./format.ts"; export const ACTIVITY_ENTRY_LIMIT = 100; diff --git a/ui/src/ui/app-channels.test.ts b/ui/src/ui/app-channels.test.ts index 80171fdadf09..14cb32582838 100644 --- a/ui/src/ui/app-channels.test.ts +++ b/ui/src/ui/app-channels.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app channels behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { handleChannelConfigReload, handleChannelConfigSave } from "./app-channels.ts"; import type { ChannelsState } from "./controllers/channels.ts"; diff --git a/ui/src/ui/app-channels.ts b/ui/src/ui/app-channels.ts index c22fc06cbdc0..59f52954d0d1 100644 --- a/ui/src/ui/app-channels.ts +++ b/ui/src/ui/app-channels.ts @@ -1,3 +1,4 @@ +// Control UI module implements app channels behavior. import { resolveControlUiAuthHeader } from "./control-ui-auth.ts"; import { loadChannels, diff --git a/ui/src/ui/app-chat.ts b/ui/src/ui/app-chat.ts index af619ad2fcb7..9d91985ba0b8 100644 --- a/ui/src/ui/app-chat.ts +++ b/ui/src/ui/app-chat.ts @@ -1,3 +1,4 @@ +// Control UI module implements app chat behavior. import type { CommandsListResult } from "../../../packages/gateway-protocol/src/index.js"; import { setLastActiveSessionKey } from "./app-last-active-session.ts"; import { scheduleChatScroll, resetChatScroll } from "./app-scroll.ts"; diff --git a/ui/src/ui/app-defaults.test.ts b/ui/src/ui/app-defaults.test.ts index e0816ddf672e..3527499de6a1 100644 --- a/ui/src/ui/app-defaults.test.ts +++ b/ui/src/ui/app-defaults.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app defaults behavior. import { describe, expect, it } from "vitest"; import { DEFAULT_SESSIONS_FILTERS } from "./app-defaults.ts"; diff --git a/ui/src/ui/app-defaults.ts b/ui/src/ui/app-defaults.ts index a93761fa775d..9c7f33fb3d6f 100644 --- a/ui/src/ui/app-defaults.ts +++ b/ui/src/ui/app-defaults.ts @@ -1,3 +1,4 @@ +// Control UI module implements app defaults behavior. import type { LogLevel } from "./types.ts"; import type { CronFormState } from "./ui-types.ts"; diff --git a/ui/src/ui/app-events.ts b/ui/src/ui/app-events.ts index eda3a8e1634e..807ff707c78e 100644 --- a/ui/src/ui/app-events.ts +++ b/ui/src/ui/app-events.ts @@ -1,3 +1,4 @@ +// Control UI module implements app events behavior. export type EventLogEntry = { ts: number; event: string; diff --git a/ui/src/ui/app-gateway.ts b/ui/src/ui/app-gateway.ts index 0668ae9db835..40e6ef67b0f3 100644 --- a/ui/src/ui/app-gateway.ts +++ b/ui/src/ui/app-gateway.ts @@ -1,3 +1,4 @@ +// Control UI module implements app gateway behavior. import { ConnectErrorDetailCodes } from "../../../packages/gateway-protocol/src/connect-error-details.js"; import { GATEWAY_EVENT_UPDATE_AVAILABLE, diff --git a/ui/src/ui/app-last-active-session.ts b/ui/src/ui/app-last-active-session.ts index 555601450f27..cc45f8d38041 100644 --- a/ui/src/ui/app-last-active-session.ts +++ b/ui/src/ui/app-last-active-session.ts @@ -1,3 +1,4 @@ +// Control UI module implements app last active session behavior. import type { UiSettings } from "./storage.ts"; type LastActiveSessionHost = { diff --git a/ui/src/ui/app-lifecycle.ts b/ui/src/ui/app-lifecycle.ts index ce6619d3d5f5..11c77b316ce5 100644 --- a/ui/src/ui/app-lifecycle.ts +++ b/ui/src/ui/app-lifecycle.ts @@ -1,3 +1,4 @@ +// Control UI module implements app lifecycle behavior. import { connectGateway } from "./app-gateway.ts"; import { startLogsPolling, diff --git a/ui/src/ui/app-native-bridge.test.ts b/ui/src/ui/app-native-bridge.test.ts index 033e04b0d0e3..e4879e2bb4f4 100644 --- a/ui/src/ui/app-native-bridge.test.ts +++ b/ui/src/ui/app-native-bridge.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app native bridge behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { initNativeBridge, isWebView2, sendToNative } from "./app-native-bridge.ts"; import { diff --git a/ui/src/ui/app-native-bridge.ts b/ui/src/ui/app-native-bridge.ts index 5a2bc62f3644..f88feb8a71a4 100644 --- a/ui/src/ui/app-native-bridge.ts +++ b/ui/src/ui/app-native-bridge.ts @@ -1,3 +1,4 @@ +// Control UI module implements app native bridge behavior. type WebView2Bridge = { postMessage(message: unknown): void; addEventListener(type: "message", listener: (event: MessageEvent) => void): void; diff --git a/ui/src/ui/app-polling.ts b/ui/src/ui/app-polling.ts index 4435a64f1132..9f7bdc917015 100644 --- a/ui/src/ui/app-polling.ts +++ b/ui/src/ui/app-polling.ts @@ -1,3 +1,4 @@ +// Control UI module implements app polling behavior. import type { DebugState } from "./controllers/debug.ts"; import { loadDebug } from "./controllers/debug.ts"; import type { LogsState } from "./controllers/logs.ts"; diff --git a/ui/src/ui/app-render-usage-tab.ts b/ui/src/ui/app-render-usage-tab.ts index 861bd10ba255..3a2a37093a55 100644 --- a/ui/src/ui/app-render-usage-tab.ts +++ b/ui/src/ui/app-render-usage-tab.ts @@ -1,3 +1,4 @@ +// Control UI module implements app render usage tab behavior. import { nothing } from "lit"; import type { AppViewState } from "./app-view-state.ts"; import type { UsageState } from "./controllers/usage.ts"; diff --git a/ui/src/ui/app-render.dreaming.test.ts b/ui/src/ui/app-render.dreaming.test.ts index ae2b51792419..815aaa01f165 100644 --- a/ui/src/ui/app-render.dreaming.test.ts +++ b/ui/src/ui/app-render.dreaming.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app renderreaming behavior. import { describe, expect, it } from "vitest"; import { formatDreamNextCycle } from "./app-render.ts"; diff --git a/ui/src/ui/app-render.helpers.browser.test.ts b/ui/src/ui/app-render.helpers.browser.test.ts index 652b14a18e0d..02a67629ad11 100644 --- a/ui/src/ui/app-render.helpers.browser.test.ts +++ b/ui/src/ui/app-render.helpers.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app render behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { t } from "../i18n/index.ts"; diff --git a/ui/src/ui/app-render.helpers.ts b/ui/src/ui/app-render.helpers.ts index ed01b11ddee5..715e228118b5 100644 --- a/ui/src/ui/app-render.helpers.ts +++ b/ui/src/ui/app-render.helpers.ts @@ -1,3 +1,4 @@ +// Control UI module implements app render behavior. import { html, nothing } from "lit"; import { t } from "../i18n/index.ts"; import { diff --git a/ui/src/ui/app-render.ts b/ui/src/ui/app-render.ts index 88c52af1737f..b55aa30ef4c9 100644 --- a/ui/src/ui/app-render.ts +++ b/ui/src/ui/app-render.ts @@ -1,3 +1,4 @@ +// Control UI module implements app render behavior. import { html, nothing } from "lit"; import { guard } from "lit/directives/guard.js"; import { styleMap } from "lit/directives/style-map.js"; diff --git a/ui/src/ui/app-scroll.test.ts b/ui/src/ui/app-scroll.test.ts index 03f76dfcfff3..294dee59ccca 100644 --- a/ui/src/ui/app-scroll.test.ts +++ b/ui/src/ui/app-scroll.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app scroll behavior. import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { handleChatScroll, scheduleChatScroll, resetChatScroll } from "./app-scroll.ts"; import type { ChatAutoScrollMode } from "./storage.ts"; diff --git a/ui/src/ui/app-scroll.ts b/ui/src/ui/app-scroll.ts index b606f16eae58..c5737625e48d 100644 --- a/ui/src/ui/app-scroll.ts +++ b/ui/src/ui/app-scroll.ts @@ -1,3 +1,4 @@ +// Control UI module implements app scroll behavior. import { normalizeChatAutoScrollMode, type ChatAutoScrollMode } from "./storage.ts"; /** Distance (px) from the bottom within which we consider the user "near bottom". */ diff --git a/ui/src/ui/app-settings.test.ts b/ui/src/ui/app-settings.test.ts index 25d038f03267..51435125d4b1 100644 --- a/ui/src/ui/app-settings.test.ts +++ b/ui/src/ui/app-settings.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover app settings behavior. import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createImportedCustomThemeFixture } from "../test-helpers/custom-theme.ts"; import { createStorageMock } from "../test-helpers/storage.ts"; diff --git a/ui/src/ui/app-settings.ts b/ui/src/ui/app-settings.ts index 220a2d9535d7..51382492ad4d 100644 --- a/ui/src/ui/app-settings.ts +++ b/ui/src/ui/app-settings.ts @@ -1,3 +1,4 @@ +// Control UI module implements app settings behavior. import { roleScopesAllow } from "../../../src/shared/operator-scope-compat.js"; import { t } from "../i18n/index.ts"; import { refreshChat } from "./app-chat.ts"; diff --git a/ui/src/ui/app-tool-stream.ts b/ui/src/ui/app-tool-stream.ts index b6359fce5bb4..9af242e89158 100644 --- a/ui/src/ui/app-tool-stream.ts +++ b/ui/src/ui/app-tool-stream.ts @@ -1,3 +1,4 @@ +// Control UI module implements app tool stream behavior. import { updateActivityFromToolEvent, type ActivityEntry } from "./activity-model.ts"; import { createChatModelOverride } from "./chat-model-ref.ts"; import type { ChatModelOverride } from "./chat-model-ref.types.ts"; diff --git a/ui/src/ui/app-view-state.ts b/ui/src/ui/app-view-state.ts index a00b1fcfe271..a46239e5d031 100644 --- a/ui/src/ui/app-view-state.ts +++ b/ui/src/ui/app-view-state.ts @@ -1,3 +1,4 @@ +// Control UI module implements app view state behavior. import type { ActivityEntry, ActivityStatus } from "./activity-model.ts"; import type { ChatAbortOptions, ChatSendOptions } from "./app-chat.ts"; import type { EventLogEntry } from "./app-events.ts"; diff --git a/ui/src/ui/app.ts b/ui/src/ui/app.ts index 40ce8517912e..aedda4fd6791 100644 --- a/ui/src/ui/app.ts +++ b/ui/src/ui/app.ts @@ -1,3 +1,4 @@ +// Control UI module implements app behavior. import { LitElement } from "lit"; import { state } from "lit/decorators.js"; import { i18n, I18nController, isSupportedLocale, t } from "../i18n/index.ts"; diff --git a/ui/src/ui/assistant-identity.test.ts b/ui/src/ui/assistant-identity.test.ts index c37fffd3c421..cf0332192cce 100644 --- a/ui/src/ui/assistant-identity.test.ts +++ b/ui/src/ui/assistant-identity.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover assistant identity behavior. import { describe, expect, it } from "vitest"; import { normalizeAssistantIdentity } from "./assistant-identity.ts"; diff --git a/ui/src/ui/assistant-identity.ts b/ui/src/ui/assistant-identity.ts index f30b83c2de34..8c14be38d86e 100644 --- a/ui/src/ui/assistant-identity.ts +++ b/ui/src/ui/assistant-identity.ts @@ -1,3 +1,4 @@ +// Control UI module implements assistant identity behavior. import { coerceIdentityValue } from "../../../src/shared/assistant-identity-values.js"; const MAX_ASSISTANT_NAME = 50; diff --git a/ui/src/ui/browser-redact.test.ts b/ui/src/ui/browser-redact.test.ts index 71ee4704f829..76d317acf096 100644 --- a/ui/src/ui/browser-redact.test.ts +++ b/ui/src/ui/browser-redact.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover browser redact behavior. import { describe, expect, it } from "vitest"; import { redactToolDetail, redactToolPayloadText } from "./browser-redact.ts"; diff --git a/ui/src/ui/browser-redact.ts b/ui/src/ui/browser-redact.ts index fe8cc1af1511..c215a00a4bb7 100644 --- a/ui/src/ui/browser-redact.ts +++ b/ui/src/ui/browser-redact.ts @@ -1,3 +1,4 @@ +// Control UI module implements browser redact behavior. const PAYMENT_CREDENTIAL_KEYS = "card[-_]?number|card[-_]?cvc|card[-_]?cvv|cvc|cvv|security[-_]?code|securityCode|payment[-_]?credential|paymentCredential|shared[-_]?payment[-_]?token|sharedPaymentToken"; diff --git a/ui/src/ui/canvas-url.test.ts b/ui/src/ui/canvas-url.test.ts index 60ff4d11b052..4613554138a9 100644 --- a/ui/src/ui/canvas-url.test.ts +++ b/ui/src/ui/canvas-url.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover canvas url behavior. import { describe, expect, it } from "vitest"; import { resolveCanvasIframeUrl } from "./canvas-url.ts"; diff --git a/ui/src/ui/canvas-url.ts b/ui/src/ui/canvas-url.ts index 327e2b881474..868fa8b70a15 100644 --- a/ui/src/ui/canvas-url.ts +++ b/ui/src/ui/canvas-url.ts @@ -1,3 +1,4 @@ +// Control UI module implements canvas url behavior. const A2UI_PATH = "/__openclaw__/a2ui"; const CANVAS_HOST_PATH = "/__openclaw__/canvas"; const CANVAS_CAPABILITY_PATH_PREFIX = "/__openclaw__/cap"; diff --git a/ui/src/ui/chat-event-reload.test.ts b/ui/src/ui/chat-event-reload.test.ts index 5c2ff4b29e54..eebf8300fa28 100644 --- a/ui/src/ui/chat-event-reload.test.ts +++ b/ui/src/ui/chat-event-reload.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat event reload behavior. import { describe, expect, it } from "vitest"; import { shouldReloadHistoryForFinalEvent } from "./chat-event-reload.ts"; diff --git a/ui/src/ui/chat-event-reload.ts b/ui/src/ui/chat-event-reload.ts index af873661ace5..bf2bf41433a3 100644 --- a/ui/src/ui/chat-event-reload.ts +++ b/ui/src/ui/chat-event-reload.ts @@ -1,3 +1,4 @@ +// Control UI module implements chat event reload behavior. import { extractText } from "./chat/message-extract.ts"; import type { ChatEventPayload } from "./controllers/chat.ts"; import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; diff --git a/ui/src/ui/chat-model-ref.test.ts b/ui/src/ui/chat-model-ref.test.ts index 2449b9a1f064..8bbf7a2f0445 100644 --- a/ui/src/ui/chat-model-ref.test.ts +++ b/ui/src/ui/chat-model-ref.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat model ref behavior. import { describe, expect, it } from "vitest"; import { buildChatModelOption, diff --git a/ui/src/ui/chat-model-ref.ts b/ui/src/ui/chat-model-ref.ts index ece6d7f2c178..52427c48be1c 100644 --- a/ui/src/ui/chat-model-ref.ts +++ b/ui/src/ui/chat-model-ref.ts @@ -1,3 +1,4 @@ +// Control UI module implements chat model ref behavior. import type { ChatModelOverride } from "./chat-model-ref.types.ts"; import type { ModelCatalogEntry } from "./types.ts"; export type { ChatModelOverride } from "./chat-model-ref.types.ts"; diff --git a/ui/src/ui/chat-model-ref.types.ts b/ui/src/ui/chat-model-ref.types.ts index 43d9781f6d22..e838966c6218 100644 --- a/ui/src/ui/chat-model-ref.types.ts +++ b/ui/src/ui/chat-model-ref.types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define chat model ref contracts. export type ChatModelOverride = | { kind: "qualified"; diff --git a/ui/src/ui/chat-model-select-state.test.ts b/ui/src/ui/chat-model-select-state.test.ts index 6ea8f122aac4..c499cf507265 100644 --- a/ui/src/ui/chat-model-select-state.test.ts +++ b/ui/src/ui/chat-model-select-state.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat model select state behavior. import { describe, expect, it } from "vitest"; import { resolveChatModelOverrideValue, diff --git a/ui/src/ui/chat-model-select-state.ts b/ui/src/ui/chat-model-select-state.ts index d05122f42d14..b49185714a68 100644 --- a/ui/src/ui/chat-model-select-state.ts +++ b/ui/src/ui/chat-model-select-state.ts @@ -1,3 +1,4 @@ +// Control UI module implements chat model select state behavior. import type { AppViewState } from "./app-view-state.ts"; import { buildCatalogDisplayLookup, diff --git a/ui/src/ui/chat-model.test-helpers.ts b/ui/src/ui/chat-model.test-helpers.ts index fb86798a9894..cd381c70cc3d 100644 --- a/ui/src/ui/chat-model.test-helpers.ts +++ b/ui/src/ui/chat-model.test-helpers.ts @@ -1,3 +1,4 @@ +// Control UI module implements chat model helpers behavior. import type { GatewaySessionRow, ModelCatalogEntry, diff --git a/ui/src/ui/chat/attachment-payload-store.ts b/ui/src/ui/chat/attachment-payload-store.ts index d00c1aa8d6e5..cde8971d4a22 100644 --- a/ui/src/ui/chat/attachment-payload-store.ts +++ b/ui/src/ui/chat/attachment-payload-store.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements attachment payload store behavior. import type { ChatAttachment } from "../ui-types.ts"; type AttachmentPayload = { diff --git a/ui/src/ui/chat/attachment-support.ts b/ui/src/ui/chat/attachment-support.ts index 21b9ba951da0..845eef5c39c9 100644 --- a/ui/src/ui/chat/attachment-support.ts +++ b/ui/src/ui/chat/attachment-support.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements attachment support behavior. export const CHAT_ATTACHMENT_ACCEPT = "image/*,audio/*,application/pdf,text/*,.csv,.json,.md,.txt,.zip," + ".doc,.docx,.xls,.xlsx,.ppt,.pptx"; diff --git a/ui/src/ui/chat/build-chat-items.test.ts b/ui/src/ui/chat/build-chat-items.test.ts index fdc48ab3c2fa..38db245acd8d 100644 --- a/ui/src/ui/chat/build-chat-items.test.ts +++ b/ui/src/ui/chat/build-chat-items.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover build chat items behavior. import { describe, expect, it } from "vitest"; import type { MessageGroup } from "../types/chat-types.ts"; import { buildChatItems, type BuildChatItemsProps } from "./build-chat-items.ts"; diff --git a/ui/src/ui/chat/build-chat-items.ts b/ui/src/ui/chat/build-chat-items.ts index 7000a5f74a4c..d8319f5d150f 100644 --- a/ui/src/ui/chat/build-chat-items.ts +++ b/ui/src/ui/chat/build-chat-items.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements build chat items behavior. import type { ChatItem, MessageGroup, NormalizedMessage, ToolCard } from "../types/chat-types.ts"; import type { ChatQueueItem } from "../ui-types.ts"; import { diff --git a/ui/src/ui/chat/chat-avatar.ts b/ui/src/ui/chat/chat-avatar.ts index 1992ac2e23da..644613526da1 100644 --- a/ui/src/ui/chat/chat-avatar.ts +++ b/ui/src/ui/chat/chat-avatar.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements chat avatar behavior. import { html } from "lit"; import type { AssistantIdentity } from "../assistant-identity.ts"; import { diff --git a/ui/src/ui/chat/chat-queue.ts b/ui/src/ui/chat/chat-queue.ts index 779004dfba6f..2776924072cb 100644 --- a/ui/src/ui/chat/chat-queue.ts +++ b/ui/src/ui/chat/chat-queue.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements chat queue behavior. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/chat/chat-responsive.browser.test.ts b/ui/src/ui/chat/chat-responsive.browser.test.ts index 030e9cd2f86c..18e574b833eb 100644 --- a/ui/src/ui/chat/chat-responsive.browser.test.ts +++ b/ui/src/ui/chat/chat-responsive.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat responsive behavior. import { existsSync } from "node:fs"; import { chromium, type Browser, type Page } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; diff --git a/ui/src/ui/chat/chat-sidebar-raw.ts b/ui/src/ui/chat/chat-sidebar-raw.ts index 3a7f69f9435b..13a7c6ce0ec0 100644 --- a/ui/src/ui/chat/chat-sidebar-raw.ts +++ b/ui/src/ui/chat/chat-sidebar-raw.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements chat sidebar raw behavior. import type { SidebarContent } from "../sidebar-content.ts"; function toPlainTextCodeFence(value: string, language = ""): string { diff --git a/ui/src/ui/chat/chat-welcome.ts b/ui/src/ui/chat/chat-welcome.ts index c5bbcdc2425b..71bf2affaae3 100644 --- a/ui/src/ui/chat/chat-welcome.ts +++ b/ui/src/ui/chat/chat-welcome.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements chat welcome behavior. import { html } from "lit"; import { t } from "../../i18n/index.ts"; import { diff --git a/ui/src/ui/chat/composer-persistence.ts b/ui/src/ui/chat/composer-persistence.ts index 66afc49b48c0..f9b24a58aed1 100644 --- a/ui/src/ui/chat/composer-persistence.ts +++ b/ui/src/ui/chat/composer-persistence.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements composer persistence behavior. import { getSafeSessionStorage } from "../../local-storage.ts"; import { DEFAULT_AGENT_ID, normalizeAgentId, parseAgentSessionKey } from "../session-key.ts"; import type { ChatAttachment, ChatQueueItem, ChatQueueSkillWorkshopRevision } from "../ui-types.ts"; diff --git a/ui/src/ui/chat/context-notice.ts b/ui/src/ui/chat/context-notice.ts index 80d30b764f83..6e72465741ed 100644 --- a/ui/src/ui/chat/context-notice.ts +++ b/ui/src/ui/chat/context-notice.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements context notice behavior. import { html, nothing } from "lit"; import { icons } from "../icons.ts"; import type { GatewaySessionRow } from "../types.ts"; diff --git a/ui/src/ui/chat/copy-as-markdown.ts b/ui/src/ui/chat/copy-as-markdown.ts index f5b31b3284e6..04d5434fbc76 100644 --- a/ui/src/ui/chat/copy-as-markdown.ts +++ b/ui/src/ui/chat/copy-as-markdown.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements copy as markdown behavior. import { html, type TemplateResult } from "lit"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/chat/deleted-messages.ts b/ui/src/ui/chat/deleted-messages.ts index b705a3af7b9c..b0b8f3712706 100644 --- a/ui/src/ui/chat/deleted-messages.ts +++ b/ui/src/ui/chat/deleted-messages.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements deleted messages behavior. import { getSafeLocalStorage } from "../../local-storage.ts"; const PREFIX = "openclaw:deleted:"; diff --git a/ui/src/ui/chat/export.ts b/ui/src/ui/chat/export.ts index 68d15236bf31..063a9de60cde 100644 --- a/ui/src/ui/chat/export.ts +++ b/ui/src/ui/chat/export.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements export behavior. import { timestampMsToIsoString } from "@openclaw/normalization-core/number-coercion"; import { extractTextCached } from "./message-extract.ts"; diff --git a/ui/src/ui/chat/grouped-render.ts b/ui/src/ui/chat/grouped-render.ts index c2d329017af9..3c2d86506e1a 100644 --- a/ui/src/ui/chat/grouped-render.ts +++ b/ui/src/ui/chat/grouped-render.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements grouped render behavior. import { html, nothing } from "lit"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; import { until } from "lit/directives/until.js"; diff --git a/ui/src/ui/chat/heartbeat-display.ts b/ui/src/ui/chat/heartbeat-display.ts index 233edbb5e3d7..5693ca2e4c72 100644 --- a/ui/src/ui/chat/heartbeat-display.ts +++ b/ui/src/ui/chat/heartbeat-display.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements heartbeat display behavior. import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; const HEARTBEAT_TOKEN = "HEARTBEAT_OK"; diff --git a/ui/src/ui/chat/history-limits.ts b/ui/src/ui/chat/history-limits.ts index 3cd1dea48fd9..28bee9b7fcf5 100644 --- a/ui/src/ui/chat/history-limits.ts +++ b/ui/src/ui/chat/history-limits.ts @@ -1,2 +1,3 @@ +// Control UI chat module implements history limits behavior. export const CHAT_HISTORY_RENDER_LIMIT = 100; export const CHAT_HISTORY_RENDER_CHAR_BUDGET = 240_000; diff --git a/ui/src/ui/chat/history-merge.test.ts b/ui/src/ui/chat/history-merge.test.ts index 9fc08f902a63..cc482908b4f9 100644 --- a/ui/src/ui/chat/history-merge.test.ts +++ b/ui/src/ui/chat/history-merge.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover history merge behavior. import { describe, expect, it } from "vitest"; import { preserveOptimisticTailMessages } from "../controllers/chat.ts"; diff --git a/ui/src/ui/chat/input-history.ts b/ui/src/ui/chat/input-history.ts index e3d9f59cf648..bd0443c994fa 100644 --- a/ui/src/ui/chat/input-history.ts +++ b/ui/src/ui/chat/input-history.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements input history behavior. import { CHAT_HISTORY_RENDER_LIMIT } from "./history-limits.ts"; import { extractText } from "./message-extract.ts"; diff --git a/ui/src/ui/chat/message-extract.test.ts b/ui/src/ui/chat/message-extract.test.ts index 90e73824c5bd..8538ffd555a1 100644 --- a/ui/src/ui/chat/message-extract.test.ts +++ b/ui/src/ui/chat/message-extract.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover message extract behavior. import { describe, expect, it } from "vitest"; import { extractText, diff --git a/ui/src/ui/chat/message-extract.ts b/ui/src/ui/chat/message-extract.ts index e88947c70beb..64790371a3a5 100644 --- a/ui/src/ui/chat/message-extract.ts +++ b/ui/src/ui/chat/message-extract.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements message extract behavior. import { stripInternalRuntimeContext } from "../../../../src/agents/internal-runtime-context.js"; import { stripInboundMetadata } from "../../../../src/auto-reply/reply/strip-inbound-meta.js"; import { stripEnvelope } from "../../../../src/shared/chat-envelope.js"; diff --git a/ui/src/ui/chat/message-normalizer.test.ts b/ui/src/ui/chat/message-normalizer.test.ts index 86633014dcda..da5f98a5239b 100644 --- a/ui/src/ui/chat/message-normalizer.test.ts +++ b/ui/src/ui/chat/message-normalizer.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover message normalizer behavior. import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"; import { normalizeMessage } from "./message-normalizer.ts"; diff --git a/ui/src/ui/chat/pinned-messages.ts b/ui/src/ui/chat/pinned-messages.ts index edfd167f7752..1f9d6833bd5b 100644 --- a/ui/src/ui/chat/pinned-messages.ts +++ b/ui/src/ui/chat/pinned-messages.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements pinned messages behavior. import { getSafeLocalStorage } from "../../local-storage.ts"; const PREFIX = "openclaw:pinned:"; diff --git a/ui/src/ui/chat/pinned-summary.ts b/ui/src/ui/chat/pinned-summary.ts index c48a1dad94f3..55ab04847625 100644 --- a/ui/src/ui/chat/pinned-summary.ts +++ b/ui/src/ui/chat/pinned-summary.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements pinned summary behavior. import { extractTextCached } from "./message-extract.ts"; export function getPinnedMessageSummary(message: unknown): string { diff --git a/ui/src/ui/chat/realtime-talk-audio.ts b/ui/src/ui/chat/realtime-talk-audio.ts index ef6b10a21f59..21c56f784077 100644 --- a/ui/src/ui/chat/realtime-talk-audio.ts +++ b/ui/src/ui/chat/realtime-talk-audio.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk audio behavior. export function bytesToBase64(bytes: Uint8Array): string { let binary = ""; const chunkSize = 0x8000; diff --git a/ui/src/ui/chat/realtime-talk-conversation.test.ts b/ui/src/ui/chat/realtime-talk-conversation.test.ts index 4915d37c702b..8b80044e5723 100644 --- a/ui/src/ui/chat/realtime-talk-conversation.test.ts +++ b/ui/src/ui/chat/realtime-talk-conversation.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover realtime talk conversation behavior. import { describe, expect, it } from "vitest"; import { createRealtimeTalkConversationState, diff --git a/ui/src/ui/chat/realtime-talk-conversation.ts b/ui/src/ui/chat/realtime-talk-conversation.ts index 36b71af4f398..c501de310a07 100644 --- a/ui/src/ui/chat/realtime-talk-conversation.ts +++ b/ui/src/ui/chat/realtime-talk-conversation.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk conversation behavior. export type RealtimeTalkConversationRole = "user" | "assistant"; export type RealtimeTalkConversationEntry = { diff --git a/ui/src/ui/chat/realtime-talk-gateway-relay.ts b/ui/src/ui/chat/realtime-talk-gateway-relay.ts index e6d79be89866..345c62651f37 100644 --- a/ui/src/ui/chat/realtime-talk-gateway-relay.ts +++ b/ui/src/ui/chat/realtime-talk-gateway-relay.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk gateway relay behavior. import { bytesToBase64, floatToPcm16 } from "./realtime-talk-audio.ts"; import { RealtimeTalkPcmOutputQueue } from "./realtime-talk-pcm-output.ts"; import { diff --git a/ui/src/ui/chat/realtime-talk-google-live.ts b/ui/src/ui/chat/realtime-talk-google-live.ts index c79adfe3ab4f..19084a982580 100644 --- a/ui/src/ui/chat/realtime-talk-google-live.ts +++ b/ui/src/ui/chat/realtime-talk-google-live.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk google live behavior. import { base64ToBytes, bytesToBase64, floatToPcm16 } from "./realtime-talk-audio.ts"; import { RealtimeTalkPcmOutputQueue } from "./realtime-talk-pcm-output.ts"; import type { RealtimeTalkJsonPcmWebSocketSessionResult } from "./realtime-talk-shared.ts"; diff --git a/ui/src/ui/chat/realtime-talk-pcm-output.ts b/ui/src/ui/chat/realtime-talk-pcm-output.ts index f1bb3dd8b576..fe6eba27b9c1 100644 --- a/ui/src/ui/chat/realtime-talk-pcm-output.ts +++ b/ui/src/ui/chat/realtime-talk-pcm-output.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk pcm output behavior. import { base64ToBytes, pcm16ToFloat } from "./realtime-talk-audio.ts"; export class RealtimeTalkPcmOutputQueue { diff --git a/ui/src/ui/chat/realtime-talk-shared.ts b/ui/src/ui/chat/realtime-talk-shared.ts index 32428974dc52..09442e74196d 100644 --- a/ui/src/ui/chat/realtime-talk-shared.ts +++ b/ui/src/ui/chat/realtime-talk-shared.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk shared behavior. import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME } from "../../../../src/talk/agent-consult-tool.js"; import { buildRealtimeVoiceAgentCancelProviderResult, diff --git a/ui/src/ui/chat/realtime-talk-webrtc.ts b/ui/src/ui/chat/realtime-talk-webrtc.ts index b8c315ddbfc4..815c765002b3 100644 --- a/ui/src/ui/chat/realtime-talk-webrtc.ts +++ b/ui/src/ui/chat/realtime-talk-webrtc.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk webrtc behavior. import type { RealtimeTalkWebRtcSdpSessionResult } from "./realtime-talk-shared.ts"; import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME, diff --git a/ui/src/ui/chat/realtime-talk.ts b/ui/src/ui/chat/realtime-talk.ts index 1fb7c929bf0d..7006cb0eb025 100644 --- a/ui/src/ui/chat/realtime-talk.ts +++ b/ui/src/ui/chat/realtime-talk.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements realtime talk behavior. import { normalizeTalkTransport } from "../../../../src/talk/talk-session-controller.js"; import type { GatewayBrowserClient } from "../gateway.ts"; import { GatewayRelayRealtimeTalkTransport } from "./realtime-talk-gateway-relay.ts"; diff --git a/ui/src/ui/chat/role-normalizer.test.ts b/ui/src/ui/chat/role-normalizer.test.ts index 5c17961bf3e1..ceefad6db829 100644 --- a/ui/src/ui/chat/role-normalizer.test.ts +++ b/ui/src/ui/chat/role-normalizer.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover role normalizer behavior. import { describe, expect, it } from "vitest"; import { isToolResultMessage, normalizeRoleForGrouping } from "./role-normalizer.ts"; diff --git a/ui/src/ui/chat/run-controls.ts b/ui/src/ui/chat/run-controls.ts index c5d836dcbe0d..8fee62a50493 100644 --- a/ui/src/ui/chat/run-controls.ts +++ b/ui/src/ui/chat/run-controls.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements run controls behavior. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/chat/run-lifecycle.test.ts b/ui/src/ui/chat/run-lifecycle.test.ts index c19dbf7827ee..fffd1a14cb5d 100644 --- a/ui/src/ui/chat/run-lifecycle.test.ts +++ b/ui/src/ui/chat/run-lifecycle.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover run lifecycle behavior. import { describe, expect, it } from "vitest"; import { isSessionRunActive } from "../session-run-state.ts"; import type { SessionsListResult } from "../types.ts"; diff --git a/ui/src/ui/chat/run-lifecycle.ts b/ui/src/ui/chat/run-lifecycle.ts index 67d4dd5d9cb6..73ccb7bc24af 100644 --- a/ui/src/ui/chat/run-lifecycle.ts +++ b/ui/src/ui/chat/run-lifecycle.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements run lifecycle behavior. import { resetToolStream, type CompactionStatus, type FallbackStatus } from "../app-tool-stream.ts"; import { uiSessionRowMatchesSelectedChat } from "../session-key.ts"; import { isSessionRunActive } from "../session-run-state.ts"; diff --git a/ui/src/ui/chat/search-match.ts b/ui/src/ui/chat/search-match.ts index 3d25bf79cf09..f9b10673b932 100644 --- a/ui/src/ui/chat/search-match.ts +++ b/ui/src/ui/chat/search-match.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements search match behavior. import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; import { extractTextCached } from "./message-extract.ts"; diff --git a/ui/src/ui/chat/session-cache.ts b/ui/src/ui/chat/session-cache.ts index 54aeb4921f40..fca1a5a365d7 100644 --- a/ui/src/ui/chat/session-cache.ts +++ b/ui/src/ui/chat/session-cache.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements session cache behavior. const MAX_CACHED_CHAT_SESSIONS = 20; export function getOrCreateSessionCacheValue( diff --git a/ui/src/ui/chat/session-controls.ts b/ui/src/ui/chat/session-controls.ts index bbc6b8ef6737..585e58420e84 100644 --- a/ui/src/ui/chat/session-controls.ts +++ b/ui/src/ui/chat/session-controls.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements session controls behavior. import { html } from "lit"; import { repeat } from "lit/directives/repeat.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/chat/side-result-render.ts b/ui/src/ui/chat/side-result-render.ts index de4ca6f50857..04d7efcf15e1 100644 --- a/ui/src/ui/chat/side-result-render.ts +++ b/ui/src/ui/chat/side-result-render.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements side result render behavior. import { html, nothing, type TemplateResult } from "lit"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/chat/side-result.ts b/ui/src/ui/chat/side-result.ts index e0644a89d349..d6a6c53dc0aa 100644 --- a/ui/src/ui/chat/side-result.ts +++ b/ui/src/ui/chat/side-result.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements side result behavior. import { normalizeOptionalString } from "../string-coerce.ts"; export type ChatSideResult = { diff --git a/ui/src/ui/chat/slash-commands.ts b/ui/src/ui/chat/slash-commands.ts index fabb1da431af..3588913b0914 100644 --- a/ui/src/ui/chat/slash-commands.ts +++ b/ui/src/ui/chat/slash-commands.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements slash commands behavior. import type { CommandEntry, CommandsListResult, diff --git a/ui/src/ui/chat/status-indicators.ts b/ui/src/ui/chat/status-indicators.ts index 035d6f45bcd3..3e1dc523af22 100644 --- a/ui/src/ui/chat/status-indicators.ts +++ b/ui/src/ui/chat/status-indicators.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements status indicators behavior. import { html, nothing } from "lit"; import type { CompactionStatus, FallbackStatus } from "../app-tool-stream.ts"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/chat/stream-reconciliation.ts b/ui/src/ui/chat/stream-reconciliation.ts index b784c19c93bd..0a3cde0c2f70 100644 --- a/ui/src/ui/chat/stream-reconciliation.ts +++ b/ui/src/ui/chat/stream-reconciliation.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements stream reconciliation behavior. import { resetToolStream } from "../app-tool-stream.ts"; import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; import { extractText } from "./message-extract.ts"; diff --git a/ui/src/ui/chat/stream-text.ts b/ui/src/ui/chat/stream-text.ts index 8eb9b0ee9b7f..d83a11a9fe1c 100644 --- a/ui/src/ui/chat/stream-text.ts +++ b/ui/src/ui/chat/stream-text.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements stream text behavior. export function trimAccumulatedStreamPrefix(text: string, previousText: string | null): string { if (!previousText || !text.startsWith(previousText)) { return text; diff --git a/ui/src/ui/chat/tool-cards.ts b/ui/src/ui/chat/tool-cards.ts index 0eef197adfba..c1a2f85ded9e 100644 --- a/ui/src/ui/chat/tool-cards.ts +++ b/ui/src/ui/chat/tool-cards.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements tool cards behavior. import { html, nothing } from "lit"; import { keyed } from "lit/directives/keyed.js"; import { extractCanvasFromText } from "../../../../src/chat/canvas-render.js"; diff --git a/ui/src/ui/chat/tool-expansion-state.test.ts b/ui/src/ui/chat/tool-expansion-state.test.ts index abed83b93d71..fad243432913 100644 --- a/ui/src/ui/chat/tool-expansion-state.test.ts +++ b/ui/src/ui/chat/tool-expansion-state.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover tool expansion state behavior. import { afterEach, describe, expect, it } from "vitest"; import type { MessageGroup } from "../types/chat-types.ts"; import { diff --git a/ui/src/ui/chat/tool-expansion-state.ts b/ui/src/ui/chat/tool-expansion-state.ts index 326ab919cb3c..a3718bbada92 100644 --- a/ui/src/ui/chat/tool-expansion-state.ts +++ b/ui/src/ui/chat/tool-expansion-state.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements tool expansion state behavior. import type { ChatItem, MessageGroup } from "../types/chat-types.ts"; import { isToolResultMessage, normalizeRoleForGrouping } from "./role-normalizer.ts"; import { getOrCreateSessionCacheValue } from "./session-cache.ts"; diff --git a/ui/src/ui/chat/tool-helpers.test.ts b/ui/src/ui/chat/tool-helpers.test.ts index 7b4e913bec76..cd3373dddcf4 100644 --- a/ui/src/ui/chat/tool-helpers.test.ts +++ b/ui/src/ui/chat/tool-helpers.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover tool helpers behavior. import { describe, it, expect } from "vitest"; import { formatToolOutputForSidebar, getTruncatedPreview } from "./tool-helpers.ts"; diff --git a/ui/src/ui/chat/tool-message-refs.test.ts b/ui/src/ui/chat/tool-message-refs.test.ts index d390f5a91ac8..838f39099e47 100644 --- a/ui/src/ui/chat/tool-message-refs.test.ts +++ b/ui/src/ui/chat/tool-message-refs.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover tool message refs behavior. import { describe, expect, it } from "vitest"; import { extractToolMessageRefs } from "./tool-message-refs.ts"; diff --git a/ui/src/ui/chat/tool-message-refs.ts b/ui/src/ui/chat/tool-message-refs.ts index a37a0e50eb62..37a62e2806fc 100644 --- a/ui/src/ui/chat/tool-message-refs.ts +++ b/ui/src/ui/chat/tool-message-refs.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements tool message refs behavior. import { isToolCallContentType, isToolResultContentType, diff --git a/ui/src/ui/chat/user-message-content.ts b/ui/src/ui/chat/user-message-content.ts index 07acfe7f976d..eea729f54b4e 100644 --- a/ui/src/ui/chat/user-message-content.ts +++ b/ui/src/ui/chat/user-message-content.ts @@ -1,3 +1,4 @@ +// Control UI chat module implements user message content behavior. import type { ChatAttachment } from "../ui-types.ts"; import { getChatAttachmentPreviewUrl } from "./attachment-payload-store.ts"; diff --git a/ui/src/ui/components/dashboard-header.ts b/ui/src/ui/components/dashboard-header.ts index 130cbf65252b..a188886a1e52 100644 --- a/ui/src/ui/components/dashboard-header.ts +++ b/ui/src/ui/components/dashboard-header.ts @@ -1,3 +1,4 @@ +// Control UI component implements the dashboard header element. import { LitElement, html, nothing } from "lit"; import { property } from "lit/decorators.js"; import { pathForTab, titleForTab, type Tab } from "../navigation.js"; diff --git a/ui/src/ui/components/file-preview-modal.ts b/ui/src/ui/components/file-preview-modal.ts index 3280c7aebb8e..e6806fbec4d6 100644 --- a/ui/src/ui/components/file-preview-modal.ts +++ b/ui/src/ui/components/file-preview-modal.ts @@ -1,3 +1,4 @@ +// Control UI component implements the file preview modal element. import { LitElement, css, html, type PropertyValues } from "lit"; import { property, query } from "lit/decorators.js"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/components/modal-dialog.ts b/ui/src/ui/components/modal-dialog.ts index 1a534d1343c2..f84dfa6e90b2 100644 --- a/ui/src/ui/components/modal-dialog.ts +++ b/ui/src/ui/components/modal-dialog.ts @@ -1,3 +1,4 @@ +// Control UI component implements the modal dialog element. import { LitElement, css, html, nothing } from "lit"; import { property, query } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; diff --git a/ui/src/ui/components/resizable-divider.ts b/ui/src/ui/components/resizable-divider.ts index 333c348e3d03..1657fe466df3 100644 --- a/ui/src/ui/components/resizable-divider.ts +++ b/ui/src/ui/components/resizable-divider.ts @@ -1,3 +1,4 @@ +// Control UI component implements the resizable divider element. import { LitElement, css, nothing } from "lit"; import { property } from "lit/decorators.js"; diff --git a/ui/src/ui/config-form.browser.test.ts b/ui/src/ui/config-form.browser.test.ts index 61203c1465c7..71271c35f0fe 100644 --- a/ui/src/ui/config-form.browser.test.ts +++ b/ui/src/ui/config-form.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover config form behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { analyzeConfigSchema, renderConfigForm } from "./views/config-form.ts"; diff --git a/ui/src/ui/connect-error.test.ts b/ui/src/ui/connect-error.test.ts index 0e4cf900d6a1..2937ae38c77b 100644 --- a/ui/src/ui/connect-error.test.ts +++ b/ui/src/ui/connect-error.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover connect error behavior. import { describe, expect, it } from "vitest"; import { ConnectErrorDetailCodes } from "../../../packages/gateway-protocol/src/connect-error-details.js"; import { formatConnectError } from "./connect-error.ts"; diff --git a/ui/src/ui/connect-error.ts b/ui/src/ui/connect-error.ts index 6d6f03ce4618..6e9b025562e5 100644 --- a/ui/src/ui/connect-error.ts +++ b/ui/src/ui/connect-error.ts @@ -1,3 +1,4 @@ +// Control UI module implements connect error behavior. import { ConnectErrorDetailCodes, describePairingConnectRequirement, diff --git a/ui/src/ui/control-ui-auth.ts b/ui/src/ui/control-ui-auth.ts index dc95bfe29368..5fb15cb6387b 100644 --- a/ui/src/ui/control-ui-auth.ts +++ b/ui/src/ui/control-ui-auth.ts @@ -1,3 +1,4 @@ +// Control UI module implements control ui auth behavior. import { normalizeOptionalString, uniqueStrings } from "./string-coerce.ts"; type ControlUiAuthSource = { diff --git a/ui/src/ui/control-ui-chunking.test.ts b/ui/src/ui/control-ui-chunking.test.ts index 198d9092caf0..78c63b52edf0 100644 --- a/ui/src/ui/control-ui-chunking.test.ts +++ b/ui/src/ui/control-ui-chunking.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover control ui chunking behavior. import { describe, expect, it } from "vitest"; import { controlUiManualChunk, normalizeModuleId } from "../../config/control-ui-chunking.ts"; @@ -29,7 +30,8 @@ describe("Control UI build chunking", () => { expect(normalizeModuleId(String.raw`C:\repo\ui\node_modules\highlight.js\lib\core.js`)).toBe( "C:/repo/ui/node_modules/highlight.js/lib/core.js", ); - expect(controlUiManualChunk(String.raw`C:\repo\ui\node_modules\highlight.js\lib\core.js`)) - .toBe("markdown-runtime"); + expect(controlUiManualChunk(String.raw`C:\repo\ui\node_modules\highlight.js\lib\core.js`)).toBe( + "markdown-runtime", + ); }); }); diff --git a/ui/src/ui/control-ui-performance.test.ts b/ui/src/ui/control-ui-performance.test.ts index d8d82944734f..f9361aa226ce 100644 --- a/ui/src/ui/control-ui-performance.test.ts +++ b/ui/src/ui/control-ui-performance.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover control ui performance behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import type { EventLogEntry } from "./app-events.ts"; import { diff --git a/ui/src/ui/control-ui-performance.ts b/ui/src/ui/control-ui-performance.ts index 92b06c92a78c..d52edc16ddd5 100644 --- a/ui/src/ui/control-ui-performance.ts +++ b/ui/src/ui/control-ui-performance.ts @@ -1,3 +1,4 @@ +// Control UI module implements control ui performance behavior. import type { EventLogEntry } from "./app-events.ts"; import type { GatewayConnectTiming, GatewayRequestTiming } from "./gateway.ts"; import type { Tab } from "./navigation.ts"; diff --git a/ui/src/ui/control-ui-vite-config.node.test.ts b/ui/src/ui/control-ui-vite-config.node.test.ts index b33404b9e79d..50281c45108e 100644 --- a/ui/src/ui/control-ui-vite-config.node.test.ts +++ b/ui/src/ui/control-ui-vite-config.node.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover control ui vite config behavior. import path from "node:path"; import { fileURLToPath } from "node:url"; import { describe, expect, it } from "vitest"; diff --git a/ui/src/ui/controllers/agent-files.ts b/ui/src/ui/controllers/agent-files.ts index cb7a92fb32a9..47a4e75a35b3 100644 --- a/ui/src/ui/controllers/agent-files.ts +++ b/ui/src/ui/controllers/agent-files.ts @@ -1,3 +1,4 @@ +// Control UI controller manages agent files gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { AgentFileEntry, diff --git a/ui/src/ui/controllers/agent-identity.ts b/ui/src/ui/controllers/agent-identity.ts index 060b853fb64d..c3fc35ed6085 100644 --- a/ui/src/ui/controllers/agent-identity.ts +++ b/ui/src/ui/controllers/agent-identity.ts @@ -1,3 +1,4 @@ +// Control UI controller manages agent identity gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { AgentIdentityResult } from "../types.ts"; diff --git a/ui/src/ui/controllers/agent-skills.ts b/ui/src/ui/controllers/agent-skills.ts index d9489df3d5bd..4a785f60d754 100644 --- a/ui/src/ui/controllers/agent-skills.ts +++ b/ui/src/ui/controllers/agent-skills.ts @@ -1,3 +1,4 @@ +// Control UI controller manages agent skills gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { SkillStatusReport } from "../types.ts"; diff --git a/ui/src/ui/controllers/agents.test.ts b/ui/src/ui/controllers/agents.test.ts index 323ab83425bd..d9aa10fdea25 100644 --- a/ui/src/ui/controllers/agents.test.ts +++ b/ui/src/ui/controllers/agents.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover agents behavior. import { describe, expect, it, vi } from "vitest"; import { loadAgents, loadToolsCatalog, loadToolsEffective, saveAgentsConfig } from "./agents.ts"; import type { AgentsConfigSaveState, AgentsState } from "./agents.ts"; diff --git a/ui/src/ui/controllers/agents.ts b/ui/src/ui/controllers/agents.ts index 5cbada859c78..41f4bbc2bb01 100644 --- a/ui/src/ui/controllers/agents.ts +++ b/ui/src/ui/controllers/agents.ts @@ -1,3 +1,4 @@ +// Control UI controller manages agents gateway state. import { normalizeChatModelOverrideValue, resolvePreferredServerChatModelValue, diff --git a/ui/src/ui/controllers/assistant-identity.ts b/ui/src/ui/controllers/assistant-identity.ts index f8cad2cdfcab..aa46da12ef8e 100644 --- a/ui/src/ui/controllers/assistant-identity.ts +++ b/ui/src/ui/controllers/assistant-identity.ts @@ -1,3 +1,4 @@ +// Control UI controller manages assistant identity gateway state. import { normalizeAssistantIdentity } from "../assistant-identity.ts"; import type { GatewayBrowserClient } from "../gateway.ts"; import { loadLocalAssistantIdentity, saveLocalAssistantIdentity } from "../storage.ts"; diff --git a/ui/src/ui/controllers/channels.test.ts b/ui/src/ui/controllers/channels.test.ts index 3be098c78d6c..c60fd129d40e 100644 --- a/ui/src/ui/controllers/channels.test.ts +++ b/ui/src/ui/controllers/channels.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover channels behavior. import { beforeEach, describe, expect, it, vi } from "vitest"; import type { ChannelsStatusSnapshot } from "../types.ts"; import { loadChannels, waitWhatsAppLogin, type ChannelsState } from "./channels.ts"; diff --git a/ui/src/ui/controllers/channels.ts b/ui/src/ui/controllers/channels.ts index 5d146ba0a9eb..991a77b6bbde 100644 --- a/ui/src/ui/controllers/channels.ts +++ b/ui/src/ui/controllers/channels.ts @@ -1,3 +1,4 @@ +// Control UI controller manages channels gateway state. import type { ChannelsStatusSnapshot } from "../types.ts"; import type { ChannelsState } from "./channels.types.ts"; import { diff --git a/ui/src/ui/controllers/channels.types.ts b/ui/src/ui/controllers/channels.types.ts index a0306b893dc1..29dde7b1f979 100644 --- a/ui/src/ui/controllers/channels.types.ts +++ b/ui/src/ui/controllers/channels.types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define channels contracts. import type { GatewayBrowserClient } from "../gateway.ts"; import type { ChannelsStatusSnapshot } from "../types.ts"; diff --git a/ui/src/ui/controllers/chat.test.ts b/ui/src/ui/controllers/chat.test.ts index a4e05366a06f..61b8819b4e7a 100644 --- a/ui/src/ui/controllers/chat.test.ts +++ b/ui/src/ui/controllers/chat.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { registerChatAttachmentPayload, diff --git a/ui/src/ui/controllers/chat.ts b/ui/src/ui/controllers/chat.ts index d4bfab62c087..9527f08be157 100644 --- a/ui/src/ui/controllers/chat.ts +++ b/ui/src/ui/controllers/chat.ts @@ -1,3 +1,4 @@ +// Control UI controller manages chat gateway state. import { getChatAttachmentDataUrl } from "../chat/attachment-payload-store.ts"; import { isAssistantHeartbeatAckForDisplay, diff --git a/ui/src/ui/controllers/config.test.ts b/ui/src/ui/controllers/config.test.ts index bf4de0a580eb..e950a816e393 100644 --- a/ui/src/ui/controllers/config.test.ts +++ b/ui/src/ui/controllers/config.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover config behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { applyConfigSnapshot, diff --git a/ui/src/ui/controllers/config.ts b/ui/src/ui/controllers/config.ts index 01110bc4d911..404d8728f584 100644 --- a/ui/src/ui/controllers/config.ts +++ b/ui/src/ui/controllers/config.ts @@ -1,3 +1,4 @@ +// Control UI controller manages config gateway state. import { applyMergePatch } from "../../../../src/config/merge-patch.ts"; import type { GatewayBrowserClient } from "../gateway.ts"; import type { ConfigSchemaResponse, ConfigSnapshot, ConfigUiHints } from "../types.ts"; diff --git a/ui/src/ui/controllers/config/form-coerce.ts b/ui/src/ui/controllers/config/form-coerce.ts index cebbd447015c..09bdbfc0dd90 100644 --- a/ui/src/ui/controllers/config/form-coerce.ts +++ b/ui/src/ui/controllers/config/form-coerce.ts @@ -1,3 +1,4 @@ +// Control UI controller manages form coerce gateway state. import { schemaType, type JsonSchema } from "../../views/config-form.shared.ts"; function coerceNumberString(value: string, integer: boolean): number | undefined | string { diff --git a/ui/src/ui/controllers/config/form-utils.ts b/ui/src/ui/controllers/config/form-utils.ts index e0a88eb3ad90..d178c71d8020 100644 --- a/ui/src/ui/controllers/config/form-utils.ts +++ b/ui/src/ui/controllers/config/form-utils.ts @@ -1,3 +1,4 @@ +// Control UI controller manages form utils gateway state. import JSON5 from "json5"; export function cloneConfigObject(value: T): T { diff --git a/ui/src/ui/controllers/control-ui-bootstrap.ts b/ui/src/ui/controllers/control-ui-bootstrap.ts index 4523ce8c3a1e..ef761e61578a 100644 --- a/ui/src/ui/controllers/control-ui-bootstrap.ts +++ b/ui/src/ui/controllers/control-ui-bootstrap.ts @@ -1,3 +1,4 @@ +// Control UI controller manages control ui bootstrap gateway state. import { CONTROL_UI_BOOTSTRAP_CONFIG_PATH, type ControlUiBootstrapConfig, diff --git a/ui/src/ui/controllers/cron-filters.test.ts b/ui/src/ui/controllers/cron-filters.test.ts index caa9ac9a9bb3..f2cdf9cf348a 100644 --- a/ui/src/ui/controllers/cron-filters.test.ts +++ b/ui/src/ui/controllers/cron-filters.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover cron filters behavior. import { describe, expect, it } from "vitest"; import type { CronJob } from "../types.ts"; import { getVisibleCronJobs } from "./cron.ts"; diff --git a/ui/src/ui/controllers/cron.test.ts b/ui/src/ui/controllers/cron.test.ts index 476cfefd6598..6219fec4c54f 100644 --- a/ui/src/ui/controllers/cron.test.ts +++ b/ui/src/ui/controllers/cron.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover cron behavior. import { describe, expect, it, vi } from "vitest"; import { DEFAULT_CRON_FORM } from "../app-defaults.ts"; import { diff --git a/ui/src/ui/controllers/cron.ts b/ui/src/ui/controllers/cron.ts index feba735729fd..95a83968cdd4 100644 --- a/ui/src/ui/controllers/cron.ts +++ b/ui/src/ui/controllers/cron.ts @@ -1,3 +1,4 @@ +// Control UI controller manages cron gateway state. import { t } from "../../i18n/index.ts"; import { DEFAULT_CRON_FORM } from "../app-defaults.ts"; import { getCronJobPayload, hasCronJobPayload } from "../cron-payload.ts"; diff --git a/ui/src/ui/controllers/debug.ts b/ui/src/ui/controllers/debug.ts index b4dfa7ade4db..4e66b93303b8 100644 --- a/ui/src/ui/controllers/debug.ts +++ b/ui/src/ui/controllers/debug.ts @@ -1,3 +1,4 @@ +// Control UI controller manages debug gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { HealthSnapshot, StatusSummary } from "../types.ts"; diff --git a/ui/src/ui/controllers/devices.ts b/ui/src/ui/controllers/devices.ts index fa14d7caace1..82c85dd7dafe 100644 --- a/ui/src/ui/controllers/devices.ts +++ b/ui/src/ui/controllers/devices.ts @@ -1,3 +1,4 @@ +// Control UI controller manages devices gateway state. import { clearDeviceAuthToken, storeDeviceAuthToken } from "../device-auth.ts"; import { loadOrCreateDeviceIdentity } from "../device-identity.ts"; import type { GatewayBrowserClient } from "../gateway.ts"; diff --git a/ui/src/ui/controllers/dreaming.test.ts b/ui/src/ui/controllers/dreaming.test.ts index e55758b1b4ba..f42db042a765 100644 --- a/ui/src/ui/controllers/dreaming.test.ts +++ b/ui/src/ui/controllers/dreaming.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover dreaming behavior. import { describe, expect, it, vi } from "vitest"; import { backfillDreamDiary, diff --git a/ui/src/ui/controllers/dreaming.ts b/ui/src/ui/controllers/dreaming.ts index 512d7fb8679f..ca00a1f677e3 100644 --- a/ui/src/ui/controllers/dreaming.ts +++ b/ui/src/ui/controllers/dreaming.ts @@ -1,3 +1,4 @@ +// Control UI controller manages dreaming gateway state. import type { GatewayBrowserClient, GatewayHelloOk } from "../gateway.ts"; import { isPluginEnabledInConfigSnapshot } from "../plugin-activation.ts"; import type { ConfigSnapshot } from "../types.ts"; diff --git a/ui/src/ui/controllers/exec-approval.test.ts b/ui/src/ui/controllers/exec-approval.test.ts index 1d5fef06b1f3..db5cf7698e9c 100644 --- a/ui/src/ui/controllers/exec-approval.test.ts +++ b/ui/src/ui/controllers/exec-approval.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover exec approval behavior. import { describe, expect, it, vi } from "vitest"; import { addExecApproval, diff --git a/ui/src/ui/controllers/exec-approval.ts b/ui/src/ui/controllers/exec-approval.ts index d8f6b6f2a511..385cb7502056 100644 --- a/ui/src/ui/controllers/exec-approval.ts +++ b/ui/src/ui/controllers/exec-approval.ts @@ -1,3 +1,4 @@ +// Control UI controller manages exec approval gateway state. import { normalizeOptionalString } from "../string-coerce.ts"; export type ExecApprovalRequestPayload = { diff --git a/ui/src/ui/controllers/exec-approvals.ts b/ui/src/ui/controllers/exec-approvals.ts index 5ad5e01b0d2a..c1974238e962 100644 --- a/ui/src/ui/controllers/exec-approvals.ts +++ b/ui/src/ui/controllers/exec-approvals.ts @@ -1,3 +1,4 @@ +// Control UI controller manages exec approvals gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import { cloneConfigObject, removePathValue, setPathValue } from "./config/form-utils.ts"; diff --git a/ui/src/ui/controllers/health.ts b/ui/src/ui/controllers/health.ts index b077794d67af..8312a6e6e686 100644 --- a/ui/src/ui/controllers/health.ts +++ b/ui/src/ui/controllers/health.ts @@ -1,3 +1,4 @@ +// Control UI controller manages health gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { HealthSummary } from "../types.ts"; diff --git a/ui/src/ui/controllers/logs.test.ts b/ui/src/ui/controllers/logs.test.ts index 837f23c048f8..7b111d478786 100644 --- a/ui/src/ui/controllers/logs.test.ts +++ b/ui/src/ui/controllers/logs.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover logs behavior. import { describe, expect, it } from "vitest"; import { parseLogLine } from "./logs.ts"; diff --git a/ui/src/ui/controllers/logs.ts b/ui/src/ui/controllers/logs.ts index df3e0017ebdb..85d23f5f6559 100644 --- a/ui/src/ui/controllers/logs.ts +++ b/ui/src/ui/controllers/logs.ts @@ -1,3 +1,4 @@ +// Control UI controller manages logs gateway state. import { stripAnsi } from "../../../../packages/terminal-core/src/ansi.js"; import type { GatewayBrowserClient } from "../gateway.ts"; import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; diff --git a/ui/src/ui/controllers/model-auth-status.ts b/ui/src/ui/controllers/model-auth-status.ts index 3817384e7585..6a56c40e08aa 100644 --- a/ui/src/ui/controllers/model-auth-status.ts +++ b/ui/src/ui/controllers/model-auth-status.ts @@ -1,3 +1,4 @@ +// Control UI controller manages model auth status gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { ModelAuthStatusResult } from "../types.ts"; diff --git a/ui/src/ui/controllers/models.test.ts b/ui/src/ui/controllers/models.test.ts index b54b395d3f3d..d781af5e2b69 100644 --- a/ui/src/ui/controllers/models.test.ts +++ b/ui/src/ui/controllers/models.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover models behavior. import { describe, expect, it, vi } from "vitest"; import type { GatewayBrowserClient } from "../gateway.ts"; import { loadModels } from "./models.ts"; diff --git a/ui/src/ui/controllers/models.ts b/ui/src/ui/controllers/models.ts index 54cca382583f..0412a59e3654 100644 --- a/ui/src/ui/controllers/models.ts +++ b/ui/src/ui/controllers/models.ts @@ -1,3 +1,4 @@ +// Control UI controller manages models gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { ModelCatalogEntry } from "../types.ts"; diff --git a/ui/src/ui/controllers/nodes.ts b/ui/src/ui/controllers/nodes.ts index 8a3b6ff105de..469b16b268ce 100644 --- a/ui/src/ui/controllers/nodes.ts +++ b/ui/src/ui/controllers/nodes.ts @@ -1,3 +1,4 @@ +// Control UI controller manages nodes gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; export type NodesState = { diff --git a/ui/src/ui/controllers/presence.ts b/ui/src/ui/controllers/presence.ts index dfd152481e08..5ea530dbbdbd 100644 --- a/ui/src/ui/controllers/presence.ts +++ b/ui/src/ui/controllers/presence.ts @@ -1,3 +1,4 @@ +// Control UI controller manages presence gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { PresenceEntry } from "../types.ts"; import { diff --git a/ui/src/ui/controllers/scope-errors.ts b/ui/src/ui/controllers/scope-errors.ts index 33df80fe71f8..e14ec9bff99f 100644 --- a/ui/src/ui/controllers/scope-errors.ts +++ b/ui/src/ui/controllers/scope-errors.ts @@ -1,3 +1,4 @@ +// Control UI controller manages scope errors gateway state. import { ConnectErrorDetailCodes } from "../../../../packages/gateway-protocol/src/connect-error-details.js"; import { GatewayRequestError, resolveGatewayErrorDetailCode } from "../gateway.ts"; diff --git a/ui/src/ui/controllers/sessions.test.ts b/ui/src/ui/controllers/sessions.test.ts index b2d94872b9bc..81d4a27cdfc9 100644 --- a/ui/src/ui/controllers/sessions.test.ts +++ b/ui/src/ui/controllers/sessions.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover sessions behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { isSessionRunActive } from "../session-run-state.ts"; import { diff --git a/ui/src/ui/controllers/sessions.ts b/ui/src/ui/controllers/sessions.ts index 01e57bf091bf..b4b9d1e84d92 100644 --- a/ui/src/ui/controllers/sessions.ts +++ b/ui/src/ui/controllers/sessions.ts @@ -1,3 +1,4 @@ +// Control UI controller manages sessions gateway state. import { reconcileChatRunFromCurrentSessionRow, reconcileChatRunFromSessionRow, diff --git a/ui/src/ui/controllers/skill-workshop.ts b/ui/src/ui/controllers/skill-workshop.ts index bb5cd5d8b307..7f8ccdf1520e 100644 --- a/ui/src/ui/controllers/skill-workshop.ts +++ b/ui/src/ui/controllers/skill-workshop.ts @@ -1,3 +1,4 @@ +// Control UI controller manages skill workshop gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { SkillWorkshopAction, diff --git a/ui/src/ui/controllers/skills.test.ts b/ui/src/ui/controllers/skills.test.ts index 2080f3ead17a..b09bd2afbbea 100644 --- a/ui/src/ui/controllers/skills.test.ts +++ b/ui/src/ui/controllers/skills.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover skills behavior. import { describe, expect, it, vi } from "vitest"; import { installSkill, diff --git a/ui/src/ui/controllers/skills.ts b/ui/src/ui/controllers/skills.ts index f18f36b61851..f94ecf80bf40 100644 --- a/ui/src/ui/controllers/skills.ts +++ b/ui/src/ui/controllers/skills.ts @@ -1,3 +1,4 @@ +// Control UI controller manages skills gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { SkillClawHubLink, SkillStatusEntry, SkillStatusReport } from "../types.ts"; diff --git a/ui/src/ui/controllers/usage.ts b/ui/src/ui/controllers/usage.ts index b005f66ceba2..9ac0299c120b 100644 --- a/ui/src/ui/controllers/usage.ts +++ b/ui/src/ui/controllers/usage.ts @@ -1,3 +1,4 @@ +// Control UI controller manages usage gateway state. import { getSafeLocalStorage } from "../../local-storage.ts"; import type { GatewayBrowserClient } from "../gateway.ts"; import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; diff --git a/ui/src/ui/controllers/workboard.test.ts b/ui/src/ui/controllers/workboard.test.ts index 1bd785d85330..30fc6e176bdc 100644 --- a/ui/src/ui/controllers/workboard.test.ts +++ b/ui/src/ui/controllers/workboard.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover workboard behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import type { GatewaySessionRow } from "../types.ts"; import { diff --git a/ui/src/ui/controllers/workboard.ts b/ui/src/ui/controllers/workboard.ts index c7ee09d25bce..12019103a65f 100644 --- a/ui/src/ui/controllers/workboard.ts +++ b/ui/src/ui/controllers/workboard.ts @@ -1,3 +1,4 @@ +// Control UI controller manages workboard gateway state. import type { GatewayBrowserClient } from "../gateway.ts"; import type { GatewaySessionRow } from "../types.ts"; diff --git a/ui/src/ui/cron-payload.ts b/ui/src/ui/cron-payload.ts index 75d292c11055..18dc8d0ec884 100644 --- a/ui/src/ui/cron-payload.ts +++ b/ui/src/ui/cron-payload.ts @@ -1,3 +1,4 @@ +// Control UI module implements cron payload behavior. import type { CronJob, CronPayload } from "./types.ts"; function isRecord(value: unknown): value is Record { diff --git a/ui/src/ui/cron-status.ts b/ui/src/ui/cron-status.ts index 1d9d00eef513..f6b17bf571be 100644 --- a/ui/src/ui/cron-status.ts +++ b/ui/src/ui/cron-status.ts @@ -1,3 +1,4 @@ +// Control UI module implements cron status behavior. import type { CronJob, CronRunStatus } from "./types.ts"; export type CronJobLastRunStatus = CronRunStatus | "unknown"; diff --git a/ui/src/ui/custom-theme.test.ts b/ui/src/ui/custom-theme.test.ts index 3a9787690fc0..da42d5d2b8ba 100644 --- a/ui/src/ui/custom-theme.test.ts +++ b/ui/src/ui/custom-theme.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover custom theme behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { createImportedCustomThemeFixture as createImportedTheme, diff --git a/ui/src/ui/custom-theme.ts b/ui/src/ui/custom-theme.ts index 1f9af862d235..6e595d2815ee 100644 --- a/ui/src/ui/custom-theme.ts +++ b/ui/src/ui/custom-theme.ts @@ -1,3 +1,4 @@ +// Control UI module implements custom theme behavior. import { z } from "zod"; import { normalizeOptionalString } from "./string-coerce.ts"; diff --git a/ui/src/ui/device-auth.ts b/ui/src/ui/device-auth.ts index 1238a859f1ce..7e588f07e4c4 100644 --- a/ui/src/ui/device-auth.ts +++ b/ui/src/ui/device-auth.ts @@ -1,3 +1,4 @@ +// Control UI module implements device auth behavior. import { clearDeviceAuthTokenFromStore, type DeviceAuthEntry, diff --git a/ui/src/ui/device-identity.ts b/ui/src/ui/device-identity.ts index ff20c68649e4..d40e01c0abdb 100644 --- a/ui/src/ui/device-identity.ts +++ b/ui/src/ui/device-identity.ts @@ -1,3 +1,4 @@ +// Control UI module implements device identity behavior. import { getPublicKeyAsync, signAsync, utils } from "@noble/ed25519"; import { getSafeLocalStorage } from "../local-storage.ts"; diff --git a/ui/src/ui/e2e/chat-flow.e2e.test.ts b/ui/src/ui/e2e/chat-flow.e2e.test.ts index ee989fb2e0c7..1aad14531d7d 100644 --- a/ui/src/ui/e2e/chat-flow.e2e.test.ts +++ b/ui/src/ui/e2e/chat-flow.e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat flow behavior. import { chromium, type Browser, type Page } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; import { diff --git a/ui/src/ui/e2e/chat-picker-pagination.e2e.test.ts b/ui/src/ui/e2e/chat-picker-pagination.e2e.test.ts index e56ce6548547..1ec241517a8b 100644 --- a/ui/src/ui/e2e/chat-picker-pagination.e2e.test.ts +++ b/ui/src/ui/e2e/chat-picker-pagination.e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover chat picker pagination behavior. import { chromium, type Browser } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; import { diff --git a/ui/src/ui/e2e/cron-filters.e2e.test.ts b/ui/src/ui/e2e/cron-filters.e2e.test.ts index 78cba5357f30..f3d622da0576 100644 --- a/ui/src/ui/e2e/cron-filters.e2e.test.ts +++ b/ui/src/ui/e2e/cron-filters.e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover cron filters behavior. import { chromium, type Browser, type Page } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; import { diff --git a/ui/src/ui/e2e/workboard-status-persistence.e2e.test.ts b/ui/src/ui/e2e/workboard-status-persistence.e2e.test.ts index bc69e25b2069..fd68564d8634 100644 --- a/ui/src/ui/e2e/workboard-status-persistence.e2e.test.ts +++ b/ui/src/ui/e2e/workboard-status-persistence.e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover workboard status persistence behavior. import { mkdir } from "node:fs/promises"; import path from "node:path"; import { chromium, type Browser, type Locator, type Page } from "playwright"; diff --git a/ui/src/ui/e2e/workboard.e2e.test.ts b/ui/src/ui/e2e/workboard.e2e.test.ts index 4ab4ce4457b8..4e2113a8d372 100644 --- a/ui/src/ui/e2e/workboard.e2e.test.ts +++ b/ui/src/ui/e2e/workboard.e2e.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover workboard behavior. import { copyFile, mkdir, rm, writeFile } from "node:fs/promises"; import path from "node:path"; import { chromium, type Browser, type BrowserContext, type Page } from "playwright"; diff --git a/ui/src/ui/embed-sandbox.ts b/ui/src/ui/embed-sandbox.ts index b7ff77f576b8..f44df4227207 100644 --- a/ui/src/ui/embed-sandbox.ts +++ b/ui/src/ui/embed-sandbox.ts @@ -1,3 +1,4 @@ +// Control UI module implements embed sandbox behavior. import type { ControlUiEmbedSandboxMode } from "../../../src/gateway/control-ui-contract.js"; export type EmbedSandboxMode = ControlUiEmbedSandboxMode; diff --git a/ui/src/ui/external-link.test.ts b/ui/src/ui/external-link.test.ts index 3c46c7faa30d..e80f1af02b60 100644 --- a/ui/src/ui/external-link.test.ts +++ b/ui/src/ui/external-link.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover external link behavior. import { describe, expect, it } from "vitest"; import { buildExternalLinkRel } from "./external-link.ts"; diff --git a/ui/src/ui/external-link.ts b/ui/src/ui/external-link.ts index e765d4404d35..e155b964f6b7 100644 --- a/ui/src/ui/external-link.ts +++ b/ui/src/ui/external-link.ts @@ -1,3 +1,4 @@ +// Control UI module implements external link behavior. import { normalizeOptionalLowercaseString } from "./string-coerce.ts"; const REQUIRED_EXTERNAL_REL_TOKENS = ["noopener", "noreferrer"] as const; diff --git a/ui/src/ui/form-controls.browser.test.ts b/ui/src/ui/form-controls.browser.test.ts index 0e6bef2fbd25..bbe5086e8c75 100644 --- a/ui/src/ui/form-controls.browser.test.ts +++ b/ui/src/ui/form-controls.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover form controls behavior. import { existsSync } from "node:fs"; import { chromium, type Browser, type Page } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; diff --git a/ui/src/ui/format.test.ts b/ui/src/ui/format.test.ts index baf5ce938d08..365b8a29abc2 100644 --- a/ui/src/ui/format.test.ts +++ b/ui/src/ui/format.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover format behavior. import { describe, expect, it } from "vitest"; import { formatDateTimeMs, diff --git a/ui/src/ui/format.ts b/ui/src/ui/format.ts index d8aed7210410..0cc5762a7f14 100644 --- a/ui/src/ui/format.ts +++ b/ui/src/ui/format.ts @@ -1,3 +1,4 @@ +// Control UI module implements format behavior. import { asDateTimestampMs } from "@openclaw/normalization-core/number-coercion"; import { formatDurationHuman } from "../../../src/infra/format-time/format-duration.ts"; import { formatRelativeTimestamp } from "../../../src/infra/format-time/format-relative.ts"; diff --git a/ui/src/ui/gateway.ts b/ui/src/ui/gateway.ts index ce422243d8c2..1f2a0749570b 100644 --- a/ui/src/ui/gateway.ts +++ b/ui/src/ui/gateway.ts @@ -1,3 +1,4 @@ +// Control UI module implements gateway behavior. import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES, diff --git a/ui/src/ui/icons.ts b/ui/src/ui/icons.ts index d543fdeae557..fe1f60585740 100644 --- a/ui/src/ui/icons.ts +++ b/ui/src/ui/icons.ts @@ -1,3 +1,4 @@ +// Control UI module implements icons behavior. import { html, type TemplateResult } from "lit"; // Lucide-style SVG icons diff --git a/ui/src/ui/lazy-view.browser.test.ts b/ui/src/ui/lazy-view.browser.test.ts index 793fd0b3b735..f0e6752450f6 100644 --- a/ui/src/ui/lazy-view.browser.test.ts +++ b/ui/src/ui/lazy-view.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover lazy view behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { createLazyView, renderLazyView } from "./lazy-view.ts"; diff --git a/ui/src/ui/lazy-view.ts b/ui/src/ui/lazy-view.ts index 0e07bf6edf64..db73f73a1653 100644 --- a/ui/src/ui/lazy-view.ts +++ b/ui/src/ui/lazy-view.ts @@ -1,3 +1,4 @@ +// Control UI module implements lazy view behavior. import { html } from "lit"; import { t } from "../i18n/index.ts"; diff --git a/ui/src/ui/markdown.test.ts b/ui/src/ui/markdown.test.ts index fc804440aab8..6d65c361de4e 100644 --- a/ui/src/ui/markdown.test.ts +++ b/ui/src/ui/markdown.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover markdown behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { i18n } from "../i18n/index.ts"; diff --git a/ui/src/ui/markdown.ts b/ui/src/ui/markdown.ts index 3deb134a1b1b..efd0c409387a 100644 --- a/ui/src/ui/markdown.ts +++ b/ui/src/ui/markdown.ts @@ -1,3 +1,4 @@ +// Control UI module implements markdown behavior. import DOMPurify from "dompurify"; import hljs from "highlight.js/lib/core"; import bash from "highlight.js/lib/languages/bash"; diff --git a/ui/src/ui/model-auth-helpers.ts b/ui/src/ui/model-auth-helpers.ts index 2409ce8d6910..397a49767175 100644 --- a/ui/src/ui/model-auth-helpers.ts +++ b/ui/src/ui/model-auth-helpers.ts @@ -1,3 +1,4 @@ +// Control UI module implements model auth helpers behavior. import type { ModelAuthStatusProvider } from "./types.ts"; /** diff --git a/ui/src/ui/mount-fallback.test.ts b/ui/src/ui/mount-fallback.test.ts index 506e9c34bfd9..1e82b1fc204f 100644 --- a/ui/src/ui/mount-fallback.test.ts +++ b/ui/src/ui/mount-fallback.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover mount fallback behavior. import { readFile } from "node:fs/promises"; import path from "node:path"; import { afterEach, describe, expect, it } from "vitest"; diff --git a/ui/src/ui/navigation-groups.test.ts b/ui/src/ui/navigation-groups.test.ts index 6e467d1fdf54..f46e9c0886a3 100644 --- a/ui/src/ui/navigation-groups.test.ts +++ b/ui/src/ui/navigation-groups.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover navigation groups behavior. import { describe, expect, it } from "vitest"; import { SETTINGS_TABS, diff --git a/ui/src/ui/navigation.browser.test.ts b/ui/src/ui/navigation.browser.test.ts index 0b1e136d91bf..023189aadb5b 100644 --- a/ui/src/ui/navigation.browser.test.ts +++ b/ui/src/ui/navigation.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover navigation behavior. import { describe, expect, it, vi } from "vitest"; import { mountApp as mountTestApp, registerAppMountHooks } from "./test-helpers/app-mount.ts"; diff --git a/ui/src/ui/navigation.test.ts b/ui/src/ui/navigation.test.ts index 02edd06b1d54..7924dc3e7b7d 100644 --- a/ui/src/ui/navigation.test.ts +++ b/ui/src/ui/navigation.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover navigation behavior. import { describe, expect, it } from "vitest"; import { TAB_GROUPS, diff --git a/ui/src/ui/navigation.ts b/ui/src/ui/navigation.ts index 532651158c6e..8cc40192cf5e 100644 --- a/ui/src/ui/navigation.ts +++ b/ui/src/ui/navigation.ts @@ -1,3 +1,4 @@ +// Control UI module implements navigation behavior. import { t } from "../i18n/index.ts"; import type { IconName } from "./icons.js"; import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; diff --git a/ui/src/ui/open-external-url.test.ts b/ui/src/ui/open-external-url.test.ts index 4870fa8a6e93..fc93a0fbdf5b 100644 --- a/ui/src/ui/open-external-url.test.ts +++ b/ui/src/ui/open-external-url.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover open external url behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { openExternalUrlSafe, resolveSafeExternalUrl } from "./open-external-url.ts"; diff --git a/ui/src/ui/open-external-url.ts b/ui/src/ui/open-external-url.ts index c2bfa95978dc..46e3869d700e 100644 --- a/ui/src/ui/open-external-url.ts +++ b/ui/src/ui/open-external-url.ts @@ -1,3 +1,4 @@ +// Control UI module implements open external url behavior. import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; const DATA_URL_PREFIX = "data:"; diff --git a/ui/src/ui/plugin-activation.test.ts b/ui/src/ui/plugin-activation.test.ts index 36779cf133ae..02725581a181 100644 --- a/ui/src/ui/plugin-activation.test.ts +++ b/ui/src/ui/plugin-activation.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover plugin activation behavior. import { describe, expect, it } from "vitest"; import { isPluginEnabledInConfigSnapshot } from "./plugin-activation.ts"; diff --git a/ui/src/ui/plugin-activation.ts b/ui/src/ui/plugin-activation.ts index b2a36f33e813..70fc64975fa7 100644 --- a/ui/src/ui/plugin-activation.ts +++ b/ui/src/ui/plugin-activation.ts @@ -1,3 +1,4 @@ +// Control UI module implements plugin activation behavior. import type { ConfigSnapshot } from "./types.ts"; type PluginActivationOptions = { diff --git a/ui/src/ui/presenter.test.ts b/ui/src/ui/presenter.test.ts index 19e4f4d9ecf1..6b5473214068 100644 --- a/ui/src/ui/presenter.test.ts +++ b/ui/src/ui/presenter.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover presenter behavior. import { describe, expect, it } from "vitest"; import { formatNextRun } from "./presenter.ts"; diff --git a/ui/src/ui/presenter.ts b/ui/src/ui/presenter.ts index 95aa981400ef..314dc6e87283 100644 --- a/ui/src/ui/presenter.ts +++ b/ui/src/ui/presenter.ts @@ -1,3 +1,4 @@ +// Control UI module implements presenter behavior. import { t } from "../i18n/index.ts"; import { resolveCronJobLastRunStatus } from "./cron-status.ts"; import { diff --git a/ui/src/ui/provider-quota-summary.test.ts b/ui/src/ui/provider-quota-summary.test.ts index 728c2ac8bbb8..d1845c9b36f3 100644 --- a/ui/src/ui/provider-quota-summary.test.ts +++ b/ui/src/ui/provider-quota-summary.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover provider quota summary behavior. import { afterEach, describe, expect, it, vi } from "vitest"; import { formatQuotaReset } from "./provider-quota-summary.ts"; diff --git a/ui/src/ui/provider-quota-summary.ts b/ui/src/ui/provider-quota-summary.ts index 89e6a319989f..e72904509238 100644 --- a/ui/src/ui/provider-quota-summary.ts +++ b/ui/src/ui/provider-quota-summary.ts @@ -1,3 +1,4 @@ +// Control UI module implements provider quota summary behavior. import { asDateTimestampMs } from "@openclaw/normalization-core/number-coercion"; import type { ModelAuthStatusProvider, ModelAuthStatusResult } from "./types.ts"; diff --git a/ui/src/ui/public-assets.test.ts b/ui/src/ui/public-assets.test.ts index 7d1a310ef8ad..8922cbc07b44 100644 --- a/ui/src/ui/public-assets.test.ts +++ b/ui/src/ui/public-assets.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover public assets behavior. import { describe, expect, it } from "vitest"; import { controlUiPublicAssetPath, inferControlUiPublicAssetPath } from "./public-assets.ts"; diff --git a/ui/src/ui/public-assets.ts b/ui/src/ui/public-assets.ts index 6ccd78ab7d48..0e0aafeabb85 100644 --- a/ui/src/ui/public-assets.ts +++ b/ui/src/ui/public-assets.ts @@ -1,3 +1,4 @@ +// Control UI module implements public assets behavior. import { inferBasePathFromPathname, normalizeBasePath } from "./navigation.ts"; export type ControlUiPublicAsset = diff --git a/ui/src/ui/push-subscription.ts b/ui/src/ui/push-subscription.ts index 17dec2dfeffd..bf3bad44f304 100644 --- a/ui/src/ui/push-subscription.ts +++ b/ui/src/ui/push-subscription.ts @@ -1,3 +1,4 @@ +// Control UI module implements push subscription behavior. import type { GatewayBrowserClient } from "./gateway.ts"; export type WebPushState = { diff --git a/ui/src/ui/realtime-talk-google-live.test.ts b/ui/src/ui/realtime-talk-google-live.test.ts index 534755cc21a8..c4746290deaf 100644 --- a/ui/src/ui/realtime-talk-google-live.test.ts +++ b/ui/src/ui/realtime-talk-google-live.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover realtime talk google live behavior. import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { buildGoogleLiveUrl, diff --git a/ui/src/ui/select-options.ts b/ui/src/ui/select-options.ts index b27867189b08..dd7c692bbaf1 100644 --- a/ui/src/ui/select-options.ts +++ b/ui/src/ui/select-options.ts @@ -1,3 +1,4 @@ +// Control UI module implements select options behavior. import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; export type SelectOption = { diff --git a/ui/src/ui/service-worker-cache.test.ts b/ui/src/ui/service-worker-cache.test.ts index 1ccab79aa9c9..1239a3f118e2 100644 --- a/ui/src/ui/service-worker-cache.test.ts +++ b/ui/src/ui/service-worker-cache.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover service worker cache behavior. import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; diff --git a/ui/src/ui/session-display.ts b/ui/src/ui/session-display.ts index ee8730eaeb73..d034567ec351 100644 --- a/ui/src/ui/session-display.ts +++ b/ui/src/ui/session-display.ts @@ -1,3 +1,4 @@ +// Control UI module implements session display behavior. import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "./string-coerce.ts"; import type { SessionsListResult } from "./types.ts"; diff --git a/ui/src/ui/session-goal.test.ts b/ui/src/ui/session-goal.test.ts index 3150e269426e..c743628ce10a 100644 --- a/ui/src/ui/session-goal.test.ts +++ b/ui/src/ui/session-goal.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover session goal behavior. import { describe, expect, it } from "vitest"; import { formatGoalDetail, formatGoalSummary, formatGoalTokenCount } from "./session-goal.ts"; import type { SessionGoal } from "./types.ts"; diff --git a/ui/src/ui/session-goal.ts b/ui/src/ui/session-goal.ts index b20dfbcd3df8..9c0f565c3c5e 100644 --- a/ui/src/ui/session-goal.ts +++ b/ui/src/ui/session-goal.ts @@ -1,3 +1,4 @@ +// Control UI module implements session goal behavior. import type { SessionGoal } from "./types.ts"; export function formatGoalTokenCount(value: number): string { diff --git a/ui/src/ui/session-key.ts b/ui/src/ui/session-key.ts index ebb856d49bdc..258f07ca26c9 100644 --- a/ui/src/ui/session-key.ts +++ b/ui/src/ui/session-key.ts @@ -1,3 +1,4 @@ +// Control UI module implements session key behavior. import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, diff --git a/ui/src/ui/session-run-state.test.ts b/ui/src/ui/session-run-state.test.ts index 4a524bbe63c3..8e46ac60235e 100644 --- a/ui/src/ui/session-run-state.test.ts +++ b/ui/src/ui/session-run-state.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover session run state behavior. import { describe, expect, it } from "vitest"; import { isSessionRunActive } from "./session-run-state.ts"; diff --git a/ui/src/ui/session-run-state.ts b/ui/src/ui/session-run-state.ts index 46512744e30b..539e22e1fdd9 100644 --- a/ui/src/ui/session-run-state.ts +++ b/ui/src/ui/session-run-state.ts @@ -1,3 +1,4 @@ +// Control UI module implements session run state behavior. import type { SessionRunStatus } from "./types.ts"; type SessionRunState = { diff --git a/ui/src/ui/sidebar-content.ts b/ui/src/ui/sidebar-content.ts index a46b6df5130a..67c8cbd50e45 100644 --- a/ui/src/ui/sidebar-content.ts +++ b/ui/src/ui/sidebar-content.ts @@ -1,3 +1,4 @@ +// Control UI module implements sidebar content behavior. export type SidebarFullMessageRequest = { sessionKey: string; agentId?: string; diff --git a/ui/src/ui/storage.ts b/ui/src/ui/storage.ts index 3f12100d3aa1..f6f333587a2b 100644 --- a/ui/src/ui/storage.ts +++ b/ui/src/ui/storage.ts @@ -1,3 +1,4 @@ +// Control UI module implements storage behavior. const SETTINGS_KEY_PREFIX = "openclaw.control.settings.v1:"; const LEGACY_SETTINGS_KEY = "openclaw.control.settings.v1"; const LOCAL_USER_IDENTITY_KEY = "openclaw.control.user.v1"; diff --git a/ui/src/ui/string-coerce.ts b/ui/src/ui/string-coerce.ts index 4c04cf82c6ee..8eff13128775 100644 --- a/ui/src/ui/string-coerce.ts +++ b/ui/src/ui/string-coerce.ts @@ -1,3 +1,4 @@ +// Control UI module implements string coerce behavior. export { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, diff --git a/ui/src/ui/strip-thinking-tags.ts b/ui/src/ui/strip-thinking-tags.ts index 8ae24dcecdbc..c80e15518aee 100644 --- a/ui/src/ui/strip-thinking-tags.ts +++ b/ui/src/ui/strip-thinking-tags.ts @@ -1,3 +1,4 @@ +// Control UI module implements strip thinking tags behavior. import { stripAssistantInternalScaffolding } from "../../../src/shared/text/assistant-visible-text.js"; export function stripThinkingTags(value: string): string { diff --git a/ui/src/ui/test-helpers/app-mount.ts b/ui/src/ui/test-helpers/app-mount.ts index 820197166cc5..2e6e71761daf 100644 --- a/ui/src/ui/test-helpers/app-mount.ts +++ b/ui/src/ui/test-helpers/app-mount.ts @@ -1,3 +1,4 @@ +// Control UI test helper supports app mount setup. import { afterEach, beforeEach, vi } from "vitest"; import { i18n } from "../../i18n/index.ts"; import { getSafeLocalStorage, getSafeSessionStorage } from "../../local-storage.ts"; diff --git a/ui/src/ui/text-direction.test.ts b/ui/src/ui/text-direction.test.ts index ed9d22d85067..15acbe88380d 100644 --- a/ui/src/ui/text-direction.test.ts +++ b/ui/src/ui/text-direction.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover text direction behavior. import { describe, expect, it } from "vitest"; import { detectTextDirection } from "./text-direction.ts"; diff --git a/ui/src/ui/theme-transition.ts b/ui/src/ui/theme-transition.ts index 7bafe8239cd9..d8381020f2c5 100644 --- a/ui/src/ui/theme-transition.ts +++ b/ui/src/ui/theme-transition.ts @@ -1,3 +1,4 @@ +// Control UI module implements theme transition behavior. import type { ResolvedTheme } from "./theme.ts"; export type ThemeTransitionContext = { diff --git a/ui/src/ui/theme.test.ts b/ui/src/ui/theme.test.ts index b708abbf42f6..f3f573efbe72 100644 --- a/ui/src/ui/theme.test.ts +++ b/ui/src/ui/theme.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover theme behavior. import { describe, expect, it, vi } from "vitest"; import { parseThemeSelection, resolveSystemTheme, resolveTheme } from "./theme.ts"; diff --git a/ui/src/ui/theme.ts b/ui/src/ui/theme.ts index 373acca0fdfb..1ac764ebc449 100644 --- a/ui/src/ui/theme.ts +++ b/ui/src/ui/theme.ts @@ -1,3 +1,4 @@ +// Control UI module implements theme behavior. export type ThemeName = "claw" | "knot" | "dash" | "custom"; export type ThemeMode = "system" | "light" | "dark"; export type ResolvedTheme = diff --git a/ui/src/ui/thinking-labels.ts b/ui/src/ui/thinking-labels.ts index b586fcf19777..65d3b99465cb 100644 --- a/ui/src/ui/thinking-labels.ts +++ b/ui/src/ui/thinking-labels.ts @@ -1,3 +1,4 @@ +// Control UI module implements thinking labels behavior. import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; import { normalizeThinkLevel } from "./thinking.ts"; diff --git a/ui/src/ui/thinking.ts b/ui/src/ui/thinking.ts index a51c424a447a..135bf4be511a 100644 --- a/ui/src/ui/thinking.ts +++ b/ui/src/ui/thinking.ts @@ -1,3 +1,4 @@ +// Control UI module implements thinking behavior. import { normalizeLowercaseStringOrEmpty } from "./string-coerce.ts"; export type ThinkingCatalogEntry = { diff --git a/ui/src/ui/tool-display.ts b/ui/src/ui/tool-display.ts index d5cb81d55f18..dba2e7ff7a8f 100644 --- a/ui/src/ui/tool-display.ts +++ b/ui/src/ui/tool-display.ts @@ -1,3 +1,4 @@ +// Control UI module implements tool display behavior. import SHARED_TOOL_DISPLAY_JSON from "../../../apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/tool-display.json" with { type: "json" }; import { defaultTitle, diff --git a/ui/src/ui/types.ts b/ui/src/ui/types.ts index 8857627d810c..2333f789677f 100644 --- a/ui/src/ui/types.ts +++ b/ui/src/ui/types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define types contracts. export type UpdateAvailable = import("../../../src/infra/update-startup.js").UpdateAvailable; import type { SessionGoal } from "../../../src/config/sessions/types.js"; import type { CronJobBase } from "../../../src/cron/types-shared.js"; diff --git a/ui/src/ui/ui-types.ts b/ui/src/ui/ui-types.ts index b3ef1fe87b07..186602cbc1c3 100644 --- a/ui/src/ui/ui-types.ts +++ b/ui/src/ui/ui-types.ts @@ -1,3 +1,4 @@ +// Control UI module implements ui types behavior. export type ChatAttachment = { id: string; dataUrl?: string; diff --git a/ui/src/ui/usage-cache-status.ts b/ui/src/ui/usage-cache-status.ts index d036a14aa18a..ff72e9d97700 100644 --- a/ui/src/ui/usage-cache-status.ts +++ b/ui/src/ui/usage-cache-status.ts @@ -1,3 +1,4 @@ +// Control UI module implements usage cache status behavior. import { t } from "../i18n/index.ts"; import type { SessionsUsageResult } from "./usage-types.ts"; diff --git a/ui/src/ui/usage-helpers.ts b/ui/src/ui/usage-helpers.ts index f0821e99029c..3f2c9954fd42 100644 --- a/ui/src/ui/usage-helpers.ts +++ b/ui/src/ui/usage-helpers.ts @@ -1,3 +1,4 @@ +// Control UI module implements usage helpers behavior. export type UsageQueryTerm = { key?: string; value: string; diff --git a/ui/src/ui/usage-types.ts b/ui/src/ui/usage-types.ts index 81dd6705f2f0..3a45b1ae7b11 100644 --- a/ui/src/ui/usage-types.ts +++ b/ui/src/ui/usage-types.ts @@ -1,3 +1,4 @@ +// Control UI module implements usage types behavior. import type { SessionUsageTimePoint as SharedSessionUsageTimePoint, SessionUsageTimeSeries as SharedSessionUsageTimeSeries, diff --git a/ui/src/ui/user-identity.test.ts b/ui/src/ui/user-identity.test.ts index ceea6dd4ab3d..56a6cd901a7e 100644 --- a/ui/src/ui/user-identity.test.ts +++ b/ui/src/ui/user-identity.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover user identity behavior. import { describe, expect, it } from "vitest"; import { normalizeLocalUserIdentity, diff --git a/ui/src/ui/user-identity.ts b/ui/src/ui/user-identity.ts index bb6a256df904..315836097bbb 100644 --- a/ui/src/ui/user-identity.ts +++ b/ui/src/ui/user-identity.ts @@ -1,3 +1,4 @@ +// Control UI module implements user identity behavior. import { coerceIdentityValue } from "../../../src/shared/assistant-identity-values.js"; import { normalizeOptionalString } from "./string-coerce.ts"; import { diff --git a/ui/src/ui/uuid.test.ts b/ui/src/ui/uuid.test.ts index e209c1ef5207..9218016c47ae 100644 --- a/ui/src/ui/uuid.test.ts +++ b/ui/src/ui/uuid.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover uuid behavior. import { describe, expect, it, vi } from "vitest"; import { generateUUID } from "./uuid.ts"; diff --git a/ui/src/ui/uuid.ts b/ui/src/ui/uuid.ts index ffa1c8ff4b90..4534aef9a7ac 100644 --- a/ui/src/ui/uuid.ts +++ b/ui/src/ui/uuid.ts @@ -1,3 +1,4 @@ +// Control UI module implements uuid behavior. type CryptoLike = { randomUUID?: (() => string) | undefined; getRandomValues?: (>(array: T) => T) | undefined; diff --git a/ui/src/ui/views/activity.ts b/ui/src/ui/views/activity.ts index 484620a79d41..6df29dfc4212 100644 --- a/ui/src/ui/views/activity.ts +++ b/ui/src/ui/views/activity.ts @@ -1,3 +1,4 @@ +// Control UI view renders activity screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { ActivityEntry, ActivityStatus } from "../activity-model.ts"; diff --git a/ui/src/ui/views/agents-panels-overview.ts b/ui/src/ui/views/agents-panels-overview.ts index 4fa5d03e184b..037eb62c8978 100644 --- a/ui/src/ui/views/agents-panels-overview.ts +++ b/ui/src/ui/views/agents-panels-overview.ts @@ -1,3 +1,4 @@ +// Control UI view renders agents panels overview screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { diff --git a/ui/src/ui/views/agents-panels-status-files.ts b/ui/src/ui/views/agents-panels-status-files.ts index 53f1c858fe8b..3dcb8e47b638 100644 --- a/ui/src/ui/views/agents-panels-status-files.ts +++ b/ui/src/ui/views/agents-panels-status-files.ts @@ -1,3 +1,4 @@ +// Control UI view renders agents panels status files screen content. import { applyPreviewTheme } from "@create-markdown/preview"; import DOMPurify from "dompurify"; import { html, nothing } from "lit"; diff --git a/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts b/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts index 66db3f1f2bd8..f0b0dc08532b 100644 --- a/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts +++ b/ui/src/ui/views/agents-panels-tools-skills.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover agents panels tools skills behavior. import { render } from "lit"; import { describe, expect, it } from "vitest"; import { renderAgentTools } from "./agents-panels-tools-skills.ts"; diff --git a/ui/src/ui/views/agents-panels-tools-skills.ts b/ui/src/ui/views/agents-panels-tools-skills.ts index 822be894b9be..66c734b14643 100644 --- a/ui/src/ui/views/agents-panels-tools-skills.ts +++ b/ui/src/ui/views/agents-panels-tools-skills.ts @@ -1,3 +1,4 @@ +// Control UI view renders agents panels tools skills screen content. import { html, nothing } from "lit"; import { normalizeToolName } from "../../../../src/agents/tool-policy-shared.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/agents-utils.test.ts b/ui/src/ui/views/agents-utils.test.ts index 9791ffa9a4d8..497a91a1d051 100644 --- a/ui/src/ui/views/agents-utils.test.ts +++ b/ui/src/ui/views/agents-utils.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover agents utils behavior. import { describe, expect, it } from "vitest"; import { agentLogoUrl, diff --git a/ui/src/ui/views/agents-utils.ts b/ui/src/ui/views/agents-utils.ts index ad2707d1f5ec..f667986ffed0 100644 --- a/ui/src/ui/views/agents-utils.ts +++ b/ui/src/ui/views/agents-utils.ts @@ -1,3 +1,4 @@ +// Control UI view renders agents utils screen content. import { html, nothing } from "lit"; import { expandToolGroups, diff --git a/ui/src/ui/views/agents.test.ts b/ui/src/ui/views/agents.test.ts index 7d9c7297038a..2c165609d68c 100644 --- a/ui/src/ui/views/agents.test.ts +++ b/ui/src/ui/views/agents.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover agents behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { i18n, t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/agents.ts b/ui/src/ui/views/agents.ts index 82da20b8cb42..65e3c80013a8 100644 --- a/ui/src/ui/views/agents.ts +++ b/ui/src/ui/views/agents.ts @@ -1,3 +1,4 @@ +// Control UI view renders agents screen content. import { html, nothing } from "lit"; import { keyed } from "lit/directives/keyed.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/agents.types.ts b/ui/src/ui/views/agents.types.ts index c0653994edc6..c47ade0509c3 100644 --- a/ui/src/ui/views/agents.types.ts +++ b/ui/src/ui/views/agents.types.ts @@ -1 +1,2 @@ +// Control UI type declarations define agents contracts. export type AgentsPanel = "overview" | "files" | "tools" | "skills" | "channels" | "cron"; diff --git a/ui/src/ui/views/channel-config-extras.ts b/ui/src/ui/views/channel-config-extras.ts index dd2fe4c37fa2..d03b8f740b5f 100644 --- a/ui/src/ui/views/channel-config-extras.ts +++ b/ui/src/ui/views/channel-config-extras.ts @@ -1,3 +1,4 @@ +// Control UI view renders channel config extras screen content. import { t } from "../../i18n/index.ts"; export function resolveChannelConfigValue( diff --git a/ui/src/ui/views/channels.config.ts b/ui/src/ui/views/channels.config.ts index b3f475e7393b..9c4dc4d604ea 100644 --- a/ui/src/ui/views/channels.config.ts +++ b/ui/src/ui/views/channels.config.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels screen content. import { html } from "lit"; import { t } from "../../i18n/index.ts"; import type { ConfigUiHints } from "../types.ts"; diff --git a/ui/src/ui/views/channels.discord.ts b/ui/src/ui/views/channels.discord.ts index c0f9c0a94bbb..4ffdb131d2a7 100644 --- a/ui/src/ui/views/channels.discord.ts +++ b/ui/src/ui/views/channels.discord.ts @@ -1,3 +1,4 @@ +// Control UI view renders channelsiscord screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.googlechat.ts b/ui/src/ui/views/channels.googlechat.ts index 5cd5559b1433..b6157dd8842c 100644 --- a/ui/src/ui/views/channels.googlechat.ts +++ b/ui/src/ui/views/channels.googlechat.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.googlechat screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.imessage.ts b/ui/src/ui/views/channels.imessage.ts index 8ece882fb345..0a5493ebc12e 100644 --- a/ui/src/ui/views/channels.imessage.ts +++ b/ui/src/ui/views/channels.imessage.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.imessage screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.nostr.ts b/ui/src/ui/views/channels.nostr.ts index e9711354f437..e9e53d3146f1 100644 --- a/ui/src/ui/views/channels.nostr.ts +++ b/ui/src/ui/views/channels.nostr.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.nostr screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.shared.ts b/ui/src/ui/views/channels.shared.ts index c55a397b3829..6fffd690d64b 100644 --- a/ui/src/ui/views/channels.shared.ts +++ b/ui/src/ui/views/channels.shared.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.shared screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { ChannelAccountSnapshot } from "../types.ts"; diff --git a/ui/src/ui/views/channels.signal.ts b/ui/src/ui/views/channels.signal.ts index e1c931d0ed93..5d681917ce3c 100644 --- a/ui/src/ui/views/channels.signal.ts +++ b/ui/src/ui/views/channels.signal.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.signal screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.slack.ts b/ui/src/ui/views/channels.slack.ts index 785acde0024c..99d111bc7b30 100644 --- a/ui/src/ui/views/channels.slack.ts +++ b/ui/src/ui/views/channels.slack.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.slack screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.telegram.ts b/ui/src/ui/views/channels.telegram.ts index a47389344dbc..30d9994f098b 100644 --- a/ui/src/ui/views/channels.telegram.ts +++ b/ui/src/ui/views/channels.telegram.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.telegram screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.test.ts b/ui/src/ui/views/channels.test.ts index 335724b416b5..b40011c3d711 100644 --- a/ui/src/ui/views/channels.test.ts +++ b/ui/src/ui/views/channels.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover channels behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import type { WhatsAppStatus } from "../types.ts"; diff --git a/ui/src/ui/views/channels.ts b/ui/src/ui/views/channels.ts index 73a00bf74e37..e64ff8714bcf 100644 --- a/ui/src/ui/views/channels.ts +++ b/ui/src/ui/views/channels.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp } from "../format.ts"; diff --git a/ui/src/ui/views/channels.types.ts b/ui/src/ui/views/channels.types.ts index 59d7ee19f869..8b656c4ac982 100644 --- a/ui/src/ui/views/channels.types.ts +++ b/ui/src/ui/views/channels.types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define channels contracts. import type { ChannelAccountSnapshot, ChannelsStatusSnapshot, diff --git a/ui/src/ui/views/channels.whatsapp.ts b/ui/src/ui/views/channels.whatsapp.ts index 1f8762699ad1..26f6908ac8ce 100644 --- a/ui/src/ui/views/channels.whatsapp.ts +++ b/ui/src/ui/views/channels.whatsapp.ts @@ -1,3 +1,4 @@ +// Control UI view renders channels.whatsapp screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp, formatDurationHuman } from "../format.ts"; diff --git a/ui/src/ui/views/chat.ts b/ui/src/ui/views/chat.ts index 46bff3581b72..b6baf1aa7525 100644 --- a/ui/src/ui/views/chat.ts +++ b/ui/src/ui/views/chat.ts @@ -1,3 +1,4 @@ +// Control UI view renders chat screen content. import { html, nothing, type TemplateResult } from "lit"; import { guard } from "lit/directives/guard.js"; import { ifDefined } from "lit/directives/if-defined.js"; diff --git a/ui/src/ui/views/command-palette.test.ts b/ui/src/ui/views/command-palette.test.ts index 7f6f30d7e063..d77ad87dcf84 100644 --- a/ui/src/ui/views/command-palette.test.ts +++ b/ui/src/ui/views/command-palette.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover command palette behavior. import { nothing, render } from "lit"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { i18n } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/command-palette.ts b/ui/src/ui/views/command-palette.ts index af073f481f0b..3768ddf53ade 100644 --- a/ui/src/ui/views/command-palette.ts +++ b/ui/src/ui/views/command-palette.ts @@ -1,3 +1,4 @@ +// Control UI view renders command palette screen content. import { html, nothing } from "lit"; import { ref } from "lit/directives/ref.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/config-form.analyze.ts b/ui/src/ui/views/config-form.analyze.ts index 4ec0cc0210c0..114a8add400c 100644 --- a/ui/src/ui/views/config-form.analyze.ts +++ b/ui/src/ui/views/config-form.analyze.ts @@ -1,3 +1,4 @@ +// Control UI view renders config form.analyze screen content. import { pathKey, schemaType, type JsonSchema } from "./config-form.shared.ts"; export type ConfigSchemaAnalysis = { diff --git a/ui/src/ui/views/config-form.node.ts b/ui/src/ui/views/config-form.node.ts index 7ca4358de404..6bf717f7ccd8 100644 --- a/ui/src/ui/views/config-form.node.ts +++ b/ui/src/ui/views/config-form.node.ts @@ -1,3 +1,4 @@ +// Control UI view renders config form screen content. import { html, nothing, type TemplateResult } from "lit"; import { formatUnknownText } from "../format.ts"; import { icons as sharedIcons } from "../icons.ts"; diff --git a/ui/src/ui/views/config-form.render.ts b/ui/src/ui/views/config-form.render.ts index 9311839bca38..61f931f71137 100644 --- a/ui/src/ui/views/config-form.render.ts +++ b/ui/src/ui/views/config-form.render.ts @@ -1,3 +1,4 @@ +// Control UI view renders config form.render screen content. import { html, nothing } from "lit"; import { icons } from "../icons.ts"; import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; diff --git a/ui/src/ui/views/config-form.shared.ts b/ui/src/ui/views/config-form.shared.ts index e1c182eae16d..9e3a1b748ea2 100644 --- a/ui/src/ui/views/config-form.shared.ts +++ b/ui/src/ui/views/config-form.shared.ts @@ -1,3 +1,4 @@ +// Control UI view renders config form.shared screen content. import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; import type { ConfigUiHint, ConfigUiHints } from "../types.ts"; diff --git a/ui/src/ui/views/config-form.ts b/ui/src/ui/views/config-form.ts index bb355ea534b9..174ac8372333 100644 --- a/ui/src/ui/views/config-form.ts +++ b/ui/src/ui/views/config-form.ts @@ -1,3 +1,4 @@ +// Control UI view renders config form screen content. export { renderConfigForm, type ConfigFormProps, SECTION_META } from "./config-form.render.ts"; export { analyzeConfigSchema, type ConfigSchemaAnalysis } from "./config-form.analyze.ts"; export { renderNode } from "./config-form.node.ts"; diff --git a/ui/src/ui/views/config-presets.test.ts b/ui/src/ui/views/config-presets.test.ts index 99920e555256..4a7496e31394 100644 --- a/ui/src/ui/views/config-presets.test.ts +++ b/ui/src/ui/views/config-presets.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover config presets behavior. import { describe, expect, it } from "vitest"; import { OpenClawSchema } from "../../../../src/config/zod-schema.js"; import { CONFIG_PRESETS, detectActivePreset } from "./config-presets.ts"; diff --git a/ui/src/ui/views/config.browser.test.ts b/ui/src/ui/views/config.browser.test.ts index 20b40a17fc5e..9b8f0d954906 100644 --- a/ui/src/ui/views/config.browser.test.ts +++ b/ui/src/ui/views/config.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover config behavior. import { render } from "lit"; import { beforeEach, describe, expect, it, vi } from "vitest"; import type { ThemeMode, ThemeName } from "../theme.ts"; diff --git a/ui/src/ui/views/config.ts b/ui/src/ui/views/config.ts index bbe372ae4c8b..a63477fa90fc 100644 --- a/ui/src/ui/views/config.ts +++ b/ui/src/ui/views/config.ts @@ -1,3 +1,4 @@ +// Control UI view renders config screen content. import JSON5 from "json5"; import { html, nothing, type TemplateResult } from "lit"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/connect-command.ts b/ui/src/ui/views/connect-command.ts index bf4e27b77ebe..cb88ea347b05 100644 --- a/ui/src/ui/views/connect-command.ts +++ b/ui/src/ui/views/connect-command.ts @@ -1,3 +1,4 @@ +// Control UI view renders connect command screen content. import { html } from "lit"; import { t } from "../../i18n/index.ts"; import { renderCopyButton } from "../chat/copy-as-markdown.ts"; diff --git a/ui/src/ui/views/cron.test.ts b/ui/src/ui/views/cron.test.ts index e85949c22b69..4e66a54181dc 100644 --- a/ui/src/ui/views/cron.test.ts +++ b/ui/src/ui/views/cron.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover cron behavior. import { render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { DEFAULT_CRON_FORM } from "../app-defaults.ts"; diff --git a/ui/src/ui/views/cron.ts b/ui/src/ui/views/cron.ts index 19684ab9d7ff..e8b476e31f67 100644 --- a/ui/src/ui/views/cron.ts +++ b/ui/src/ui/views/cron.ts @@ -1,3 +1,4 @@ +// Control UI view renders cron screen content. import { html, nothing } from "lit"; import { ifDefined } from "lit/directives/if-defined.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; diff --git a/ui/src/ui/views/debug.test.ts b/ui/src/ui/views/debug.test.ts index 7160336671ab..0ab1f4b24280 100644 --- a/ui/src/ui/views/debug.test.ts +++ b/ui/src/ui/views/debug.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover debug behavior. import { render } from "lit"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { i18n } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/debug.ts b/ui/src/ui/views/debug.ts index 51b9cc9d4e22..b08e0a2ba6db 100644 --- a/ui/src/ui/views/debug.ts +++ b/ui/src/ui/views/debug.ts @@ -1,3 +1,4 @@ +// Control UI view renders debug screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { EventLogEntry } from "../app-events.ts"; diff --git a/ui/src/ui/views/dreaming-restart-confirmation.ts b/ui/src/ui/views/dreaming-restart-confirmation.ts index 19505ebad19f..25cfffbb53ae 100644 --- a/ui/src/ui/views/dreaming-restart-confirmation.ts +++ b/ui/src/ui/views/dreaming-restart-confirmation.ts @@ -1,3 +1,4 @@ +// Control UI view renders dreaming restart confirmation screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import "../components/modal-dialog.ts"; diff --git a/ui/src/ui/views/dreaming.ts b/ui/src/ui/views/dreaming.ts index 8b9e9a63d5c1..ec8fdf8616c2 100644 --- a/ui/src/ui/views/dreaming.ts +++ b/ui/src/ui/views/dreaming.ts @@ -1,3 +1,4 @@ +// Control UI view renders dreaming screen content. import { html, nothing } from "lit"; import { repeat } from "lit/directives/repeat.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; diff --git a/ui/src/ui/views/exec-approval.browser.test.ts b/ui/src/ui/views/exec-approval.browser.test.ts index 2b4bb6819cb9..e444adbbbe92 100644 --- a/ui/src/ui/views/exec-approval.browser.test.ts +++ b/ui/src/ui/views/exec-approval.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover exec approval behavior. import { html, render } from "lit"; import { expect, test } from "vitest"; import { i18n } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/exec-approval.ts b/ui/src/ui/views/exec-approval.ts index 078162840f0d..372be14a5d6d 100644 --- a/ui/src/ui/views/exec-approval.ts +++ b/ui/src/ui/views/exec-approval.ts @@ -1,3 +1,4 @@ +// Control UI view renders exec approval screen content. import { html, nothing } from "lit"; import { formatApprovalDisplayPath } from "../../../../src/infra/approval-display-paths.ts"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/gateway-url-confirmation.ts b/ui/src/ui/views/gateway-url-confirmation.ts index c677e5b8939a..0d62b9756ca7 100644 --- a/ui/src/ui/views/gateway-url-confirmation.ts +++ b/ui/src/ui/views/gateway-url-confirmation.ts @@ -1,3 +1,4 @@ +// Control UI view renders gateway url confirmation screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { AppViewState } from "../app-view-state.ts"; diff --git a/ui/src/ui/views/instances.ts b/ui/src/ui/views/instances.ts index d525de20d33e..4b0ea8c51a78 100644 --- a/ui/src/ui/views/instances.ts +++ b/ui/src/ui/views/instances.ts @@ -1,3 +1,4 @@ +// Control UI view renders instances screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/views/login-gate.ts b/ui/src/ui/views/login-gate.ts index 582201f244a0..fc735b3034af 100644 --- a/ui/src/ui/views/login-gate.ts +++ b/ui/src/ui/views/login-gate.ts @@ -1,3 +1,4 @@ +// Control UI view renders login gate screen content. import { html } from "lit"; import { ConnectErrorDetailCodes } from "../../../../packages/gateway-protocol/src/connect-error-details.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/logs.ts b/ui/src/ui/views/logs.ts index 53e02daabd2b..345362bbb576 100644 --- a/ui/src/ui/views/logs.ts +++ b/ui/src/ui/views/logs.ts @@ -1,3 +1,4 @@ +// Control UI view renders logs screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { normalizeLowercaseStringOrEmpty } from "../string-coerce.ts"; diff --git a/ui/src/ui/views/markdown-sidebar.ts b/ui/src/ui/views/markdown-sidebar.ts index 29ae46aaee0f..67293b4bbb6b 100644 --- a/ui/src/ui/views/markdown-sidebar.ts +++ b/ui/src/ui/views/markdown-sidebar.ts @@ -1,3 +1,4 @@ +// Control UI view renders markdown sidebar screen content. import { html, nothing } from "lit"; import { keyed } from "lit/directives/keyed.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; diff --git a/ui/src/ui/views/mcp.ts b/ui/src/ui/views/mcp.ts index 08e600cb43a1..fc88d5642b3f 100644 --- a/ui/src/ui/views/mcp.ts +++ b/ui/src/ui/views/mcp.ts @@ -1,3 +1,4 @@ +// Control UI view renders mcp screen content. import { redactSensitiveUrlLikeString } from "@openclaw/net-policy/redact-sensitive-url"; import { html, nothing, type TemplateResult } from "lit"; diff --git a/ui/src/ui/views/nodes-exec-approvals.ts b/ui/src/ui/views/nodes-exec-approvals.ts index dc20cfd33a2b..19cefc29e51b 100644 --- a/ui/src/ui/views/nodes-exec-approvals.ts +++ b/ui/src/ui/views/nodes-exec-approvals.ts @@ -1,3 +1,4 @@ +// Control UI view renders nodes exec approvals screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { diff --git a/ui/src/ui/views/nodes-shared.ts b/ui/src/ui/views/nodes-shared.ts index 4f6c3d51d192..79e4698fe64a 100644 --- a/ui/src/ui/views/nodes-shared.ts +++ b/ui/src/ui/views/nodes-shared.ts @@ -1,3 +1,4 @@ +// Control UI view renders nodes shared screen content. import { normalizeOptionalString } from "../string-coerce.ts"; export type NodeTargetOption = { diff --git a/ui/src/ui/views/nodes.ts b/ui/src/ui/views/nodes.ts index 560494a01129..a50b4d62eb0e 100644 --- a/ui/src/ui/views/nodes.ts +++ b/ui/src/ui/views/nodes.ts @@ -1,3 +1,4 @@ +// Control UI view renders nodes screen content. import { html, nothing } from "lit"; import { resolvePendingDeviceApprovalState, diff --git a/ui/src/ui/views/nodes.types.ts b/ui/src/ui/views/nodes.types.ts index e75b1816c535..0b1a2011c290 100644 --- a/ui/src/ui/views/nodes.types.ts +++ b/ui/src/ui/views/nodes.types.ts @@ -1,3 +1,4 @@ +// Control UI type declarations define nodes contracts. import type { DevicePairingList } from "../controllers/devices.ts"; import type { ExecApprovalsFile, ExecApprovalsSnapshot } from "../controllers/exec-approvals.ts"; diff --git a/ui/src/ui/views/overview-attention.ts b/ui/src/ui/views/overview-attention.ts index 8a62cb2612e5..688e057669b4 100644 --- a/ui/src/ui/views/overview-attention.ts +++ b/ui/src/ui/views/overview-attention.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview attention screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { buildExternalLinkRel, EXTERNAL_LINK_TARGET } from "../external-link.ts"; diff --git a/ui/src/ui/views/overview-cards.ts b/ui/src/ui/views/overview-cards.ts index ea87482fa946..4a1c99f59de1 100644 --- a/ui/src/ui/views/overview-cards.ts +++ b/ui/src/ui/views/overview-cards.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview cards screen content. import { asDateTimestampMs } from "@openclaw/normalization-core/number-coercion"; import { html, nothing, type TemplateResult } from "lit"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; diff --git a/ui/src/ui/views/overview-event-log.ts b/ui/src/ui/views/overview-event-log.ts index 71e3575a1bec..7cb982aa0957 100644 --- a/ui/src/ui/views/overview-event-log.ts +++ b/ui/src/ui/views/overview-event-log.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview event log screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import type { EventLogEntry } from "../app-events.ts"; diff --git a/ui/src/ui/views/overview-hints.ts b/ui/src/ui/views/overview-hints.ts index 32d9ae6b7f55..04c50e0e3f3c 100644 --- a/ui/src/ui/views/overview-hints.ts +++ b/ui/src/ui/views/overview-hints.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview hints screen content. import { ConnectErrorDetailCodes, readConnectPairingRequiredMessage, diff --git a/ui/src/ui/views/overview-log-tail.ts b/ui/src/ui/views/overview-log-tail.ts index 72b952fcd15b..bd91642d76ef 100644 --- a/ui/src/ui/views/overview-log-tail.ts +++ b/ui/src/ui/views/overview-log-tail.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview log tail screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { icons } from "../icons.ts"; diff --git a/ui/src/ui/views/overview.ts b/ui/src/ui/views/overview.ts index f58ba97f7d1f..9335e97a9fbe 100644 --- a/ui/src/ui/views/overview.ts +++ b/ui/src/ui/views/overview.ts @@ -1,3 +1,4 @@ +// Control UI view renders overview screen content. import { html, nothing } from "lit"; import { t, i18n, SUPPORTED_LOCALES, type Locale, isSupportedLocale } from "../../i18n/index.ts"; import type { EventLogEntry } from "../app-events.ts"; diff --git a/ui/src/ui/views/sessions.browser.test.ts b/ui/src/ui/views/sessions.browser.test.ts index da6e569ff0f7..d788aa07b719 100644 --- a/ui/src/ui/views/sessions.browser.test.ts +++ b/ui/src/ui/views/sessions.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover sessions behavior. import { existsSync } from "node:fs"; import { chromium, type Browser, type Page } from "playwright"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; diff --git a/ui/src/ui/views/sessions.ts b/ui/src/ui/views/sessions.ts index 39d56264e450..d810ca36b265 100644 --- a/ui/src/ui/views/sessions.ts +++ b/ui/src/ui/views/sessions.ts @@ -1,3 +1,4 @@ +// Control UI view renders sessions screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { formatRelativeTimestamp, parseSessionKeyParts } from "../format.ts"; diff --git a/ui/src/ui/views/skill-workshop.ts b/ui/src/ui/views/skill-workshop.ts index ced2fcb73817..56c223053e28 100644 --- a/ui/src/ui/views/skill-workshop.ts +++ b/ui/src/ui/views/skill-workshop.ts @@ -1,3 +1,4 @@ +// Control UI view renders skill workshop screen content. import { html, nothing } from "lit"; import { keyed } from "lit/directives/keyed.js"; import { styleMap } from "lit/directives/style-map.js"; diff --git a/ui/src/ui/views/skills-grouping.ts b/ui/src/ui/views/skills-grouping.ts index 1316454d5962..7211146a8514 100644 --- a/ui/src/ui/views/skills-grouping.ts +++ b/ui/src/ui/views/skills-grouping.ts @@ -1,3 +1,4 @@ +// Control UI view renders skills grouping screen content. import type { SkillStatusEntry } from "../types.ts"; export type SkillGroup = { diff --git a/ui/src/ui/views/skills-shared.ts b/ui/src/ui/views/skills-shared.ts index 33510b87592e..6b46cdab6b25 100644 --- a/ui/src/ui/views/skills-shared.ts +++ b/ui/src/ui/views/skills-shared.ts @@ -1,3 +1,4 @@ +// Control UI view renders skills shared screen content. import { html, nothing } from "lit"; import type { SkillStatusEntry } from "../types.ts"; diff --git a/ui/src/ui/views/skills.ts b/ui/src/ui/views/skills.ts index c50c31ca50ba..0760c9f2469a 100644 --- a/ui/src/ui/views/skills.ts +++ b/ui/src/ui/views/skills.ts @@ -1,3 +1,4 @@ +// Control UI view renders skills screen content. import { html, nothing } from "lit"; import { ref } from "lit/directives/ref.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; diff --git a/ui/src/ui/views/usage-metrics.test.ts b/ui/src/ui/views/usage-metrics.test.ts index 3bdeaf4ac81b..0dc6685690ae 100644 --- a/ui/src/ui/views/usage-metrics.test.ts +++ b/ui/src/ui/views/usage-metrics.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover usage metrics behavior. import { describe, expect, it, vi, afterEach } from "vitest"; import { buildPeakErrorHours, diff --git a/ui/src/ui/views/usage-metrics.ts b/ui/src/ui/views/usage-metrics.ts index 1175aed53bcb..eb077d6adde2 100644 --- a/ui/src/ui/views/usage-metrics.ts +++ b/ui/src/ui/views/usage-metrics.ts @@ -1,3 +1,4 @@ +// Control UI view renders usage metrics screen content. import { html } from "lit"; import { buildUsageAggregateTail, diff --git a/ui/src/ui/views/usage-query.ts b/ui/src/ui/views/usage-query.ts index 2a6a60ea04ac..ac7445b779bd 100644 --- a/ui/src/ui/views/usage-query.ts +++ b/ui/src/ui/views/usage-query.ts @@ -1,3 +1,4 @@ +// Control UI view renders usage query screen content. import { timestampMsToIsoString } from "@openclaw/normalization-core/number-coercion"; import { normalizeLowercaseStringOrEmpty, uniqueStrings } from "../string-coerce.ts"; import { extractQueryTerms } from "../usage-helpers.ts"; diff --git a/ui/src/ui/views/usage-render-details.test.ts b/ui/src/ui/views/usage-render-details.test.ts index e5f75d107b75..04bf4eac0348 100644 --- a/ui/src/ui/views/usage-render-details.test.ts +++ b/ui/src/ui/views/usage-render-details.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover usage render details behavior. import { render } from "lit"; import { describe, it, expect } from "vitest"; import { diff --git a/ui/src/ui/views/usage-render-details.ts b/ui/src/ui/views/usage-render-details.ts index ba44b54a2113..1670b506dd07 100644 --- a/ui/src/ui/views/usage-render-details.ts +++ b/ui/src/ui/views/usage-render-details.ts @@ -1,3 +1,4 @@ +// Control UI view renders usage render details screen content. import { html, svg, nothing } from "lit"; import { formatDurationCompact } from "../../../../src/infra/format-time/format-duration.ts"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/usage-render-overview.ts b/ui/src/ui/views/usage-render-overview.ts index 31432ebf4675..97f069bb1c56 100644 --- a/ui/src/ui/views/usage-render-overview.ts +++ b/ui/src/ui/views/usage-render-overview.ts @@ -1,3 +1,4 @@ +// Control UI view renders usage render overview screen content. import { html, nothing } from "lit"; import { formatDurationCompact } from "../../../../src/infra/format-time/format-duration.ts"; import { t } from "../../i18n/index.ts"; diff --git a/ui/src/ui/views/usage.ts b/ui/src/ui/views/usage.ts index 1de0a4b02fee..8e061e0d66fa 100644 --- a/ui/src/ui/views/usage.ts +++ b/ui/src/ui/views/usage.ts @@ -1,3 +1,4 @@ +// Control UI view renders usage screen content. import { html, nothing } from "lit"; import { t } from "../../i18n/index.ts"; import { getUsageCacheRefreshTitle } from "../usage-cache-status.ts"; diff --git a/ui/src/ui/views/usageTypes.ts b/ui/src/ui/views/usageTypes.ts index 686ca8bb4af7..8bad37b61864 100644 --- a/ui/src/ui/views/usageTypes.ts +++ b/ui/src/ui/views/usageTypes.ts @@ -1,3 +1,4 @@ +// Control UI view renders usageTypes screen content. import type { CostUsageDailyEntry, SessionsUsageEntry, diff --git a/ui/src/ui/views/workboard.browser.test.ts b/ui/src/ui/views/workboard.browser.test.ts index 4fd7585eba63..a485b31bfb6d 100644 --- a/ui/src/ui/views/workboard.browser.test.ts +++ b/ui/src/ui/views/workboard.browser.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover workboard behavior. import { nothing, render } from "lit"; import { describe, expect, it } from "vitest"; import { getWorkboardState } from "../controllers/workboard.ts"; diff --git a/ui/src/ui/views/workboard.test.ts b/ui/src/ui/views/workboard.test.ts index 38277f721257..e70dec14e1c4 100644 --- a/ui/src/ui/views/workboard.test.ts +++ b/ui/src/ui/views/workboard.test.ts @@ -1,3 +1,4 @@ +// Control UI tests cover workboard behavior. import { nothing, render } from "lit"; import { describe, expect, it, vi } from "vitest"; import { getWorkboardState } from "../controllers/workboard.ts"; diff --git a/ui/src/ui/views/workboard.ts b/ui/src/ui/views/workboard.ts index e5503d975fa9..6350ddb83c9e 100644 --- a/ui/src/ui/views/workboard.ts +++ b/ui/src/ui/views/workboard.ts @@ -1,3 +1,4 @@ +// Control UI view renders workboard screen content. import { html, nothing, type TemplateResult } from "lit"; import { ref } from "lit/directives/ref.js"; import { t } from "../../i18n/index.ts"; diff --git a/ui/vite.config.ts b/ui/vite.config.ts index 2769bd8f1d89..97514f498401 100644 --- a/ui/vite.config.ts +++ b/ui/vite.config.ts @@ -1,3 +1,4 @@ +// Control UI config module wires vite behavior. import { execFileSync } from "node:child_process"; import fs from "node:fs"; import { createRequire } from "node:module"; diff --git a/ui/vitest.config.ts b/ui/vitest.config.ts index 8c8666024bbe..82586e0b1ee9 100644 --- a/ui/vitest.config.ts +++ b/ui/vitest.config.ts @@ -1,3 +1,4 @@ +// Control UI config module wires vitest behavior. import path from "node:path"; import { fileURLToPath } from "node:url"; import { playwright } from "@vitest/browser-playwright"; diff --git a/ui/vitest.node.config.ts b/ui/vitest.node.config.ts index 5c475d8c1364..72713f3b1d47 100644 --- a/ui/vitest.node.config.ts +++ b/ui/vitest.node.config.ts @@ -1,3 +1,4 @@ +// Control UI config module wires vitest behavior. import { defineConfig } from "vitest/config"; import { resolveDefaultVitestPool } from "../test/vitest/vitest.shared.config.ts";