mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
chore(format)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { en } from "../locales/en.ts";
|
||||
import type { Locale, TranslationMap } from "./types.ts";
|
||||
import { en } from "../locales/en.ts";
|
||||
|
||||
type Subscriber = (locale: Locale) => void;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import type { NostrProfile } from "./types.ts";
|
||||
import {
|
||||
loadChannels,
|
||||
logoutWhatsApp,
|
||||
@@ -6,7 +7,6 @@ import {
|
||||
waitWhatsAppLogin,
|
||||
} from "./controllers/channels.ts";
|
||||
import { loadConfig, saveConfig } from "./controllers/config.ts";
|
||||
import type { NostrProfile } from "./types.ts";
|
||||
import { createNostrProfileFormState } from "./views/channels.nostr-profile-form.ts";
|
||||
|
||||
export async function handleWhatsAppStart(host: OpenClawApp, force: boolean) {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import type { GatewayHelloOk } from "./gateway.ts";
|
||||
import type { ChatAttachment, ChatQueueItem } from "./ui-types.ts";
|
||||
import { parseAgentSessionKey } from "../../../src/sessions/session-key-utils.js";
|
||||
import { scheduleChatScroll } from "./app-scroll.ts";
|
||||
import { setLastActiveSessionKey } from "./app-settings.ts";
|
||||
import { resetToolStream } from "./app-tool-stream.ts";
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import { abortChatRun, loadChatHistory, sendChatMessage } from "./controllers/chat.ts";
|
||||
import { loadSessions } from "./controllers/sessions.ts";
|
||||
import type { GatewayHelloOk } from "./gateway.ts";
|
||||
import { normalizeBasePath } from "./navigation.ts";
|
||||
import type { ChatAttachment, ChatQueueItem } from "./ui-types.ts";
|
||||
import { generateUUID } from "./uuid.ts";
|
||||
|
||||
export type ChatHost = {
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
import { CHAT_SESSIONS_ACTIVE_MINUTES, flushChatQueueForEvent } from "./app-chat.ts";
|
||||
import type { EventLogEntry } from "./app-events.ts";
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import type { ExecApprovalRequest } from "./controllers/exec-approval.ts";
|
||||
import type { GatewayEventFrame, GatewayHelloOk } from "./gateway.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import type { UiSettings } from "./storage.ts";
|
||||
import type { AgentsListResult, PresenceEntry, HealthSnapshot, StatusSummary } from "./types.ts";
|
||||
import { CHAT_SESSIONS_ACTIVE_MINUTES, flushChatQueueForEvent } from "./app-chat.ts";
|
||||
import {
|
||||
applySettings,
|
||||
loadCron,
|
||||
@@ -7,13 +13,11 @@ import {
|
||||
setLastActiveSessionKey,
|
||||
} from "./app-settings.ts";
|
||||
import { handleAgentEvent, resetToolStream, type AgentEventPayload } from "./app-tool-stream.ts";
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import { loadAgents } from "./controllers/agents.ts";
|
||||
import { loadAssistantIdentity } from "./controllers/assistant-identity.ts";
|
||||
import { loadChatHistory } from "./controllers/chat.ts";
|
||||
import { handleChatEvent, type ChatEventPayload } from "./controllers/chat.ts";
|
||||
import { loadDevices } from "./controllers/devices.ts";
|
||||
import type { ExecApprovalRequest } from "./controllers/exec-approval.ts";
|
||||
import {
|
||||
addExecApproval,
|
||||
parseExecApprovalRequested,
|
||||
@@ -22,11 +26,7 @@ import {
|
||||
} from "./controllers/exec-approval.ts";
|
||||
import { loadNodes } from "./controllers/nodes.ts";
|
||||
import { loadSessions } from "./controllers/sessions.ts";
|
||||
import type { GatewayEventFrame, GatewayHelloOk } from "./gateway.ts";
|
||||
import { GatewayBrowserClient } from "./gateway.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import type { UiSettings } from "./storage.ts";
|
||||
import type { AgentsListResult, PresenceEntry, HealthSnapshot, StatusSummary } from "./types.ts";
|
||||
|
||||
type GatewayHost = {
|
||||
settings: UiSettings;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import { connectGateway } from "./app-gateway.ts";
|
||||
import {
|
||||
startLogsPolling,
|
||||
@@ -17,7 +18,6 @@ import {
|
||||
syncThemeWithSettings,
|
||||
} from "./app-settings.ts";
|
||||
import { loadControlUiBootstrapConfig } from "./controllers/control-ui-bootstrap.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
|
||||
type LifecycleHost = {
|
||||
basePath: string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { parseSessionKey, resolveSessionDisplayName } from "./app-render.helpers.ts";
|
||||
import type { SessionsListResult } from "./types.ts";
|
||||
import { parseSessionKey, resolveSessionDisplayName } from "./app-render.helpers.ts";
|
||||
|
||||
type SessionRow = SessionsListResult["sessions"][number];
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { html } from "lit";
|
||||
import { repeat } from "lit/directives/repeat.js";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import type { ThemeTransitionContext } from "./theme-transition.ts";
|
||||
import type { ThemeMode } from "./theme.ts";
|
||||
import type { SessionsListResult } from "./types.ts";
|
||||
import { t } from "../i18n/index.ts";
|
||||
import { refreshChat } from "./app-chat.ts";
|
||||
import { syncUrlWithSessionKey } from "./app-settings.ts";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import { OpenClawApp } from "./app.ts";
|
||||
import { ChatState, loadChatHistory } from "./controllers/chat.ts";
|
||||
import { icons } from "./icons.ts";
|
||||
import { iconForTab, pathForTab, titleForTab, type Tab } from "./navigation.ts";
|
||||
import type { ThemeTransitionContext } from "./theme-transition.ts";
|
||||
import type { ThemeMode } from "./theme.ts";
|
||||
import type { SessionsListResult } from "./types.ts";
|
||||
|
||||
type SessionDefaultsSnapshot = {
|
||||
mainSessionKey?: string;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { html, nothing } from "lit";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import { parseAgentSessionKey } from "../../../src/routing/session-key.js";
|
||||
import { t } from "../i18n/index.ts";
|
||||
import { refreshChatAvatar } from "./app-chat.ts";
|
||||
import { renderUsageTab } from "./app-render-usage-tab.ts";
|
||||
import { renderChatControls, renderTab, renderThemeToggle } from "./app-render.helpers.ts";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import { loadAgentFileContent, loadAgentFiles, saveAgentFile } from "./controllers/agent-files.ts";
|
||||
import { loadAgentIdentities, loadAgentIdentity } from "./controllers/agent-identity.ts";
|
||||
import { loadAgentSkills } from "./controllers/agent-skills.ts";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { setTabFromRoute } from "./app-settings.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import { setTabFromRoute } from "./app-settings.ts";
|
||||
|
||||
type SettingsHost = Parameters<typeof setTabFromRoute>[0] & {
|
||||
logsPollInterval: number | null;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import type { AgentsListResult } from "./types.ts";
|
||||
import { refreshChat } from "./app-chat.ts";
|
||||
import {
|
||||
startLogsPolling,
|
||||
@@ -6,7 +8,6 @@ import {
|
||||
stopDebugPolling,
|
||||
} from "./app-polling.ts";
|
||||
import { scheduleChatScroll, scheduleLogsScroll } from "./app-scroll.ts";
|
||||
import type { OpenClawApp } from "./app.ts";
|
||||
import { loadAgentIdentities, loadAgentIdentity } from "./controllers/agent-identity.ts";
|
||||
import { loadAgentSkills } from "./controllers/agent-skills.ts";
|
||||
import { loadAgents } from "./controllers/agents.ts";
|
||||
@@ -32,7 +33,6 @@ import {
|
||||
import { saveSettings, type UiSettings } from "./storage.ts";
|
||||
import { startThemeTransition, type ThemeTransitionContext } from "./theme-transition.ts";
|
||||
import { resolveTheme, type ResolvedTheme, type ThemeMode } from "./theme.ts";
|
||||
import type { AgentsListResult } from "./types.ts";
|
||||
|
||||
type SettingsHost = {
|
||||
settings: UiSettings;
|
||||
|
||||
@@ -1,5 +1,34 @@
|
||||
import { LitElement } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import type { EventLogEntry } from "./app-events.ts";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import type { DevicePairingList } from "./controllers/devices.ts";
|
||||
import type { ExecApprovalRequest } from "./controllers/exec-approval.ts";
|
||||
import type { ExecApprovalsFile, ExecApprovalsSnapshot } from "./controllers/exec-approvals.ts";
|
||||
import type { SkillMessage } from "./controllers/skills.ts";
|
||||
import type { GatewayBrowserClient, GatewayHelloOk } from "./gateway.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import type { ResolvedTheme, ThemeMode } from "./theme.ts";
|
||||
import type {
|
||||
AgentsListResult,
|
||||
AgentsFilesListResult,
|
||||
AgentIdentityResult,
|
||||
ConfigSnapshot,
|
||||
ConfigUiHints,
|
||||
CronJob,
|
||||
CronRunLogEntry,
|
||||
CronStatus,
|
||||
HealthSnapshot,
|
||||
LogEntry,
|
||||
LogLevel,
|
||||
PresenceEntry,
|
||||
ChannelsStatusSnapshot,
|
||||
SessionsListResult,
|
||||
SkillStatusReport,
|
||||
StatusSummary,
|
||||
NostrProfile,
|
||||
} from "./types.ts";
|
||||
import type { NostrProfileFormState } from "./views/channels.nostr-profile-form.ts";
|
||||
import { i18n, I18nController, isSupportedLocale } from "../i18n/index.ts";
|
||||
import {
|
||||
handleChannelConfigReload as handleChannelConfigReloadInternal,
|
||||
@@ -20,7 +49,6 @@ import {
|
||||
removeQueuedMessage as removeQueuedMessageInternal,
|
||||
} from "./app-chat.ts";
|
||||
import { DEFAULT_CRON_FORM, DEFAULT_LOG_LEVEL_FILTERS } from "./app-defaults.ts";
|
||||
import type { EventLogEntry } from "./app-events.ts";
|
||||
import { connectGateway as connectGatewayInternal } from "./app-gateway.ts";
|
||||
import {
|
||||
handleConnected,
|
||||
@@ -49,38 +77,10 @@ import {
|
||||
type ToolStreamEntry,
|
||||
type CompactionStatus,
|
||||
} from "./app-tool-stream.ts";
|
||||
import type { AppViewState } from "./app-view-state.ts";
|
||||
import { normalizeAssistantIdentity } from "./assistant-identity.ts";
|
||||
import { loadAssistantIdentity as loadAssistantIdentityInternal } from "./controllers/assistant-identity.ts";
|
||||
import type { DevicePairingList } from "./controllers/devices.ts";
|
||||
import type { ExecApprovalRequest } from "./controllers/exec-approval.ts";
|
||||
import type { ExecApprovalsFile, ExecApprovalsSnapshot } from "./controllers/exec-approvals.ts";
|
||||
import type { SkillMessage } from "./controllers/skills.ts";
|
||||
import type { GatewayBrowserClient, GatewayHelloOk } from "./gateway.ts";
|
||||
import type { Tab } from "./navigation.ts";
|
||||
import { loadSettings, type UiSettings } from "./storage.ts";
|
||||
import type { ResolvedTheme, ThemeMode } from "./theme.ts";
|
||||
import type {
|
||||
AgentsListResult,
|
||||
AgentsFilesListResult,
|
||||
AgentIdentityResult,
|
||||
ConfigSnapshot,
|
||||
ConfigUiHints,
|
||||
CronJob,
|
||||
CronRunLogEntry,
|
||||
CronStatus,
|
||||
HealthSnapshot,
|
||||
LogEntry,
|
||||
LogLevel,
|
||||
PresenceEntry,
|
||||
ChannelsStatusSnapshot,
|
||||
SessionsListResult,
|
||||
SkillStatusReport,
|
||||
StatusSummary,
|
||||
NostrProfile,
|
||||
} from "./types.ts";
|
||||
import { type ChatAttachment, type ChatQueueItem, type CronFormState } from "./ui-types.ts";
|
||||
import type { NostrProfileFormState } from "./views/channels.nostr-profile-form.ts";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
||||
import type { AssistantIdentity } from "../assistant-identity.ts";
|
||||
import type { MessageGroup } from "../types/chat-types.ts";
|
||||
import { toSanitizedMarkdownHtml } from "../markdown.ts";
|
||||
import { detectTextDirection } from "../text-direction.ts";
|
||||
import type { MessageGroup } from "../types/chat-types.ts";
|
||||
import { renderCopyAsMarkdownButton } from "./copy-as-markdown.ts";
|
||||
import {
|
||||
extractTextCached,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { html, nothing } from "lit";
|
||||
import type { ToolCard } from "../types/chat-types.ts";
|
||||
import { icons } from "../icons.ts";
|
||||
import { formatToolDetail, resolveToolDisplay } from "../tool-display.ts";
|
||||
import type { ToolCard } from "../types/chat-types.ts";
|
||||
import { TOOL_INLINE_THRESHOLD } from "./constants.ts";
|
||||
import { extractTextCached } from "./message-extract.ts";
|
||||
import { isToolResultMessage } from "./message-normalizer.ts";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { normalizeAssistantIdentity } from "../assistant-identity.ts";
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
import { normalizeAssistantIdentity } from "../assistant-identity.ts";
|
||||
|
||||
export type AssistantIdentityState = {
|
||||
client: GatewayBrowserClient | null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChannelsStatusSnapshot } from "../types.ts";
|
||||
import type { ChannelsState } from "./channels.types.ts";
|
||||
import { ChannelsStatusSnapshot } from "../types.ts";
|
||||
|
||||
export type { ChannelsState };
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { extractText } from "../chat/message-extract.ts";
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
import type { ChatAttachment } from "../ui-types.ts";
|
||||
import { extractText } from "../chat/message-extract.ts";
|
||||
import { generateUUID } from "../uuid.ts";
|
||||
|
||||
export type ChatState = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { toNumber } from "../format.ts";
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
import type { CronJob, CronRunLogEntry, CronStatus } from "../types.ts";
|
||||
import type { CronFormState } from "../ui-types.ts";
|
||||
import { toNumber } from "../format.ts";
|
||||
|
||||
export type CronState = {
|
||||
client: GatewayBrowserClient | null;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
import { clearDeviceAuthToken, storeDeviceAuthToken } from "../device-auth.ts";
|
||||
import { loadOrCreateDeviceIdentity } from "../device-identity.ts";
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
|
||||
export type DeviceTokenSummary = {
|
||||
role: string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { toNumber } from "../format.ts";
|
||||
import type { GatewayBrowserClient } from "../gateway.ts";
|
||||
import type { SessionsListResult } from "../types.ts";
|
||||
import { toNumber } from "../format.ts";
|
||||
|
||||
export type SessionsState = {
|
||||
client: GatewayBrowserClient | null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { t } from "../i18n/index.ts";
|
||||
import type { IconName } from "./icons.js";
|
||||
import { t } from "../i18n/index.ts";
|
||||
|
||||
export const TAB_GROUPS = [
|
||||
{ label: "chat", tabs: ["chat"] },
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { formatRelativeTimestamp, formatDurationHuman, formatMs } from "./format.ts";
|
||||
import type { CronJob, GatewaySessionRow, PresenceEntry } from "./types.ts";
|
||||
import { formatRelativeTimestamp, formatDurationHuman, formatMs } from "./format.ts";
|
||||
|
||||
export function formatPresenceSummary(entry: PresenceEntry): string {
|
||||
const host = entry.host ?? "unknown";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const KEY = "openclaw.control.settings.v1";
|
||||
|
||||
import { isSupportedLocale } from "../i18n/index.ts";
|
||||
import type { ThemeMode } from "./theme.ts";
|
||||
import { isSupportedLocale } from "../i18n/index.ts";
|
||||
|
||||
export type UiSettings = {
|
||||
gatewayUrl: string;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { IconName } from "./icons.ts";
|
||||
import {
|
||||
defaultTitle,
|
||||
normalizeToolName,
|
||||
@@ -11,7 +12,6 @@ import {
|
||||
resolveWriteDetail,
|
||||
type ToolDisplaySpec as ToolDisplaySpecBase,
|
||||
} from "../../../src/agents/tool-display-common.js";
|
||||
import type { IconName } from "./icons.ts";
|
||||
import rawConfig from "./tool-display.json" with { type: "json" };
|
||||
|
||||
type ToolDisplaySpec = ToolDisplaySpecBase & {
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import {
|
||||
formatCronPayload,
|
||||
formatCronSchedule,
|
||||
formatCronState,
|
||||
formatNextRun,
|
||||
} from "../presenter.ts";
|
||||
import type {
|
||||
AgentFileEntry,
|
||||
AgentsFilesListResult,
|
||||
@@ -14,6 +7,13 @@ import type {
|
||||
CronJob,
|
||||
CronStatus,
|
||||
} from "../types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import {
|
||||
formatCronPayload,
|
||||
formatCronSchedule,
|
||||
formatCronState,
|
||||
formatNextRun,
|
||||
} from "../presenter.ts";
|
||||
import { formatBytes, type AgentContext } from "./agents-utils.ts";
|
||||
|
||||
function renderAgentContextCard(context: AgentContext, subtitle: string) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { normalizeToolName } from "../../../../src/agents/tool-policy.js";
|
||||
import type { SkillStatusEntry, SkillStatusReport } from "../types.ts";
|
||||
import type { SkillGroup } from "./skills-grouping.ts";
|
||||
import { normalizeToolName } from "../../../../src/agents/tool-policy.js";
|
||||
import {
|
||||
isAllowedByPolicy,
|
||||
matchesList,
|
||||
@@ -9,7 +10,6 @@ import {
|
||||
resolveToolProfile,
|
||||
TOOL_SECTIONS,
|
||||
} from "./agents-utils.ts";
|
||||
import type { SkillGroup } from "./skills-grouping.ts";
|
||||
import { groupSkills } from "./skills-grouping.ts";
|
||||
import {
|
||||
computeSkillMissing,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { html } from "lit";
|
||||
import type { AgentIdentityResult, AgentsFilesListResult, AgentsListResult } from "../types.ts";
|
||||
import {
|
||||
expandToolGroups,
|
||||
normalizeToolName,
|
||||
resolveToolProfilePolicy,
|
||||
} from "../../../../src/agents/tool-policy.js";
|
||||
import type { AgentIdentityResult, AgentsFilesListResult, AgentsListResult } from "../types.ts";
|
||||
|
||||
export const TOOL_SECTIONS = [
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { DiscordStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderDiscordCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { GoogleChatStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderGoogleChatCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { IMessageStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderIMessageCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { ChannelAccountSnapshot, NostrStatus } from "../types.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import {
|
||||
renderNostrProfileForm,
|
||||
type NostrProfileFormState,
|
||||
type NostrProfileFormCallbacks,
|
||||
} from "./channels.nostr-profile-form.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
|
||||
/**
|
||||
* Truncate a pubkey for display (shows first and last 8 chars)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { SignalStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderSignalCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { SlackStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderSlackCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type { ChannelAccountSnapshot, TelegramStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderTelegramCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import type {
|
||||
ChannelAccountSnapshot,
|
||||
ChannelUiMetaEntry,
|
||||
@@ -14,6 +13,8 @@ import type {
|
||||
TelegramStatus,
|
||||
WhatsAppStatus,
|
||||
} from "../types.ts";
|
||||
import type { ChannelKey, ChannelsChannelData, ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import { renderDiscordCard } from "./channels.discord.ts";
|
||||
import { renderGoogleChatCard } from "./channels.googlechat.ts";
|
||||
@@ -23,7 +24,6 @@ import { channelEnabled, renderChannelAccountCount } from "./channels.shared.ts"
|
||||
import { renderSignalCard } from "./channels.signal.ts";
|
||||
import { renderSlackCard } from "./channels.slack.ts";
|
||||
import { renderTelegramCard } from "./channels.telegram.ts";
|
||||
import type { ChannelKey, ChannelsChannelData, ChannelsProps } from "./channels.types.ts";
|
||||
import { renderWhatsAppCard } from "./channels.whatsapp.ts";
|
||||
|
||||
export function renderChannels(props: ChannelsProps) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatRelativeTimestamp, formatDurationHuman } from "../format.ts";
|
||||
import type { WhatsAppStatus } from "../types.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
import type { ChannelsProps } from "./channels.types.ts";
|
||||
import { formatRelativeTimestamp, formatDurationHuman } from "../format.ts";
|
||||
import { renderChannelConfigSection } from "./channels.config.ts";
|
||||
|
||||
export function renderWhatsAppCard(params: {
|
||||
props: ChannelsProps;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { ref } from "lit/directives/ref.js";
|
||||
import { repeat } from "lit/directives/repeat.js";
|
||||
import type { SessionsListResult } from "../types.ts";
|
||||
import type { ChatItem, MessageGroup } from "../types/chat-types.ts";
|
||||
import type { ChatAttachment, ChatQueueItem } from "../ui-types.ts";
|
||||
import {
|
||||
renderMessageGroup,
|
||||
renderReadingIndicatorGroup,
|
||||
@@ -9,9 +12,6 @@ import {
|
||||
import { normalizeMessage, normalizeRoleForGrouping } from "../chat/message-normalizer.ts";
|
||||
import { icons } from "../icons.ts";
|
||||
import { detectTextDirection } from "../text-direction.ts";
|
||||
import type { SessionsListResult } from "../types.ts";
|
||||
import type { ChatItem, MessageGroup } from "../types/chat-types.ts";
|
||||
import type { ChatAttachment, ChatQueueItem } from "../ui-types.ts";
|
||||
import { renderMarkdownSidebar } from "./markdown-sidebar.ts";
|
||||
import "../components/resizable-divider.ts";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { icons } from "../icons.ts";
|
||||
import type { ConfigUiHints } from "../types.ts";
|
||||
import { icons } from "../icons.ts";
|
||||
import { renderNode } from "./config-form.node.ts";
|
||||
import { hintForPath, humanize, schemaType, type JsonSchema } from "./config-form.shared.ts";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { render } from "lit";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { DEFAULT_CRON_FORM } from "../app-defaults.ts";
|
||||
import type { CronJob } from "../types.ts";
|
||||
import { DEFAULT_CRON_FORM } from "../app-defaults.ts";
|
||||
import { renderCron, type CronProps } from "./cron.ts";
|
||||
|
||||
function createJob(id: string): CronJob {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { html, nothing } from "lit";
|
||||
import type { ChannelUiMetaEntry, CronJob, CronRunLogEntry, CronStatus } from "../types.ts";
|
||||
import type { CronFormState } from "../ui-types.ts";
|
||||
import { formatRelativeTimestamp, formatMs } from "../format.ts";
|
||||
import { pathForTab } from "../navigation.ts";
|
||||
import { formatCronSchedule, formatNextRun } from "../presenter.ts";
|
||||
import type { ChannelUiMetaEntry, CronJob, CronRunLogEntry, CronStatus } from "../types.ts";
|
||||
import type { CronFormState } from "../ui-types.ts";
|
||||
|
||||
export type CronProps = {
|
||||
basePath: string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, nothing } from "lit";
|
||||
import { formatPresenceAge, formatPresenceSummary } from "../presenter.ts";
|
||||
import type { PresenceEntry } from "../types.ts";
|
||||
import { formatPresenceAge, formatPresenceSummary } from "../presenter.ts";
|
||||
|
||||
export type InstancesProps = {
|
||||
loading: boolean;
|
||||
|
||||
@@ -3,8 +3,8 @@ import type {
|
||||
ExecApprovalsAllowlistEntry,
|
||||
ExecApprovalsFile,
|
||||
} from "../controllers/exec-approvals.ts";
|
||||
import { clampText, formatRelativeTimestamp } from "../format.ts";
|
||||
import type { NodesProps } from "./nodes.ts";
|
||||
import { clampText, formatRelativeTimestamp } from "../format.ts";
|
||||
|
||||
type ExecSecurity = "deny" | "allowlist" | "full";
|
||||
type ExecAsk = "off" | "on-miss" | "always";
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { html } from "lit";
|
||||
import type { GatewayHelloOk } from "../gateway.ts";
|
||||
import type { UiSettings } from "../storage.ts";
|
||||
import { t, i18n, type Locale } from "../../i18n/index.ts";
|
||||
import { formatRelativeTimestamp, formatDurationHuman } from "../format.ts";
|
||||
import type { GatewayHelloOk } from "../gateway.ts";
|
||||
import { formatNextRun } from "../presenter.ts";
|
||||
import type { UiSettings } from "../storage.ts";
|
||||
|
||||
export type OverviewProps = {
|
||||
connected: boolean;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { html, nothing } from "lit";
|
||||
import type { GatewaySessionRow, SessionsListResult } from "../types.ts";
|
||||
import { formatRelativeTimestamp } from "../format.ts";
|
||||
import { pathForTab } from "../navigation.ts";
|
||||
import { formatSessionTokens } from "../presenter.ts";
|
||||
import type { GatewaySessionRow, SessionsListResult } from "../types.ts";
|
||||
|
||||
export type SessionsProps = {
|
||||
loading: boolean;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { html, nothing } from "lit";
|
||||
import type { SkillMessageMap } from "../controllers/skills.ts";
|
||||
import { clampText } from "../format.ts";
|
||||
import type { SkillStatusEntry, SkillStatusReport } from "../types.ts";
|
||||
import { clampText } from "../format.ts";
|
||||
import { groupSkills } from "./skills-grouping.ts";
|
||||
import {
|
||||
computeSkillMissing,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import type { TimeSeriesPoint, UsageSessionEntry } from "./usageTypes.ts";
|
||||
import {
|
||||
computeFilteredUsage,
|
||||
CHART_BAR_WIDTH_RATIO,
|
||||
CHART_MAX_BAR_WIDTH,
|
||||
} from "./usage-render-details.ts";
|
||||
import type { TimeSeriesPoint, UsageSessionEntry } from "./usageTypes.ts";
|
||||
|
||||
function makePoint(overrides: Partial<TimeSeriesPoint> = {}): TimeSeriesPoint {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user