@parhelia/core 0.1.11014 → 0.1.11062

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/agents-view/AgentCard.js +37 -3
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentsInbox.d.ts +19 -0
  4. package/dist/agents-view/AgentsInbox.js +108 -0
  5. package/dist/agents-view/AgentsInbox.js.map +1 -0
  6. package/dist/agents-view/AgentsView.d.ts +4 -2
  7. package/dist/agents-view/AgentsView.js +117 -31
  8. package/dist/agents-view/AgentsView.js.map +1 -1
  9. package/dist/agents-view/CreateAgentView.d.ts +11 -0
  10. package/dist/agents-view/CreateAgentView.js +51 -0
  11. package/dist/agents-view/CreateAgentView.js.map +1 -0
  12. package/dist/components/ui/PlaceholderInput.d.ts +7 -1
  13. package/dist/components/ui/PlaceholderInput.js +43 -32
  14. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  15. package/dist/config/config.js +1 -1
  16. package/dist/editor/FieldListField.js +46 -7
  17. package/dist/editor/FieldListField.js.map +1 -1
  18. package/dist/editor/PictureEditor.js +7 -4
  19. package/dist/editor/PictureEditor.js.map +1 -1
  20. package/dist/editor/ai/AgentTerminal.js +396 -185
  21. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  22. package/dist/editor/ai/Agents.js +68 -16
  23. package/dist/editor/ai/Agents.js.map +1 -1
  24. package/dist/editor/ai/AiResponseMessage.d.ts +4 -1
  25. package/dist/editor/ai/AiResponseMessage.js +2 -2
  26. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  27. package/dist/editor/ai/ToolCallDisplay.d.ts +9 -1
  28. package/dist/editor/ai/ToolCallDisplay.js +165 -76
  29. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  30. package/dist/editor/ai/useAgentStatus.js +2 -2
  31. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  32. package/dist/editor/client/EditorShell.js +34 -14
  33. package/dist/editor/client/EditorShell.js.map +1 -1
  34. package/dist/editor/client/editContext.d.ts +2 -0
  35. package/dist/editor/client/editContext.js.map +1 -1
  36. package/dist/editor/client/fieldModificationStore.d.ts +1 -0
  37. package/dist/editor/client/fieldModificationStore.js +13 -0
  38. package/dist/editor/client/fieldModificationStore.js.map +1 -1
  39. package/dist/editor/client/itemsRepository.d.ts +1 -0
  40. package/dist/editor/client/itemsRepository.js +26 -10
  41. package/dist/editor/client/itemsRepository.js.map +1 -1
  42. package/dist/editor/client/operations.d.ts +1 -0
  43. package/dist/editor/client/operations.js +35 -17
  44. package/dist/editor/client/operations.js.map +1 -1
  45. package/dist/editor/client/ui/DevModeIndicator.d.ts +6 -0
  46. package/dist/editor/client/ui/DevModeIndicator.js +47 -0
  47. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -0
  48. package/dist/editor/control-center/IndexOverview.js +1 -1
  49. package/dist/editor/control-center/IndexOverview.js.map +1 -1
  50. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +25 -2
  51. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  52. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +9 -5
  53. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  54. package/dist/editor/page-viewer/DeviceToolbar.js +1 -1
  55. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  56. package/dist/editor/page-viewer/PageViewerFrame.js +12 -27
  57. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  58. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -1
  59. package/dist/editor/page-viewer/pageViewContext.js +0 -4
  60. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  61. package/dist/editor/reviews/MultiReviewManager.js +19 -0
  62. package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
  63. package/dist/editor/services/contentService.d.ts +6 -1
  64. package/dist/editor/services/contentService.js +3 -0
  65. package/dist/editor/services/contentService.js.map +1 -1
  66. package/dist/editor/services/editService.d.ts +1 -0
  67. package/dist/editor/services/editService.js +7 -0
  68. package/dist/editor/services/editService.js.map +1 -1
  69. package/dist/editor/sidebar/ComponentTree.js +20 -0
  70. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  71. package/dist/editor/sidebar/Debug.js +2 -3
  72. package/dist/editor/sidebar/Debug.js.map +1 -1
  73. package/dist/editor/sidebar/MainContentTree.js +9 -0
  74. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  75. package/dist/editor/sidebar/Workbox.js +150 -5
  76. package/dist/editor/sidebar/Workbox.js.map +1 -1
  77. package/dist/editor/ui/SimpleTabs.js +64 -4
  78. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  79. package/dist/editor/ui/TemplateSelectorDialog.js +7 -1
  80. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  81. package/dist/editor/views/MediaFolderEditView.js +1 -1
  82. package/dist/revision.d.ts +2 -2
  83. package/dist/revision.js +2 -2
  84. package/dist/splash-screen/ParheliaAssistantChat.js +1 -1
  85. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  86. package/dist/styles.css +145 -15
  87. package/dist/types.d.ts +2 -0
  88. package/package.json +1 -1
@@ -1,12 +1,44 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getAgentStatusConfig } from "../editor/ai/AgentStatusBadge";
3
3
  import { cn } from "../lib/utils";
4
- import { Trash, X, Play, Users } from "lucide-react";
4
+ import { Trash, X, Play, Users, AlertCircle, Clock, DollarSign } from "lucide-react";
5
5
  import { SimpleIconButton } from "../editor/ui/SimpleIconButton";
6
6
  import { SecretAgentIcon } from "../editor/ui/Icons";
7
+ /**
8
+ * Get attention indicator info for an agent
9
+ */
10
+ function getAttentionIndicator(agent) {
11
+ const status = agent.status;
12
+ if (status === "waitingForApproval" || status === 2) {
13
+ return {
14
+ show: true,
15
+ icon: _jsx(Clock, { className: "size-3", strokeWidth: 1.5 }),
16
+ label: "Needs Approval",
17
+ colorClass: "bg-amber-100 text-amber-700 border-amber-200",
18
+ };
19
+ }
20
+ if (status === "costLimitReached" || status === 7) {
21
+ return {
22
+ show: true,
23
+ icon: _jsx(DollarSign, { className: "size-3", strokeWidth: 1.5 }),
24
+ label: "Budget Exceeded",
25
+ colorClass: "bg-orange-100 text-orange-700 border-orange-200",
26
+ };
27
+ }
28
+ if (status === "error" || status === 4) {
29
+ return {
30
+ show: true,
31
+ icon: _jsx(AlertCircle, { className: "size-3", strokeWidth: 1.5 }),
32
+ label: "Error",
33
+ colorClass: "bg-red-100 text-red-700 border-red-200",
34
+ };
35
+ }
36
+ return null;
37
+ }
7
38
  export function AgentCard({ agent, onClick, onResume, onClose, onDelete, formatDateTime, }) {
8
39
  const statusConfig = getAgentStatusConfig(agent);
9
40
  const isClosed = agent.status === "closed" || agent.status === 5;
41
+ const attentionIndicator = getAttentionIndicator(agent);
10
42
  const handleCardClick = () => {
11
43
  if (isClosed) {
12
44
  // If agent is closed, resume it directly
@@ -17,9 +49,11 @@ export function AgentCard({ agent, onClick, onResume, onClose, onDelete, formatD
17
49
  onClick(agent);
18
50
  }
19
51
  };
20
- return (_jsx("div", { className: "cursor-pointer rounded-lg border border-gray-200 bg-white p-3 shadow-sm transition-shadow hover:shadow-md", onClick: handleCardClick, children: _jsxs("div", { className: "flex items-start justify-between", children: [_jsx("div", { className: "mr-3 flex-shrink-0", children: agent.profileSvgIcon ? (_jsx("div", { className: "flex h-6 w-6 items-center justify-center text-gray-400 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: {
52
+ return (_jsx("div", { className: cn("cursor-pointer rounded-lg border bg-white p-3 shadow-sm transition-shadow hover:shadow-md", attentionIndicator
53
+ ? "border-l-4 border-l-amber-400 border-t-gray-200 border-r-gray-200 border-b-gray-200"
54
+ : "border-gray-200"), onClick: handleCardClick, children: _jsxs("div", { className: "flex items-start justify-between", children: [_jsx("div", { className: "mr-3 flex-shrink-0", children: agent.profileSvgIcon ? (_jsx("div", { className: "flex h-6 w-6 items-center justify-center text-gray-400 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: {
21
55
  __html: agent.profileSvgIcon,
22
- } })) : (_jsx(SecretAgentIcon, { size: 24, strokeWidth: 1, className: "text-gray-400" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2", children: [_jsx("div", { className: cn("h-2 w-2 flex-shrink-0 rounded-full", statusConfig.color, statusConfig.shouldPulse && "animate-pulse"), title: statusConfig.label }), _jsx("h4", { className: "truncate font-medium text-gray-900", children: agent.name }), agent.isShared && (_jsxs("div", { className: "flex items-center gap-1 rounded bg-blue-50 px-2 py-0.5 text-xs text-blue-700", children: [_jsx(Users, { className: "size-3", strokeWidth: 1 }), _jsx("span", { children: "Shared" })] }))] }), agent.isShared && agent.ownerName && (_jsxs("p", { className: "mb-1 text-xs text-gray-500", children: ["Created by ", agent.ownerName] })), agent.description && (_jsx("p", { className: "mb-2 truncate text-xs text-gray-500", children: agent.description })), _jsxs("div", { className: "space-y-1 text-xs text-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Updated:" }), _jsx("span", { children: formatDateTime(agent.updatedDate) })] }), agent.messageCount !== undefined && agent.messageCount > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Messages:" }), _jsx("span", { children: agent.messageCount })] })), agent.totalCost !== undefined && agent.totalCost > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Cost:" }), _jsxs("span", { children: ["$", agent.totalCost.toFixed(2)] })] }))] })] }), _jsxs("div", { className: "ml-3 flex gap-1", children: [isClosed && (_jsx(SimpleIconButton, { onClick: (e) => {
56
+ } })) : (_jsx(SecretAgentIcon, { size: 24, strokeWidth: 1, className: "text-gray-400" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2", children: [_jsx("div", { className: cn("h-2 w-2 flex-shrink-0 rounded-full", statusConfig.color, statusConfig.shouldPulse && "animate-pulse"), title: statusConfig.label }), _jsx("h4", { className: "truncate font-medium text-gray-900", children: agent.name }), agent.isShared && (_jsxs("div", { className: "flex items-center gap-1 rounded bg-blue-50 px-2 py-0.5 text-xs text-blue-700", children: [_jsx(Users, { className: "size-3", strokeWidth: 1 }), _jsx("span", { children: "Shared" })] }))] }), attentionIndicator && (_jsxs("div", { className: cn("mb-2 inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium", attentionIndicator.colorClass), children: [attentionIndicator.icon, _jsx("span", { children: attentionIndicator.label })] })), agent.isShared && agent.ownerName && (_jsxs("p", { className: "mb-1 text-xs text-gray-500", children: ["Created by ", agent.ownerName] })), agent.description && (_jsx("p", { className: "mb-2 truncate text-xs text-gray-500", children: agent.description })), _jsxs("div", { className: "space-y-1 text-xs text-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Updated:" }), _jsx("span", { children: formatDateTime(agent.updatedDate) })] }), agent.messageCount !== undefined && agent.messageCount > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Messages:" }), _jsx("span", { children: agent.messageCount })] })), agent.totalCost !== undefined && agent.totalCost > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: "Cost:" }), _jsxs("span", { children: ["$", agent.totalCost.toFixed(2)] })] }))] })] }), _jsxs("div", { className: "ml-3 flex gap-1", children: [isClosed && (_jsx(SimpleIconButton, { onClick: (e) => {
23
57
  e.stopPropagation();
24
58
  onResume(agent);
25
59
  }, icon: _jsx(Play, { className: "size-3", strokeWidth: 1.5 }), label: "Resume Agent", className: "text-blue-600 opacity-60 hover:text-blue-700 hover:opacity-100" })), !isClosed && (_jsx(SimpleIconButton, { onClick: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentCard.js","sourceRoot":"","sources":["../../src/agents-view/AgentCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentCard.js","sourceRoot":"","sources":["../../src/agents-view/AgentCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Agent } from "../editor/services/agentService";
2
+ interface AgentsInboxProps {
3
+ agents: Agent[];
4
+ onOpenAgent: (agent: Agent) => void;
5
+ onDismissAgent: (agentId: string, agentName: string) => void;
6
+ formatDateTime: (dateString: string) => string;
7
+ loading?: boolean;
8
+ }
9
+ /**
10
+ * Helper to check if an agent needs attention
11
+ * Includes: waitingForApproval, costLimitReached, error, idle, completed (ready for next prompt)
12
+ */
13
+ export declare function agentNeedsAttention(agent: Agent): boolean;
14
+ /**
15
+ * Inbox view showing agents that need user attention.
16
+ * Displays agents with statuses: waitingForApproval, costLimitReached, error, idle
17
+ */
18
+ export declare function AgentsInbox({ agents, onOpenAgent, onDismissAgent, formatDateTime, loading, }: AgentsInboxProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,108 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getAgentStatusConfig } from "../editor/ai/AgentStatusBadge";
3
+ import { cn } from "../lib/utils";
4
+ import { AlertCircle, Clock, DollarSign, MessageSquare, X, } from "lucide-react";
5
+ import { SimpleIconButton } from "../editor/ui/SimpleIconButton";
6
+ import { SecretAgentIcon } from "../editor/ui/Icons";
7
+ /**
8
+ * Helper to check if an agent needs attention
9
+ * Includes: waitingForApproval, costLimitReached, error, idle, completed (ready for next prompt)
10
+ */
11
+ export function agentNeedsAttention(agent) {
12
+ const status = agent.status;
13
+ return (status === "waitingForApproval" ||
14
+ status === 2 ||
15
+ status === "costLimitReached" ||
16
+ status === 7 ||
17
+ status === "error" ||
18
+ status === 4 ||
19
+ status === "idle" ||
20
+ status === 6 ||
21
+ status === "completed" ||
22
+ status === 3);
23
+ }
24
+ /**
25
+ * Get attention-specific info for display
26
+ */
27
+ function getAttentionInfo(agent) {
28
+ const status = agent.status;
29
+ if (status === "waitingForApproval" || status === 2) {
30
+ return {
31
+ icon: _jsx(Clock, { className: "size-4", strokeWidth: 1.5 }),
32
+ label: "Needs Approval",
33
+ description: "Waiting for you to approve an action",
34
+ priority: 1,
35
+ accentColor: "border-l-amber-500",
36
+ badgeClass: "text-amber-700 bg-amber-50",
37
+ };
38
+ }
39
+ if (status === "costLimitReached" || status === 7) {
40
+ return {
41
+ icon: _jsx(DollarSign, { className: "size-4", strokeWidth: 1.5 }),
42
+ label: "Budget Exceeded",
43
+ description: "Cost limit reached - extend to continue",
44
+ priority: 2,
45
+ accentColor: "border-l-orange-500",
46
+ badgeClass: "text-orange-700 bg-orange-50",
47
+ };
48
+ }
49
+ if (status === "error" || status === 4) {
50
+ return {
51
+ icon: _jsx(AlertCircle, { className: "size-4", strokeWidth: 1.5 }),
52
+ label: "Error",
53
+ description: agent.statusMessage || "An error occurred",
54
+ priority: 3,
55
+ accentColor: "border-l-red-500",
56
+ badgeClass: "text-red-700 bg-red-50",
57
+ };
58
+ }
59
+ if (status === "completed" || status === 3) {
60
+ return {
61
+ icon: _jsx(MessageSquare, { className: "size-4", strokeWidth: 1.5 }),
62
+ label: "Ready",
63
+ description: "Finished - ready for your next message",
64
+ priority: 5,
65
+ accentColor: "border-l-green-400",
66
+ badgeClass: "text-green-700 bg-green-50",
67
+ };
68
+ }
69
+ // idle
70
+ return {
71
+ icon: _jsx(MessageSquare, { className: "size-4", strokeWidth: 1.5 }),
72
+ label: "Awaiting Response",
73
+ description: "Waiting for your input",
74
+ priority: 4,
75
+ accentColor: "border-l-gray-400",
76
+ badgeClass: "text-gray-600 bg-gray-100",
77
+ };
78
+ }
79
+ /**
80
+ * Inbox view showing agents that need user attention.
81
+ * Displays agents with statuses: waitingForApproval, costLimitReached, error, idle
82
+ */
83
+ export function AgentsInbox({ agents, onOpenAgent, onDismissAgent, formatDateTime, loading, }) {
84
+ // Filter and sort agents by priority
85
+ const inboxAgents = agents
86
+ .filter(agentNeedsAttention)
87
+ .map((agent) => ({
88
+ agent,
89
+ ...getAttentionInfo(agent),
90
+ }))
91
+ .sort((a, b) => a.priority - b.priority);
92
+ if (loading) {
93
+ return (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-sm text-gray-500", children: "Loading..." }) }));
94
+ }
95
+ if (inboxAgents.length === 0) {
96
+ return (_jsxs("div", { className: "flex h-64 flex-col items-center justify-center text-center", children: [_jsx("div", { className: "mb-3 rounded-full bg-green-100 p-4", children: _jsx(MessageSquare, { className: "size-8 text-green-600", strokeWidth: 1 }) }), _jsx("h3", { className: "mb-1 text-sm font-medium text-gray-900", children: "All caught up!" }), _jsx("p", { className: "text-xs text-gray-500", children: "No agents need your attention right now." })] }));
97
+ }
98
+ return (_jsxs("div", { className: "space-y-3 p-4", children: [_jsxs("p", { className: "text-xs text-gray-500", children: [inboxAgents.length, " agent", inboxAgents.length !== 1 ? "s" : "", " need", inboxAgents.length === 1 ? "s" : "", " your attention"] }), _jsx("div", { className: "space-y-2", children: inboxAgents.map(({ agent, icon, label, description, accentColor, badgeClass }) => {
99
+ const statusConfig = getAgentStatusConfig(agent);
100
+ return (_jsx("div", { className: cn("cursor-pointer rounded-lg border border-gray-200 border-l-4 bg-white p-4 shadow-sm transition-all hover:shadow-md", accentColor), onClick: () => onOpenAgent(agent), children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "flex-shrink-0", children: agent.profileSvgIcon ? (_jsx("div", { className: "flex h-10 w-10 items-center justify-center text-gray-500 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: {
101
+ __html: agent.profileSvgIcon,
102
+ } })) : (_jsx(SecretAgentIcon, { size: 40, strokeWidth: 1, className: "text-gray-400" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "mb-1 flex items-center gap-2", children: [_jsx("div", { className: cn("h-2 w-2 flex-shrink-0 rounded-full", statusConfig.color, statusConfig.shouldPulse && "animate-pulse") }), _jsx("h4", { className: "truncate text-sm font-medium text-gray-900", children: agent.name })] }), _jsxs("div", { className: cn("mb-2 inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-xs font-medium", badgeClass), children: [icon, _jsx("span", { children: label })] }), _jsx("p", { className: "mb-2 text-xs text-gray-600", children: description }), _jsx("p", { className: "text-xs text-gray-400", children: formatDateTime(agent.updatedDate) })] }), _jsx("div", { className: "flex flex-shrink-0 gap-1", children: _jsx(SimpleIconButton, { onClick: (e) => {
103
+ e.stopPropagation();
104
+ onDismissAgent(agent.id, agent.name);
105
+ }, icon: _jsx(X, { className: "size-4", strokeWidth: 1.5 }), label: "Dismiss (Close Agent)", className: "text-gray-500 opacity-70 hover:text-gray-700 hover:opacity-100" }) })] }) }, agent.id));
106
+ }) })] }));
107
+ }
108
+ //# sourceMappingURL=AgentsInbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentsInbox.js","sourceRoot":"","sources":["../../src/agents-view/AgentsInbox.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Agents overview view that displays active agents at the top
3
- * and closed agents grouped by profile below with interactive controls
2
+ * Agents overview view with tab-based navigation:
3
+ * - Inbox: Agents requiring user attention
4
+ * - All Agents: Active and closed agents with search/filter
5
+ * - Create New: Profile selection to start a new agent
4
6
  */
5
7
  export declare function AgentsView(): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useEffect, useCallback } from "react";
2
+ import { useState, useEffect, useCallback, useMemo } from "react";
3
3
  import { getAgentsGrouped, getClosedAgentsByProfile, closeAgent, deleteAgent, } from "../editor/services/agentService";
4
4
  import { cn } from "../lib/utils";
5
5
  import { RefreshCw } from "lucide-react";
@@ -9,12 +9,18 @@ import { useEditContext } from "../editor/client/editContext";
9
9
  import { AgentCard } from "./AgentCard";
10
10
  import { ProfileAgentsGroup } from "./ProfileAgentsGroup";
11
11
  import { Checkbox } from "../components/ui/checkbox";
12
+ import { SimpleTabs } from "../editor/ui/SimpleTabs";
13
+ import { AgentsInbox, agentNeedsAttention } from "./AgentsInbox";
14
+ import { CreateAgentView } from "./CreateAgentView";
12
15
  /**
13
- * Agents overview view that displays active agents at the top
14
- * and closed agents grouped by profile below with interactive controls
16
+ * Agents overview view with tab-based navigation:
17
+ * - Inbox: Agents requiring user attention
18
+ * - All Agents: Active and closed agents with search/filter
19
+ * - Create New: Profile selection to start a new agent
15
20
  */
16
21
  export function AgentsView() {
17
22
  const editContext = useEditContext();
23
+ const [activeTabIndex, setActiveTabIndex] = useState(0);
18
24
  const [activeAgents, setActiveAgents] = useState([]);
19
25
  const [profileGroups, setProfileGroups] = useState([]);
20
26
  const [expandedProfiles, setExpandedProfiles] = useState(new Set());
@@ -115,9 +121,38 @@ export function AgentsView() {
115
121
  // Reload agents when one is closed - it should move to closed section
116
122
  loadAgents();
117
123
  }
124
+ else if (message.type === "agent:run:status") {
125
+ // Handle unified status updates with data.state
126
+ const { agentId, data } = message.payload || {};
127
+ if (!agentId || !data?.state)
128
+ return;
129
+ setActiveAgents((prevAgents) => {
130
+ const existingIndex = prevAgents.findIndex((a) => a.id === agentId);
131
+ if (existingIndex === -1)
132
+ return prevAgents;
133
+ const updatedAgents = [...prevAgents];
134
+ const existingAgent = updatedAgents[existingIndex];
135
+ updatedAgents[existingIndex] = {
136
+ ...existingAgent,
137
+ status: data.state,
138
+ statusMessage: data.statusMessage || existingAgent.statusMessage,
139
+ updatedDate: new Date().toISOString(),
140
+ };
141
+ return updatedAgents;
142
+ });
143
+ }
144
+ else if (message.type === "agent:run:complete" ||
145
+ message.type === "agent:run:error") {
146
+ // Reload to update status when agent completes or errors
147
+ loadAgents();
148
+ }
118
149
  });
119
150
  return unsubscribe;
120
151
  }, [editContext?.addSocketMessageListener, loadAgents]);
152
+ // Calculate inbox count from active agents
153
+ const inboxCount = useMemo(() => {
154
+ return activeAgents.filter(agentNeedsAttention).length;
155
+ }, [activeAgents]);
121
156
  const handleRefresh = async () => {
122
157
  setRefreshing(true);
123
158
  await loadAgents();
@@ -166,7 +201,7 @@ export function AgentsView() {
166
201
  setLoadingMoreForProfile(null);
167
202
  }
168
203
  };
169
- const handleResumeAgent = (agent) => {
204
+ const handleOpenAgent = (agent) => {
170
205
  // Ensure agents panel is visible, but don't switch views
171
206
  editContext?.setShowAgentsPanel?.(true);
172
207
  // Delay briefly for any UI updates, then dispatch event to open existing agent
@@ -177,23 +212,34 @@ export function AgentsView() {
177
212
  }, 100);
178
213
  };
179
214
  const handleCloseAgent = async (agentId, agentName) => {
180
- editContext?.confirm({
181
- header: "Close Agent",
182
- message: `Are you sure you want to close "${agentName}"? This will stop its execution if running.`,
183
- acceptLabel: "Close Agent",
184
- accept: async () => {
185
- try {
186
- await closeAgent(agentId);
187
- // Reload to move agent from active to closed section
188
- loadAgents();
189
- }
190
- catch (err) {
191
- console.error("Failed to close agent:", err);
192
- editContext?.showToast(`Failed to close agent: ${err?.message || "Unknown error"}`);
193
- }
194
- },
195
- showCancel: true,
196
- });
215
+ // Find the agent to check its status
216
+ const agent = activeAgents.find((a) => a.id === agentId);
217
+ const isRunning = agent?.status === "running" || agent?.status === 1;
218
+ const doClose = async () => {
219
+ try {
220
+ await closeAgent(agentId);
221
+ // Reload to move agent from active to closed section
222
+ loadAgents();
223
+ }
224
+ catch (err) {
225
+ console.error("Failed to close agent:", err);
226
+ editContext?.showToast(`Failed to close agent: ${err?.message || "Unknown error"}`);
227
+ }
228
+ };
229
+ // Only confirm if agent is running
230
+ if (isRunning) {
231
+ editContext?.confirm({
232
+ header: "Close Agent",
233
+ message: `Are you sure you want to close "${agentName}"? This will stop its execution.`,
234
+ acceptLabel: "Close Agent",
235
+ accept: doClose,
236
+ showCancel: true,
237
+ });
238
+ }
239
+ else {
240
+ // Close immediately without confirmation
241
+ await doClose();
242
+ }
197
243
  };
198
244
  const handleDeleteAgent = async (agentId, agentName, event) => {
199
245
  event.stopPropagation();
@@ -226,6 +272,27 @@ export function AgentsView() {
226
272
  detail: { agentId: agent.id },
227
273
  }));
228
274
  };
275
+ const handleCreateAgent = (profile) => {
276
+ const agentDisplayName = profile.agentName || profile.displayTitle || profile.name;
277
+ const agentId = crypto.randomUUID();
278
+ const newAgent = {
279
+ status: "new",
280
+ id: agentId,
281
+ name: agentDisplayName,
282
+ updatedDate: new Date().toISOString(),
283
+ userId: "",
284
+ profileId: profile.id,
285
+ profileName: profile.name,
286
+ profileSvgIcon: profile.svgIcon,
287
+ };
288
+ // Open the agents panel with the new agent
289
+ editContext?.setShowAgentsPanel?.(true);
290
+ setTimeout(() => {
291
+ window.dispatchEvent(new CustomEvent("editor:createAgentWithProfile", {
292
+ detail: { agent: newAgent, profile },
293
+ }));
294
+ }, 100);
295
+ };
229
296
  const formatDateTime = (dateString) => {
230
297
  try {
231
298
  const date = new Date(dateString);
@@ -241,15 +308,34 @@ export function AgentsView() {
241
308
  }
242
309
  const totalActiveCount = activeAgents.length;
243
310
  const totalClosedCount = profileGroups.reduce((sum, group) => sum + group.totalClosedCount, 0);
244
- const totalCount = totalActiveCount + totalClosedCount;
245
- return (_jsxs("div", { className: "absolute inset-0 flex flex-col", children: [_jsxs("div", { className: "flex-shrink-0 border-b border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-md font-semibold text-dark", children: "Agents" }), _jsxs("p", { className: "text-xs text-gray-500", children: [totalActiveCount, " active, ", totalClosedCount, " closed (", totalCount, " ", "total)"] })] }), _jsx("div", { className: "flex items-center gap-2", children: _jsx(SimpleIconButton, { onClick: handleRefresh, icon: _jsx(RefreshCw, { className: cn("size-4", refreshing && "animate-spin"), strokeWidth: 1 }), label: "Refresh", disabled: refreshing, className: "text-gray-600 hover:text-gray-800" }) })] }), _jsx("div", { className: "mb-3", children: _jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm", children: [_jsx(Checkbox, { checked: showOnlyMyAgents, onCheckedChange: (checked) => setShowOnlyMyAgents(checked === true) }), _jsx("span", { className: "text-gray-700", children: "Show only my agents" })] }) }), _jsx(FilterInput, { value: searchTerm, onChange: setSearchTerm, placeholder: "Search by name or description...", loading: loading && !initialLoad, size: "md" })] }), _jsxs("div", { className: "relative flex-1 overflow-y-auto", children: [loading && !initialLoad && (_jsx("div", { className: "absolute top-2 left-1/2 z-10 -translate-x-1/2 rounded-md bg-white px-3 py-1.5 shadow-md", children: _jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-600", children: [_jsx(RefreshCw, { className: "size-3 animate-spin", strokeWidth: 1 }), _jsx("span", { children: "Loading..." })] }) })), error ? (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsxs("div", { className: "max-w-md text-center", children: [_jsx("div", { className: "mb-4 text-sm text-red-600", children: error }), _jsx("button", { onClick: handleRefresh, className: "rounded bg-blue-500 px-4 py-2 text-xs text-white hover:bg-blue-600", children: "Retry" })] }) })) : totalCount === 0 && !loading ? (_jsx("div", { className: "flex h-full items-center justify-center text-sm text-gray-500", children: searchTerm.trim()
246
- ? "No agents match your search"
247
- : "No agents found" })) : (_jsxs("div", { className: cn("space-y-4 p-4", loading && "opacity-60"), children: [activeAgents.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-700", children: "Active Agents" }), activeAgents.map((agent) => (_jsx(AgentCard, { agent: agent, onClick: handleAgentClick, onResume: handleResumeAgent, onClose: handleCloseAgent, onDelete: handleDeleteAgent, formatDateTime: formatDateTime }, agent.id)))] })), profileGroups.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-700", children: "Closed Agents by Profile" }), profileGroups.map((profileGroup) => {
248
- const profileKey = profileGroup.profileId || "null";
249
- const isExpanded = expandedProfiles.has(profileKey);
250
- const isLoadingMore = loadingMoreForProfile === profileGroup.profileId;
251
- const hasMore = profileGroup.agents.length < profileGroup.totalClosedCount;
252
- return (_jsx(ProfileAgentsGroup, { profileGroup: profileGroup, isExpanded: isExpanded, isLoadingMore: isLoadingMore, hasMore: hasMore, onToggle: () => handleToggleProfile(profileGroup.profileId), onLoadMore: () => handleLoadMoreForProfile(profileGroup.profileId), onAgentClick: handleAgentClick, onResumeAgent: handleResumeAgent, onCloseAgent: handleCloseAgent, onDeleteAgent: handleDeleteAgent, formatDateTime: formatDateTime }, profileKey));
253
- })] }))] }))] })] }));
311
+ // Build tabs for SimpleTabs - include badge count in inbox label
312
+ const inboxLabel = inboxCount > 0 ? `Inbox (${inboxCount})` : "Inbox";
313
+ const tabs = [
314
+ {
315
+ id: "inbox",
316
+ label: inboxLabel,
317
+ content: null,
318
+ testId: "agents-tab-inbox",
319
+ },
320
+ { id: "all", label: "All Agents", content: null, testId: "agents-tab-all" },
321
+ {
322
+ id: "create",
323
+ label: "Create New",
324
+ content: null,
325
+ testId: "agents-tab-create",
326
+ },
327
+ ];
328
+ return (_jsxs("div", { className: "absolute inset-0 flex flex-col bg-gray-50", children: [_jsx("div", { className: "flex-shrink-0 border-b border-gray-200 bg-white px-4", children: _jsx(SimpleTabs, { tabs: tabs, activeTab: activeTabIndex, setActiveTab: setActiveTabIndex, hideContent: true }) }), _jsxs("div", { className: "relative flex-1 overflow-hidden", children: [activeTabIndex === 0 && (_jsx("div", { className: "absolute inset-0 overflow-y-auto", children: _jsx(AgentsInbox, { agents: activeAgents, onOpenAgent: handleOpenAgent, onDismissAgent: handleCloseAgent, formatDateTime: formatDateTime, loading: loading && initialLoad }) })), activeTabIndex === 1 && (_jsxs("div", { className: "absolute inset-0 flex flex-col", children: [_jsxs("div", { className: "flex-shrink-0 border-b border-gray-200 bg-white p-4", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsx("div", { children: _jsxs("p", { className: "text-xs text-gray-500", children: [totalActiveCount, " active, ", totalClosedCount, " closed"] }) }), _jsx(SimpleIconButton, { onClick: handleRefresh, icon: _jsx(RefreshCw, { className: cn("size-4", refreshing && "animate-spin"), strokeWidth: 1.5 }), label: "Refresh", disabled: refreshing, className: "text-gray-600 hover:text-gray-800" })] }), _jsx("div", { className: "mb-3", children: _jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm", children: [_jsx(Checkbox, { checked: showOnlyMyAgents, onCheckedChange: (checked) => setShowOnlyMyAgents(checked === true) }), _jsx("span", { className: "text-sm text-gray-700", children: "Show only my agents" })] }) }), _jsx(FilterInput, { value: searchTerm, onChange: setSearchTerm, placeholder: "Search by name or description...", loading: loading && !initialLoad, size: "md" })] }), _jsxs("div", { className: "relative flex-1 overflow-y-auto", children: [loading && !initialLoad && (_jsx("div", { className: "absolute top-2 left-1/2 z-10 -translate-x-1/2 rounded-md bg-white px-3 py-1.5 shadow-md", children: _jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-600", children: [_jsx(RefreshCw, { className: "size-3 animate-spin", strokeWidth: 1 }), _jsx("span", { children: "Loading..." })] }) })), error ? (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsxs("div", { className: "max-w-md text-center", children: [_jsx("div", { className: "mb-4 text-sm text-red-600", children: error }), _jsx("button", { onClick: handleRefresh, className: "rounded bg-blue-500 px-4 py-2 text-xs text-white hover:bg-blue-600", children: "Retry" })] }) })) : totalActiveCount === 0 &&
329
+ totalClosedCount === 0 &&
330
+ !loading ? (_jsx("div", { className: "flex h-full items-center justify-center text-sm text-gray-500", children: searchTerm.trim()
331
+ ? "No agents match your search"
332
+ : "No agents found" })) : (_jsxs("div", { className: cn("space-y-4 p-4", loading && "opacity-60"), children: [activeAgents.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-700", children: "Active Agents" }), activeAgents.map((agent) => (_jsx(AgentCard, { agent: agent, onClick: handleAgentClick, onResume: handleOpenAgent, onClose: handleCloseAgent, onDelete: handleDeleteAgent, formatDateTime: formatDateTime }, agent.id)))] })), profileGroups.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-700", children: "History" }), profileGroups.map((profileGroup) => {
333
+ const profileKey = profileGroup.profileId || "null";
334
+ const isExpanded = expandedProfiles.has(profileKey);
335
+ const isLoadingMore = loadingMoreForProfile === profileGroup.profileId;
336
+ const hasMore = profileGroup.agents.length <
337
+ profileGroup.totalClosedCount;
338
+ return (_jsx(ProfileAgentsGroup, { profileGroup: profileGroup, isExpanded: isExpanded, isLoadingMore: isLoadingMore, hasMore: hasMore, onToggle: () => handleToggleProfile(profileGroup.profileId), onLoadMore: () => handleLoadMoreForProfile(profileGroup.profileId), onAgentClick: handleAgentClick, onResumeAgent: handleOpenAgent, onCloseAgent: handleCloseAgent, onDeleteAgent: handleDeleteAgent, formatDateTime: formatDateTime }, profileKey));
339
+ })] }))] }))] })] })), activeTabIndex === 2 && (_jsx("div", { className: "absolute inset-0 overflow-y-auto bg-white", children: _jsx(CreateAgentView, { onCreateAgent: handleCreateAgent }) }))] })] }));
254
340
  }
255
341
  //# sourceMappingURL=AgentsView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentsView.js","sourceRoot":"","sources":["../../src/agents-view/AgentsView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EAExB,UAAU,EACV,WAAW,GACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,IAAI,GAAG,EAAE,CACV,CAAC;IACF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAEhE,IAAI,CAAC,CAAC;IACR,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,uBAAuB;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,mBAAmB,IAAI,SAAS,EAChC,CAAC,gBAAgB,EAAE,gBAAgB;YACnC,IAAI,CACL,CAAC;YAEF,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC7C,QAAQ,CACN,GAAG,EAAE,OAAO,IAAI,gDAAgD,CACjE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE5C,8CAA8C;IAC9C,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,8DAA8D;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,EAAE,wBAAwB;YAAE,OAAO;QAEnD,MAAM,WAAW,GAAG,WAAW,CAAC,wBAAwB,CACtD,CAAC,OAAuC,EAAE,EAAE;YAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACvC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;gBAE/C,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CACV,0CAA0C,EAC1C,OAAO,CAAC,OAAO,CAChB,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,4CAA4C;gBAC5C,eAAe,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC7B,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAChC,CAAC;oBAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC9B,wBAAwB;wBACxB,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;wBACtC,MAAM,aAAa,GAAG,aAAa,CAAC,kBAAkB,CAAE,CAAC;wBACzD,aAAa,CAAC,kBAAkB,CAAC,GAAG;4BAClC,GAAG,aAAa;4BAChB,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,SAAkB;4BAC1B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACtC,CAAC;wBACF,OAAO,aAAa,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,UAAU,EAAE,CAAC;wBACb,OAAO,UAAU,CAAC;oBACpB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAC5C,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,qCAAqC;gBACrC,eAAe,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;oBACpE,IAAI,aAAa,KAAK,CAAC,CAAC;wBAAE,OAAO,UAAU,CAAC;oBAE5C,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;oBACtC,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAE,CAAC;oBACpD,aAAa,CAAC,aAAa,CAAC,GAAG;wBAC7B,GAAG,aAAa;wBAChB,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wBACnD,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI;4BACpC,WAAW,EAAE,gBAAgB;yBAC9B,CAAC;wBACF,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtC,CAAC;oBACF,OAAO,aAAa,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/C,sEAAsE;gBACtE,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CACF,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,UAAU,CAAC,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,SAAwB,EAAE,EAAE;QACvD,MAAM,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC;QAChC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,EAAE,SAAwB,EAAE,EAAE;QAClE,IAAI,CAAC,SAAS,IAAI,qBAAqB;YAAE,OAAO;QAEhD,IAAI,CAAC;YACH,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAEpC,iCAAiC;YACjC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE1B,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YAEhD,oCAAoC;YACpC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,SAAS,EACT,YAAY,EACZ,EAAE,EACF,mBAAmB,IAAI,SAAS,CACjC,CAAC;YAEF,2CAA2C;YAC3C,gBAAgB,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAClC,OAAO;wBACL,GAAG,KAAK;wBACR,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;qBAC9C,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,WAAW,EAAE,SAAS,CACpB,+BAA+B,GAAG,EAAE,OAAO,IAAI,eAAe,EAAE,CACjE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE;QACzC,yDAAyD;QACzD,WAAW,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,+EAA+E;QAC/E,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,kBAAkB,EAAE;gBAClC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;aAC9B,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAE,SAAiB,EAAE,EAAE;QACpE,WAAW,EAAE,OAAO,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,mCAAmC,SAAS,6CAA6C;YAClG,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC1B,qDAAqD;oBACrD,UAAU,EAAE,CAAC;gBACf,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;oBAC7C,WAAW,EAAE,SAAS,CACpB,0BAA0B,GAAG,EAAE,OAAO,IAAI,eAAe,EAAE,CAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,OAAe,EACf,SAAiB,EACjB,KAAuB,EACvB,EAAE;QACF,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,WAAW,EAAE,OAAO,CAAC;YACnB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,gDAAgD,SAAS,kCAAkC;YACpG,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC3B,2CAA2C;oBAC3C,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;oBAChE,gBAAgB,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACzB,GAAG,KAAK;wBACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;wBACpD,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;qBAC1D,CAAC,CAAC,CACJ,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;oBAC9C,WAAW,EAAE,SAAS,CACpB,2BAA2B,GAAG,EAAE,OAAO,IAAI,eAAe,EAAE,CAC7D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE;QACxC,iEAAiE;QACjE,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,oBAAoB,EAAE;YACpC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;SAC9B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,SAAS,EAAC,yCAAyC,YACtD,cAAK,SAAS,EAAC,uBAAuB,kCAAwB,GAC1D,CACP,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;IAC7C,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAC5C,CAAC,CACF,CAAC;IACF,MAAM,UAAU,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IAEvD,OAAO,CACL,eAAK,SAAS,EAAC,gCAAgC,aAE7C,eAAK,SAAS,EAAC,qDAAqD,aAClE,eAAK,SAAS,EAAC,wCAAwC,aACrD,0BACE,aAAI,SAAS,EAAC,iCAAiC,uBAAY,EAC3D,aAAG,SAAS,EAAC,uBAAuB,aACjC,gBAAgB,eAAW,gBAAgB,eAAW,UAAU,EAAE,GAAG,cAEpE,IACA,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,gBAAgB,IACf,OAAO,EAAE,aAAa,EACtB,IAAI,EACF,KAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,IAAI,cAAc,CAAC,EACrD,WAAW,EAAE,CAAC,GACd,EAEJ,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,mCAAmC,GAC7C,GACE,IACF,EAGN,cAAK,SAAS,EAAC,MAAM,YACnB,iBAAO,SAAS,EAAC,gDAAgD,aAC/D,KAAC,QAAQ,IACP,OAAO,EAAE,gBAAgB,EACzB,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3B,mBAAmB,CAAC,OAAO,KAAK,IAAI,CAAC,GAEvC,EACF,eAAM,SAAS,EAAC,eAAe,oCAA2B,IACpD,GACJ,EAGN,KAAC,WAAW,IACV,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAC,kCAAkC,EAC9C,OAAO,EAAE,OAAO,IAAI,CAAC,WAAW,EAChC,IAAI,EAAC,IAAI,GACT,IACE,EAGN,eAAK,SAAS,EAAC,iCAAiC,aAE7C,OAAO,IAAI,CAAC,WAAW,IAAI,CAC1B,cAAK,SAAS,EAAC,yFAAyF,YACtG,eAAK,SAAS,EAAC,+CAA+C,aAC5D,KAAC,SAAS,IAAC,SAAS,EAAC,qBAAqB,EAAC,WAAW,EAAE,CAAC,GAAI,EAC7D,wCAAuB,IACnB,GACF,CACP,EAEA,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAC,yCAAyC,YACtD,eAAK,SAAS,EAAC,sBAAsB,aACnC,cAAK,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAO,EACxD,iBACE,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,oEAAoE,sBAGvE,IACL,GACF,CACP,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACjC,cAAK,SAAS,EAAC,+DAA+D,YAC3E,UAAU,CAAC,IAAI,EAAE;4BAChB,CAAC,CAAC,6BAA6B;4BAC/B,CAAC,CAAC,iBAAiB,GACjB,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,OAAO,IAAI,YAAY,CAAC,aAEzD,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,eAAK,SAAS,EAAC,WAAW,aACxB,aAAI,SAAS,EAAC,qCAAqC,8BAE9C,EACJ,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,KAAC,SAAS,IAER,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,cAAc,IANzB,KAAK,CAAC,EAAE,CAOb,CACH,CAAC,IACE,CACP,EAGA,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,eAAK,SAAS,EAAC,WAAW,aACxB,aAAI,SAAS,EAAC,qCAAqC,yCAE9C,EACJ,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;wCAClC,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,IAAI,MAAM,CAAC;wCACpD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wCACpD,MAAM,aAAa,GACjB,qBAAqB,KAAK,YAAY,CAAC,SAAS,CAAC;wCACnD,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC;wCAE7D,OAAO,CACL,KAAC,kBAAkB,IAEjB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,GAAG,EAAE,CACb,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,EAE7C,UAAU,EAAE,GAAG,EAAE,CACf,wBAAwB,CAAC,YAAY,CAAC,SAAS,CAAC,EAElD,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,cAAc,IAfzB,UAAU,CAgBf,CACH,CAAC;oCACJ,CAAC,CAAC,IACE,CACP,IACG,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AgentsView.js","sourceRoot":"","sources":["../../src/agents-view/AgentsView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { AiProfile } from "../editor/services/aiService";
2
+ interface CreateAgentViewProps {
3
+ onCreateAgent: (profile: AiProfile) => void;
4
+ className?: string;
5
+ }
6
+ /**
7
+ * View for creating a new agent by selecting a profile.
8
+ * Displays profile cards in a grid layout.
9
+ */
10
+ export declare function CreateAgentView({ onCreateAgent, className, }: CreateAgentViewProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ import { loadAiProfiles } from "../editor/services/aiService";
4
+ import { cn } from "../lib/utils";
5
+ import { SecretAgentIcon } from "../editor/ui/Icons";
6
+ import { Loader2, RefreshCw } from "lucide-react";
7
+ import { SimpleIconButton } from "../editor/ui/SimpleIconButton";
8
+ /**
9
+ * View for creating a new agent by selecting a profile.
10
+ * Displays profile cards in a grid layout.
11
+ */
12
+ export function CreateAgentView({ onCreateAgent, className, }) {
13
+ const [profiles, setProfiles] = useState([]);
14
+ const [loading, setLoading] = useState(true);
15
+ const [error, setError] = useState(null);
16
+ const loadProfiles = async () => {
17
+ try {
18
+ setLoading(true);
19
+ setError(null);
20
+ const profileList = await loadAiProfiles();
21
+ // Filter out hidden profiles
22
+ const visibleProfiles = profileList.filter((profile) => !profile.hiddenFromOverview);
23
+ setProfiles(visibleProfiles);
24
+ }
25
+ catch (err) {
26
+ console.error("Failed to load profiles:", err);
27
+ setError(err?.message || "Failed to load profiles");
28
+ }
29
+ finally {
30
+ setLoading(false);
31
+ }
32
+ };
33
+ useEffect(() => {
34
+ loadProfiles();
35
+ }, []);
36
+ if (loading) {
37
+ return (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx(Loader2, { className: "size-6 animate-spin text-gray-400" }) }));
38
+ }
39
+ if (error) {
40
+ return (_jsxs("div", { className: "flex h-64 flex-col items-center justify-center text-center", children: [_jsx("p", { className: "mb-3 text-sm text-red-600", children: error }), _jsx("button", { onClick: loadProfiles, className: "rounded bg-blue-500 px-4 py-2 text-xs text-white hover:bg-blue-600", children: "Retry" })] }));
41
+ }
42
+ if (profiles.length === 0) {
43
+ return (_jsxs("div", { className: "flex h-64 flex-col items-center justify-center text-center", children: [_jsx(SecretAgentIcon, { size: 48, strokeWidth: 1, className: "mb-3 text-gray-300" }), _jsx("p", { className: "text-sm text-gray-500", children: "No agent profiles available" })] }));
44
+ }
45
+ return (_jsxs("div", { className: cn("p-4", className), children: [_jsxs("div", { className: "mb-4 flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-medium text-gray-900", children: "Choose an Agent Profile" }), _jsx("p", { className: "text-xs text-gray-500", children: "Select a profile to start a new conversation" })] }), _jsx(SimpleIconButton, { onClick: loadProfiles, icon: _jsx(RefreshCw, { className: "size-4", strokeWidth: 1.5 }), label: "Refresh profiles", className: "text-gray-500 hover:text-gray-700" })] }), _jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", children: profiles.map((profile) => {
46
+ const displayTitle = profile.displayTitle || profile.name;
47
+ const description = profile.description || "";
48
+ return (_jsxs("button", { onClick: () => onCreateAgent(profile), className: "group flex flex-col items-center gap-3 rounded-lg border border-gray-200 bg-white p-4 text-center transition-all hover:border-blue-300 hover:shadow-md focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500", "data-testid": "create-agent-profile-card", "data-profile-id": profile.id, children: [_jsx("div", { className: "flex items-center justify-center", children: profile.svgIcon ? (_jsx("div", { className: "flex h-12 w-12 items-center justify-center transition-transform group-hover:scale-110 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: { __html: profile.svgIcon } })) : (_jsx(SecretAgentIcon, { size: 48, strokeWidth: 1, className: "text-gray-400 transition-transform group-hover:scale-110 group-hover:text-blue-500" })) }), _jsx("h4", { className: "text-sm font-semibold text-gray-900", children: displayTitle }), description && (_jsx("p", { className: "line-clamp-2 text-xs text-gray-500", children: description }))] }, profile.id));
49
+ }) })] }));
50
+ }
51
+ //# sourceMappingURL=CreateAgentView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateAgentView.js","sourceRoot":"","sources":["../../src/agents-view/CreateAgentView.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import * as React from "react";
2
+ export type PlaceholderInputHandle = {
3
+ submit: () => void;
4
+ };
1
5
  /**
2
6
  * PlaceholderInput component for AI Agent quick actions.
3
7
  *
@@ -15,6 +19,8 @@
15
19
  * Supported placeholder formats:
16
20
  * - Curly braces: {placeholder_name} or {0}, {1}, {2}
17
21
  * - Angle brackets: <placeholder_name> or <0>, <1>, <2>
22
+ * - Typed placeholders: {label|type|param=value}
23
+ * - Nested braces for params: {item|item|root={GUID}}
18
24
  *
19
25
  * Keyboard navigation:
20
26
  * - Tab: Move to next placeholder (wraps to first)
@@ -39,5 +45,5 @@ type PlaceholderInputProps = {
39
45
  buttonsClassName?: string;
40
46
  onFilledChange?: (allFilled: boolean) => void;
41
47
  };
42
- export declare function PlaceholderInput({ text, onComplete, onCancel, className, showButtons, buttonsClassName, onFilledChange, }: PlaceholderInputProps): import("react/jsx-runtime").JSX.Element;
48
+ export declare const PlaceholderInput: React.ForwardRefExoticComponent<PlaceholderInputProps & React.RefAttributes<PlaceholderInputHandle>>;
43
49
  export {};