diff --git a/ui/admin/app/components/agent/ToolForm.tsx b/ui/admin/app/components/agent/ToolForm.tsx
index 3d74cb463..10d953ed7 100644
--- a/ui/admin/app/components/agent/ToolForm.tsx
+++ b/ui/admin/app/components/agent/ToolForm.tsx
@@ -6,7 +6,6 @@ import { z } from "zod";
import { Agent } from "~/lib/model/agents";
import { noop } from "~/lib/utils";
-import { TypographyP, TypographySmall } from "~/components/Typography";
import { ToolEntry } from "~/components/agent/ToolEntry";
import { ToolCatalogDialog } from "~/components/tools/ToolCatalog";
import { Form } from "~/components/ui/form";
@@ -148,14 +147,14 @@ export function ToolForm({
onSubmit={handleSubmit(onSubmit || noop)}
className="flex flex-col gap-2"
>
-
{fixedFields.map((field) => (
@@ -177,14 +176,14 @@ export function ToolForm({
/>
{userFields.map((field) => (
diff --git a/ui/admin/app/components/agent/shared/EnvironmentVariableSection.tsx b/ui/admin/app/components/agent/shared/EnvironmentVariableSection.tsx
index ad21ec60d..1e0ed9665 100644
--- a/ui/admin/app/components/agent/shared/EnvironmentVariableSection.tsx
+++ b/ui/admin/app/components/agent/shared/EnvironmentVariableSection.tsx
@@ -6,7 +6,6 @@ import { EnvVariable } from "~/lib/model/environmentVariables";
import { Workflow } from "~/lib/model/workflows";
import { EnvironmentApiService } from "~/lib/service/api/EnvironmentApiService";
-import { TypographyP } from "~/components/Typography";
import { EnvForm } from "~/components/agent/shared/AgentEnvironmentVariableForm";
import { SelectList } from "~/components/composed/SelectModule";
import { Button } from "~/components/ui/button";
@@ -112,8 +111,8 @@ export function EnvironmentVariableSection({
function renderItem(item: EnvVariable) {
return (
-
{item.name}
-
{"•".repeat(15)}
+
{item.name}
+
{"•".repeat(15)}
);
}
diff --git a/ui/admin/app/components/branding/ObotLogo.tsx b/ui/admin/app/components/branding/ObotLogo.tsx
index 88e65cf78..389c6d746 100644
--- a/ui/admin/app/components/branding/ObotLogo.tsx
+++ b/ui/admin/app/components/branding/ObotLogo.tsx
@@ -1,6 +1,5 @@
import { assetUrl, cn } from "~/lib/utils";
-import { TypographyH2 } from "~/components/Typography";
import { useTheme } from "~/components/theme";
export function ObotLogo({
@@ -18,7 +17,7 @@ export function ObotLogo({
logo = "/logo/obot-icon-blue.svg";
}
return (
-
-
+
);
}
diff --git a/ui/admin/app/components/chat/Message.tsx b/ui/admin/app/components/chat/Message.tsx
index 4bb3b29f8..9915fc0d0 100644
--- a/ui/admin/app/components/chat/Message.tsx
+++ b/ui/admin/app/components/chat/Message.tsx
@@ -11,7 +11,6 @@ import { Message as MessageType } from "~/lib/model/messages";
import { PromptApiService } from "~/lib/service/api/PromptApi";
import { cn } from "~/lib/utils";
-import { TypographyP } from "~/components/Typography";
import { useChat } from "~/components/chat/ChatContext";
import { MessageDebug } from "~/components/chat/MessageDebug";
import { ToolCallInfo } from "~/components/chat/ToolCallInfo";
@@ -200,16 +199,14 @@ function PromptMessage({ prompt }: { prompt: AuthPrompt }) {
if (isSubmitted) {
return (
-
- {getSubmittedText()}
-
+
{getSubmittedText()}
);
}
return (
-
{getMessage()}
+
{getMessage()}
{isRunning && prompt.metadata?.authURL && (
- Knowledge
+
Knowledge
-
+
{knowledge.length || "No"} files
-
+
diff --git a/ui/admin/app/components/chat/chat-actions/ToolsInfo.tsx b/ui/admin/app/components/chat/chat-actions/ToolsInfo.tsx
index 606035550..f9f3ccb34 100644
--- a/ui/admin/app/components/chat/chat-actions/ToolsInfo.tsx
+++ b/ui/admin/app/components/chat/chat-actions/ToolsInfo.tsx
@@ -4,7 +4,6 @@ import { useMemo } from "react";
import { Agent } from "~/lib/model/agents";
import { cn } from "~/lib/utils";
-import { TypographyMuted, TypographySmall } from "~/components/Typography";
import { ToolEntry } from "~/components/agent/ToolEntry";
import { Button } from "~/components/ui/button";
import {
@@ -90,15 +89,16 @@ export function ToolsInfo({
{toolItems.length > 0 ? (
-
- Available Tools
-
+
Available Tools
+
{toolItems.map(renderToolItem)}
) : (
- No tools available
+
+ No tools available
+
)}
@@ -119,7 +119,7 @@ export function ToolsInfo({
}
/>
) : (
-
On
+
On
)
}
/>
diff --git a/ui/admin/app/components/composed/CopyText.tsx b/ui/admin/app/components/composed/CopyText.tsx
index f56cf5c9e..88f13d32e 100644
--- a/ui/admin/app/components/composed/CopyText.tsx
+++ b/ui/admin/app/components/composed/CopyText.tsx
@@ -4,7 +4,6 @@ import { toast } from "sonner";
import { cn } from "~/lib/utils";
-import { TypographyP } from "~/components/Typography";
import { Button } from "~/components/ui/button";
import {
Tooltip,
@@ -49,9 +48,9 @@ export function CopyText({
onClick={() => handleCopy(text)}
className="decoration-dotted underline-offset-4 underline text-ellipsis overflow-hidden text-nowrap"
>
-
+
{displayText}
-
+
diff --git a/ui/admin/app/components/composed/FirstModelProviderBanner.tsx b/ui/admin/app/components/composed/FirstModelProviderBanner.tsx
index 69400a058..a3cb2546b 100644
--- a/ui/admin/app/components/composed/FirstModelProviderBanner.tsx
+++ b/ui/admin/app/components/composed/FirstModelProviderBanner.tsx
@@ -3,7 +3,6 @@ import { $path } from "safe-routes";
import { assetUrl } from "~/lib/utils";
-import { TypographyH3, TypographyP } from "~/components/Typography";
import { Button } from "~/components/ui/button";
import { useModelProviders } from "~/hooks/model-providers/useModelProviders";
@@ -28,16 +27,16 @@ export function FirstModelProviderBanner() {
/>
-
+
Wait! You need to set up a Model Provider!
-
-
+
+
You're almost there! To start creating or using{" "}
Obot's features, you'll need access to an
LLM (Large Language Model) Model Provider .
Luckily, we support a variety of providers to help
get you started.
-
+
Get Started
diff --git a/ui/admin/app/components/composed/typography.tsx b/ui/admin/app/components/composed/typography.tsx
new file mode 100644
index 000000000..19bf18281
--- /dev/null
+++ b/ui/admin/app/components/composed/typography.tsx
@@ -0,0 +1,41 @@
+import { Slot } from "@radix-ui/react-slot";
+
+import { cn } from "~/lib/utils";
+
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
+} from "~/components/ui/tooltip";
+
+export function Truncate({
+ children,
+ className,
+ asChild,
+ disableTooltip,
+ tooltipContent = {children}
,
+}: {
+ children: React.ReactNode;
+ className?: string;
+ asChild?: boolean;
+ disableTooltip?: boolean;
+ tooltipContent?: React.ReactNode;
+}) {
+ const Comp = asChild ? Slot : "p";
+
+ if (disableTooltip) {
+ return {children} ;
+ }
+
+ return (
+
+ {tooltipContent}
+
+
+
+ {children}
+
+
+
+ );
+}
diff --git a/ui/admin/app/components/knowledge/AgentKnowledgePanel.tsx b/ui/admin/app/components/knowledge/AgentKnowledgePanel.tsx
index 7a246bb75..14d79b4e4 100644
--- a/ui/admin/app/components/knowledge/AgentKnowledgePanel.tsx
+++ b/ui/admin/app/components/knowledge/AgentKnowledgePanel.tsx
@@ -10,7 +10,6 @@ import {
import { ModelAlias } from "~/lib/model/models";
import { DefaultModelAliasApiService } from "~/lib/service/api/defaultModelAliasApiService";
-import { TypographyP } from "~/components/Typography";
import { ErrorDialog } from "~/components/composed/ErrorDialog";
import { WarningAlert } from "~/components/composed/WarningAlert";
import { AddKnowledgeButton } from "~/components/knowledge/AddKnowledgeButton";
@@ -126,13 +125,13 @@ export default function AgentKnowledgePanel({
+
In order to process the knowledge base for your
agent, you'll need to set up a default text
embedding model. Click{" "}
here to
update your model provider and/or default models.
-
+
}
/>
)}
diff --git a/ui/admin/app/components/model-providers/ModelProviderDeconfigure.tsx b/ui/admin/app/components/model-providers/ModelProviderDeconfigure.tsx
index 428e0430d..b3782a9db 100644
--- a/ui/admin/app/components/model-providers/ModelProviderDeconfigure.tsx
+++ b/ui/admin/app/components/model-providers/ModelProviderDeconfigure.tsx
@@ -6,7 +6,6 @@ import { ModelProvider } from "~/lib/model/modelProviders";
import { ModelApiService } from "~/lib/service/api/modelApiService";
import { ModelProviderApiService } from "~/lib/service/api/modelProviderApiService";
-import { TypographyP } from "~/components/Typography";
import { Button } from "~/components/ui/button";
import {
Dialog,
@@ -66,17 +65,17 @@ export function ModelProviderDeconfigure({
Deconfigure {modelProvider.name}
-
+
Deconfiguring this model provider will remove all models
associated with it and reset it to its unconfigured state.
You will need to set up the model provider once again to use
it.
-
+
-
+
Are you sure you want to deconfigure{" "}
{modelProvider.name} ?
-
+
diff --git a/ui/admin/app/components/model-providers/ModelProviderForm.tsx b/ui/admin/app/components/model-providers/ModelProviderForm.tsx
index 33bc46547..26f923520 100644
--- a/ui/admin/app/components/model-providers/ModelProviderForm.tsx
+++ b/ui/admin/app/components/model-providers/ModelProviderForm.tsx
@@ -9,7 +9,6 @@ import { ModelProvider, ModelProviderConfig } from "~/lib/model/modelProviders";
import { ModelApiService } from "~/lib/service/api/modelApiService";
import { ModelProviderApiService } from "~/lib/service/api/modelProviderApiService";
-import { TypographyH4 } from "~/components/Typography";
import {
HelperTooltipLabel,
HelperTooltipLink,
@@ -218,9 +217,9 @@ export function ModelProviderForm({
)}
-
+
Required Configuration
-
+
-
+
Custom Configuration (Optional)
-
+
{ModelProviderConfigurationLinks[modelProvider.id]
? renderCustomConfigTooltip(modelProvider.id)
: null}
diff --git a/ui/admin/app/components/oauth-apps/OAuthAppDetail.tsx b/ui/admin/app/components/oauth-apps/OAuthAppDetail.tsx
index 92c684263..215cb7361 100644
--- a/ui/admin/app/components/oauth-apps/OAuthAppDetail.tsx
+++ b/ui/admin/app/components/oauth-apps/OAuthAppDetail.tsx
@@ -8,7 +8,6 @@ import {
} from "~/lib/model/oauthApps/oauth-helpers";
import { cn } from "~/lib/utils";
-import { TypographyP } from "~/components/Typography";
import { ConfigureOAuthApp } from "~/components/oauth-apps/ConfigureOAuthApp";
import { DeleteOAuthApp } from "~/components/oauth-apps/DeleteOAuthApp";
import { OAuthAppTypeIcon } from "~/components/oauth-apps/OAuthAppTypeIcon";
@@ -114,7 +113,7 @@ export function OAuthAppDetail({
}
function DisabledContent({ spec }: { spec: OAuthAppSpec }) {
- return
{spec.disabledReason} ;
+ return
{spec.disabledReason}
;
}
function EmptyContent({
@@ -126,30 +125,30 @@ function EmptyContent({
}) {
return spec.noGatewayIntegration ? (
-
+
{spec.displayName} OAuth is not configured. You must configure
it to enable tools that interact with protected{" "}
{spec.displayName} APIs.
-
+
-
+
You can also configure {spec.displayName} OAuth by clicking the
button below.
-
+
) : (
-
+
{spec.displayName} OAuth is currently enabled. No action is
needed here.
-
+
-
+
You can also configure your own {spec.displayName} OAuth by
clicking the button below.
-
+
@@ -167,21 +166,21 @@ function Content({
}) {
return (
-
+
Obot only supports one custom {spec.displayName} OAuth. If you
need to use a different configuration, you can replace the
current configuration with a new one.
-
+
-
+
When {spec.displayName} OAuth is used, Obot will use your custom
OAuth app.
-
+
-
+
Client ID
-
+
@@ -191,10 +190,10 @@ function Content({
{app.clientID}
-
+
Client Secret
-
-
****************
+
+
****************
diff --git a/ui/admin/app/components/oauth-apps/OAuthAppList.tsx b/ui/admin/app/components/oauth-apps/OAuthAppList.tsx
index 4d1239003..91aa196eb 100644
--- a/ui/admin/app/components/oauth-apps/OAuthAppList.tsx
+++ b/ui/admin/app/components/oauth-apps/OAuthAppList.tsx
@@ -1,4 +1,3 @@
-import { TypographyH3 } from "~/components/Typography";
import { OAuthAppTile } from "~/components/oauth-apps/OAuthAppTile";
import { useOAuthAppList } from "~/hooks/oauthApps/useOAuthApps";
@@ -7,7 +6,7 @@ export function OAuthAppList() {
return (
-
Default OAuth Apps
+
Default OAuth Apps
{apps.map(({ type }) => (
diff --git a/ui/admin/app/components/oauth-apps/OAuthAppTile.tsx b/ui/admin/app/components/oauth-apps/OAuthAppTile.tsx
index f67ca0eb2..0416b3158 100644
--- a/ui/admin/app/components/oauth-apps/OAuthAppTile.tsx
+++ b/ui/admin/app/components/oauth-apps/OAuthAppTile.tsx
@@ -1,7 +1,6 @@
import { OAuthProvider } from "~/lib/model/oauthApps/oauth-helpers";
import { cn } from "~/lib/utils";
-import { TypographyH3 } from "~/components/Typography";
import { OAuthAppDetail } from "~/components/oauth-apps/OAuthAppDetail";
import { useTheme } from "~/components/theme";
import { Badge } from "~/components/ui/badge";
@@ -42,9 +41,7 @@ export function OAuthAppTile({
>
-
- {displayName}
-
+
{displayName}
{info.appOverride ? (
diff --git a/ui/admin/app/components/oauth-apps/custom/CustomOAuthAppForm.tsx b/ui/admin/app/components/oauth-apps/custom/CustomOAuthAppForm.tsx
index 4ca30801a..ca6ab6e56 100644
--- a/ui/admin/app/components/oauth-apps/custom/CustomOAuthAppForm.tsx
+++ b/ui/admin/app/components/oauth-apps/custom/CustomOAuthAppForm.tsx
@@ -10,7 +10,6 @@ import { ConflictError } from "~/lib/service/api/apiErrors";
import { OauthAppService } from "~/lib/service/api/oauthAppService";
import { ErrorService } from "~/lib/service/errorService";
-import { TypographySmall } from "~/components/Typography";
import { CopyText } from "~/components/composed/CopyText";
import { ControlledInput } from "~/components/form/controlledInputs";
import { Button } from "~/components/ui/button";
@@ -204,7 +203,7 @@ export function CustomOAuthAppForm({
{step === Step.INFO && app && (
<>
-
Redirect URL
+
Redirect URL
- {app.name}
+
{app.name}
-
- {app.integration}
-
+ {app.integration}
-
+
{timeSince(new Date(app.created))} ago
-
+
diff --git a/ui/admin/app/components/oauth-apps/custom/CustomOAuthApps.tsx b/ui/admin/app/components/oauth-apps/custom/CustomOAuthApps.tsx
index 73c6d9ed1..6476d8b97 100644
--- a/ui/admin/app/components/oauth-apps/custom/CustomOAuthApps.tsx
+++ b/ui/admin/app/components/oauth-apps/custom/CustomOAuthApps.tsx
@@ -1,4 +1,3 @@
-import { TypographyH3 } from "~/components/Typography";
import { CustomOAuthAppTile } from "~/components/oauth-apps/custom/CustomOAuthAppTile";
import { useCustomOAuthAppInfo } from "~/hooks/oauthApps/useOAuthApps";
@@ -9,7 +8,7 @@ export function CustomOAuthApps() {
return (
-
Custom OAuth Apps
+
Custom OAuth Apps
{apps.map((app) => (
diff --git a/ui/admin/app/components/sidebar/Sidebar.tsx b/ui/admin/app/components/sidebar/Sidebar.tsx
index 854ffd4ca..f8361c9c0 100644
--- a/ui/admin/app/components/sidebar/Sidebar.tsx
+++ b/ui/admin/app/components/sidebar/Sidebar.tsx
@@ -16,7 +16,6 @@ import useSWR from "swr";
import { VersionApiService } from "~/lib/service/api/versionApiService";
import { cn } from "~/lib/utils";
-import { TypographyMuted, TypographySmall } from "~/components/Typography";
import { ObotLogo } from "~/components/branding/ObotLogo";
import { Button } from "~/components/ui/button";
import {
@@ -167,8 +166,10 @@ function VersionInfo() {
{versionEntries.map(([key, value], index) =>
value ? (
- {key}:
- {value}
+
+ {key}:
+
+ {value}
{index !== versionEntries.length - 1 && (
)}
diff --git a/ui/admin/app/components/tools/toolGrid/CategoryHeader.tsx b/ui/admin/app/components/tools/toolGrid/CategoryHeader.tsx
index 4aff1e99f..29480e8bf 100644
--- a/ui/admin/app/components/tools/toolGrid/CategoryHeader.tsx
+++ b/ui/admin/app/components/tools/toolGrid/CategoryHeader.tsx
@@ -2,7 +2,6 @@ import { Folder } from "lucide-react";
import { ToolReference } from "~/lib/model/toolReferences";
-import { TypographyH2 } from "~/components/Typography";
import { ToolIcon } from "~/components/tools/ToolIcon";
import { Badge } from "~/components/ui/badge";
@@ -31,10 +30,10 @@ export function CategoryHeader({
)}
-
+
{category}
{tools.length}
-
+
);
}
diff --git a/ui/admin/app/components/tools/toolGrid/ToolCard.tsx b/ui/admin/app/components/tools/toolGrid/ToolCard.tsx
index 9c3d13769..0c534a732 100644
--- a/ui/admin/app/components/tools/toolGrid/ToolCard.tsx
+++ b/ui/admin/app/components/tools/toolGrid/ToolCard.tsx
@@ -3,13 +3,8 @@ import { Trash } from "lucide-react";
import { ToolReference } from "~/lib/model/toolReferences";
import { cn, timeSince } from "~/lib/utils";
-import { TruncatedText } from "~/components/TruncatedText";
-import {
- TypographyH4,
- TypographyP,
- TypographySmall,
-} from "~/components/Typography";
import { ConfirmationDialog } from "~/components/composed/ConfirmationDialog";
+import { Truncate } from "~/components/composed/typography";
import { ToolIcon } from "~/components/tools/ToolIcon";
import { Badge } from "~/components/ui/badge";
import { Button } from "~/components/ui/button";
@@ -39,7 +34,7 @@ export function ToolCard({ tool, onDelete }: ToolCardProps) {
})}
>
-
+
- {tool.error}
+ {tool.error}
)}
{tool.metadata?.bundle && (
Bundle
)}
-
+
{!tool.builtin && (
-
+ {tool.reference}
)}
-
+
{tool.description || "No description available"}
-
+
-
+
{timeSince(new Date(tool.created))} ago
-
+
+
{!tool.builtin && (
No tools found...;
+ return No tools found...
;
}
const yourToolsCategory = filteredResults[YourToolsToolCategory];
diff --git a/ui/admin/app/components/webhooks/WebhookConfirmation.tsx b/ui/admin/app/components/webhooks/WebhookConfirmation.tsx
index 824b0ec5e..a87c9a747 100644
--- a/ui/admin/app/components/webhooks/WebhookConfirmation.tsx
+++ b/ui/admin/app/components/webhooks/WebhookConfirmation.tsx
@@ -3,7 +3,6 @@ import { $path } from "safe-routes";
import { Webhook } from "~/lib/model/webhooks";
import { cn } from "~/lib/utils";
-import { TypographyP } from "~/components/Typography";
import { CopyText } from "~/components/composed/CopyText";
import { Button } from "~/components/ui/button";
import {
@@ -61,7 +60,7 @@ export const WebhookConfirmation = ({
-
Payload URL:
+
Payload URL:
- Secret:
+ Secret:
{secret ? (
) : (
-
+
({secretRemoved ? "None" : "Unchanged"})
-
+
)}
diff --git a/ui/admin/app/components/webhooks/WebhookForm.tsx b/ui/admin/app/components/webhooks/WebhookForm.tsx
index 7f7afec30..998f9f869 100644
--- a/ui/admin/app/components/webhooks/WebhookForm.tsx
+++ b/ui/admin/app/components/webhooks/WebhookForm.tsx
@@ -3,7 +3,6 @@ import useSWR from "swr";
import { WorkflowService } from "~/lib/service/api/workflowService";
import { cn, getAliasFrom } from "~/lib/utils";
-import { TypographyH2 } from "~/components/Typography";
import {
ControlledCustomInput,
ControlledInput,
@@ -66,9 +65,7 @@ export function WebhookFormContent({ hideTitle }: WebhookFormContentProps) {
onSubmit={handleSubmit}
>
{!hideTitle && (
-
- {isEdit ? "Edit Webhook" : "Create Webhook"}
-
+ {isEdit ? "Edit Webhook" : "Create Webhook"}
)}
diff --git a/ui/admin/app/components/workflow-triggers/DeleteWorkflowTrigger.tsx b/ui/admin/app/components/workflow-triggers/DeleteWorkflowTrigger.tsx
index d33f00e8e..793857907 100644
--- a/ui/admin/app/components/workflow-triggers/DeleteWorkflowTrigger.tsx
+++ b/ui/admin/app/components/workflow-triggers/DeleteWorkflowTrigger.tsx
@@ -4,7 +4,6 @@ import { mutate } from "swr";
import { CronJobApiService } from "~/lib/service/api/cronjobApiService";
import { WebhookApiService } from "~/lib/service/api/webhookApiService";
-import { TypographyP } from "~/components/Typography";
import { ConfirmationDialog } from "~/components/composed/ConfirmationDialog";
import { DropdownMenuItem } from "~/components/ui/dropdown-menu";
import { useConfirmationDialog } from "~/hooks/component-helpers/useConfirmationDialog";
@@ -60,11 +59,11 @@ export function DeleteWorkflowTrigger({
title="Delete Workflow Trigger?"
description={
-
+
Are you sure you want to delete workflow trigger:{" "}
{name || id} ?
-
-
The action cannot be undone.
+
+
The action cannot be undone.
}
confirmProps={{
diff --git a/ui/admin/app/components/workflow-triggers/ScheduleForm.tsx b/ui/admin/app/components/workflow-triggers/ScheduleForm.tsx
index 13facc0b3..d90b7d8d3 100644
--- a/ui/admin/app/components/workflow-triggers/ScheduleForm.tsx
+++ b/ui/admin/app/components/workflow-triggers/ScheduleForm.tsx
@@ -11,7 +11,6 @@ import { CronJob } from "~/lib/model/cronjobs";
import { CronJobApiService } from "~/lib/service/api/cronjobApiService";
import { WorkflowService } from "~/lib/service/api/workflowService";
-import { TypographyH2 } from "~/components/Typography";
import {
ControlledCustomInput,
ControlledInput,
@@ -98,9 +97,7 @@ export function ScheduleForm({ cronjob }: { cronjob?: CronJob }) {
className="space-y-8 p-8 max-w-3xl mx-auto"
onSubmit={handleSubmit}
>
-
- {hasCronJob ? "Edit" : "Create"} Schedule
-
+ {hasCronJob ? "Edit" : "Create"} Schedule
-
- Are you sure you want to delete this webhook?
-
+ Are you sure you want to delete this webhook?
setOpen(false)}>
Cancel
diff --git a/ui/admin/app/components/workflow/Workflow.tsx b/ui/admin/app/components/workflow/Workflow.tsx
index 8fed39792..dbe2d7ce9 100644
--- a/ui/admin/app/components/workflow/Workflow.tsx
+++ b/ui/admin/app/components/workflow/Workflow.tsx
@@ -5,7 +5,6 @@ import { AssistantNamespace } from "~/lib/model/assistants";
import { Workflow as WorkflowType } from "~/lib/model/workflows";
import { cn } from "~/lib/utils";
-import { TypographyH4, TypographyP } from "~/components/Typography";
import { AgentForm } from "~/components/agent";
import { EnvironmentVariableSection } from "~/components/agent/shared/EnvironmentVariableSection";
import { ToolAuthenticationStatus } from "~/components/agent/shared/ToolAuthenticationStatus";
@@ -76,10 +75,10 @@ function WorkflowContent({ className }: WorkflowProps) {
-
+
Tools
-
+
Add tools the allow the agent to perform useful actions
@@ -103,10 +102,10 @@ function WorkflowContent({ className }: WorkflowProps) {
-
+
Environment Variables
-
+
-
+
Parameters
-
+
-
+
Steps
-
+
-
+
Knowledge
-
+
Provide knowledge to the workflow in the form of files,
@@ -177,9 +176,9 @@ function WorkflowContent({ className }: WorkflowProps) {
{isUpdating ? (
- Saving...
+ Saving...
) : lastUpdated ? (
- Saved
+ Saved
) : (
)}
diff --git a/ui/admin/app/components/workflow/WorkflowSchedulePanel.tsx b/ui/admin/app/components/workflow/WorkflowSchedulePanel.tsx
index a99c6a606..293926d14 100644
--- a/ui/admin/app/components/workflow/WorkflowSchedulePanel.tsx
+++ b/ui/admin/app/components/workflow/WorkflowSchedulePanel.tsx
@@ -2,7 +2,6 @@ import { ClockIcon, PlusIcon, TrashIcon } from "lucide-react";
import { CronJob } from "~/lib/model/cronjobs";
-import { TypographyH4 } from "~/components/Typography";
import { Button } from "~/components/ui/button";
import { CardDescription } from "~/components/ui/card";
import { ScheduleSelection } from "~/components/workflow-triggers/shared/ScheduleSelection";
@@ -32,10 +31,10 @@ export function WorkflowSchedulePanel({ workflowId }: { workflowId: string }) {
return (
-
+
Schedule
-
+
diff --git a/ui/admin/app/components/workflow/WorkflowWebhookPanel.tsx b/ui/admin/app/components/workflow/WorkflowWebhookPanel.tsx
index eb4941c9a..b84fb34bb 100644
--- a/ui/admin/app/components/workflow/WorkflowWebhookPanel.tsx
+++ b/ui/admin/app/components/workflow/WorkflowWebhookPanel.tsx
@@ -3,7 +3,6 @@ import useSWR from "swr";
import { WebhookApiService } from "~/lib/service/api/webhookApiService";
-import { TypographyH4, TypographyP } from "~/components/Typography";
import { CardDescription } from "~/components/ui/card";
import { DeleteWorkflowWebhook } from "~/components/workflow/DeleteWorkflowWebhook";
import { WorkflowWebhookDialog } from "~/components/workflow/WorkflowWebhookDialog";
@@ -20,10 +19,10 @@ export function WorkflowWebhookPanel({ workflowId }: { workflowId: string }) {
return (
-
+
Webhooks
-
+
Add webhooks to notify external services when your AI agent
@@ -33,7 +32,7 @@ export function WorkflowWebhookPanel({ workflowId }: { workflowId: string }) {
{workflowWebhooks?.map((webhook) => (
-
{webhook.name || webhook.id}
+
{webhook.name || webhook.id}
-
Agents
+
Agents
(
-
- {timeSince(new Date(info.row.original.created))} ago
-
+ {timeSince(new Date(info.row.original.created))} ago
),
}),
columnHelper.display({
diff --git a/ui/admin/app/routes/_auth.debug.tsx b/ui/admin/app/routes/_auth.debug.tsx
index fff70bd3e..8125d520f 100644
--- a/ui/admin/app/routes/_auth.debug.tsx
+++ b/ui/admin/app/routes/_auth.debug.tsx
@@ -3,7 +3,6 @@ import { ChangeEvent, useEffect, useRef, useState } from "react";
import { Calls } from "~/lib/model/runs";
-import { TypographyH1, TypographyH3 } from "~/components/Typography";
import CallFrames from "~/components/chat/CallFrames";
import { Button } from "~/components/ui/button";
import { Card } from "~/components/ui/card";
@@ -53,7 +52,8 @@ export default function Debug() {
{fileName ? (
-
{fileName}
+
{fileName}
+
) : (
-
+
-
- Looking to debug a run?
-
-
+ Looking to debug a run?
+
+
You're in the right place! Click the
button below to upload your stack trace and
you can step through all the frames behind
your run.
-
+
-
- Model Providers
-
+
Model Providers
diff --git a/ui/admin/app/routes/_auth.oauth-apps.tsx b/ui/admin/app/routes/_auth.oauth-apps.tsx
index f8aed5d0e..6326ad35c 100644
--- a/ui/admin/app/routes/_auth.oauth-apps.tsx
+++ b/ui/admin/app/routes/_auth.oauth-apps.tsx
@@ -4,7 +4,6 @@ import { preload } from "swr";
import { OauthAppService } from "~/lib/service/api/oauthAppService";
import { RouteHandle } from "~/lib/service/routeHandles";
-import { TypographyH2 } from "~/components/Typography";
import { OAuthAppList } from "~/components/oauth-apps/OAuthAppList";
import { CreateCustomOAuthApp } from "~/components/oauth-apps/custom/CreateCustomOAuthApp";
import { CustomOAuthApps } from "~/components/oauth-apps/custom/CustomOAuthApps";
@@ -22,7 +21,7 @@ export default function OauthApps() {
return (
- OAuth Apps
+
OAuth Apps
diff --git a/ui/admin/app/routes/_auth.threads._index.tsx b/ui/admin/app/routes/_auth.threads._index.tsx
index 0039af71f..7e8050f98 100644
--- a/ui/admin/app/routes/_auth.threads._index.tsx
+++ b/ui/admin/app/routes/_auth.threads._index.tsx
@@ -25,7 +25,6 @@ import { RouteHandle } from "~/lib/service/routeHandles";
import { RouteQueryParams, RouteService } from "~/lib/service/routeService";
import { timeSince } from "~/lib/utils";
-import { TypographyH2, TypographyP } from "~/components/Typography";
import { DataTable } from "~/components/composed/DataTable";
import { Button } from "~/components/ui/button";
import { ScrollArea } from "~/components/ui/scroll-area";
@@ -152,7 +151,7 @@ export default function Threads() {
return (
- Threads
+ Threads
{
return (
-
+
{row.original.agentID ? (
) : (
)}
{row.original.agentID ? "Agent" : "Workflow"}
-
+
);
},
}),
@@ -212,9 +211,7 @@ export default function Threads() {
id: "created",
header: "Created",
cell: (info) => (
-
- {timeSince(new Date(info.row.original.created))} ago
-
+ {timeSince(new Date(info.row.original.created))} ago
),
sortingFn: "datetime",
}),
diff --git a/ui/admin/app/routes/_auth.tools._index.tsx b/ui/admin/app/routes/_auth.tools._index.tsx
index d83cc3739..e9ca4444e 100644
--- a/ui/admin/app/routes/_auth.tools._index.tsx
+++ b/ui/admin/app/routes/_auth.tools._index.tsx
@@ -6,7 +6,6 @@ import useSWR, { preload } from "swr";
import { ToolReferenceService } from "~/lib/service/api/toolreferenceService";
import { RouteHandle } from "~/lib/service/routeHandles";
-import { TypographyH2 } from "~/components/Typography";
import { ErrorDialog } from "~/components/composed/ErrorDialog";
import { CreateTool } from "~/components/tools/CreateTool";
import { ToolGrid } from "~/components/tools/toolGrid";
@@ -62,7 +61,7 @@ export default function Tools() {
return (
-
Tools
+
Tools
diff --git a/ui/admin/app/routes/_auth.users.tsx b/ui/admin/app/routes/_auth.users.tsx
index fd6130f90..1474ed33e 100644
--- a/ui/admin/app/routes/_auth.users.tsx
+++ b/ui/admin/app/routes/_auth.users.tsx
@@ -11,7 +11,6 @@ import { UserService } from "~/lib/service/api/userService";
import { RouteHandle } from "~/lib/service/routeHandles";
import { pluralize, timeSince } from "~/lib/utils";
-import { TypographyH2, TypographyP } from "~/components/Typography";
import { DataTable } from "~/components/composed/DataTable";
import { Link } from "~/components/ui/link";
@@ -56,7 +55,7 @@ export default function Users() {
return (
-
Users
+
Users
);
}
- return No Threads ;
+ return No Threads
;
},
}),
columnHelper.display({
id: "role",
header: "Role",
- cell: ({ row }) => (
- {roleToString(row.original.role)}
- ),
+ cell: ({ row }) => {roleToString(row.original.role)}
,
}),
columnHelper.display({
id: "created",
header: "Created",
cell: ({ row }) => (
-
- {timeSince(new Date(row.original.created))} ago
-
+ {timeSince(new Date(row.original.created))} ago
),
}),
];
diff --git a/ui/admin/app/routes/_auth.workflow-triggers._index.tsx b/ui/admin/app/routes/_auth.workflow-triggers._index.tsx
index 492a97c76..f63906a7e 100644
--- a/ui/admin/app/routes/_auth.workflow-triggers._index.tsx
+++ b/ui/admin/app/routes/_auth.workflow-triggers._index.tsx
@@ -10,7 +10,6 @@ import { CronJobApiService } from "~/lib/service/api/cronjobApiService";
import { WebhookApiService } from "~/lib/service/api/webhookApiService";
import { WorkflowService } from "~/lib/service/api/workflowService";
-import { TypographyH2 } from "~/components/Typography";
import { DataTable } from "~/components/composed/DataTable";
import { CreateWorkflowTrigger } from "~/components/workflow-triggers/CreateWorkflowTrigger";
import { WorkflowTriggerActions } from "~/components/workflow-triggers/WorkflowTriggerActions";
@@ -81,7 +80,7 @@ export default function WorkflowTriggersPage() {
return (
- Workflow Triggers
+
Workflow Triggers
diff --git a/ui/admin/app/routes/_auth.workflows._index.tsx b/ui/admin/app/routes/_auth.workflows._index.tsx
index 204bd0701..214143332 100644
--- a/ui/admin/app/routes/_auth.workflows._index.tsx
+++ b/ui/admin/app/routes/_auth.workflows._index.tsx
@@ -10,7 +10,6 @@ import { ThreadsService } from "~/lib/service/api/threadsService";
import { WorkflowService } from "~/lib/service/api/workflowService";
import { timeSince } from "~/lib/utils";
-import { TypographyH2, TypographyP } from "~/components/Typography";
import { DataTable } from "~/components/composed/DataTable";
import { Button } from "~/components/ui/button";
import { Link } from "~/components/ui/link";
@@ -79,7 +78,7 @@ export default function Workflows() {
- Workflows
+
Workflows
@@ -118,9 +117,7 @@ export default function Workflows() {
})}
className="px-0"
>
-
- {info.getValue() || 0} Threads
-
+
{info.getValue() || 0} Threads
),
@@ -130,9 +127,7 @@ export default function Workflows() {
id: "created",
header: "Created",
cell: (info) => (
-
- {timeSince(new Date(info.row.original.created))} ago
-
+
{timeSince(new Date(info.row.original.created))} ago
),
}),
columnHelper.display({
diff --git a/ui/admin/app/tailwind.css b/ui/admin/app/tailwind.css
index a61c60429..7e1e67e86 100644
--- a/ui/admin/app/tailwind.css
+++ b/ui/admin/app/tailwind.css
@@ -163,7 +163,46 @@ body {
* {
@apply border-border;
}
+
body {
@apply bg-background text-foreground;
}
+
+ /* Typography */
+
+ h1 {
+ @apply scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl;
+ }
+
+ h2 {
+ @apply scroll-m-20 pb-2 text-3xl font-semibold tracking-tight first:mt-0;
+ }
+
+ h3 {
+ @apply scroll-m-20 text-2xl font-semibold tracking-tight;
+ }
+
+ h4 {
+ @apply scroll-m-20 text-xl font-semibold tracking-tight;
+ }
+
+ p {
+ @apply leading-7;
+ }
+
+ blockquote {
+ @apply mt-6 border-l-2 pl-6 italic;
+ }
+
+ code {
+ @apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;
+ }
+
+ large {
+ @apply text-lg font-semibold;
+ }
+
+ small {
+ @apply text-sm font-medium leading-none;
+ }
}