diff --git a/frontend/src/app/agents/[agentId]/edit/page.tsx b/frontend/src/app/agents/[agentId]/edit/page.tsx
index 379c098..0f9af47 100644
--- a/frontend/src/app/agents/[agentId]/edit/page.tsx
+++ b/frontend/src/app/agents/[agentId]/edit/page.tsx
@@ -9,19 +9,15 @@ import { DashboardSidebar } from "@/components/organisms/DashboardSidebar";
import { DashboardShell } from "@/components/templates/DashboardShell";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
+import SearchableSelect, {
+ type SearchableSelectOption,
+} from "@/components/ui/searchable-select";
import { Textarea } from "@/components/ui/textarea";
import { getApiBaseUrl } from "@/lib/api-base";
import {
DEFAULT_IDENTITY_TEMPLATE,
DEFAULT_SOUL_TEMPLATE,
} from "@/lib/agent-templates";
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
const apiBase = getApiBaseUrl();
@@ -43,6 +39,17 @@ type Board = {
slug: string;
};
+const HEARTBEAT_TARGET_OPTIONS: SearchableSelectOption[] = [
+ { value: "none", label: "None (no outbound message)" },
+ { value: "last", label: "Last channel" },
+];
+
+const getBoardOptions = (boards: Board[]): SearchableSelectOption[] =>
+ boards.map((board) => ({
+ value: board.id,
+ label: board.name,
+ }));
+
export default function EditAgentPage() {
const { getToken, isSignedIn } = useAuth();
const router = useRouter();
@@ -231,22 +238,19 @@ export default function EditAgentPage() {
-
+ />
{boards.length === 0 ? (
Create a board before assigning agents.
@@ -260,7 +264,7 @@ export default function EditAgentPage() {
Agent persona
-
+
diff --git a/frontend/src/app/agents/new/page.tsx b/frontend/src/app/agents/new/page.tsx
index d2a89a1..ba35fbf 100644
--- a/frontend/src/app/agents/new/page.tsx
+++ b/frontend/src/app/agents/new/page.tsx
@@ -9,19 +9,15 @@ import { DashboardSidebar } from "@/components/organisms/DashboardSidebar";
import { DashboardShell } from "@/components/templates/DashboardShell";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
+import SearchableSelect, {
+ type SearchableSelectOption,
+} from "@/components/ui/searchable-select";
import { Textarea } from "@/components/ui/textarea";
import { getApiBaseUrl } from "@/lib/api-base";
import {
DEFAULT_IDENTITY_TEMPLATE,
DEFAULT_SOUL_TEMPLATE,
} from "@/lib/agent-templates";
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
const apiBase = getApiBaseUrl();
@@ -36,6 +32,17 @@ type Board = {
slug: string;
};
+const HEARTBEAT_TARGET_OPTIONS: SearchableSelectOption[] = [
+ { value: "none", label: "None (no outbound message)" },
+ { value: "last", label: "Last channel" },
+];
+
+const getBoardOptions = (boards: Board[]): SearchableSelectOption[] =>
+ boards.map((board) => ({
+ value: board.id,
+ label: board.name,
+ }));
+
export default function NewAgentPage() {
const router = useRouter();
const { getToken, isSignedIn } = useAuth();
@@ -177,22 +184,19 @@ export default function NewAgentPage() {
Board *
-
+ />
{boards.length === 0 ? (
Create a board before adding agents.
@@ -206,7 +210,7 @@ export default function NewAgentPage() {
Agent persona
-
+
Identity template
@@ -217,6 +221,10 @@ export default function NewAgentPage() {
rows={8}
disabled={isLoading}
/>
+
+ Keep the agent_name and agent_id variables unchanged so
+ the gateway can render them correctly.
+
@@ -255,21 +263,19 @@ export default function NewAgentPage() {
Target
-
+ />