From 4a7bc006a8016a477448a7bce2832abfe4650d5e Mon Sep 17 00:00:00 2001 From: Ubbe Date: Thu, 18 Dec 2025 19:04:13 +0100 Subject: [PATCH 001/160] hotfix(frontend): chat should be disabled by default (#11639) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ Chat should be disabled by default; otherwise, it flashes, and if Launch Darkly fails to fail, it is dangerous. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally with Launch Darkly disabled and test the above --- .../frontend/src/services/feature-flags/use-get-flag.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts index e80adeb7b5..b4f91b22ef 100644 --- a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts +++ b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts @@ -48,7 +48,7 @@ const mockFlags = { [Flag.AGENT_FAVORITING]: false, [Flag.MARKETPLACE_SEARCH_TERMS]: DEFAULT_SEARCH_TERMS, [Flag.ENABLE_PLATFORM_PAYMENT]: false, - [Flag.CHAT]: true, + [Flag.CHAT]: false, }; export function useGetFlag(flag: T): FlagValues[T] | null { From cd3e35df9ef725b2d717c96bfd94a1591329eb84 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Thu, 18 Dec 2025 19:33:30 +0100 Subject: [PATCH 002/160] fix(frontend): small library/mobile improvements (#11626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Adds the following improvements: ### Prevent credential row overflowing on mobile 📱 **Before** Screenshot 2025-12-15 at 16 42 05 **After** Screenshot 2025-12-15 at 16 44 22 _Just hide the ****** on mobile..._ ### Make touch targets bigger on 📱 on the mobile menu **Before** Screenshot 2025-12-15 at 16 58 28 Touch targets were quite small on mobile, especially for people with big fingers... **After** Screenshot 2025-12-15 at 16 54 02 ### New `` component Screenshot 2025-12-15 at 16 48 20 A component that will render text like ``, but automatically displays `...` and the full text content on a tooltip if it detects there is no space for the full text length. Pretty useful for the type of dashboard we are building, where sometimes titles or user-generated content can be quite long, making the UI look whack. ### Google Drive Picker Only allow the removal of files if it is not in read-only mode. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Checkout branch locally - [x] Test the above --- .../CredentialRow/CredentialRow.tsx | 2 +- .../modals/RunAgentInputs/RunAgentInputs.tsx | 2 +- .../OverflowText/OverflowText.stories.tsx | 157 ++++++++++++++++++ .../atoms/OverflowText/OverflowText.tsx | 100 +++++++++++ .../GoogleDrivePickerInput.tsx | 4 +- .../components/MobileNavbarMenuItem.tsx | 2 +- 6 files changed, 262 insertions(+), 5 deletions(-) create mode 100644 autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.stories.tsx create mode 100644 autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.tsx diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/components/CredentialRow/CredentialRow.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/components/CredentialRow/CredentialRow.tsx index 34c066e90d..7d6598d7be 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/components/CredentialRow/CredentialRow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/components/CredentialRow/CredentialRow.tsx @@ -70,7 +70,7 @@ export function CredentialRow({ {"*".repeat(MASKED_KEY_LENGTH)} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs.tsx index ea372193c5..d3e6fd9669 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs.tsx @@ -103,7 +103,7 @@ export function RunAgentInputs({ value={value} onChange={onChange} className="w-full" - showRemoveButton={false} + showRemoveButton={!readOnly} /> ); break; diff --git a/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.stories.tsx b/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.stories.tsx new file mode 100644 index 0000000000..049948cd1b --- /dev/null +++ b/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.stories.tsx @@ -0,0 +1,157 @@ +import type { Meta, StoryObj } from "@storybook/nextjs"; +import { OverflowText } from "./OverflowText"; + +const meta: Meta = { + title: "Atoms/OverflowText", + component: OverflowText, + tags: ["autodocs"], + parameters: { + layout: "centered", + docs: { + description: { + component: + "Text component that automatically truncates overflowing content with ellipsis and shows a tooltip on hover when truncated. Supports both string and ReactNode values.", + }, + }, + }, + argTypes: { + value: { + control: "text", + description: "The text content to display (string or ReactNode)", + }, + className: { + control: "text", + description: "Additional CSS classes to customize styling", + }, + }, + args: { + value: "This is a sample text that may overflow", + className: "", + }, +}; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: function DefaultOverflowText(args) { + return ( +
+ +
+ ); + }, +}; + +export const ShortText: Story = { + args: { + value: "Short text", + }, + render: function ShortTextStory(args) { + return ( +
+ +
+ ); + }, +}; + +export const LongText: Story = { + args: { + value: + "This is a very long text that will definitely overflow and show a tooltip when you hover over it", + }, + render: function LongTextStory(args) { + return ( +
+ +
+ ); + }, +}; + +export const CustomStyling: Story = { + args: { + value: "Text with custom styling", + className: "text-lg font-semibold text-indigo-600", + }, + render: function CustomStylingStory(args) { + return ( +
+ +
+ ); + }, +}; + +export const WithReactNode: Story = { + args: { + value: ( + + Text with bold and italic content + + ), + }, + render: function WithReactNodeStory(args) { + return ( +
+ +
+ ); + }, +}; + +export const DifferentWidths: Story = { + render: function DifferentWidthsStory() { + const longText = + "This text will truncate differently depending on the container width"; + return ( +
+
+ Width: 200px +
+ +
+
+
+ Width: 300px +
+ +
+
+
+ Width: 400px +
+ +
+
+
+ ); + }, +}; + +export const FilePathExample: Story = { + args: { + value: "/very/long/path/to/a/file/that/might/overflow/in/the/ui.tsx", + }, + render: function FilePathExampleStory(args) { + return ( +
+ +
+ ); + }, +}; + +export const URLExample: Story = { + args: { + value: "https://example.com/very/long/url/path/that/might/overflow", + }, + render: function URLExampleStory(args) { + return ( +
+ +
+ ); + }, +}; diff --git a/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.tsx b/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.tsx new file mode 100644 index 0000000000..efc345f79c --- /dev/null +++ b/autogpt_platform/frontend/src/components/atoms/OverflowText/OverflowText.tsx @@ -0,0 +1,100 @@ +import { Text, type TextProps } from "@/components/atoms/Text/Text"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/atoms/Tooltip/BaseTooltip"; +import { cn } from "@/lib/utils"; +import type { ReactNode } from "react"; +import { useEffect, useRef, useState } from "react"; + +interface Props extends Omit { + value: string | ReactNode; +} + +export function OverflowText(props: Props) { + const elementRef = useRef(null); + const [isTruncated, setIsTruncated] = useState(false); + + function updateTruncation() { + const element = elementRef.current; + + if (!element) { + return; + } + + const hasOverflow = element.scrollWidth > element.clientWidth; + + setIsTruncated(hasOverflow); + } + + function setupResizeListener() { + function handleResize() { + updateTruncation(); + } + + window.addEventListener("resize", handleResize); + + return function cleanupResizeListener() { + window.removeEventListener("resize", handleResize); + }; + } + + function setupObserver() { + const element = elementRef.current; + + if (!element || typeof ResizeObserver === "undefined") { + return undefined; + } + + function handleResizeObserver() { + updateTruncation(); + } + + const observer = new ResizeObserver(handleResizeObserver); + + observer.observe(element); + + return function disconnectObserver() { + observer.disconnect(); + }; + } + + useEffect(() => { + if (typeof props.value === "string") updateTruncation(); + }, [props.value]); + + useEffect(setupResizeListener, []); + useEffect(setupObserver, []); + + const { value, className, variant = "body", ...restProps } = props; + + const content = ( + + + {value} + + + ); + + if (isTruncated) { + return ( + + + {content} + + {typeof value === "string" ?

{value}

: value} +
+
+
+ ); + } + + return content; +} diff --git a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput.tsx b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput.tsx index 1db9809de2..2a1ada5012 100644 --- a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput.tsx +++ b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput.tsx @@ -5,7 +5,7 @@ import { Cross2Icon } from "@radix-ui/react-icons"; import React, { useCallback } from "react"; import { GoogleDrivePicker } from "./GoogleDrivePicker"; -export interface GoogleDrivePickerInputProps { +export interface Props { config: GoogleDrivePickerConfig; value: any; onChange: (value: any) => void; @@ -21,7 +21,7 @@ export function GoogleDrivePickerInput({ error, className, showRemoveButton = true, -}: GoogleDrivePickerInputProps) { +}: Props) { const [pickerError, setPickerError] = React.useState(null); const isMultiSelect = config.multiselect || false; const hasAutoCredentials = !!config.auto_credentials; diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/MobileNavbar/components/MobileNavbarMenuItem.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/MobileNavbar/components/MobileNavbarMenuItem.tsx index fb061f3e0a..fa190b63b7 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/MobileNavbar/components/MobileNavbarMenuItem.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/MobileNavbar/components/MobileNavbarMenuItem.tsx @@ -19,7 +19,7 @@ export function MobileNavbarMenuItem({ onClick, }: Props) { const content = ( -
+
{getAccountMenuOptionIcon(icon)}
Date: Thu, 18 Dec 2025 19:51:24 +0100 Subject: [PATCH 003/160] fix(frontend): modal hidden overflow (#11642) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ ### Before Screenshot 2025-12-18 at 19 07 37 ### After Screenshot 2025-12-18 at 19 02 12 ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally and check crop --- .../src/components/molecules/Dialog/components/styles.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/autogpt_platform/frontend/src/components/molecules/Dialog/components/styles.ts b/autogpt_platform/frontend/src/components/molecules/Dialog/components/styles.ts index 3b7d12e8e9..873c33959b 100644 --- a/autogpt_platform/frontend/src/components/molecules/Dialog/components/styles.ts +++ b/autogpt_platform/frontend/src/components/molecules/Dialog/components/styles.ts @@ -3,8 +3,7 @@ const commonStyles = { title: "font-poppins text-md md:text-lg leading-none", overlay: "fixed inset-0 z-50 bg-stone-500/20 dark:bg-black/50 backdrop-blur-md animate-fade-in", - content: - "overflow-y-hidden bg-white p-6 fixed rounded-2xlarge flex flex-col z-50 w-full", + content: "bg-white p-6 fixed rounded-2xlarge flex flex-col z-50 w-full", }; // Modal specific styles From eed07b173a819b4c59ba508b9bee9afdfd68bff7 Mon Sep 17 00:00:00 2001 From: Bently Date: Thu, 18 Dec 2025 19:07:40 +0100 Subject: [PATCH 004/160] fix(frontend/builder): automatically frame agent when opening in builder (#11640) ## Summary - Fixed auto-frame timing in new builder - now calls `fitView` after nodes are rendered instead of on mount - Replaced manual viewport calculation in legacy builder with React Flow's `fitView` for consistency - Both builders now properly center and frame all blocks when opening an agent ## Test plan - [x] Open an existing agent with multiple blocks in the new builder - verify all blocks are visible and centered - [x] Open an existing agent in the legacy builder - verify all blocks are visible and centered - [x] Verify the manual "Frame" button still works correctly --- .../components/FlowEditor/Flow/useFlow.ts | 32 +++++++++++++++-- .../components/legacy-builder/Flow/Flow.tsx | 35 ++++++++----------- 2 files changed, 44 insertions(+), 23 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts index bf0ebf0a97..be76c4ec2b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts @@ -20,6 +20,7 @@ import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecut export const useFlow = () => { const [isLocked, setIsLocked] = useState(false); + const [hasAutoFramed, setHasAutoFramed] = useState(false); const addNodes = useNodeStore(useShallow((state) => state.addNodes)); const addLinks = useEdgeStore(useShallow((state) => state.addLinks)); const updateNodeStatus = useNodeStore( @@ -187,9 +188,36 @@ export const useFlow = () => { }; }, []); + const linkCount = graph?.links?.length ?? 0; + useEffect(() => { - fitView({ padding: 0.2, duration: 800, maxZoom: 2 }); - }, [fitView]); + if (isGraphLoading || isBlocksLoading) { + setHasAutoFramed(false); + return; + } + + if (hasAutoFramed) { + return; + } + + const rafId = requestAnimationFrame(() => { + fitView({ padding: 0.2, duration: 800, maxZoom: 1 }); + setHasAutoFramed(true); + }); + + return () => cancelAnimationFrame(rafId); + }, [ + fitView, + hasAutoFramed, + customNodes.length, + isBlocksLoading, + isGraphLoading, + linkCount, + ]); + + useEffect(() => { + setHasAutoFramed(false); + }, [flowID, flowVersion]); // Drag and drop block from block menu const onDragOver = useCallback((event: React.DragEvent) => { diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx index f80a480542..7e9b54d626 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx @@ -103,6 +103,7 @@ const FlowEditor: React.FC<{ updateNode, getViewport, setViewport, + fitView, screenToFlowPosition, } = useReactFlow(); const [nodeId, setNodeId] = useState(1); @@ -115,6 +116,7 @@ const FlowEditor: React.FC<{ const [pinBlocksPopover, setPinBlocksPopover] = useState(false); // State to control if save popover should be pinned open const [pinSavePopover, setPinSavePopover] = useState(false); + const [hasAutoFramed, setHasAutoFramed] = useState(false); const { agentName, @@ -482,35 +484,26 @@ const FlowEditor: React.FC<{ return uuidv4(); }, []); - // Set the initial view port to center the canvas. useEffect(() => { - const { x, y } = getViewport(); - if (nodes.length <= 0 || x !== 0 || y !== 0) { + if (nodes.length === 0) { return; } - const topLeft = { x: Infinity, y: Infinity }; - const bottomRight = { x: -Infinity, y: -Infinity }; + if (hasAutoFramed) { + return; + } - nodes.forEach((node) => { - const { x, y } = node.position; - topLeft.x = Math.min(topLeft.x, x); - topLeft.y = Math.min(topLeft.y, y); - // Rough estimate of the width and height of the node: 500x400. - bottomRight.x = Math.max(bottomRight.x, x + 500); - bottomRight.y = Math.max(bottomRight.y, y + 400); + const rafId = requestAnimationFrame(() => { + fitView({ padding: 0.2, duration: 800, maxZoom: 1 }); + setHasAutoFramed(true); }); - const centerX = (topLeft.x + bottomRight.x) / 2; - const centerY = (topLeft.y + bottomRight.y) / 2; - const zoom = 0.8; + return () => cancelAnimationFrame(rafId); + }, [fitView, hasAutoFramed, nodes.length]); - setViewport({ - x: window.innerWidth / 2 - centerX * zoom, - y: window.innerHeight / 2 - centerY * zoom, - zoom: zoom, - }); - }, [nodes, getViewport, setViewport]); + useEffect(() => { + setHasAutoFramed(false); + }, [flowID, flowVersion]); const navigateToNode = useCallback( (nodeId: string) => { From b76b5a37c523dbd26d4d40ef6d0fdb6dcdd5afa9 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Fri, 19 Dec 2025 13:19:58 +0100 Subject: [PATCH 005/160] fix(backend): Convert generic exceptions to appropriate typed exceptions (#11641) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Fix TimeoutError in AIShortformVideoCreatorBlock → BlockExecutionError - Fix generic exceptions in SearchTheWebBlock → BlockExecutionError with proper HTTP error handling - Fix FirecrawlError 504 timeouts → BlockExecutionError with service-specific messages - Fix ReplicateBlock validation errors → BlockInputError for 422 status, BlockExecutionError for others - Add comprehensive HTTP error handling with HTTPClientError/HTTPServerError classes - Implement filename sanitization for "File name too long" errors - Add proper User-Agent handling for Wikipedia API compliance - Fix type conversion for string subclasses like ShortTextType - Add support for moderation errors with proper context propagation ## Test plan - [x] All modified blocks now properly categorize errors instead of raising BlockUnknownError - [x] Type conversion tests pass for ShortTextType and other string subclasses - [x] Formatting and linting pass - [x] Exception constructors include required block_name and block_id parameters 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude --- .../blocks/ai_shortform_video_block.py | 19 +++++- .../backend/backend/blocks/branching.py | 5 +- .../backend/blocks/firecrawl/extract.py | 20 ++++-- .../backend/backend/blocks/flux_kontext.py | 25 +++++-- .../backend/backend/blocks/ideogram.py | 13 ++-- .../backend/backend/blocks/jina/search.py | 13 +++- .../blocks/replicate/replicate_block.py | 25 ++++++- .../backend/backend/blocks/search.py | 14 ++-- autogpt_platform/backend/backend/util/file.py | 64 +++++++++++++++--- .../backend/backend/util/request.py | 37 ++++++++++- autogpt_platform/backend/backend/util/type.py | 66 +++++++++++-------- .../backend/backend/util/type_test.py | 14 ++++ 12 files changed, 248 insertions(+), 67 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py b/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py index 07ac026ec4..7242ff8304 100644 --- a/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py +++ b/autogpt_platform/backend/backend/blocks/ai_shortform_video_block.py @@ -20,6 +20,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName +from backend.util.exceptions import BlockExecutionError from backend.util.request import Requests TEST_CREDENTIALS = APIKeyCredentials( @@ -246,7 +247,11 @@ class AIShortformVideoCreatorBlock(Block): await asyncio.sleep(10) logger.error("Video creation timed out") - raise TimeoutError("Video creation timed out") + raise BlockExecutionError( + message="Video creation timed out", + block_name=self.name, + block_id=self.id, + ) def __init__(self): super().__init__( @@ -422,7 +427,11 @@ class AIAdMakerVideoCreatorBlock(Block): await asyncio.sleep(10) logger.error("Video creation timed out") - raise TimeoutError("Video creation timed out") + raise BlockExecutionError( + message="Video creation timed out", + block_name=self.name, + block_id=self.id, + ) def __init__(self): super().__init__( @@ -599,7 +608,11 @@ class AIScreenshotToVideoAdBlock(Block): await asyncio.sleep(10) logger.error("Video creation timed out") - raise TimeoutError("Video creation timed out") + raise BlockExecutionError( + message="Video creation timed out", + block_name=self.name, + block_id=self.id, + ) def __init__(self): super().__init__( diff --git a/autogpt_platform/backend/backend/blocks/branching.py b/autogpt_platform/backend/backend/blocks/branching.py index 326fe2b8b1..e9177a8b65 100644 --- a/autogpt_platform/backend/backend/blocks/branching.py +++ b/autogpt_platform/backend/backend/blocks/branching.py @@ -106,7 +106,10 @@ class ConditionBlock(Block): ComparisonOperator.LESS_THAN_OR_EQUAL: lambda a, b: a <= b, } - result = comparison_funcs[operator](value1, value2) + try: + result = comparison_funcs[operator](value1, value2) + except Exception as e: + raise ValueError(f"Comparison failed: {e}") from e yield "result", result diff --git a/autogpt_platform/backend/backend/blocks/firecrawl/extract.py b/autogpt_platform/backend/backend/blocks/firecrawl/extract.py index 4f54b102a0..e5fd5ec9f3 100755 --- a/autogpt_platform/backend/backend/blocks/firecrawl/extract.py +++ b/autogpt_platform/backend/backend/blocks/firecrawl/extract.py @@ -15,6 +15,7 @@ from backend.sdk import ( SchemaField, cost, ) +from backend.util.exceptions import BlockExecutionError from ._config import firecrawl @@ -59,11 +60,18 @@ class FirecrawlExtractBlock(Block): ) -> BlockOutput: app = FirecrawlApp(api_key=credentials.api_key.get_secret_value()) - extract_result = app.extract( - urls=input_data.urls, - prompt=input_data.prompt, - schema=input_data.output_schema, - enable_web_search=input_data.enable_web_search, - ) + try: + extract_result = app.extract( + urls=input_data.urls, + prompt=input_data.prompt, + schema=input_data.output_schema, + enable_web_search=input_data.enable_web_search, + ) + except Exception as e: + raise BlockExecutionError( + message=f"Extract failed: {e}", + block_name=self.name, + block_id=self.id, + ) from e yield "data", extract_result.data diff --git a/autogpt_platform/backend/backend/blocks/flux_kontext.py b/autogpt_platform/backend/backend/blocks/flux_kontext.py index 908d0962ed..dd8375c4ce 100644 --- a/autogpt_platform/backend/backend/blocks/flux_kontext.py +++ b/autogpt_platform/backend/backend/blocks/flux_kontext.py @@ -19,6 +19,7 @@ from backend.data.model import ( SchemaField, ) from backend.integrations.providers import ProviderName +from backend.util.exceptions import ModerationError from backend.util.file import MediaFileType, store_media_file TEST_CREDENTIALS = APIKeyCredentials( @@ -153,6 +154,8 @@ class AIImageEditorBlock(Block): ), aspect_ratio=input_data.aspect_ratio.value, seed=input_data.seed, + user_id=user_id, + graph_exec_id=graph_exec_id, ) yield "output_image", result @@ -164,6 +167,8 @@ class AIImageEditorBlock(Block): input_image_b64: Optional[str], aspect_ratio: str, seed: Optional[int], + user_id: str, + graph_exec_id: str, ) -> MediaFileType: client = ReplicateClient(api_token=api_key.get_secret_value()) input_params = { @@ -173,11 +178,21 @@ class AIImageEditorBlock(Block): **({"seed": seed} if seed is not None else {}), } - output: FileOutput | list[FileOutput] = await client.async_run( # type: ignore - model_name, - input=input_params, - wait=False, - ) + try: + output: FileOutput | list[FileOutput] = await client.async_run( # type: ignore + model_name, + input=input_params, + wait=False, + ) + except Exception as e: + if "flagged as sensitive" in str(e).lower(): + raise ModerationError( + message="Content was flagged as sensitive by the model provider", + user_id=user_id, + graph_exec_id=graph_exec_id, + moderation_type="model_provider", + ) + raise ValueError(f"Model execution failed: {e}") from e if isinstance(output, list) and output: output = output[0] diff --git a/autogpt_platform/backend/backend/blocks/ideogram.py b/autogpt_platform/backend/backend/blocks/ideogram.py index 3eab66aa5f..09a384c74a 100644 --- a/autogpt_platform/backend/backend/blocks/ideogram.py +++ b/autogpt_platform/backend/backend/blocks/ideogram.py @@ -2,7 +2,6 @@ from enum import Enum from typing import Any, Dict, Literal, Optional from pydantic import SecretStr -from requests.exceptions import RequestException from backend.data.block import ( Block, @@ -332,8 +331,8 @@ class IdeogramModelBlock(Block): try: response = await Requests().post(url, headers=headers, json=data) return response.json()["data"][0]["url"] - except RequestException as e: - raise Exception(f"Failed to fetch image with V3 endpoint: {str(e)}") + except Exception as e: + raise ValueError(f"Failed to fetch image with V3 endpoint: {e}") from e async def _run_model_legacy( self, @@ -385,8 +384,8 @@ class IdeogramModelBlock(Block): try: response = await Requests().post(url, headers=headers, json=data) return response.json()["data"][0]["url"] - except RequestException as e: - raise Exception(f"Failed to fetch image with legacy endpoint: {str(e)}") + except Exception as e: + raise ValueError(f"Failed to fetch image with legacy endpoint: {e}") from e async def upscale_image(self, api_key: SecretStr, image_url: str): url = "https://api.ideogram.ai/upscale" @@ -413,5 +412,5 @@ class IdeogramModelBlock(Block): return (response.json())["data"][0]["url"] - except RequestException as e: - raise Exception(f"Failed to upscale image: {str(e)}") + except Exception as e: + raise ValueError(f"Failed to upscale image: {e}") from e diff --git a/autogpt_platform/backend/backend/blocks/jina/search.py b/autogpt_platform/backend/backend/blocks/jina/search.py index e1af44b41b..05cddcc1df 100644 --- a/autogpt_platform/backend/backend/blocks/jina/search.py +++ b/autogpt_platform/backend/backend/blocks/jina/search.py @@ -16,6 +16,7 @@ from backend.data.block import ( BlockSchemaOutput, ) from backend.data.model import SchemaField +from backend.util.exceptions import BlockExecutionError class SearchTheWebBlock(Block, GetRequest): @@ -56,7 +57,17 @@ class SearchTheWebBlock(Block, GetRequest): # Prepend the Jina Search URL to the encoded query jina_search_url = f"https://s.jina.ai/{encoded_query}" - results = await self.get_request(jina_search_url, headers=headers, json=False) + + try: + results = await self.get_request( + jina_search_url, headers=headers, json=False + ) + except Exception as e: + raise BlockExecutionError( + message=f"Search failed: {e}", + block_name=self.name, + block_id=self.id, + ) from e # Output the search results yield "results", results diff --git a/autogpt_platform/backend/backend/blocks/replicate/replicate_block.py b/autogpt_platform/backend/backend/blocks/replicate/replicate_block.py index 8cf104edc2..7ee054d02e 100644 --- a/autogpt_platform/backend/backend/blocks/replicate/replicate_block.py +++ b/autogpt_platform/backend/backend/blocks/replicate/replicate_block.py @@ -18,6 +18,7 @@ from backend.data.block import ( BlockSchemaOutput, ) from backend.data.model import APIKeyCredentials, CredentialsField, SchemaField +from backend.util.exceptions import BlockExecutionError, BlockInputError logger = logging.getLogger(__name__) @@ -111,9 +112,27 @@ class ReplicateModelBlock(Block): yield "status", "succeeded" yield "model_name", input_data.model_name except Exception as e: - error_msg = f"Unexpected error running Replicate model: {str(e)}" - logger.error(error_msg) - raise RuntimeError(error_msg) + error_msg = str(e) + logger.error(f"Error running Replicate model: {error_msg}") + + # Input validation errors (422, 400) → BlockInputError + if ( + "422" in error_msg + or "Input validation failed" in error_msg + or "400" in error_msg + ): + raise BlockInputError( + message=f"Invalid model inputs: {error_msg}", + block_name=self.name, + block_id=self.id, + ) from e + # Everything else → BlockExecutionError + else: + raise BlockExecutionError( + message=f"Replicate model error: {error_msg}", + block_name=self.name, + block_id=self.id, + ) from e async def run_model(self, model_ref: str, model_inputs: dict, api_key: SecretStr): """ diff --git a/autogpt_platform/backend/backend/blocks/search.py b/autogpt_platform/backend/backend/blocks/search.py index 094db23544..2d10dffab6 100644 --- a/autogpt_platform/backend/backend/blocks/search.py +++ b/autogpt_platform/backend/backend/blocks/search.py @@ -45,10 +45,16 @@ class GetWikipediaSummaryBlock(Block, GetRequest): async def run(self, input_data: Input, **kwargs) -> BlockOutput: topic = input_data.topic url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{topic}" - response = await self.get_request(url, json=True) - if "extract" not in response: - raise RuntimeError(f"Unable to parse Wikipedia response: {response}") - yield "summary", response["extract"] + + # Note: User-Agent is now automatically set by the request library + # to comply with Wikimedia's robot policy (https://w.wiki/4wJS) + try: + response = await self.get_request(url, json=True) + if "extract" not in response: + raise ValueError(f"Unable to parse Wikipedia response: {response}") + yield "summary", response["extract"] + except Exception as e: + raise ValueError(f"Failed to fetch Wikipedia summary: {e}") from e TEST_CREDENTIALS = APIKeyCredentials( diff --git a/autogpt_platform/backend/backend/util/file.py b/autogpt_platform/backend/backend/util/file.py index edf302fb34..dc8f86ea41 100644 --- a/autogpt_platform/backend/backend/util/file.py +++ b/autogpt_platform/backend/backend/util/file.py @@ -14,12 +14,47 @@ from backend.util.virus_scanner import scan_content_safe TEMP_DIR = Path(tempfile.gettempdir()).resolve() +# Maximum filename length (conservative limit for most filesystems) +MAX_FILENAME_LENGTH = 200 + + +def sanitize_filename(filename: str) -> str: + """ + Sanitize and truncate filename to prevent filesystem errors. + """ + # Remove or replace invalid characters + sanitized = re.sub(r'[<>:"/\\|?*\n\r\t]', "_", filename) + + # Truncate if too long + if len(sanitized) > MAX_FILENAME_LENGTH: + # Keep the extension if possible + if "." in sanitized: + name, ext = sanitized.rsplit(".", 1) + max_name_length = MAX_FILENAME_LENGTH - len(ext) - 1 + sanitized = name[:max_name_length] + "." + ext + else: + sanitized = sanitized[:MAX_FILENAME_LENGTH] + + # Ensure it's not empty or just dots + if not sanitized or sanitized.strip(".") == "": + sanitized = f"file_{uuid.uuid4().hex[:8]}" + + return sanitized + def get_exec_file_path(graph_exec_id: str, path: str) -> str: """ Utility to build an absolute path in the {temp}/exec_file/{exec_id}/... folder. """ - return str(TEMP_DIR / "exec_file" / graph_exec_id / path) + try: + full_path = TEMP_DIR / "exec_file" / graph_exec_id / path + return str(full_path) + except OSError as e: + if "File name too long" in str(e): + raise ValueError( + f"File path too long: {len(path)} characters. Maximum path length exceeded." + ) from e + raise ValueError(f"Invalid file path: {e}") from e def clean_exec_files(graph_exec_id: str, file: str = "") -> None: @@ -117,8 +152,11 @@ async def store_media_file( # Generate filename from cloud path _, path_part = cloud_storage.parse_cloud_path(file) - filename = Path(path_part).name or f"{uuid.uuid4()}.bin" - target_path = _ensure_inside_base(base_path / filename, base_path) + filename = sanitize_filename(Path(path_part).name or f"{uuid.uuid4()}.bin") + try: + target_path = _ensure_inside_base(base_path / filename, base_path) + except OSError as e: + raise ValueError(f"Invalid file path '{filename}': {e}") from e # Check file size limit if len(cloud_content) > MAX_FILE_SIZE: @@ -144,7 +182,10 @@ async def store_media_file( # Generate filename and decode extension = _extension_from_mime(mime_type) filename = f"{uuid.uuid4()}{extension}" - target_path = _ensure_inside_base(base_path / filename, base_path) + try: + target_path = _ensure_inside_base(base_path / filename, base_path) + except OSError as e: + raise ValueError(f"Invalid file path '{filename}': {e}") from e content = base64.b64decode(b64_content) # Check file size limit @@ -160,8 +201,11 @@ async def store_media_file( elif file.startswith(("http://", "https://")): # URL parsed_url = urlparse(file) - filename = Path(parsed_url.path).name or f"{uuid.uuid4()}" - target_path = _ensure_inside_base(base_path / filename, base_path) + filename = sanitize_filename(Path(parsed_url.path).name or f"{uuid.uuid4()}") + try: + target_path = _ensure_inside_base(base_path / filename, base_path) + except OSError as e: + raise ValueError(f"Invalid file path '{filename}': {e}") from e # Download and save resp = await Requests().get(file) @@ -177,8 +221,12 @@ async def store_media_file( target_path.write_bytes(resp.content) else: - # Local path - target_path = _ensure_inside_base(base_path / file, base_path) + # Local path - sanitize the filename part to prevent long filename errors + sanitized_file = sanitize_filename(file) + try: + target_path = _ensure_inside_base(base_path / sanitized_file, base_path) + except OSError as e: + raise ValueError(f"Invalid file path '{sanitized_file}': {e}") from e if not target_path.is_file(): raise ValueError(f"Local file does not exist: {target_path}") diff --git a/autogpt_platform/backend/backend/util/request.py b/autogpt_platform/backend/backend/util/request.py index 4887cfa02d..9744372b15 100644 --- a/autogpt_platform/backend/backend/util/request.py +++ b/autogpt_platform/backend/backend/util/request.py @@ -21,6 +21,26 @@ from tenacity import ( from backend.util.json import loads + +class HTTPClientError(Exception): + """4xx client errors (400-499)""" + + def __init__(self, message: str, status_code: int): + super().__init__(message) + self.status_code = status_code + + +class HTTPServerError(Exception): + """5xx server errors (500-599)""" + + def __init__(self, message: str, status_code: int): + super().__init__(message) + self.status_code = status_code + + +# Default User-Agent for all requests +DEFAULT_USER_AGENT = "AutoGPT-Platform/1.0 (https://github.com/Significant-Gravitas/AutoGPT; info@agpt.co) aiohttp" + # Retry status codes for which we will automatically retry the request THROTTLE_RETRY_STATUS_CODES: set[int] = {429, 500, 502, 503, 504, 408} @@ -450,6 +470,10 @@ class Requests: if self.extra_headers is not None: req_headers.update(self.extra_headers) + # Set default User-Agent if not provided + if "User-Agent" not in req_headers and "user-agent" not in req_headers: + req_headers["User-Agent"] = DEFAULT_USER_AGENT + # Override Host header if using IP connection if connector: req_headers["Host"] = hostname @@ -476,9 +500,16 @@ class Requests: response.raise_for_status() except ClientResponseError as e: body = await response.read() - raise Exception( - f"HTTP {response.status} Error: {response.reason}, Body: {body.decode(errors='replace')}" - ) from e + error_message = f"HTTP {response.status} Error: {response.reason}, Body: {body.decode(errors='replace')}" + + # Raise specific exceptions based on status code range + if 400 <= response.status <= 499: + raise HTTPClientError(error_message, response.status) from e + elif 500 <= response.status <= 599: + raise HTTPServerError(error_message, response.status) from e + else: + # Generic fallback for other HTTP errors + raise Exception(error_message) from e # If allowed and a redirect is received, follow the redirect manually if allow_redirects and response.status in (301, 302, 303, 307, 308): diff --git a/autogpt_platform/backend/backend/util/type.py b/autogpt_platform/backend/backend/util/type.py index e1cda80203..2402011669 100644 --- a/autogpt_platform/backend/backend/util/type.py +++ b/autogpt_platform/backend/backend/util/type.py @@ -5,6 +5,13 @@ from typing import Any, Type, TypeVar, Union, cast, get_args, get_origin, overlo from prisma import Json as PrismaJson +def _is_type_or_subclass(origin: Any, target_type: type) -> bool: + """Check if origin is exactly the target type or a subclass of it.""" + return origin is target_type or ( + isinstance(origin, type) and issubclass(origin, target_type) + ) + + class ConversionError(ValueError): pass @@ -138,7 +145,11 @@ def _try_convert(value: Any, target_type: Any, raise_on_mismatch: bool) -> Any: if origin is None: origin = target_type - if origin not in [list, dict, tuple, str, set, int, float, bool]: + # Early return for unsupported types (skip subclasses of supported types) + supported_types = [list, dict, tuple, str, set, int, float, bool] + if origin not in supported_types and not ( + isinstance(origin, type) and any(issubclass(origin, t) for t in supported_types) + ): return value # Handle the case when value is already of the target type @@ -168,44 +179,47 @@ def _try_convert(value: Any, target_type: Any, raise_on_mismatch: bool) -> Any: raise TypeError(f"Value {value} is not of expected type {target_type}") else: # Need to convert value to the origin type - if origin is list: - value = __convert_list(value) + if _is_type_or_subclass(origin, list): + converted_list = __convert_list(value) if args: - return [convert(v, args[0]) for v in value] - else: - return value - elif origin is dict: - value = __convert_dict(value) + converted_list = [convert(v, args[0]) for v in converted_list] + return origin(converted_list) if origin is not list else converted_list + elif _is_type_or_subclass(origin, dict): + converted_dict = __convert_dict(value) if args: key_type, val_type = args - return { - convert(k, key_type): convert(v, val_type) for k, v in value.items() + converted_dict = { + convert(k, key_type): convert(v, val_type) + for k, v in converted_dict.items() } - else: - return value - elif origin is tuple: - value = __convert_tuple(value) + return origin(converted_dict) if origin is not dict else converted_dict + elif _is_type_or_subclass(origin, tuple): + converted_tuple = __convert_tuple(value) if args: if len(args) == 1: - return tuple(convert(v, args[0]) for v in value) + converted_tuple = tuple( + convert(v, args[0]) for v in converted_tuple + ) else: - return tuple(convert(v, t) for v, t in zip(value, args)) - else: - return value - elif origin is str: - return __convert_str(value) - elif origin is set: + converted_tuple = tuple( + convert(v, t) for v, t in zip(converted_tuple, args) + ) + return origin(converted_tuple) if origin is not tuple else converted_tuple + elif _is_type_or_subclass(origin, str): + converted_str = __convert_str(value) + return origin(converted_str) if origin is not str else converted_str + elif _is_type_or_subclass(origin, set): value = __convert_set(value) if args: return {convert(v, args[0]) for v in value} else: return value - elif origin is int: - return __convert_num(value, int) - elif origin is float: - return __convert_num(value, float) - elif origin is bool: + elif _is_type_or_subclass(origin, bool): return __convert_bool(value) + elif _is_type_or_subclass(origin, int): + return __convert_num(value, int) + elif _is_type_or_subclass(origin, float): + return __convert_num(value, float) else: return value diff --git a/autogpt_platform/backend/backend/util/type_test.py b/autogpt_platform/backend/backend/util/type_test.py index becadf48b2..920776edbf 100644 --- a/autogpt_platform/backend/backend/util/type_test.py +++ b/autogpt_platform/backend/backend/util/type_test.py @@ -32,3 +32,17 @@ def test_type_conversion(): assert convert("5", List[int]) == [5] assert convert("[5,4,2]", List[int]) == [5, 4, 2] assert convert([5, 4, 2], List[str]) == ["5", "4", "2"] + + # Test the specific case that was failing: empty list to Optional[str] + assert convert([], Optional[str]) == "[]" + assert convert([], str) == "[]" + + # Test the actual failing case: empty list to ShortTextType + from backend.util.type import ShortTextType + + assert convert([], Optional[ShortTextType]) == "[]" + assert convert([], ShortTextType) == "[]" + + # Test other empty list conversions + assert convert([], int) == 0 # len([]) = 0 + assert convert([], Optional[int]) == 0 From 3dbc03e488b90ffaf2b478b1fca842032fc9e8bb Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Fri, 19 Dec 2025 21:05:16 +0100 Subject: [PATCH 006/160] feat(platform): OAuth API & Single Sign-On (#11617) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to provide Single Sign-On for multiple AutoGPT apps that use the Platform as their backend. ### Changes 🏗️ Backend: - DB + logic + API for OAuth flow (w/ tests) - DB schema additions for OAuth apps, codes, and tokens - Token creation/validation/management logic - OAuth flow endpoints (app info, authorize, token exchange, introspect, revoke) - E2E OAuth API integration tests - Other OAuth-related endpoints (upload app logo, list owned apps, external `/me` endpoint) - App logo asset management - Adjust external API middleware to support auth with access token - Expired token clean-up job - Add `OAUTH_TOKEN_CLEANUP_INTERVAL_HOURS` setting (optional) - `poetry run oauth-tool`: dev tool to test the OAuth flows and register new OAuth apps - `poetry run export-api-schema`: dev tool to quickly export the OpenAPI schema (much quicker than spinning up the backend) Frontend: - Frontend UI for app authorization (`/auth/authorize`) - Re-redirect after login/signup - Frontend flow to batch-auth integrations on request of the client app (`/auth/integrations/setup-wizard`) - Debug `CredentialInputs` component - Add `/profile/oauth-apps` management page - Add `isOurProblem` flag to `ErrorCard` to hide action buttons when the error isn't our fault - Add `showTitle` flag to `CredentialsInput` to hide built-in title for layout reasons DX: - Add [API guide](https://github.com/Significant-Gravitas/AutoGPT/blob/pwuts/sso/docs/content/platform/integrating/api-guide.md) and [OAuth guide](https://github.com/Significant-Gravitas/AutoGPT/blob/pwuts/sso/docs/content/platform/integrating/oauth-guide.md) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Manually verify test coverage of OAuth API tests - Test `/auth/authorize` using `poetry run oauth-tool test-server` - [x] Works - [x] Looks okay - Test `/auth/integrations/setup-wizard` using `poetry run oauth-tool test-server` - [x] Works - [x] Looks okay - Test `/profile/oauth-apps` page - [x] All owned OAuth apps show up - [x] Enabling/disabling apps works - [ ] ~~Uploading logos works~~ can only test this once deployed to dev #### For configuration changes: - [x] `.env.default` is updated or already compatible with my changes - [x] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**) --- .../autogpt_libs/api_key/keysmith.py | 3 + .../backend/backend/cli/__init__.py | 1 + .../backend/cli/generate_openapi_json.py | 57 + .../backend/backend/cli/oauth_tool.py | 1177 +++++++++++ .../backend/data/{ => auth}/api_key.py | 19 +- .../backend/backend/data/auth/base.py | 15 + .../backend/backend/data/auth/oauth.py | 872 ++++++++ .../backend/backend/executor/scheduler.py | 23 + .../backend/server/external/middleware.py | 97 +- .../server/external/routes/integrations.py | 41 +- .../backend/server/external/routes/tools.py | 22 +- .../backend/server/external/routes/v1.py | 77 +- .../backend/backend/server/model.py | 2 +- .../backend/backend/server/rest_api.py | 6 + .../backend/backend/server/routers/oauth.py | 833 ++++++++ .../backend/server/routers/oauth_test.py | 1784 +++++++++++++++++ .../backend/backend/server/routers/v1.py | 2 +- .../backend/backend/util/settings.py | 7 + .../migration.sql | 129 ++ .../migration.sql | 5 + autogpt_platform/backend/pyproject.toml | 2 + autogpt_platform/backend/schema.prisma | 117 ++ .../backend/test/e2e_test_data.py | 6 +- .../app/(platform)/auth/authorize/page.tsx | 296 +++ .../src/app/(platform)/auth/callback/route.ts | 3 + .../auth/integrations/setup-wizard/page.tsx | 331 +++ .../CredentialsInputs/CredentialsInputs.tsx | 45 +- ...ntialsInputs.ts => useCredentialsInput.ts} | 119 +- .../src/app/(platform)/login/page.tsx | 10 +- .../src/app/(platform)/login/useLoginPage.ts | 22 +- .../APIKeySection/APIKeySection.tsx | 0 .../APIKeySection/useAPISection.ts} | 0 .../APIKeysModals/APIKeysModals.tsx | 0 .../APIKeysModals/useAPIkeysModals.ts} | 0 .../(user)/{api_keys => api-keys}/page.tsx | 2 +- .../app/(platform)/profile/(user)/layout.tsx | 50 +- .../components/OAuthAppsSection.tsx | 147 ++ .../oauth-apps/components/useOAuthApps.ts | 110 + .../profile/(user)/oauth-apps/page.tsx | 21 + .../src/app/(platform)/signup/page.tsx | 10 +- .../app/(platform)/signup/useSignupPage.ts | 23 +- .../src/app/api/mutators/custom-mutator.ts | 13 + .../frontend/src/app/api/openapi.json | 784 +++++++- .../molecules/ErrorCard/ErrorCard.tsx | 20 +- .../ErrorCard/components/ErrorMessage.tsx | 10 +- .../src/lib/autogpt-server-api/types.ts | 2 +- .../frontend/src/lib/supabase/helpers.ts | 11 +- .../src/lib/supabase/hooks/helpers.ts | 10 +- .../src/lib/supabase/hooks/useSupabase.ts | 17 +- .../lib/supabase/hooks/useSupabaseStore.ts | 18 +- .../frontend/src/lib/supabase/middleware.ts | 2 + autogpt_platform/frontend/src/middleware.ts | 12 +- .../frontend/src/tests/api-keys.spec.ts | 8 +- .../frontend/src/tests/profile-form.spec.ts | 2 +- .../frontend/src/tests/signin.spec.ts | 4 +- .../content/platform/integrating/api-guide.md | 85 + .../platform/integrating/oauth-guide.md | 440 ++++ docs/mkdocs.yml | 11 +- 58 files changed, 7672 insertions(+), 263 deletions(-) create mode 100644 autogpt_platform/backend/backend/cli/__init__.py create mode 100644 autogpt_platform/backend/backend/cli/generate_openapi_json.py create mode 100755 autogpt_platform/backend/backend/cli/oauth_tool.py rename autogpt_platform/backend/backend/data/{ => auth}/api_key.py (95%) create mode 100644 autogpt_platform/backend/backend/data/auth/base.py create mode 100644 autogpt_platform/backend/backend/data/auth/oauth.py create mode 100644 autogpt_platform/backend/backend/server/routers/oauth.py create mode 100644 autogpt_platform/backend/backend/server/routers/oauth_test.py create mode 100644 autogpt_platform/backend/migrations/20251212165920_add_oauth_provider_support/migration.sql create mode 100644 autogpt_platform/backend/migrations/20251218231330_add_oauth_app_logo/migration.sql create mode 100644 autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx rename autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/{useCredentialsInputs.ts => useCredentialsInput.ts} (76%) rename autogpt_platform/frontend/src/app/(platform)/profile/(user)/{api_keys => api-keys}/components/APIKeySection/APIKeySection.tsx (100%) rename autogpt_platform/frontend/src/app/(platform)/profile/(user)/{api_keys/components/APIKeySection/useAPISection.tsx => api-keys/components/APIKeySection/useAPISection.ts} (100%) rename autogpt_platform/frontend/src/app/(platform)/profile/(user)/{api_keys => api-keys}/components/APIKeysModals/APIKeysModals.tsx (100%) rename autogpt_platform/frontend/src/app/(platform)/profile/(user)/{api_keys/components/APIKeysModals/useAPIkeysModals.tsx => api-keys/components/APIKeysModals/useAPIkeysModals.ts} (100%) rename autogpt_platform/frontend/src/app/(platform)/profile/(user)/{api_keys => api-keys}/page.tsx (94%) create mode 100644 autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/OAuthAppsSection.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts create mode 100644 autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/page.tsx create mode 100644 docs/content/platform/integrating/api-guide.md create mode 100644 docs/content/platform/integrating/oauth-guide.md diff --git a/autogpt_platform/autogpt_libs/autogpt_libs/api_key/keysmith.py b/autogpt_platform/autogpt_libs/autogpt_libs/api_key/keysmith.py index 394044a69d..aee7040288 100644 --- a/autogpt_platform/autogpt_libs/autogpt_libs/api_key/keysmith.py +++ b/autogpt_platform/autogpt_libs/autogpt_libs/api_key/keysmith.py @@ -57,6 +57,9 @@ class APIKeySmith: def hash_key(self, raw_key: str) -> tuple[str, str]: """Migrate a legacy hash to secure hash format.""" + if not raw_key.startswith(self.PREFIX): + raise ValueError("Key without 'agpt_' prefix would fail validation") + salt = self._generate_salt() hash = self._hash_key_with_salt(raw_key, salt) return hash, salt.hex() diff --git a/autogpt_platform/backend/backend/cli/__init__.py b/autogpt_platform/backend/backend/cli/__init__.py new file mode 100644 index 0000000000..d96b0c7d49 --- /dev/null +++ b/autogpt_platform/backend/backend/cli/__init__.py @@ -0,0 +1 @@ +"""CLI utilities for backend development & administration""" diff --git a/autogpt_platform/backend/backend/cli/generate_openapi_json.py b/autogpt_platform/backend/backend/cli/generate_openapi_json.py new file mode 100644 index 0000000000..313e603c44 --- /dev/null +++ b/autogpt_platform/backend/backend/cli/generate_openapi_json.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +""" +Script to generate OpenAPI JSON specification for the FastAPI app. + +This script imports the FastAPI app from backend.server.rest_api and outputs +the OpenAPI specification as JSON to stdout or a specified file. + +Usage: + `poetry run python generate_openapi_json.py` + `poetry run python generate_openapi_json.py --output openapi.json` + `poetry run python generate_openapi_json.py --indent 4 --output openapi.json` +""" + +import json +import os +from pathlib import Path + +import click + + +@click.command() +@click.option( + "--output", + type=click.Path(dir_okay=False, path_type=Path), + help="Output file path (default: stdout)", +) +@click.option( + "--pretty", + type=click.BOOL, + default=False, + help="Pretty-print JSON output (indented 2 spaces)", +) +def main(output: Path, pretty: bool): + """Generate and output the OpenAPI JSON specification.""" + openapi_schema = get_openapi_schema() + + json_output = json.dumps(openapi_schema, indent=2 if pretty else None) + + if output: + output.write_text(json_output) + click.echo(f"✅ OpenAPI specification written to {output}\n\nPreview:") + click.echo(f"\n{json_output[:500]} ...") + else: + print(json_output) + + +def get_openapi_schema(): + """Get the OpenAPI schema from the FastAPI app""" + from backend.server.rest_api import app + + return app.openapi() + + +if __name__ == "__main__": + os.environ["LOG_LEVEL"] = "ERROR" # disable stdout log output + + main() diff --git a/autogpt_platform/backend/backend/cli/oauth_tool.py b/autogpt_platform/backend/backend/cli/oauth_tool.py new file mode 100755 index 0000000000..57982d359b --- /dev/null +++ b/autogpt_platform/backend/backend/cli/oauth_tool.py @@ -0,0 +1,1177 @@ +#!/usr/bin/env python3 +""" +OAuth Application Credential Generator and Test Server + +Generates client IDs, client secrets, and SQL INSERT statements for OAuth applications. +Also provides a test server to test the OAuth flows end-to-end. + +Usage: + # Generate credentials interactively (recommended) + poetry run oauth-tool generate-app + + # Generate credentials with all options provided + poetry run oauth-tool generate-app \\ + --name "My App" \\ + --description "My application description" \\ + --redirect-uris "https://app.example.com/callback,http://localhost:3000/callback" \\ + --scopes "EXECUTE_GRAPH,READ_GRAPH" + + # Mix of options and interactive prompts + poetry run oauth-tool generate-app --name "My App" + + # Hash an existing plaintext secret (for secret rotation) + poetry run oauth-tool hash-secret "my-plaintext-secret" + + # Validate a plaintext secret against a hash and salt + poetry run oauth-tool validate-secret "my-plaintext-secret" "hash" "salt" + + # Run a test server to test OAuth flows + poetry run oauth-tool test-server --owner-id YOUR_USER_ID +""" + +import asyncio +import base64 +import hashlib +import secrets +import sys +import uuid +from datetime import datetime +from typing import Optional +from urllib.parse import urlparse + +import click +from autogpt_libs.api_key.keysmith import APIKeySmith +from prisma.enums import APIKeyPermission + +keysmith = APIKeySmith() + + +def generate_client_id() -> str: + """Generate a unique client ID""" + return f"agpt_client_{secrets.token_urlsafe(16)}" + + +def generate_client_secret() -> tuple[str, str, str]: + """ + Generate a client secret with its hash and salt. + Returns (plaintext_secret, hashed_secret, salt) + """ + # Generate a secure random secret (32 bytes = 256 bits of entropy) + plaintext = f"agpt_secret_{secrets.token_urlsafe(32)}" + + # Hash using Scrypt (same as API keys) + hashed, salt = keysmith.hash_key(plaintext) + + return plaintext, hashed, salt + + +def hash_secret(plaintext: str) -> tuple[str, str]: + """Hash a plaintext secret using Scrypt. Returns (hash, salt)""" + return keysmith.hash_key(plaintext) + + +def validate_secret(plaintext: str, hash_value: str, salt: str) -> bool: + """Validate a plaintext secret against a stored hash and salt""" + return keysmith.verify_key(plaintext, hash_value, salt) + + +def generate_app_credentials( + name: str, + redirect_uris: list[str], + scopes: list[str], + description: str | None = None, + grant_types: list[str] | None = None, +) -> dict: + """ + Generate complete credentials for an OAuth application. + + Returns dict with: + - id: UUID for the application + - name: Application name + - description: Application description + - client_id: Client identifier (plaintext) + - client_secret_plaintext: Client secret (SENSITIVE - show only once) + - client_secret_hash: Hashed client secret (for database) + - redirect_uris: List of allowed redirect URIs + - grant_types: List of allowed grant types + - scopes: List of allowed scopes + """ + if grant_types is None: + grant_types = ["authorization_code", "refresh_token"] + + # Validate scopes + try: + validated_scopes = [APIKeyPermission(s.strip()) for s in scopes if s.strip()] + except ValueError as e: + raise ValueError(f"Invalid scope: {e}") + + if not validated_scopes: + raise ValueError("At least one scope is required") + + # Generate credentials + app_id = str(uuid.uuid4()) + client_id = generate_client_id() + client_secret_plaintext, client_secret_hash, client_secret_salt = ( + generate_client_secret() + ) + + return { + "id": app_id, + "name": name, + "description": description, + "client_id": client_id, + "client_secret_plaintext": client_secret_plaintext, + "client_secret_hash": client_secret_hash, + "client_secret_salt": client_secret_salt, + "redirect_uris": redirect_uris, + "grant_types": grant_types, + "scopes": [s.value for s in validated_scopes], + } + + +def format_sql_insert(creds: dict) -> str: + """ + Format credentials as a SQL INSERT statement. + + The statement includes placeholders that must be replaced: + - YOUR_USER_ID_HERE: Replace with the owner's user ID + """ + now_iso = datetime.utcnow().isoformat() + + # Format arrays for PostgreSQL + redirect_uris_pg = ( + "{" + ",".join(f'"{uri}"' for uri in creds["redirect_uris"]) + "}" + ) + grant_types_pg = "{" + ",".join(f'"{gt}"' for gt in creds["grant_types"]) + "}" + scopes_pg = "{" + ",".join(creds["scopes"]) + "}" + + sql = f""" +-- ============================================================ +-- OAuth Application: {creds['name']} +-- Generated: {now_iso} UTC +-- ============================================================ + +INSERT INTO "OAuthApplication" ( + id, + "createdAt", + "updatedAt", + name, + description, + "clientId", + "clientSecret", + "clientSecretSalt", + "redirectUris", + "grantTypes", + scopes, + "ownerId", + "isActive" +) +VALUES ( + '{creds['id']}', + NOW(), + NOW(), + '{creds['name']}', + {f"'{creds['description']}'" if creds['description'] else 'NULL'}, + '{creds['client_id']}', + '{creds['client_secret_hash']}', + '{creds['client_secret_salt']}', + ARRAY{redirect_uris_pg}::TEXT[], + ARRAY{grant_types_pg}::TEXT[], + ARRAY{scopes_pg}::"APIKeyPermission"[], + 'YOUR_USER_ID_HERE', -- ⚠️ REPLACE with actual owner user ID + true +); + +-- ============================================================ +-- ⚠️ IMPORTANT: Save these credentials securely! +-- ============================================================ +-- +-- Client ID: {creds['client_id']} +-- Client Secret: {creds['client_secret_plaintext']} +-- +-- ⚠️ The client secret is shown ONLY ONCE! +-- ⚠️ Store it securely and share only with the application developer. +-- ⚠️ Never commit it to version control. +-- +-- The client secret has been hashed in the database using Scrypt. +-- The plaintext secret above is needed by the application to authenticate. +-- ============================================================ + +-- To verify the application was created: +-- SELECT "clientId", name, scopes, "redirectUris", "isActive" +-- FROM "OAuthApplication" +-- WHERE "clientId" = '{creds['client_id']}'; +""" + return sql + + +@click.group() +def cli(): + """OAuth Application Credential Generator + + Generates client IDs, client secrets, and SQL INSERT statements for OAuth applications. + Does NOT directly insert into the database - outputs SQL for manual execution. + """ + pass + + +AVAILABLE_SCOPES = [ + "EXECUTE_GRAPH", + "READ_GRAPH", + "EXECUTE_BLOCK", + "READ_BLOCK", + "READ_STORE", + "USE_TOOLS", + "MANAGE_INTEGRATIONS", + "READ_INTEGRATIONS", + "DELETE_INTEGRATIONS", +] + +DEFAULT_GRANT_TYPES = ["authorization_code", "refresh_token"] + + +def prompt_for_name() -> str: + """Prompt for application name""" + return click.prompt("Application name", type=str) + + +def prompt_for_description() -> str | None: + """Prompt for application description""" + description = click.prompt( + "Application description (optional, press Enter to skip)", + type=str, + default="", + show_default=False, + ) + return description if description else None + + +def prompt_for_redirect_uris() -> list[str]: + """Prompt for redirect URIs interactively""" + click.echo("\nRedirect URIs (enter one per line, empty line to finish):") + click.echo(" Example: https://app.example.com/callback") + uris = [] + while True: + uri = click.prompt(" URI", type=str, default="", show_default=False) + if not uri: + if not uris: + click.echo(" At least one redirect URI is required.") + continue + break + uris.append(uri.strip()) + return uris + + +def prompt_for_scopes() -> list[str]: + """Prompt for scopes interactively with a menu""" + click.echo("\nAvailable scopes:") + for i, scope in enumerate(AVAILABLE_SCOPES, 1): + click.echo(f" {i}. {scope}") + + click.echo( + "\nSelect scopes by number (comma-separated) or enter scope names directly:" + ) + click.echo(" Example: 1,2 or EXECUTE_GRAPH,READ_GRAPH") + + while True: + selection = click.prompt("Scopes", type=str) + scopes = [] + + for item in selection.split(","): + item = item.strip() + if not item: + continue + + # Check if it's a number + if item.isdigit(): + idx = int(item) - 1 + if 0 <= idx < len(AVAILABLE_SCOPES): + scopes.append(AVAILABLE_SCOPES[idx]) + else: + click.echo(f" Invalid number: {item}") + scopes = [] + break + # Check if it's a valid scope name + elif item.upper() in AVAILABLE_SCOPES: + scopes.append(item.upper()) + else: + click.echo(f" Invalid scope: {item}") + scopes = [] + break + + if scopes: + return scopes + click.echo(" Please enter valid scope numbers or names.") + + +def prompt_for_grant_types() -> list[str] | None: + """Prompt for grant types interactively""" + click.echo(f"\nGrant types (default: {', '.join(DEFAULT_GRANT_TYPES)})") + grant_types_input = click.prompt( + "Grant types (comma-separated, press Enter for default)", + type=str, + default="", + show_default=False, + ) + + if not grant_types_input: + return None # Use default + + return [gt.strip() for gt in grant_types_input.split(",") if gt.strip()] + + +@cli.command(name="generate-app") +@click.option( + "--name", + default=None, + help="Application name (e.g., 'My Cool App')", +) +@click.option( + "--description", + default=None, + help="Application description", +) +@click.option( + "--redirect-uris", + default=None, + help="Comma-separated list of redirect URIs (e.g., 'https://app.example.com/callback,http://localhost:3000/callback')", +) +@click.option( + "--scopes", + default=None, + help="Comma-separated list of scopes (e.g., 'EXECUTE_GRAPH,READ_GRAPH')", +) +@click.option( + "--grant-types", + default=None, + help="Comma-separated list of grant types (default: 'authorization_code,refresh_token')", +) +def generate_app( + name: str | None, + description: str | None, + redirect_uris: str | None, + scopes: str | None, + grant_types: str | None, +): + """Generate credentials for a new OAuth application + + All options are optional. If not provided, you will be prompted interactively. + """ + # Interactive prompts for missing required values + if name is None: + name = prompt_for_name() + + if description is None: + description = prompt_for_description() + + if redirect_uris is None: + redirect_uris_list = prompt_for_redirect_uris() + else: + redirect_uris_list = [uri.strip() for uri in redirect_uris.split(",")] + + if scopes is None: + scopes_list = prompt_for_scopes() + else: + scopes_list = [scope.strip() for scope in scopes.split(",")] + + if grant_types is None: + grant_types_list = prompt_for_grant_types() + else: + grant_types_list = [gt.strip() for gt in grant_types.split(",")] + + try: + creds = generate_app_credentials( + name=name, + description=description, + redirect_uris=redirect_uris_list, + scopes=scopes_list, + grant_types=grant_types_list, + ) + + sql = format_sql_insert(creds) + click.echo(sql) + + except ValueError as e: + click.echo(f"Error: {e}", err=True) + sys.exit(1) + + +@cli.command(name="hash-secret") +@click.argument("secret") +def hash_secret_command(secret): + """Hash a plaintext secret using Scrypt""" + hashed, salt = hash_secret(secret) + click.echo(f"Hash: {hashed}") + click.echo(f"Salt: {salt}") + + +@cli.command(name="validate-secret") +@click.argument("secret") +@click.argument("hash") +@click.argument("salt") +def validate_secret_command(secret, hash, salt): + """Validate a plaintext secret against a hash and salt""" + is_valid = validate_secret(secret, hash, salt) + if is_valid: + click.echo("✓ Secret is valid!") + sys.exit(0) + else: + click.echo("✗ Secret is invalid!", err=True) + sys.exit(1) + + +# ============================================================================ +# Test Server Command +# ============================================================================ + +TEST_APP_NAME = "OAuth Test App (CLI)" +TEST_APP_DESCRIPTION = "Temporary test application created by oauth_admin CLI" +TEST_SERVER_PORT = 9876 + + +def generate_pkce() -> tuple[str, str]: + """Generate PKCE code_verifier and code_challenge (S256)""" + code_verifier = secrets.token_urlsafe(32) + code_challenge = ( + base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()) + .decode() + .rstrip("=") + ) + return code_verifier, code_challenge + + +def create_test_html( + platform_url: str, + client_id: str, + client_secret: str, + redirect_uri: str, + backend_url: str, +) -> str: + """Generate HTML page for test OAuth client""" + return f""" + + + + + OAuth Test Client + + + +
+
+

🔐 OAuth Test Client

+

Test the "Sign in with AutoGPT" and Integration Setup flows

+ +
+ + {client_id} +
+ +
+ + +
+
+ + + +
+

📋 Request Log

+
Waiting for action...
+
+ +
+

⚙️ Configuration

+
+ + {platform_url} +
+
+ + {backend_url} +
+
+ + {redirect_uri} +
+
+
+ + + + +""" + + +async def create_test_app_in_db( + owner_id: str, + redirect_uri: str, +) -> dict: + """Create a temporary test OAuth application in the database""" + from prisma.models import OAuthApplication + + from backend.data import db + + # Connect to database + await db.connect() + + # Generate credentials + creds = generate_app_credentials( + name=TEST_APP_NAME, + description=TEST_APP_DESCRIPTION, + redirect_uris=[redirect_uri], + scopes=AVAILABLE_SCOPES, # All scopes for testing + ) + + # Insert into database + app = await OAuthApplication.prisma().create( + data={ + "id": creds["id"], + "name": creds["name"], + "description": creds["description"], + "clientId": creds["client_id"], + "clientSecret": creds["client_secret_hash"], + "clientSecretSalt": creds["client_secret_salt"], + "redirectUris": creds["redirect_uris"], + "grantTypes": creds["grant_types"], + "scopes": creds["scopes"], + "ownerId": owner_id, + "isActive": True, + } + ) + + click.echo(f"✓ Created test OAuth application: {app.clientId}") + + return { + "id": app.id, + "client_id": app.clientId, + "client_secret": creds["client_secret_plaintext"], + } + + +async def cleanup_test_app(app_id: str) -> None: + """Remove test application and all associated tokens from database""" + from prisma.models import ( + OAuthAccessToken, + OAuthApplication, + OAuthAuthorizationCode, + OAuthRefreshToken, + ) + + from backend.data import db + + if not db.is_connected(): + await db.connect() + + click.echo("\n🧹 Cleaning up test data...") + + # Delete authorization codes + deleted_codes = await OAuthAuthorizationCode.prisma().delete_many( + where={"applicationId": app_id} + ) + if deleted_codes: + click.echo(f" Deleted {deleted_codes} authorization code(s)") + + # Delete access tokens + deleted_access = await OAuthAccessToken.prisma().delete_many( + where={"applicationId": app_id} + ) + if deleted_access: + click.echo(f" Deleted {deleted_access} access token(s)") + + # Delete refresh tokens + deleted_refresh = await OAuthRefreshToken.prisma().delete_many( + where={"applicationId": app_id} + ) + if deleted_refresh: + click.echo(f" Deleted {deleted_refresh} refresh token(s)") + + # Delete the application itself + await OAuthApplication.prisma().delete(where={"id": app_id}) + click.echo(" Deleted test OAuth application") + + await db.disconnect() + click.echo("✓ Cleanup complete!") + + +def run_test_server( + port: int, + platform_url: str, + backend_url: str, + client_id: str, + client_secret: str, +) -> None: + """Run a simple HTTP server for testing OAuth flows""" + import json as json_module + import threading + from http.server import BaseHTTPRequestHandler, HTTPServer + from urllib.request import Request, urlopen + + redirect_uri = f"http://localhost:{port}/callback" + + html_content = create_test_html( + platform_url=platform_url, + client_id=client_id, + client_secret=client_secret, + redirect_uri=redirect_uri, + backend_url=backend_url, + ) + + class TestHandler(BaseHTTPRequestHandler): + def do_GET(self): + from urllib.parse import parse_qs + + # Parse the path + parsed = urlparse(self.path) + + # Serve the test page for root and callback + if parsed.path in ["/", "/callback"]: + self.send_response(200) + self.send_header("Content-Type", "text/html; charset=utf-8") + self.end_headers() + self.wfile.write(html_content.encode()) + + # Proxy API calls to backend (avoids CORS issues) + # Supports both /proxy/api/* and /proxy/external-api/* + elif parsed.path.startswith("/proxy/"): + try: + # Extract the API path and token from query params + api_path = parsed.path[len("/proxy") :] + query_params = parse_qs(parsed.query) + token = query_params.get("token", [None])[0] + + headers = {} + if token: + headers["Authorization"] = f"Bearer {token}" + + req = Request( + f"{backend_url}{api_path}", + headers=headers, + method="GET", + ) + + with urlopen(req) as response: + response_body = response.read() + self.send_response(response.status) + self.send_header("Content-Type", "application/json") + self.end_headers() + self.wfile.write(response_body) + + except Exception as e: + error_msg = str(e) + status_code = 500 + if hasattr(e, "code"): + status_code = e.code # type: ignore + if hasattr(e, "read"): + try: + error_body = e.read().decode() # type: ignore + error_data = json_module.loads(error_body) + error_msg = error_data.get("detail", error_msg) + except Exception: + pass + + self.send_response(status_code) + self.send_header("Content-Type", "application/json") + self.end_headers() + self.wfile.write(json_module.dumps({"detail": error_msg}).encode()) + + else: + self.send_response(404) + self.end_headers() + + def do_POST(self): + # Parse the path + parsed = urlparse(self.path) + + # Proxy token exchange to backend (avoids CORS issues) + if parsed.path == "/proxy/token": + try: + # Read request body + content_length = int(self.headers.get("Content-Length", 0)) + body = self.rfile.read(content_length) + + # Forward to backend + req = Request( + f"{backend_url}/api/oauth/token", + data=body, + headers={"Content-Type": "application/json"}, + method="POST", + ) + + with urlopen(req) as response: + response_body = response.read() + self.send_response(response.status) + self.send_header("Content-Type", "application/json") + self.end_headers() + self.wfile.write(response_body) + + except Exception as e: + error_msg = str(e) + # Try to extract error detail from urllib error + if hasattr(e, "read"): + try: + error_body = e.read().decode() # type: ignore + error_data = json_module.loads(error_body) + error_msg = error_data.get("detail", error_msg) + except Exception: + pass + + self.send_response(500) + self.send_header("Content-Type", "application/json") + self.end_headers() + self.wfile.write(json_module.dumps({"detail": error_msg}).encode()) + else: + self.send_response(404) + self.end_headers() + + def log_message(self, format, *args): + # Suppress default logging + pass + + server = HTTPServer(("localhost", port), TestHandler) + click.echo(f"\n🚀 Test server running at http://localhost:{port}") + click.echo(" Open this URL in your browser to test the OAuth flows\n") + + # Run server in a daemon thread + server_thread = threading.Thread(target=server.serve_forever, daemon=True) + server_thread.start() + + # Use a simple polling loop that can be interrupted + try: + while server_thread.is_alive(): + server_thread.join(timeout=1.0) + except KeyboardInterrupt: + pass + + click.echo("\n\n⏹️ Server stopped") + server.shutdown() + + +async def setup_and_cleanup_test_app( + owner_id: str, + redirect_uri: str, + port: int, + platform_url: str, + backend_url: str, +) -> None: + """ + Async context manager that handles test app lifecycle. + Creates the app, yields control to run the server, then cleans up. + """ + app_info: Optional[dict] = None + + try: + # Create test app in database + click.echo("\n📝 Creating temporary OAuth application...") + app_info = await create_test_app_in_db(owner_id, redirect_uri) + + click.echo(f"\n Client ID: {app_info['client_id']}") + click.echo(f" Client Secret: {app_info['client_secret'][:30]}...") + + # Run the test server (blocking, synchronous) + click.echo("\n" + "-" * 60) + click.echo(" Press Ctrl+C to stop the server and clean up") + click.echo("-" * 60) + + run_test_server( + port=port, + platform_url=platform_url, + backend_url=backend_url, + client_id=app_info["client_id"], + client_secret=app_info["client_secret"], + ) + + finally: + # Always clean up - we're still in the same event loop + if app_info: + try: + await cleanup_test_app(app_info["id"]) + except Exception as e: + click.echo(f"\n⚠️ Cleanup error: {e}", err=True) + click.echo( + f" You may need to manually delete app with ID: {app_info['id']}" + ) + + +@cli.command(name="test-server") +@click.option( + "--owner-id", + required=True, + help="User ID to own the temporary test OAuth application", +) +@click.option( + "--port", + default=TEST_SERVER_PORT, + help=f"Port to run the test server on (default: {TEST_SERVER_PORT})", +) +@click.option( + "--platform-url", + default="http://localhost:3000", + help="AutoGPT Platform frontend URL (default: http://localhost:3000)", +) +@click.option( + "--backend-url", + default="http://localhost:8006", + help="AutoGPT Platform backend URL (default: http://localhost:8006)", +) +def test_server_command( + owner_id: str, + port: int, + platform_url: str, + backend_url: str, +): + """Run a test server to test OAuth flows interactively + + This command: + 1. Creates a temporary OAuth application in the database + 2. Starts a minimal web server that acts as a third-party client + 3. Lets you test "Sign in with AutoGPT" and Integration Setup flows + 4. Cleans up all test data (app, tokens, codes) when you stop the server + + Example: + poetry run oauth-tool test-server --owner-id YOUR_USER_ID + + The test server will be available at http://localhost:9876 + """ + redirect_uri = f"http://localhost:{port}/callback" + + click.echo("=" * 60) + click.echo(" OAuth Test Server") + click.echo("=" * 60) + click.echo(f"\n Owner ID: {owner_id}") + click.echo(f" Platform URL: {platform_url}") + click.echo(f" Backend URL: {backend_url}") + click.echo(f" Test Server: http://localhost:{port}") + click.echo(f" Redirect URI: {redirect_uri}") + click.echo("\n" + "=" * 60) + + try: + # Run everything in a single event loop to keep Prisma client happy + asyncio.run( + setup_and_cleanup_test_app( + owner_id=owner_id, + redirect_uri=redirect_uri, + port=port, + platform_url=platform_url, + backend_url=backend_url, + ) + ) + except KeyboardInterrupt: + # Already handled inside, just exit cleanly + pass + except Exception as e: + click.echo(f"\n❌ Error: {e}", err=True) + sys.exit(1) + + +if __name__ == "__main__": + cli() diff --git a/autogpt_platform/backend/backend/data/api_key.py b/autogpt_platform/backend/backend/data/auth/api_key.py similarity index 95% rename from autogpt_platform/backend/backend/data/api_key.py rename to autogpt_platform/backend/backend/data/auth/api_key.py index 45194897de..2ecd5be9a5 100644 --- a/autogpt_platform/backend/backend/data/api_key.py +++ b/autogpt_platform/backend/backend/data/auth/api_key.py @@ -1,22 +1,24 @@ import logging import uuid from datetime import datetime, timezone -from typing import Optional +from typing import Literal, Optional from autogpt_libs.api_key.keysmith import APIKeySmith from prisma.enums import APIKeyPermission, APIKeyStatus from prisma.models import APIKey as PrismaAPIKey from prisma.types import APIKeyWhereUniqueInput -from pydantic import BaseModel, Field +from pydantic import Field from backend.data.includes import MAX_USER_API_KEYS_FETCH from backend.util.exceptions import NotAuthorizedError, NotFoundError +from .base import APIAuthorizationInfo + logger = logging.getLogger(__name__) keysmith = APIKeySmith() -class APIKeyInfo(BaseModel): +class APIKeyInfo(APIAuthorizationInfo): id: str name: str head: str = Field( @@ -26,12 +28,9 @@ class APIKeyInfo(BaseModel): description=f"The last {APIKeySmith.TAIL_LENGTH} characters of the key" ) status: APIKeyStatus - permissions: list[APIKeyPermission] - created_at: datetime - last_used_at: Optional[datetime] = None - revoked_at: Optional[datetime] = None description: Optional[str] = None - user_id: str + + type: Literal["api_key"] = "api_key" # type: ignore @staticmethod def from_db(api_key: PrismaAPIKey): @@ -41,7 +40,7 @@ class APIKeyInfo(BaseModel): head=api_key.head, tail=api_key.tail, status=APIKeyStatus(api_key.status), - permissions=[APIKeyPermission(p) for p in api_key.permissions], + scopes=[APIKeyPermission(p) for p in api_key.permissions], created_at=api_key.createdAt, last_used_at=api_key.lastUsedAt, revoked_at=api_key.revokedAt, @@ -211,7 +210,7 @@ async def suspend_api_key(key_id: str, user_id: str) -> APIKeyInfo: def has_permission(api_key: APIKeyInfo, required_permission: APIKeyPermission) -> bool: - return required_permission in api_key.permissions + return required_permission in api_key.scopes async def get_api_key_by_id(key_id: str, user_id: str) -> Optional[APIKeyInfo]: diff --git a/autogpt_platform/backend/backend/data/auth/base.py b/autogpt_platform/backend/backend/data/auth/base.py new file mode 100644 index 0000000000..e307b5f49f --- /dev/null +++ b/autogpt_platform/backend/backend/data/auth/base.py @@ -0,0 +1,15 @@ +from datetime import datetime +from typing import Literal, Optional + +from prisma.enums import APIKeyPermission +from pydantic import BaseModel + + +class APIAuthorizationInfo(BaseModel): + user_id: str + scopes: list[APIKeyPermission] + type: Literal["oauth", "api_key"] + created_at: datetime + expires_at: Optional[datetime] = None + last_used_at: Optional[datetime] = None + revoked_at: Optional[datetime] = None diff --git a/autogpt_platform/backend/backend/data/auth/oauth.py b/autogpt_platform/backend/backend/data/auth/oauth.py new file mode 100644 index 0000000000..e49586194c --- /dev/null +++ b/autogpt_platform/backend/backend/data/auth/oauth.py @@ -0,0 +1,872 @@ +""" +OAuth 2.0 Provider Data Layer + +Handles management of OAuth applications, authorization codes, +access tokens, and refresh tokens. + +Hashing strategy: +- Access tokens & Refresh tokens: SHA256 (deterministic, allows direct lookup by hash) +- Client secrets: Scrypt with salt (lookup by client_id, then verify with salt) +""" + +import hashlib +import logging +import secrets +import uuid +from datetime import datetime, timedelta, timezone +from typing import Literal, Optional + +from autogpt_libs.api_key.keysmith import APIKeySmith +from prisma.enums import APIKeyPermission as APIPermission +from prisma.models import OAuthAccessToken as PrismaOAuthAccessToken +from prisma.models import OAuthApplication as PrismaOAuthApplication +from prisma.models import OAuthAuthorizationCode as PrismaOAuthAuthorizationCode +from prisma.models import OAuthRefreshToken as PrismaOAuthRefreshToken +from prisma.types import OAuthApplicationUpdateInput +from pydantic import BaseModel, Field, SecretStr + +from .base import APIAuthorizationInfo + +logger = logging.getLogger(__name__) +keysmith = APIKeySmith() # Only used for client secret hashing (Scrypt) + + +def _generate_token() -> str: + """Generate a cryptographically secure random token.""" + return secrets.token_urlsafe(32) + + +def _hash_token(token: str) -> str: + """Hash a token using SHA256 (deterministic, for direct lookup).""" + return hashlib.sha256(token.encode()).hexdigest() + + +# Token TTLs +AUTHORIZATION_CODE_TTL = timedelta(minutes=10) +ACCESS_TOKEN_TTL = timedelta(hours=1) +REFRESH_TOKEN_TTL = timedelta(days=30) + +ACCESS_TOKEN_PREFIX = "agpt_xt_" +REFRESH_TOKEN_PREFIX = "agpt_rt_" + + +# ============================================================================ +# Exception Classes +# ============================================================================ + + +class OAuthError(Exception): + """Base OAuth error""" + + pass + + +class InvalidClientError(OAuthError): + """Invalid client_id or client_secret""" + + pass + + +class InvalidGrantError(OAuthError): + """Invalid or expired authorization code/refresh token""" + + def __init__(self, reason: str): + self.reason = reason + super().__init__(f"Invalid grant: {reason}") + + +class InvalidTokenError(OAuthError): + """Invalid, expired, or revoked token""" + + def __init__(self, reason: str): + self.reason = reason + super().__init__(f"Invalid token: {reason}") + + +# ============================================================================ +# Data Models +# ============================================================================ + + +class OAuthApplicationInfo(BaseModel): + """OAuth application information (without client secret hash)""" + + id: str + name: str + description: Optional[str] = None + logo_url: Optional[str] = None + client_id: str + redirect_uris: list[str] + grant_types: list[str] + scopes: list[APIPermission] + owner_id: str + is_active: bool + created_at: datetime + updated_at: datetime + + @staticmethod + def from_db(app: PrismaOAuthApplication): + return OAuthApplicationInfo( + id=app.id, + name=app.name, + description=app.description, + logo_url=app.logoUrl, + client_id=app.clientId, + redirect_uris=app.redirectUris, + grant_types=app.grantTypes, + scopes=[APIPermission(s) for s in app.scopes], + owner_id=app.ownerId, + is_active=app.isActive, + created_at=app.createdAt, + updated_at=app.updatedAt, + ) + + +class OAuthApplicationInfoWithSecret(OAuthApplicationInfo): + """OAuth application with client secret hash (for validation)""" + + client_secret_hash: str + client_secret_salt: str + + @staticmethod + def from_db(app: PrismaOAuthApplication): + return OAuthApplicationInfoWithSecret( + **OAuthApplicationInfo.from_db(app).model_dump(), + client_secret_hash=app.clientSecret, + client_secret_salt=app.clientSecretSalt, + ) + + def verify_secret(self, plaintext_secret: str) -> bool: + """Verify a plaintext client secret against the stored hash""" + # Use keysmith.verify_key() with stored salt + return keysmith.verify_key( + plaintext_secret, self.client_secret_hash, self.client_secret_salt + ) + + +class OAuthAuthorizationCodeInfo(BaseModel): + """Authorization code information""" + + id: str + code: str + created_at: datetime + expires_at: datetime + application_id: str + user_id: str + scopes: list[APIPermission] + redirect_uri: str + code_challenge: Optional[str] = None + code_challenge_method: Optional[str] = None + used_at: Optional[datetime] = None + + @property + def is_used(self) -> bool: + return self.used_at is not None + + @staticmethod + def from_db(code: PrismaOAuthAuthorizationCode): + return OAuthAuthorizationCodeInfo( + id=code.id, + code=code.code, + created_at=code.createdAt, + expires_at=code.expiresAt, + application_id=code.applicationId, + user_id=code.userId, + scopes=[APIPermission(s) for s in code.scopes], + redirect_uri=code.redirectUri, + code_challenge=code.codeChallenge, + code_challenge_method=code.codeChallengeMethod, + used_at=code.usedAt, + ) + + +class OAuthAccessTokenInfo(APIAuthorizationInfo): + """Access token information""" + + id: str + expires_at: datetime # type: ignore + application_id: str + + type: Literal["oauth"] = "oauth" # type: ignore + + @staticmethod + def from_db(token: PrismaOAuthAccessToken): + return OAuthAccessTokenInfo( + id=token.id, + user_id=token.userId, + scopes=[APIPermission(s) for s in token.scopes], + created_at=token.createdAt, + expires_at=token.expiresAt, + last_used_at=None, + revoked_at=token.revokedAt, + application_id=token.applicationId, + ) + + +class OAuthAccessToken(OAuthAccessTokenInfo): + """Access token with plaintext token included (sensitive)""" + + token: SecretStr = Field(description="Plaintext token (sensitive)") + + @staticmethod + def from_db(token: PrismaOAuthAccessToken, plaintext_token: str): # type: ignore + return OAuthAccessToken( + **OAuthAccessTokenInfo.from_db(token).model_dump(), + token=SecretStr(plaintext_token), + ) + + +class OAuthRefreshTokenInfo(BaseModel): + """Refresh token information""" + + id: str + user_id: str + scopes: list[APIPermission] + created_at: datetime + expires_at: datetime + application_id: str + revoked_at: Optional[datetime] = None + + @property + def is_revoked(self) -> bool: + return self.revoked_at is not None + + @staticmethod + def from_db(token: PrismaOAuthRefreshToken): + return OAuthRefreshTokenInfo( + id=token.id, + user_id=token.userId, + scopes=[APIPermission(s) for s in token.scopes], + created_at=token.createdAt, + expires_at=token.expiresAt, + application_id=token.applicationId, + revoked_at=token.revokedAt, + ) + + +class OAuthRefreshToken(OAuthRefreshTokenInfo): + """Refresh token with plaintext token included (sensitive)""" + + token: SecretStr = Field(description="Plaintext token (sensitive)") + + @staticmethod + def from_db(token: PrismaOAuthRefreshToken, plaintext_token: str): # type: ignore + return OAuthRefreshToken( + **OAuthRefreshTokenInfo.from_db(token).model_dump(), + token=SecretStr(plaintext_token), + ) + + +class TokenIntrospectionResult(BaseModel): + """Result of token introspection (RFC 7662)""" + + active: bool + scopes: Optional[list[str]] = None + client_id: Optional[str] = None + user_id: Optional[str] = None + exp: Optional[int] = None # Unix timestamp + token_type: Optional[Literal["access_token", "refresh_token"]] = None + + +# ============================================================================ +# OAuth Application Management +# ============================================================================ + + +async def get_oauth_application(client_id: str) -> Optional[OAuthApplicationInfo]: + """Get OAuth application by client ID (without secret)""" + app = await PrismaOAuthApplication.prisma().find_unique( + where={"clientId": client_id} + ) + if not app: + return None + return OAuthApplicationInfo.from_db(app) + + +async def get_oauth_application_with_secret( + client_id: str, +) -> Optional[OAuthApplicationInfoWithSecret]: + """Get OAuth application by client ID (with secret hash for validation)""" + app = await PrismaOAuthApplication.prisma().find_unique( + where={"clientId": client_id} + ) + if not app: + return None + return OAuthApplicationInfoWithSecret.from_db(app) + + +async def validate_client_credentials( + client_id: str, client_secret: str +) -> OAuthApplicationInfo: + """ + Validate client credentials and return application info. + + Raises: + InvalidClientError: If client_id or client_secret is invalid, or app is inactive + """ + app = await get_oauth_application_with_secret(client_id) + if not app: + raise InvalidClientError("Invalid client_id") + + if not app.is_active: + raise InvalidClientError("Application is not active") + + # Verify client secret + if not app.verify_secret(client_secret): + raise InvalidClientError("Invalid client_secret") + + # Return without secret hash + return OAuthApplicationInfo(**app.model_dump(exclude={"client_secret_hash"})) + + +def validate_redirect_uri(app: OAuthApplicationInfo, redirect_uri: str) -> bool: + """Validate that redirect URI is registered for the application""" + return redirect_uri in app.redirect_uris + + +def validate_scopes( + app: OAuthApplicationInfo, requested_scopes: list[APIPermission] +) -> bool: + """Validate that all requested scopes are allowed for the application""" + return all(scope in app.scopes for scope in requested_scopes) + + +# ============================================================================ +# Authorization Code Flow +# ============================================================================ + + +def _generate_authorization_code() -> str: + """Generate a cryptographically secure authorization code""" + # 32 bytes = 256 bits of entropy + return secrets.token_urlsafe(32) + + +async def create_authorization_code( + application_id: str, + user_id: str, + scopes: list[APIPermission], + redirect_uri: str, + code_challenge: Optional[str] = None, + code_challenge_method: Optional[Literal["S256", "plain"]] = None, +) -> OAuthAuthorizationCodeInfo: + """ + Create a new authorization code. + Expires in 10 minutes and can only be used once. + """ + code = _generate_authorization_code() + now = datetime.now(timezone.utc) + expires_at = now + AUTHORIZATION_CODE_TTL + + saved_code = await PrismaOAuthAuthorizationCode.prisma().create( + data={ + "id": str(uuid.uuid4()), + "code": code, + "expiresAt": expires_at, + "applicationId": application_id, + "userId": user_id, + "scopes": [s for s in scopes], + "redirectUri": redirect_uri, + "codeChallenge": code_challenge, + "codeChallengeMethod": code_challenge_method, + } + ) + + return OAuthAuthorizationCodeInfo.from_db(saved_code) + + +async def consume_authorization_code( + code: str, + application_id: str, + redirect_uri: str, + code_verifier: Optional[str] = None, +) -> tuple[str, list[APIPermission]]: + """ + Consume an authorization code and return (user_id, scopes). + + This marks the code as used and validates: + - Code exists and matches application + - Code is not expired + - Code has not been used + - Redirect URI matches + - PKCE code verifier matches (if code challenge was provided) + + Raises: + InvalidGrantError: If code is invalid, expired, used, or PKCE fails + """ + auth_code = await PrismaOAuthAuthorizationCode.prisma().find_unique( + where={"code": code} + ) + + if not auth_code: + raise InvalidGrantError("authorization code not found") + + # Validate application + if auth_code.applicationId != application_id: + raise InvalidGrantError( + "authorization code does not belong to this application" + ) + + # Check if already used + if auth_code.usedAt is not None: + raise InvalidGrantError( + f"authorization code already used at {auth_code.usedAt}" + ) + + # Check expiration + now = datetime.now(timezone.utc) + if auth_code.expiresAt < now: + raise InvalidGrantError("authorization code expired") + + # Validate redirect URI + if auth_code.redirectUri != redirect_uri: + raise InvalidGrantError("redirect_uri mismatch") + + # Validate PKCE if code challenge was provided + if auth_code.codeChallenge: + if not code_verifier: + raise InvalidGrantError("code_verifier required but not provided") + + if not _verify_pkce( + code_verifier, auth_code.codeChallenge, auth_code.codeChallengeMethod + ): + raise InvalidGrantError("PKCE verification failed") + + # Mark code as used + await PrismaOAuthAuthorizationCode.prisma().update( + where={"code": code}, + data={"usedAt": now}, + ) + + return auth_code.userId, [APIPermission(s) for s in auth_code.scopes] + + +def _verify_pkce( + code_verifier: str, code_challenge: str, code_challenge_method: Optional[str] +) -> bool: + """ + Verify PKCE code verifier against code challenge. + + Supports: + - S256: SHA256(code_verifier) == code_challenge + - plain: code_verifier == code_challenge + """ + if code_challenge_method == "S256": + # Hash the verifier with SHA256 and base64url encode + hashed = hashlib.sha256(code_verifier.encode("ascii")).digest() + computed_challenge = ( + secrets.token_urlsafe(len(hashed)).encode("ascii").decode("ascii") + ) + # For proper base64url encoding + import base64 + + computed_challenge = ( + base64.urlsafe_b64encode(hashed).decode("ascii").rstrip("=") + ) + return secrets.compare_digest(computed_challenge, code_challenge) + elif code_challenge_method == "plain" or code_challenge_method is None: + # Plain comparison + return secrets.compare_digest(code_verifier, code_challenge) + else: + logger.warning(f"Unsupported code challenge method: {code_challenge_method}") + return False + + +# ============================================================================ +# Access Token Management +# ============================================================================ + + +async def create_access_token( + application_id: str, user_id: str, scopes: list[APIPermission] +) -> OAuthAccessToken: + """ + Create a new access token. + Returns OAuthAccessToken (with plaintext token). + """ + plaintext_token = ACCESS_TOKEN_PREFIX + _generate_token() + token_hash = _hash_token(plaintext_token) + now = datetime.now(timezone.utc) + expires_at = now + ACCESS_TOKEN_TTL + + saved_token = await PrismaOAuthAccessToken.prisma().create( + data={ + "id": str(uuid.uuid4()), + "token": token_hash, # SHA256 hash for direct lookup + "expiresAt": expires_at, + "applicationId": application_id, + "userId": user_id, + "scopes": [s for s in scopes], + } + ) + + return OAuthAccessToken.from_db(saved_token, plaintext_token=plaintext_token) + + +async def validate_access_token( + token: str, +) -> tuple[OAuthAccessTokenInfo, OAuthApplicationInfo]: + """ + Validate an access token and return token info. + + Raises: + InvalidTokenError: If token is invalid, expired, or revoked + InvalidClientError: If the client application is not marked as active + """ + token_hash = _hash_token(token) + + # Direct lookup by hash + access_token = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": token_hash}, include={"Application": True} + ) + + if not access_token: + raise InvalidTokenError("access token not found") + + if not access_token.Application: # should be impossible + raise InvalidClientError("Client application not found") + + if not access_token.Application.isActive: + raise InvalidClientError("Client application is disabled") + + if access_token.revokedAt is not None: + raise InvalidTokenError("access token has been revoked") + + # Check expiration + now = datetime.now(timezone.utc) + if access_token.expiresAt < now: + raise InvalidTokenError("access token expired") + + return ( + OAuthAccessTokenInfo.from_db(access_token), + OAuthApplicationInfo.from_db(access_token.Application), + ) + + +async def revoke_access_token( + token: str, application_id: str +) -> OAuthAccessTokenInfo | None: + """ + Revoke an access token. + + Args: + token: The plaintext access token to revoke + application_id: The application ID making the revocation request. + Only tokens belonging to this application will be revoked. + + Returns: + OAuthAccessTokenInfo if token was found and revoked, None otherwise. + + Note: + Always performs exactly 2 DB queries regardless of outcome to prevent + timing side-channel attacks that could reveal token existence. + """ + try: + token_hash = _hash_token(token) + + # Use update_many to filter by both token and applicationId + updated_count = await PrismaOAuthAccessToken.prisma().update_many( + where={ + "token": token_hash, + "applicationId": application_id, + "revokedAt": None, + }, + data={"revokedAt": datetime.now(timezone.utc)}, + ) + + # Always perform second query to ensure constant time + result = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": token_hash} + ) + + # Only return result if we actually revoked something + if updated_count == 0: + return None + + return OAuthAccessTokenInfo.from_db(result) if result else None + except Exception as e: + logger.exception(f"Error revoking access token: {e}") + return None + + +# ============================================================================ +# Refresh Token Management +# ============================================================================ + + +async def create_refresh_token( + application_id: str, user_id: str, scopes: list[APIPermission] +) -> OAuthRefreshToken: + """ + Create a new refresh token. + Returns OAuthRefreshToken (with plaintext token). + """ + plaintext_token = REFRESH_TOKEN_PREFIX + _generate_token() + token_hash = _hash_token(plaintext_token) + now = datetime.now(timezone.utc) + expires_at = now + REFRESH_TOKEN_TTL + + saved_token = await PrismaOAuthRefreshToken.prisma().create( + data={ + "id": str(uuid.uuid4()), + "token": token_hash, # SHA256 hash for direct lookup + "expiresAt": expires_at, + "applicationId": application_id, + "userId": user_id, + "scopes": [s for s in scopes], + } + ) + + return OAuthRefreshToken.from_db(saved_token, plaintext_token=plaintext_token) + + +async def refresh_tokens( + refresh_token: str, application_id: str +) -> tuple[OAuthAccessToken, OAuthRefreshToken]: + """ + Use a refresh token to create new access and refresh tokens. + Returns (new_access_token, new_refresh_token) both with plaintext tokens included. + + Raises: + InvalidGrantError: If refresh token is invalid, expired, or revoked + """ + token_hash = _hash_token(refresh_token) + + # Direct lookup by hash + rt = await PrismaOAuthRefreshToken.prisma().find_unique(where={"token": token_hash}) + + if not rt: + raise InvalidGrantError("refresh token not found") + + # NOTE: no need to check Application.isActive, this is checked by the token endpoint + + if rt.revokedAt is not None: + raise InvalidGrantError("refresh token has been revoked") + + # Validate application + if rt.applicationId != application_id: + raise InvalidGrantError("refresh token does not belong to this application") + + # Check expiration + now = datetime.now(timezone.utc) + if rt.expiresAt < now: + raise InvalidGrantError("refresh token expired") + + # Revoke old refresh token + await PrismaOAuthRefreshToken.prisma().update( + where={"token": token_hash}, + data={"revokedAt": now}, + ) + + # Create new access and refresh tokens with same scopes + scopes = [APIPermission(s) for s in rt.scopes] + new_access_token = await create_access_token( + rt.applicationId, + rt.userId, + scopes, + ) + new_refresh_token = await create_refresh_token( + rt.applicationId, + rt.userId, + scopes, + ) + + return new_access_token, new_refresh_token + + +async def revoke_refresh_token( + token: str, application_id: str +) -> OAuthRefreshTokenInfo | None: + """ + Revoke a refresh token. + + Args: + token: The plaintext refresh token to revoke + application_id: The application ID making the revocation request. + Only tokens belonging to this application will be revoked. + + Returns: + OAuthRefreshTokenInfo if token was found and revoked, None otherwise. + + Note: + Always performs exactly 2 DB queries regardless of outcome to prevent + timing side-channel attacks that could reveal token existence. + """ + try: + token_hash = _hash_token(token) + + # Use update_many to filter by both token and applicationId + updated_count = await PrismaOAuthRefreshToken.prisma().update_many( + where={ + "token": token_hash, + "applicationId": application_id, + "revokedAt": None, + }, + data={"revokedAt": datetime.now(timezone.utc)}, + ) + + # Always perform second query to ensure constant time + result = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": token_hash} + ) + + # Only return result if we actually revoked something + if updated_count == 0: + return None + + return OAuthRefreshTokenInfo.from_db(result) if result else None + except Exception as e: + logger.exception(f"Error revoking refresh token: {e}") + return None + + +# ============================================================================ +# Token Introspection +# ============================================================================ + + +async def introspect_token( + token: str, + token_type_hint: Optional[Literal["access_token", "refresh_token"]] = None, +) -> TokenIntrospectionResult: + """ + Introspect a token and return its metadata (RFC 7662). + + Returns TokenIntrospectionResult with active=True and metadata if valid, + or active=False if the token is invalid/expired/revoked. + """ + # Try as access token first (or if hint says "access_token") + if token_type_hint != "refresh_token": + try: + token_info, app = await validate_access_token(token) + return TokenIntrospectionResult( + active=True, + scopes=list(s.value for s in token_info.scopes), + client_id=app.client_id if app else None, + user_id=token_info.user_id, + exp=int(token_info.expires_at.timestamp()), + token_type="access_token", + ) + except InvalidTokenError: + pass # Try as refresh token + + # Try as refresh token + token_hash = _hash_token(token) + refresh_token = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": token_hash} + ) + + if refresh_token and refresh_token.revokedAt is None: + # Check if valid (not expired) + now = datetime.now(timezone.utc) + if refresh_token.expiresAt > now: + app = await get_oauth_application_by_id(refresh_token.applicationId) + return TokenIntrospectionResult( + active=True, + scopes=list(s for s in refresh_token.scopes), + client_id=app.client_id if app else None, + user_id=refresh_token.userId, + exp=int(refresh_token.expiresAt.timestamp()), + token_type="refresh_token", + ) + + # Token not found or inactive + return TokenIntrospectionResult(active=False) + + +async def get_oauth_application_by_id(app_id: str) -> Optional[OAuthApplicationInfo]: + """Get OAuth application by ID""" + app = await PrismaOAuthApplication.prisma().find_unique(where={"id": app_id}) + if not app: + return None + return OAuthApplicationInfo.from_db(app) + + +async def list_user_oauth_applications(user_id: str) -> list[OAuthApplicationInfo]: + """Get all OAuth applications owned by a user""" + apps = await PrismaOAuthApplication.prisma().find_many( + where={"ownerId": user_id}, + order={"createdAt": "desc"}, + ) + return [OAuthApplicationInfo.from_db(app) for app in apps] + + +async def update_oauth_application( + app_id: str, + *, + owner_id: str, + is_active: Optional[bool] = None, + logo_url: Optional[str] = None, +) -> Optional[OAuthApplicationInfo]: + """ + Update OAuth application active status. + Only the owner can update their app's status. + + Returns the updated app info, or None if app not found or not owned by user. + """ + # First verify ownership + app = await PrismaOAuthApplication.prisma().find_first( + where={"id": app_id, "ownerId": owner_id} + ) + if not app: + return None + + patch: OAuthApplicationUpdateInput = {} + if is_active is not None: + patch["isActive"] = is_active + if logo_url: + patch["logoUrl"] = logo_url + if not patch: + return OAuthApplicationInfo.from_db(app) # return unchanged + + updated_app = await PrismaOAuthApplication.prisma().update( + where={"id": app_id}, + data=patch, + ) + return OAuthApplicationInfo.from_db(updated_app) if updated_app else None + + +# ============================================================================ +# Token Cleanup +# ============================================================================ + + +async def cleanup_expired_oauth_tokens() -> dict[str, int]: + """ + Delete expired OAuth tokens from the database. + + This removes: + - Expired authorization codes (10 min TTL) + - Expired access tokens (1 hour TTL) + - Expired refresh tokens (30 day TTL) + + Returns a dict with counts of deleted tokens by type. + """ + now = datetime.now(timezone.utc) + + # Delete expired authorization codes + codes_result = await PrismaOAuthAuthorizationCode.prisma().delete_many( + where={"expiresAt": {"lt": now}} + ) + + # Delete expired access tokens + access_result = await PrismaOAuthAccessToken.prisma().delete_many( + where={"expiresAt": {"lt": now}} + ) + + # Delete expired refresh tokens + refresh_result = await PrismaOAuthRefreshToken.prisma().delete_many( + where={"expiresAt": {"lt": now}} + ) + + deleted = { + "authorization_codes": codes_result, + "access_tokens": access_result, + "refresh_tokens": refresh_result, + } + + total = sum(deleted.values()) + if total > 0: + logger.info(f"Cleaned up {total} expired OAuth tokens: {deleted}") + + return deleted diff --git a/autogpt_platform/backend/backend/executor/scheduler.py b/autogpt_platform/backend/backend/executor/scheduler.py index 6a0bb593c6..06c50bf82e 100644 --- a/autogpt_platform/backend/backend/executor/scheduler.py +++ b/autogpt_platform/backend/backend/executor/scheduler.py @@ -23,6 +23,7 @@ from dotenv import load_dotenv from pydantic import BaseModel, Field, ValidationError from sqlalchemy import MetaData, create_engine +from backend.data.auth.oauth import cleanup_expired_oauth_tokens from backend.data.block import BlockInput from backend.data.execution import GraphExecutionWithNodes from backend.data.model import CredentialsMetaInput @@ -242,6 +243,12 @@ def cleanup_expired_files(): run_async(cleanup_expired_files_async()) +def cleanup_oauth_tokens(): + """Clean up expired OAuth tokens from the database.""" + # Wait for completion + run_async(cleanup_expired_oauth_tokens()) + + def execution_accuracy_alerts(): """Check execution accuracy and send alerts if drops are detected.""" return report_execution_accuracy_alerts() @@ -446,6 +453,17 @@ class Scheduler(AppService): jobstore=Jobstores.EXECUTION.value, ) + # OAuth Token Cleanup - configurable interval + self.scheduler.add_job( + cleanup_oauth_tokens, + id="cleanup_oauth_tokens", + trigger="interval", + replace_existing=True, + seconds=config.oauth_token_cleanup_interval_hours + * 3600, # Convert hours to seconds + jobstore=Jobstores.EXECUTION.value, + ) + # Execution Accuracy Monitoring - configurable interval self.scheduler.add_job( execution_accuracy_alerts, @@ -604,6 +622,11 @@ class Scheduler(AppService): """Manually trigger cleanup of expired cloud storage files.""" return cleanup_expired_files() + @expose + def execute_cleanup_oauth_tokens(self): + """Manually trigger cleanup of expired OAuth tokens.""" + return cleanup_oauth_tokens() + @expose def execute_report_execution_accuracy_alerts(self): """Manually trigger execution accuracy alert checking.""" diff --git a/autogpt_platform/backend/backend/server/external/middleware.py b/autogpt_platform/backend/backend/server/external/middleware.py index af84c92687..0c278e1715 100644 --- a/autogpt_platform/backend/backend/server/external/middleware.py +++ b/autogpt_platform/backend/backend/server/external/middleware.py @@ -1,36 +1,107 @@ -from fastapi import HTTPException, Security -from fastapi.security import APIKeyHeader +from fastapi import HTTPException, Security, status +from fastapi.security import APIKeyHeader, HTTPAuthorizationCredentials, HTTPBearer from prisma.enums import APIKeyPermission -from backend.data.api_key import APIKeyInfo, has_permission, validate_api_key +from backend.data.auth.api_key import APIKeyInfo, validate_api_key +from backend.data.auth.base import APIAuthorizationInfo +from backend.data.auth.oauth import ( + InvalidClientError, + InvalidTokenError, + OAuthAccessTokenInfo, + validate_access_token, +) api_key_header = APIKeyHeader(name="X-API-Key", auto_error=False) +bearer_auth = HTTPBearer(auto_error=False) async def require_api_key(api_key: str | None = Security(api_key_header)) -> APIKeyInfo: - """Base middleware for API key authentication""" + """Middleware for API key authentication only""" if api_key is None: - raise HTTPException(status_code=401, detail="Missing API key") + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, detail="Missing API key" + ) api_key_obj = await validate_api_key(api_key) if not api_key_obj: - raise HTTPException(status_code=401, detail="Invalid API key") + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API key" + ) return api_key_obj +async def require_access_token( + bearer: HTTPAuthorizationCredentials | None = Security(bearer_auth), +) -> OAuthAccessTokenInfo: + """Middleware for OAuth access token authentication only""" + if bearer is None: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Missing Authorization header", + ) + + try: + token_info, _ = await validate_access_token(bearer.credentials) + except (InvalidClientError, InvalidTokenError) as e: + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=str(e)) + + return token_info + + +async def require_auth( + api_key: str | None = Security(api_key_header), + bearer: HTTPAuthorizationCredentials | None = Security(bearer_auth), +) -> APIAuthorizationInfo: + """ + Unified authentication middleware supporting both API keys and OAuth tokens. + + Supports two authentication methods, which are checked in order: + 1. X-API-Key header (existing API key authentication) + 2. Authorization: Bearer header (OAuth access token) + + Returns: + APIAuthorizationInfo: base class of both APIKeyInfo and OAuthAccessTokenInfo. + """ + # Try API key first + if api_key is not None: + api_key_info = await validate_api_key(api_key) + if api_key_info: + return api_key_info + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API key" + ) + + # Try OAuth bearer token + if bearer is not None: + try: + token_info, _ = await validate_access_token(bearer.credentials) + return token_info + except (InvalidClientError, InvalidTokenError) as e: + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=str(e)) + + # No credentials provided + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Missing authentication. Provide API key or access token.", + ) + + def require_permission(permission: APIKeyPermission): - """Dependency function for checking specific permissions""" + """ + Dependency function for checking specific permissions + (works with API keys and OAuth tokens) + """ async def check_permission( - api_key: APIKeyInfo = Security(require_api_key), - ) -> APIKeyInfo: - if not has_permission(api_key, permission): + auth: APIAuthorizationInfo = Security(require_auth), + ) -> APIAuthorizationInfo: + if permission not in auth.scopes: raise HTTPException( - status_code=403, - detail=f"API key lacks the required permission '{permission}'", + status_code=status.HTTP_403_FORBIDDEN, + detail=f"Missing required permission: {permission.value}", ) - return api_key + return auth return check_permission diff --git a/autogpt_platform/backend/backend/server/external/routes/integrations.py b/autogpt_platform/backend/backend/server/external/routes/integrations.py index d64ca5615f..f9a8875ada 100644 --- a/autogpt_platform/backend/backend/server/external/routes/integrations.py +++ b/autogpt_platform/backend/backend/server/external/routes/integrations.py @@ -16,7 +16,7 @@ from fastapi import APIRouter, Body, HTTPException, Path, Security, status from prisma.enums import APIKeyPermission from pydantic import BaseModel, Field, SecretStr -from backend.data.api_key import APIKeyInfo +from backend.data.auth.base import APIAuthorizationInfo from backend.data.model import ( APIKeyCredentials, Credentials, @@ -255,7 +255,7 @@ def _get_oauth_handler_for_external( @integrations_router.get("/providers", response_model=list[ProviderInfo]) async def list_providers( - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.READ_INTEGRATIONS) ), ) -> list[ProviderInfo]: @@ -319,7 +319,7 @@ async def list_providers( async def initiate_oauth( provider: Annotated[str, Path(title="The OAuth provider")], request: OAuthInitiateRequest, - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.MANAGE_INTEGRATIONS) ), ) -> OAuthInitiateResponse: @@ -337,7 +337,10 @@ async def initiate_oauth( if not validate_callback_url(request.callback_url): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, - detail=f"Callback URL origin is not allowed. Allowed origins: {settings.config.external_oauth_callback_origins}", + detail=( + f"Callback URL origin is not allowed. " + f"Allowed origins: {settings.config.external_oauth_callback_origins}", + ), ) # Validate provider @@ -359,13 +362,15 @@ async def initiate_oauth( ) # Store state token with external flow metadata + # Note: initiated_by_api_key_id is only available for API key auth, not OAuth + api_key_id = getattr(auth, "id", None) if auth.type == "api_key" else None state_token, code_challenge = await creds_manager.store.store_state_token( - user_id=api_key.user_id, + user_id=auth.user_id, provider=provider if isinstance(provider_name, str) else provider_name.value, scopes=request.scopes, callback_url=request.callback_url, state_metadata=request.state_metadata, - initiated_by_api_key_id=api_key.id, + initiated_by_api_key_id=api_key_id, ) # Build login URL @@ -393,7 +398,7 @@ async def initiate_oauth( async def complete_oauth( provider: Annotated[str, Path(title="The OAuth provider")], request: OAuthCompleteRequest, - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.MANAGE_INTEGRATIONS) ), ) -> OAuthCompleteResponse: @@ -406,7 +411,7 @@ async def complete_oauth( """ # Verify state token valid_state = await creds_manager.store.verify_state_token( - api_key.user_id, request.state_token, provider + auth.user_id, request.state_token, provider ) if not valid_state: @@ -453,7 +458,7 @@ async def complete_oauth( ) # Store credentials - await creds_manager.create(api_key.user_id, credentials) + await creds_manager.create(auth.user_id, credentials) logger.info(f"Successfully completed external OAuth for provider {provider}") @@ -470,7 +475,7 @@ async def complete_oauth( @integrations_router.get("/credentials", response_model=list[CredentialSummary]) async def list_credentials( - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.READ_INTEGRATIONS) ), ) -> list[CredentialSummary]: @@ -479,7 +484,7 @@ async def list_credentials( Returns metadata about each credential without exposing sensitive tokens. """ - credentials = await creds_manager.store.get_all_creds(api_key.user_id) + credentials = await creds_manager.store.get_all_creds(auth.user_id) return [ CredentialSummary( id=cred.id, @@ -499,7 +504,7 @@ async def list_credentials( ) async def list_credentials_by_provider( provider: Annotated[str, Path(title="The provider to list credentials for")], - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.READ_INTEGRATIONS) ), ) -> list[CredentialSummary]: @@ -507,7 +512,7 @@ async def list_credentials_by_provider( List credentials for a specific provider. """ credentials = await creds_manager.store.get_creds_by_provider( - api_key.user_id, provider + auth.user_id, provider ) return [ CredentialSummary( @@ -536,7 +541,7 @@ async def create_credential( CreateUserPasswordCredentialRequest, CreateHostScopedCredentialRequest, ] = Body(..., discriminator="type"), - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.MANAGE_INTEGRATIONS) ), ) -> CreateCredentialResponse: @@ -591,7 +596,7 @@ async def create_credential( # Store credentials try: - await creds_manager.create(api_key.user_id, credentials) + await creds_manager.create(auth.user_id, credentials) except Exception as e: logger.error(f"Failed to store credentials: {e}") raise HTTPException( @@ -623,7 +628,7 @@ class DeleteCredentialResponse(BaseModel): async def delete_credential( provider: Annotated[str, Path(title="The provider")], cred_id: Annotated[str, Path(title="The credential ID to delete")], - api_key: APIKeyInfo = Security( + auth: APIAuthorizationInfo = Security( require_permission(APIKeyPermission.DELETE_INTEGRATIONS) ), ) -> DeleteCredentialResponse: @@ -634,7 +639,7 @@ async def delete_credential( use the main API's delete endpoint which handles webhook cleanup and token revocation. """ - creds = await creds_manager.store.get_creds_by_id(api_key.user_id, cred_id) + creds = await creds_manager.store.get_creds_by_id(auth.user_id, cred_id) if not creds: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="Credentials not found" @@ -645,6 +650,6 @@ async def delete_credential( detail="Credentials do not match the specified provider", ) - await creds_manager.delete(api_key.user_id, cred_id) + await creds_manager.delete(auth.user_id, cred_id) return DeleteCredentialResponse(deleted=True, credentials_id=cred_id) diff --git a/autogpt_platform/backend/backend/server/external/routes/tools.py b/autogpt_platform/backend/backend/server/external/routes/tools.py index 3a821c5be8..8e3f4cbfdb 100644 --- a/autogpt_platform/backend/backend/server/external/routes/tools.py +++ b/autogpt_platform/backend/backend/server/external/routes/tools.py @@ -14,7 +14,7 @@ from fastapi import APIRouter, Security from prisma.enums import APIKeyPermission from pydantic import BaseModel, Field -from backend.data.api_key import APIKeyInfo +from backend.data.auth.base import APIAuthorizationInfo from backend.server.external.middleware import require_permission from backend.server.v2.chat.model import ChatSession from backend.server.v2.chat.tools import find_agent_tool, run_agent_tool @@ -24,9 +24,9 @@ logger = logging.getLogger(__name__) tools_router = APIRouter(prefix="/tools", tags=["tools"]) -# Note: We use Security() as a function parameter dependency (api_key: APIKeyInfo = Security(...)) +# Note: We use Security() as a function parameter dependency (auth: APIAuthorizationInfo = Security(...)) # rather than in the decorator's dependencies= list. This avoids duplicate permission checks -# while still enforcing auth AND giving us access to the api_key for extracting user_id. +# while still enforcing auth AND giving us access to auth for extracting user_id. # Request models @@ -80,7 +80,9 @@ def _create_ephemeral_session(user_id: str | None) -> ChatSession: ) async def find_agent( request: FindAgentRequest, - api_key: APIKeyInfo = Security(require_permission(APIKeyPermission.USE_TOOLS)), + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.USE_TOOLS) + ), ) -> dict[str, Any]: """ Search for agents in the marketplace based on capabilities and user needs. @@ -91,9 +93,9 @@ async def find_agent( Returns: List of matching agents or no results response """ - session = _create_ephemeral_session(api_key.user_id) + session = _create_ephemeral_session(auth.user_id) result = await find_agent_tool._execute( - user_id=api_key.user_id, + user_id=auth.user_id, session=session, query=request.query, ) @@ -105,7 +107,9 @@ async def find_agent( ) async def run_agent( request: RunAgentRequest, - api_key: APIKeyInfo = Security(require_permission(APIKeyPermission.USE_TOOLS)), + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.USE_TOOLS) + ), ) -> dict[str, Any]: """ Run or schedule an agent from the marketplace. @@ -129,9 +133,9 @@ async def run_agent( - execution_started: If agent was run or scheduled successfully - error: If something went wrong """ - session = _create_ephemeral_session(api_key.user_id) + session = _create_ephemeral_session(auth.user_id) result = await run_agent_tool._execute( - user_id=api_key.user_id, + user_id=auth.user_id, session=session, username_agent_slug=request.username_agent_slug, inputs=request.inputs, diff --git a/autogpt_platform/backend/backend/server/external/routes/v1.py b/autogpt_platform/backend/backend/server/external/routes/v1.py index 1b2840acf9..f83673465a 100644 --- a/autogpt_platform/backend/backend/server/external/routes/v1.py +++ b/autogpt_platform/backend/backend/server/external/routes/v1.py @@ -5,6 +5,7 @@ from typing import Annotated, Any, Literal, Optional, Sequence from fastapi import APIRouter, Body, HTTPException, Security from prisma.enums import AgentExecutionStatus, APIKeyPermission +from pydantic import BaseModel, Field from typing_extensions import TypedDict import backend.data.block @@ -12,7 +13,8 @@ import backend.server.v2.store.cache as store_cache import backend.server.v2.store.model as store_model from backend.data import execution as execution_db from backend.data import graph as graph_db -from backend.data.api_key import APIKeyInfo +from backend.data import user as user_db +from backend.data.auth.base import APIAuthorizationInfo from backend.data.block import BlockInput, CompletedBlockOutput from backend.executor.utils import add_graph_execution from backend.server.external.middleware import require_permission @@ -24,27 +26,33 @@ logger = logging.getLogger(__name__) v1_router = APIRouter() -class NodeOutput(TypedDict): - key: str - value: Any +class UserInfoResponse(BaseModel): + id: str + name: Optional[str] + email: str + timezone: str = Field( + description="The user's last known timezone (e.g. 'Europe/Amsterdam'), " + "or 'not-set' if not set" + ) -class ExecutionNode(TypedDict): - node_id: str - input: Any - output: dict[str, Any] +@v1_router.get( + path="/me", + tags=["user", "meta"], +) +async def get_user_info( + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.IDENTITY) + ), +) -> UserInfoResponse: + user = await user_db.get_user_by_id(auth.user_id) - -class ExecutionNodeOutput(TypedDict): - node_id: str - outputs: list[NodeOutput] - - -class GraphExecutionResult(TypedDict): - execution_id: str - status: str - nodes: list[ExecutionNode] - output: Optional[list[dict[str, str]]] + return UserInfoResponse( + id=user.id, + name=user.name, + email=user.email, + timezone=user.timezone, + ) @v1_router.get( @@ -65,7 +73,9 @@ async def get_graph_blocks() -> Sequence[dict[Any, Any]]: async def execute_graph_block( block_id: str, data: BlockInput, - api_key: APIKeyInfo = Security(require_permission(APIKeyPermission.EXECUTE_BLOCK)), + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.EXECUTE_BLOCK) + ), ) -> CompletedBlockOutput: obj = backend.data.block.get_block(block_id) if not obj: @@ -85,12 +95,14 @@ async def execute_graph( graph_id: str, graph_version: int, node_input: Annotated[dict[str, Any], Body(..., embed=True, default_factory=dict)], - api_key: APIKeyInfo = Security(require_permission(APIKeyPermission.EXECUTE_GRAPH)), + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.EXECUTE_GRAPH) + ), ) -> dict[str, Any]: try: graph_exec = await add_graph_execution( graph_id=graph_id, - user_id=api_key.user_id, + user_id=auth.user_id, inputs=node_input, graph_version=graph_version, ) @@ -100,6 +112,19 @@ async def execute_graph( raise HTTPException(status_code=400, detail=msg) +class ExecutionNode(TypedDict): + node_id: str + input: Any + output: dict[str, Any] + + +class GraphExecutionResult(TypedDict): + execution_id: str + status: str + nodes: list[ExecutionNode] + output: Optional[list[dict[str, str]]] + + @v1_router.get( path="/graphs/{graph_id}/executions/{graph_exec_id}/results", tags=["graphs"], @@ -107,10 +132,12 @@ async def execute_graph( async def get_graph_execution_results( graph_id: str, graph_exec_id: str, - api_key: APIKeyInfo = Security(require_permission(APIKeyPermission.READ_GRAPH)), + auth: APIAuthorizationInfo = Security( + require_permission(APIKeyPermission.READ_GRAPH) + ), ) -> GraphExecutionResult: graph_exec = await execution_db.get_graph_execution( - user_id=api_key.user_id, + user_id=auth.user_id, execution_id=graph_exec_id, include_node_executions=True, ) @@ -122,7 +149,7 @@ async def get_graph_execution_results( if not await graph_db.get_graph( graph_id=graph_exec.graph_id, version=graph_exec.graph_version, - user_id=api_key.user_id, + user_id=auth.user_id, ): raise HTTPException(status_code=404, detail=f"Graph #{graph_id} not found.") diff --git a/autogpt_platform/backend/backend/server/model.py b/autogpt_platform/backend/backend/server/model.py index 1d7b79cd7c..5e13e20450 100644 --- a/autogpt_platform/backend/backend/server/model.py +++ b/autogpt_platform/backend/backend/server/model.py @@ -4,7 +4,7 @@ from typing import Any, Literal, Optional import pydantic from prisma.enums import OnboardingStep -from backend.data.api_key import APIKeyInfo, APIKeyPermission +from backend.data.auth.api_key import APIKeyInfo, APIKeyPermission from backend.data.graph import Graph from backend.util.timezone_name import TimeZoneName diff --git a/autogpt_platform/backend/backend/server/rest_api.py b/autogpt_platform/backend/backend/server/rest_api.py index 556903571c..5db2b18c27 100644 --- a/autogpt_platform/backend/backend/server/rest_api.py +++ b/autogpt_platform/backend/backend/server/rest_api.py @@ -21,6 +21,7 @@ import backend.data.db import backend.data.graph import backend.data.user import backend.integrations.webhooks.utils +import backend.server.routers.oauth import backend.server.routers.postmark.postmark import backend.server.routers.v1 import backend.server.v2.admin.credit_admin_routes @@ -297,6 +298,11 @@ app.include_router( tags=["v2", "chat"], prefix="/api/chat", ) +app.include_router( + backend.server.routers.oauth.router, + tags=["oauth"], + prefix="/api/oauth", +) app.mount("/external-api", external_app) diff --git a/autogpt_platform/backend/backend/server/routers/oauth.py b/autogpt_platform/backend/backend/server/routers/oauth.py new file mode 100644 index 0000000000..55f591427a --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/oauth.py @@ -0,0 +1,833 @@ +""" +OAuth 2.0 Provider Endpoints + +Implements OAuth 2.0 Authorization Code flow with PKCE support. + +Flow: +1. User clicks "Login with AutoGPT" in 3rd party app +2. App redirects user to /oauth/authorize with client_id, redirect_uri, scope, state +3. User sees consent screen (if not already logged in, redirects to login first) +4. User approves → backend creates authorization code +5. User redirected back to app with code +6. App exchanges code for access/refresh tokens at /oauth/token +7. App uses access token to call external API endpoints +""" + +import io +import logging +import os +import uuid +from datetime import datetime +from typing import Literal, Optional +from urllib.parse import urlencode + +from autogpt_libs.auth import get_user_id +from fastapi import APIRouter, Body, HTTPException, Security, UploadFile, status +from gcloud.aio import storage as async_storage +from PIL import Image +from prisma.enums import APIKeyPermission +from pydantic import BaseModel, Field + +from backend.data.auth.oauth import ( + InvalidClientError, + InvalidGrantError, + OAuthApplicationInfo, + TokenIntrospectionResult, + consume_authorization_code, + create_access_token, + create_authorization_code, + create_refresh_token, + get_oauth_application, + get_oauth_application_by_id, + introspect_token, + list_user_oauth_applications, + refresh_tokens, + revoke_access_token, + revoke_refresh_token, + update_oauth_application, + validate_client_credentials, + validate_redirect_uri, + validate_scopes, +) +from backend.util.settings import Settings +from backend.util.virus_scanner import scan_content_safe + +settings = Settings() +logger = logging.getLogger(__name__) + +router = APIRouter() + + +# ============================================================================ +# Request/Response Models +# ============================================================================ + + +class TokenResponse(BaseModel): + """OAuth 2.0 token response""" + + token_type: Literal["Bearer"] = "Bearer" + access_token: str + access_token_expires_at: datetime + refresh_token: str + refresh_token_expires_at: datetime + scopes: list[str] + + +class ErrorResponse(BaseModel): + """OAuth 2.0 error response""" + + error: str + error_description: Optional[str] = None + + +class OAuthApplicationPublicInfo(BaseModel): + """Public information about an OAuth application (for consent screen)""" + + name: str + description: Optional[str] = None + logo_url: Optional[str] = None + scopes: list[str] + + +# ============================================================================ +# Application Info Endpoint +# ============================================================================ + + +@router.get( + "/app/{client_id}", + responses={ + 404: {"description": "Application not found or disabled"}, + }, +) +async def get_oauth_app_info( + client_id: str, user_id: str = Security(get_user_id) +) -> OAuthApplicationPublicInfo: + """ + Get public information about an OAuth application. + + This endpoint is used by the consent screen to display application details + to the user before they authorize access. + + Returns: + - name: Application name + - description: Application description (if provided) + - scopes: List of scopes the application is allowed to request + """ + app = await get_oauth_application(client_id) + if not app or not app.is_active: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Application not found", + ) + + return OAuthApplicationPublicInfo( + name=app.name, + description=app.description, + logo_url=app.logo_url, + scopes=[s.value for s in app.scopes], + ) + + +# ============================================================================ +# Authorization Endpoint +# ============================================================================ + + +class AuthorizeRequest(BaseModel): + """OAuth 2.0 authorization request""" + + client_id: str = Field(description="Client identifier") + redirect_uri: str = Field(description="Redirect URI") + scopes: list[str] = Field(description="List of scopes") + state: str = Field(description="Anti-CSRF token from client") + response_type: str = Field( + default="code", description="Must be 'code' for authorization code flow" + ) + code_challenge: str = Field(description="PKCE code challenge (required)") + code_challenge_method: Literal["S256", "plain"] = Field( + default="S256", description="PKCE code challenge method (S256 recommended)" + ) + + +class AuthorizeResponse(BaseModel): + """OAuth 2.0 authorization response with redirect URL""" + + redirect_url: str = Field(description="URL to redirect the user to") + + +@router.post("/authorize") +async def authorize( + request: AuthorizeRequest = Body(), + user_id: str = Security(get_user_id), +) -> AuthorizeResponse: + """ + OAuth 2.0 Authorization Endpoint + + User must be logged in (authenticated with Supabase JWT). + This endpoint creates an authorization code and returns a redirect URL. + + PKCE (Proof Key for Code Exchange) is REQUIRED for all authorization requests. + + The frontend consent screen should call this endpoint after the user approves, + then redirect the user to the returned `redirect_url`. + + Request Body: + - client_id: The OAuth application's client ID + - redirect_uri: Where to redirect after authorization (must match registered URI) + - scopes: List of permissions (e.g., "EXECUTE_GRAPH READ_GRAPH") + - state: Anti-CSRF token provided by client (will be returned in redirect) + - response_type: Must be "code" (for authorization code flow) + - code_challenge: PKCE code challenge (required) + - code_challenge_method: "S256" (recommended) or "plain" + + Returns: + - redirect_url: The URL to redirect the user to (includes authorization code) + + Error cases return a redirect_url with error parameters, or raise HTTPException + for critical errors (like invalid redirect_uri). + """ + try: + # Validate response_type + if request.response_type != "code": + return _error_redirect_url( + request.redirect_uri, + request.state, + "unsupported_response_type", + "Only 'code' response type is supported", + ) + + # Get application + app = await get_oauth_application(request.client_id) + if not app: + return _error_redirect_url( + request.redirect_uri, + request.state, + "invalid_client", + "Unknown client_id", + ) + + if not app.is_active: + return _error_redirect_url( + request.redirect_uri, + request.state, + "invalid_client", + "Application is not active", + ) + + # Validate redirect URI + if not validate_redirect_uri(app, request.redirect_uri): + # For invalid redirect_uri, we can't redirect safely + # Must return error instead + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=( + "Invalid redirect_uri. " + f"Must be one of: {', '.join(app.redirect_uris)}" + ), + ) + + # Parse and validate scopes + try: + requested_scopes = [APIKeyPermission(s.strip()) for s in request.scopes] + except ValueError as e: + return _error_redirect_url( + request.redirect_uri, + request.state, + "invalid_scope", + f"Invalid scope: {e}", + ) + + if not requested_scopes: + return _error_redirect_url( + request.redirect_uri, + request.state, + "invalid_scope", + "At least one scope is required", + ) + + if not validate_scopes(app, requested_scopes): + return _error_redirect_url( + request.redirect_uri, + request.state, + "invalid_scope", + "Application is not authorized for all requested scopes. " + f"Allowed: {', '.join(s.value for s in app.scopes)}", + ) + + # Create authorization code + auth_code = await create_authorization_code( + application_id=app.id, + user_id=user_id, + scopes=requested_scopes, + redirect_uri=request.redirect_uri, + code_challenge=request.code_challenge, + code_challenge_method=request.code_challenge_method, + ) + + # Build redirect URL with authorization code + params = { + "code": auth_code.code, + "state": request.state, + } + redirect_url = f"{request.redirect_uri}?{urlencode(params)}" + + logger.info( + f"Authorization code issued for user #{user_id} " + f"and app {app.name} (#{app.id})" + ) + + return AuthorizeResponse(redirect_url=redirect_url) + + except HTTPException: + raise + except Exception as e: + logger.error(f"Error in authorization endpoint: {e}", exc_info=True) + return _error_redirect_url( + request.redirect_uri, + request.state, + "server_error", + "An unexpected error occurred", + ) + + +def _error_redirect_url( + redirect_uri: str, + state: str, + error: str, + error_description: Optional[str] = None, +) -> AuthorizeResponse: + """Helper to build redirect URL with OAuth error parameters""" + params = { + "error": error, + "state": state, + } + if error_description: + params["error_description"] = error_description + + redirect_url = f"{redirect_uri}?{urlencode(params)}" + return AuthorizeResponse(redirect_url=redirect_url) + + +# ============================================================================ +# Token Endpoint +# ============================================================================ + + +class TokenRequestByCode(BaseModel): + grant_type: Literal["authorization_code"] + code: str = Field(description="Authorization code") + redirect_uri: str = Field( + description="Redirect URI (must match authorization request)" + ) + client_id: str + client_secret: str + code_verifier: str = Field(description="PKCE code verifier") + + +class TokenRequestByRefreshToken(BaseModel): + grant_type: Literal["refresh_token"] + refresh_token: str + client_id: str + client_secret: str + + +@router.post("/token") +async def token( + request: TokenRequestByCode | TokenRequestByRefreshToken = Body(), +) -> TokenResponse: + """ + OAuth 2.0 Token Endpoint + + Exchanges authorization code or refresh token for access token. + + Grant Types: + 1. authorization_code: Exchange authorization code for tokens + - Required: grant_type, code, redirect_uri, client_id, client_secret + - Optional: code_verifier (required if PKCE was used) + + 2. refresh_token: Exchange refresh token for new access token + - Required: grant_type, refresh_token, client_id, client_secret + + Returns: + - access_token: Bearer token for API access (1 hour TTL) + - token_type: "Bearer" + - expires_in: Seconds until access token expires + - refresh_token: Token for refreshing access (30 days TTL) + - scopes: List of scopes + """ + # Validate client credentials + try: + app = await validate_client_credentials( + request.client_id, request.client_secret + ) + except InvalidClientError as e: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=str(e), + ) + + # Handle authorization_code grant + if request.grant_type == "authorization_code": + # Consume authorization code + try: + user_id, scopes = await consume_authorization_code( + code=request.code, + application_id=app.id, + redirect_uri=request.redirect_uri, + code_verifier=request.code_verifier, + ) + except InvalidGrantError as e: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=str(e), + ) + + # Create access and refresh tokens + access_token = await create_access_token(app.id, user_id, scopes) + refresh_token = await create_refresh_token(app.id, user_id, scopes) + + logger.info( + f"Access token issued for user #{user_id} and app {app.name} (#{app.id})" + "via authorization code" + ) + + if not access_token.token or not refresh_token.token: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Failed to generate tokens", + ) + + return TokenResponse( + token_type="Bearer", + access_token=access_token.token.get_secret_value(), + access_token_expires_at=access_token.expires_at, + refresh_token=refresh_token.token.get_secret_value(), + refresh_token_expires_at=refresh_token.expires_at, + scopes=list(s.value for s in scopes), + ) + + # Handle refresh_token grant + elif request.grant_type == "refresh_token": + # Refresh access token + try: + new_access_token, new_refresh_token = await refresh_tokens( + request.refresh_token, app.id + ) + except InvalidGrantError as e: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=str(e), + ) + + logger.info( + f"Tokens refreshed for user #{new_access_token.user_id} " + f"by app {app.name} (#{app.id})" + ) + + if not new_access_token.token or not new_refresh_token.token: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Failed to generate tokens", + ) + + return TokenResponse( + token_type="Bearer", + access_token=new_access_token.token.get_secret_value(), + access_token_expires_at=new_access_token.expires_at, + refresh_token=new_refresh_token.token.get_secret_value(), + refresh_token_expires_at=new_refresh_token.expires_at, + scopes=list(s.value for s in new_access_token.scopes), + ) + + else: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Unsupported grant_type: {request.grant_type}. " + "Must be 'authorization_code' or 'refresh_token'", + ) + + +# ============================================================================ +# Token Introspection Endpoint +# ============================================================================ + + +@router.post("/introspect") +async def introspect( + token: str = Body(description="Token to introspect"), + token_type_hint: Optional[Literal["access_token", "refresh_token"]] = Body( + None, description="Hint about token type ('access_token' or 'refresh_token')" + ), + client_id: str = Body(description="Client identifier"), + client_secret: str = Body(description="Client secret"), +) -> TokenIntrospectionResult: + """ + OAuth 2.0 Token Introspection Endpoint (RFC 7662) + + Allows clients to check if a token is valid and get its metadata. + + Returns: + - active: Whether the token is currently active + - scopes: List of authorized scopes (if active) + - client_id: The client the token was issued to (if active) + - user_id: The user the token represents (if active) + - exp: Expiration timestamp (if active) + - token_type: "access_token" or "refresh_token" (if active) + """ + # Validate client credentials + try: + await validate_client_credentials(client_id, client_secret) + except InvalidClientError as e: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=str(e), + ) + + # Introspect the token + return await introspect_token(token, token_type_hint) + + +# ============================================================================ +# Token Revocation Endpoint +# ============================================================================ + + +@router.post("/revoke") +async def revoke( + token: str = Body(description="Token to revoke"), + token_type_hint: Optional[Literal["access_token", "refresh_token"]] = Body( + None, description="Hint about token type ('access_token' or 'refresh_token')" + ), + client_id: str = Body(description="Client identifier"), + client_secret: str = Body(description="Client secret"), +): + """ + OAuth 2.0 Token Revocation Endpoint (RFC 7009) + + Allows clients to revoke an access or refresh token. + + Note: Revoking a refresh token does NOT revoke associated access tokens. + Revoking an access token does NOT revoke the associated refresh token. + """ + # Validate client credentials + try: + app = await validate_client_credentials(client_id, client_secret) + except InvalidClientError as e: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=str(e), + ) + + # Try to revoke as access token first + # Note: We pass app.id to ensure the token belongs to the authenticated app + if token_type_hint != "refresh_token": + revoked = await revoke_access_token(token, app.id) + if revoked: + logger.info( + f"Access token revoked for app {app.name} (#{app.id}); " + f"user #{revoked.user_id}" + ) + return {"status": "ok"} + + # Try to revoke as refresh token + revoked = await revoke_refresh_token(token, app.id) + if revoked: + logger.info( + f"Refresh token revoked for app {app.name} (#{app.id}); " + f"user #{revoked.user_id}" + ) + return {"status": "ok"} + + # Per RFC 7009, revocation endpoint returns 200 even if token not found + # or if token belongs to a different application. + # This prevents token scanning attacks. + logger.warning(f"Unsuccessful token revocation attempt by app {app.name} #{app.id}") + return {"status": "ok"} + + +# ============================================================================ +# Application Management Endpoints (for app owners) +# ============================================================================ + + +@router.get("/apps/mine") +async def list_my_oauth_apps( + user_id: str = Security(get_user_id), +) -> list[OAuthApplicationInfo]: + """ + List all OAuth applications owned by the current user. + + Returns a list of OAuth applications with their details including: + - id, name, description, logo_url + - client_id (public identifier) + - redirect_uris, grant_types, scopes + - is_active status + - created_at, updated_at timestamps + + Note: client_secret is never returned for security reasons. + """ + return await list_user_oauth_applications(user_id) + + +@router.patch("/apps/{app_id}/status") +async def update_app_status( + app_id: str, + user_id: str = Security(get_user_id), + is_active: bool = Body(description="Whether the app should be active", embed=True), +) -> OAuthApplicationInfo: + """ + Enable or disable an OAuth application. + + Only the application owner can update the status. + When disabled, the application cannot be used for new authorizations + and existing access tokens will fail validation. + + Returns the updated application info. + """ + updated_app = await update_oauth_application( + app_id=app_id, + owner_id=user_id, + is_active=is_active, + ) + + if not updated_app: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Application not found or you don't have permission to update it", + ) + + action = "enabled" if is_active else "disabled" + logger.info(f"OAuth app {updated_app.name} (#{app_id}) {action} by user #{user_id}") + + return updated_app + + +class UpdateAppLogoRequest(BaseModel): + logo_url: str = Field(description="URL of the uploaded logo image") + + +@router.patch("/apps/{app_id}/logo") +async def update_app_logo( + app_id: str, + request: UpdateAppLogoRequest = Body(), + user_id: str = Security(get_user_id), +) -> OAuthApplicationInfo: + """ + Update the logo URL for an OAuth application. + + Only the application owner can update the logo. + The logo should be uploaded first using the media upload endpoint, + then this endpoint is called with the resulting URL. + + Logo requirements: + - Must be square (1:1 aspect ratio) + - Minimum 512x512 pixels + - Maximum 2048x2048 pixels + + Returns the updated application info. + """ + if ( + not (app := await get_oauth_application_by_id(app_id)) + or app.owner_id != user_id + ): + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="OAuth App not found", + ) + + # Delete the current app logo file (if any and it's in our cloud storage) + await _delete_app_current_logo_file(app) + + updated_app = await update_oauth_application( + app_id=app_id, + owner_id=user_id, + logo_url=request.logo_url, + ) + + if not updated_app: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Application not found or you don't have permission to update it", + ) + + logger.info( + f"OAuth app {updated_app.name} (#{app_id}) logo updated by user #{user_id}" + ) + + return updated_app + + +# Logo upload constraints +LOGO_MIN_SIZE = 512 +LOGO_MAX_SIZE = 2048 +LOGO_ALLOWED_TYPES = {"image/jpeg", "image/png", "image/webp"} +LOGO_MAX_FILE_SIZE = 3 * 1024 * 1024 # 3MB + + +@router.post("/apps/{app_id}/logo/upload") +async def upload_app_logo( + app_id: str, + file: UploadFile, + user_id: str = Security(get_user_id), +) -> OAuthApplicationInfo: + """ + Upload a logo image for an OAuth application. + + Requirements: + - Image must be square (1:1 aspect ratio) + - Minimum 512x512 pixels + - Maximum 2048x2048 pixels + - Allowed formats: JPEG, PNG, WebP + - Maximum file size: 3MB + + The image is uploaded to cloud storage and the app's logoUrl is updated. + Returns the updated application info. + """ + # Verify ownership to reduce vulnerability to DoS(torage) or DoM(oney) attacks + if ( + not (app := await get_oauth_application_by_id(app_id)) + or app.owner_id != user_id + ): + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="OAuth App not found", + ) + + # Check GCS configuration + if not settings.config.media_gcs_bucket_name: + raise HTTPException( + status_code=status.HTTP_503_SERVICE_UNAVAILABLE, + detail="Media storage is not configured", + ) + + # Validate content type + content_type = file.content_type + if content_type not in LOGO_ALLOWED_TYPES: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Invalid file type. Allowed: JPEG, PNG, WebP. Got: {content_type}", + ) + + # Read file content + try: + file_bytes = await file.read() + except Exception as e: + logger.error(f"Error reading logo file: {e}") + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Failed to read uploaded file", + ) + + # Check file size + if len(file_bytes) > LOGO_MAX_FILE_SIZE: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=( + "File too large. " + f"Maximum size is {LOGO_MAX_FILE_SIZE // 1024 // 1024}MB" + ), + ) + + # Validate image dimensions + try: + image = Image.open(io.BytesIO(file_bytes)) + width, height = image.size + + if width != height: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Logo must be square. Got {width}x{height}", + ) + + if width < LOGO_MIN_SIZE: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Logo too small. Minimum {LOGO_MIN_SIZE}x{LOGO_MIN_SIZE}. " + f"Got {width}x{height}", + ) + + if width > LOGO_MAX_SIZE: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Logo too large. Maximum {LOGO_MAX_SIZE}x{LOGO_MAX_SIZE}. " + f"Got {width}x{height}", + ) + except HTTPException: + raise + except Exception as e: + logger.error(f"Error validating logo image: {e}") + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Invalid image file", + ) + + # Scan for viruses + filename = file.filename or "logo" + await scan_content_safe(file_bytes, filename=filename) + + # Generate unique filename + file_ext = os.path.splitext(filename)[1].lower() or ".png" + unique_filename = f"{uuid.uuid4()}{file_ext}" + storage_path = f"oauth-apps/{app_id}/logo/{unique_filename}" + + # Upload to GCS + try: + async with async_storage.Storage() as async_client: + bucket_name = settings.config.media_gcs_bucket_name + + await async_client.upload( + bucket_name, storage_path, file_bytes, content_type=content_type + ) + + logo_url = f"https://storage.googleapis.com/{bucket_name}/{storage_path}" + except Exception as e: + logger.error(f"Error uploading logo to GCS: {e}") + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Failed to upload logo", + ) + + # Delete the current app logo file (if any and it's in our cloud storage) + await _delete_app_current_logo_file(app) + + # Update the app with the new logo URL + updated_app = await update_oauth_application( + app_id=app_id, + owner_id=user_id, + logo_url=logo_url, + ) + + if not updated_app: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Application not found or you don't have permission to update it", + ) + + logger.info( + f"OAuth app {updated_app.name} (#{app_id}) logo uploaded by user #{user_id}" + ) + + return updated_app + + +async def _delete_app_current_logo_file(app: OAuthApplicationInfo): + """ + Delete the current logo file for the given app, if there is one in our cloud storage + """ + bucket_name = settings.config.media_gcs_bucket_name + storage_base_url = f"https://storage.googleapis.com/{bucket_name}/" + + if app.logo_url and app.logo_url.startswith(storage_base_url): + # Parse blob path from URL: https://storage.googleapis.com/{bucket}/{path} + old_path = app.logo_url.replace(storage_base_url, "") + try: + async with async_storage.Storage() as async_client: + await async_client.delete(bucket_name, old_path) + logger.info(f"Deleted old logo for OAuth app #{app.id}: {old_path}") + except Exception as e: + # Log but don't fail - the new logo was uploaded successfully + logger.warning( + f"Failed to delete old logo for OAuth app #{app.id}: {e}", exc_info=e + ) diff --git a/autogpt_platform/backend/backend/server/routers/oauth_test.py b/autogpt_platform/backend/backend/server/routers/oauth_test.py new file mode 100644 index 0000000000..8ec6911152 --- /dev/null +++ b/autogpt_platform/backend/backend/server/routers/oauth_test.py @@ -0,0 +1,1784 @@ +""" +End-to-end integration tests for OAuth 2.0 Provider Endpoints. + +These tests hit the actual API endpoints and database, testing the complete +OAuth flow from endpoint to database. + +Tests cover: +1. Authorization endpoint - creating authorization codes +2. Token endpoint - exchanging codes for tokens and refreshing +3. Token introspection endpoint - checking token validity +4. Token revocation endpoint - revoking tokens +5. Complete OAuth flow end-to-end +""" + +import base64 +import hashlib +import secrets +import uuid +from typing import AsyncGenerator + +import httpx +import pytest +from autogpt_libs.api_key.keysmith import APIKeySmith +from prisma.enums import APIKeyPermission +from prisma.models import OAuthAccessToken as PrismaOAuthAccessToken +from prisma.models import OAuthApplication as PrismaOAuthApplication +from prisma.models import OAuthAuthorizationCode as PrismaOAuthAuthorizationCode +from prisma.models import OAuthRefreshToken as PrismaOAuthRefreshToken +from prisma.models import User as PrismaUser + +from backend.server.rest_api import app + +keysmith = APIKeySmith() + + +# ============================================================================ +# Test Fixtures +# ============================================================================ + + +@pytest.fixture +def test_user_id() -> str: + """Test user ID for OAuth tests.""" + return str(uuid.uuid4()) + + +@pytest.fixture +async def test_user(server, test_user_id: str): + """Create a test user in the database.""" + await PrismaUser.prisma().create( + data={ + "id": test_user_id, + "email": f"oauth-test-{test_user_id}@example.com", + "name": "OAuth Test User", + } + ) + + yield test_user_id + + # Cleanup - delete in correct order due to foreign key constraints + await PrismaOAuthAccessToken.prisma().delete_many(where={"userId": test_user_id}) + await PrismaOAuthRefreshToken.prisma().delete_many(where={"userId": test_user_id}) + await PrismaOAuthAuthorizationCode.prisma().delete_many( + where={"userId": test_user_id} + ) + await PrismaOAuthApplication.prisma().delete_many(where={"ownerId": test_user_id}) + await PrismaUser.prisma().delete(where={"id": test_user_id}) + + +@pytest.fixture +async def test_oauth_app(test_user: str): + """Create a test OAuth application in the database.""" + app_id = str(uuid.uuid4()) + client_id = f"test_client_{secrets.token_urlsafe(8)}" + # Secret must start with "agpt_" prefix for keysmith verification to work + client_secret_plaintext = f"agpt_secret_{secrets.token_urlsafe(16)}" + client_secret_hash, client_secret_salt = keysmith.hash_key(client_secret_plaintext) + + await PrismaOAuthApplication.prisma().create( + data={ + "id": app_id, + "name": "Test OAuth App", + "description": "Test application for integration tests", + "clientId": client_id, + "clientSecret": client_secret_hash, + "clientSecretSalt": client_secret_salt, + "redirectUris": [ + "https://example.com/callback", + "http://localhost:3000/callback", + ], + "grantTypes": ["authorization_code", "refresh_token"], + "scopes": [APIKeyPermission.EXECUTE_GRAPH, APIKeyPermission.READ_GRAPH], + "ownerId": test_user, + "isActive": True, + } + ) + + yield { + "id": app_id, + "client_id": client_id, + "client_secret": client_secret_plaintext, + "redirect_uri": "https://example.com/callback", + } + + # Cleanup is handled by test_user fixture (cascade delete) + + +def generate_pkce() -> tuple[str, str]: + """Generate PKCE code verifier and challenge.""" + verifier = secrets.token_urlsafe(32) + challenge = ( + base64.urlsafe_b64encode(hashlib.sha256(verifier.encode("ascii")).digest()) + .decode("ascii") + .rstrip("=") + ) + return verifier, challenge + + +@pytest.fixture +def pkce_credentials() -> tuple[str, str]: + """Generate PKCE code verifier and challenge as a fixture.""" + return generate_pkce() + + +@pytest.fixture +async def client(server, test_user: str) -> AsyncGenerator[httpx.AsyncClient, None]: + """ + Create an async HTTP client that talks directly to the FastAPI app. + + Uses ASGI transport so we don't need an actual HTTP server running. + Also overrides get_user_id dependency to return our test user. + + Depends on `server` to ensure the DB is connected and `test_user` to ensure + the user exists in the database before running tests. + """ + from autogpt_libs.auth import get_user_id + + # Override get_user_id dependency to return our test user + def override_get_user_id(): + return test_user + + # Store original override if any + original_override = app.dependency_overrides.get(get_user_id) + + # Set our override + app.dependency_overrides[get_user_id] = override_get_user_id + + try: + async with httpx.AsyncClient( + transport=httpx.ASGITransport(app=app), + base_url="http://test", + ) as http_client: + yield http_client + finally: + # Restore original override + if original_override is not None: + app.dependency_overrides[get_user_id] = original_override + else: + app.dependency_overrides.pop(get_user_id, None) + + +# ============================================================================ +# Authorization Endpoint Integration Tests +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_creates_code_in_database( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, + pkce_credentials: tuple[str, str], +): + """Test that authorization endpoint creates a code in the database.""" + verifier, challenge = pkce_credentials + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "state": "test_state_123", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + redirect_url = response.json()["redirect_url"] + + # Parse the redirect URL to get the authorization code + from urllib.parse import parse_qs, urlparse + + parsed = urlparse(redirect_url) + query_params = parse_qs(parsed.query) + + assert "code" in query_params, f"Expected 'code' in query params: {query_params}" + auth_code = query_params["code"][0] + assert query_params["state"][0] == "test_state_123" + + # Verify code exists in database + db_code = await PrismaOAuthAuthorizationCode.prisma().find_unique( + where={"code": auth_code} + ) + + assert db_code is not None + assert db_code.userId == test_user + assert db_code.applicationId == test_oauth_app["id"] + assert db_code.redirectUri == test_oauth_app["redirect_uri"] + assert APIKeyPermission.EXECUTE_GRAPH in db_code.scopes + assert APIKeyPermission.READ_GRAPH in db_code.scopes + assert db_code.usedAt is None # Not yet consumed + assert db_code.codeChallenge == challenge + assert db_code.codeChallengeMethod == "S256" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_with_pkce_stores_challenge( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, + pkce_credentials: tuple[str, str], +): + """Test that PKCE code challenge is stored correctly.""" + verifier, challenge = pkce_credentials + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "pkce_test_state", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + + from urllib.parse import parse_qs, urlparse + + auth_code = parse_qs(urlparse(response.json()["redirect_url"]).query)["code"][0] + + # Verify PKCE challenge is stored + db_code = await PrismaOAuthAuthorizationCode.prisma().find_unique( + where={"code": auth_code} + ) + + assert db_code is not None + assert db_code.codeChallenge == challenge + assert db_code.codeChallengeMethod == "S256" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_invalid_client_returns_error( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that invalid client_id returns error in redirect.""" + _, challenge = generate_pkce() + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": "nonexistent_client_id", + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "error_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + from urllib.parse import parse_qs, urlparse + + query_params = parse_qs(urlparse(response.json()["redirect_url"]).query) + assert query_params["error"][0] == "invalid_client" + + +@pytest.fixture +async def inactive_oauth_app(test_user: str): + """Create an inactive test OAuth application in the database.""" + app_id = str(uuid.uuid4()) + client_id = f"inactive_client_{secrets.token_urlsafe(8)}" + client_secret_plaintext = f"agpt_secret_{secrets.token_urlsafe(16)}" + client_secret_hash, client_secret_salt = keysmith.hash_key(client_secret_plaintext) + + await PrismaOAuthApplication.prisma().create( + data={ + "id": app_id, + "name": "Inactive OAuth App", + "description": "Inactive test application", + "clientId": client_id, + "clientSecret": client_secret_hash, + "clientSecretSalt": client_secret_salt, + "redirectUris": ["https://example.com/callback"], + "grantTypes": ["authorization_code", "refresh_token"], + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "ownerId": test_user, + "isActive": False, # Inactive! + } + ) + + yield { + "id": app_id, + "client_id": client_id, + "client_secret": client_secret_plaintext, + "redirect_uri": "https://example.com/callback", + } + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_inactive_app( + client: httpx.AsyncClient, + test_user: str, + inactive_oauth_app: dict, +): + """Test that authorization with inactive app returns error.""" + _, challenge = generate_pkce() + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": inactive_oauth_app["client_id"], + "redirect_uri": inactive_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "inactive_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + from urllib.parse import parse_qs, urlparse + + query_params = parse_qs(urlparse(response.json()["redirect_url"]).query) + assert query_params["error"][0] == "invalid_client" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_invalid_redirect_uri( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test authorization with unregistered redirect_uri returns HTTP error.""" + _, challenge = generate_pkce() + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": "https://malicious.com/callback", + "scopes": ["EXECUTE_GRAPH"], + "state": "invalid_redirect_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + # Invalid redirect_uri should return HTTP 400, not a redirect + assert response.status_code == 400 + assert "redirect_uri" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_invalid_scope( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test authorization with invalid scope value.""" + _, challenge = generate_pkce() + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["INVALID_SCOPE_NAME"], + "state": "invalid_scope_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + from urllib.parse import parse_qs, urlparse + + query_params = parse_qs(urlparse(response.json()["redirect_url"]).query) + assert query_params["error"][0] == "invalid_scope" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_unauthorized_scope( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test authorization requesting scope not authorized for app.""" + _, challenge = generate_pkce() + + # The test_oauth_app only has EXECUTE_GRAPH and READ_GRAPH scopes + # DELETE_GRAPH is not in the app's allowed scopes + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["DELETE_GRAPH"], # Not authorized for this app + "state": "unauthorized_scope_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + from urllib.parse import parse_qs, urlparse + + query_params = parse_qs(urlparse(response.json()["redirect_url"]).query) + assert query_params["error"][0] == "invalid_scope" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorize_unsupported_response_type( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test authorization with unsupported response_type.""" + _, challenge = generate_pkce() + + response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "unsupported_response_test", + "response_type": "token", # Implicit flow not supported + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert response.status_code == 200 + from urllib.parse import parse_qs, urlparse + + query_params = parse_qs(urlparse(response.json()["redirect_url"]).query) + assert query_params["error"][0] == "unsupported_response_type" + + +# ============================================================================ +# Token Endpoint Integration Tests - Authorization Code Grant +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_exchange_creates_tokens_in_database( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that token exchange creates access and refresh tokens in database.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # First get an authorization code + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "state": "token_test_state", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + # Exchange code for tokens + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + + assert token_response.status_code == 200 + tokens = token_response.json() + + assert "access_token" in tokens + assert "refresh_token" in tokens + assert tokens["token_type"] == "Bearer" + assert "EXECUTE_GRAPH" in tokens["scopes"] + assert "READ_GRAPH" in tokens["scopes"] + + # Verify access token exists in database (hashed) + access_token_hash = hashlib.sha256(tokens["access_token"].encode()).hexdigest() + db_access_token = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": access_token_hash} + ) + + assert db_access_token is not None + assert db_access_token.userId == test_user + assert db_access_token.applicationId == test_oauth_app["id"] + assert db_access_token.revokedAt is None + + # Verify refresh token exists in database (hashed) + refresh_token_hash = hashlib.sha256(tokens["refresh_token"].encode()).hexdigest() + db_refresh_token = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": refresh_token_hash} + ) + + assert db_refresh_token is not None + assert db_refresh_token.userId == test_user + assert db_refresh_token.applicationId == test_oauth_app["id"] + assert db_refresh_token.revokedAt is None + + # Verify authorization code is marked as used + db_code = await PrismaOAuthAuthorizationCode.prisma().find_unique( + where={"code": auth_code} + ) + assert db_code is not None + assert db_code.usedAt is not None + + +@pytest.mark.asyncio(loop_scope="session") +async def test_authorization_code_cannot_be_reused( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that authorization code can only be used once.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get authorization code + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "reuse_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + # First exchange - should succeed + first_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + assert first_response.status_code == 200 + + # Second exchange - should fail + second_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + assert second_response.status_code == 400 + assert "already used" in second_response.json()["detail"] + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_exchange_with_invalid_client_secret( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that token exchange fails with invalid client secret.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get authorization code + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "bad_secret_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + # Try to exchange with wrong secret + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": "wrong_secret", + "code_verifier": verifier, + }, + ) + + assert response.status_code == 401 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_authorization_code_invalid_code( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test token exchange with invalid/nonexistent authorization code.""" + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": "nonexistent_invalid_code_xyz", + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": "", + }, + ) + + assert response.status_code == 400 + assert "not found" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_authorization_code_expired( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test token exchange with expired authorization code.""" + from datetime import datetime, timedelta, timezone + + # Create an expired authorization code directly in the database + expired_code = f"expired_code_{secrets.token_urlsafe(16)}" + now = datetime.now(timezone.utc) + + await PrismaOAuthAuthorizationCode.prisma().create( + data={ + "code": expired_code, + "applicationId": test_oauth_app["id"], + "userId": test_user, + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "redirectUri": test_oauth_app["redirect_uri"], + "expiresAt": now - timedelta(hours=1), # Already expired + } + ) + + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": expired_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": "", + }, + ) + + assert response.status_code == 400 + assert "expired" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_authorization_code_redirect_uri_mismatch( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test token exchange with mismatched redirect_uri.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get authorization code with one redirect_uri + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "redirect_mismatch_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + # Try to exchange with different redirect_uri + # Note: localhost:3000 is in the app's registered redirect_uris + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + # Different redirect_uri from authorization request + "redirect_uri": "http://localhost:3000/callback", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + + assert response.status_code == 400 + assert "redirect_uri" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_authorization_code_pkce_failure( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, + pkce_credentials: tuple[str, str], +): + """Test token exchange with PKCE verification failure (wrong verifier).""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = pkce_credentials + + # Get authorization code with PKCE challenge + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "pkce_failure_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + # Try to exchange with wrong verifier + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": "wrong_verifier_that_does_not_match", + }, + ) + + assert response.status_code == 400 + assert "pkce" in response.json()["detail"].lower() + + +# ============================================================================ +# Token Endpoint Integration Tests - Refresh Token Grant +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_refresh_token_creates_new_tokens( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that refresh token grant creates new access and refresh tokens.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get initial tokens + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "refresh_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + initial_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + initial_tokens = initial_response.json() + + # Use refresh token to get new tokens + refresh_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": initial_tokens["refresh_token"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert refresh_response.status_code == 200 + new_tokens = refresh_response.json() + + # Tokens should be different + assert new_tokens["access_token"] != initial_tokens["access_token"] + assert new_tokens["refresh_token"] != initial_tokens["refresh_token"] + + # Old refresh token should be revoked in database + old_refresh_hash = hashlib.sha256( + initial_tokens["refresh_token"].encode() + ).hexdigest() + old_db_token = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": old_refresh_hash} + ) + assert old_db_token is not None + assert old_db_token.revokedAt is not None + + # New tokens should exist and be valid + new_access_hash = hashlib.sha256(new_tokens["access_token"].encode()).hexdigest() + new_db_access = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": new_access_hash} + ) + assert new_db_access is not None + assert new_db_access.revokedAt is None + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_refresh_invalid_token( + client: httpx.AsyncClient, + test_oauth_app: dict, +): + """Test token refresh with invalid/nonexistent refresh token.""" + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": "completely_invalid_refresh_token_xyz", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert response.status_code == 400 + assert "not found" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_refresh_expired( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test token refresh with expired refresh token.""" + from datetime import datetime, timedelta, timezone + + # Create an expired refresh token directly in the database + expired_token_value = f"expired_refresh_{secrets.token_urlsafe(16)}" + expired_token_hash = hashlib.sha256(expired_token_value.encode()).hexdigest() + now = datetime.now(timezone.utc) + + await PrismaOAuthRefreshToken.prisma().create( + data={ + "token": expired_token_hash, + "applicationId": test_oauth_app["id"], + "userId": test_user, + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "expiresAt": now - timedelta(days=1), # Already expired + } + ) + + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": expired_token_value, + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert response.status_code == 400 + assert "expired" in response.json()["detail"].lower() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_refresh_revoked( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test token refresh with revoked refresh token.""" + from datetime import datetime, timedelta, timezone + + # Create a revoked refresh token directly in the database + revoked_token_value = f"revoked_refresh_{secrets.token_urlsafe(16)}" + revoked_token_hash = hashlib.sha256(revoked_token_value.encode()).hexdigest() + now = datetime.now(timezone.utc) + + await PrismaOAuthRefreshToken.prisma().create( + data={ + "token": revoked_token_hash, + "applicationId": test_oauth_app["id"], + "userId": test_user, + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "expiresAt": now + timedelta(days=30), # Not expired + "revokedAt": now - timedelta(hours=1), # But revoked + } + ) + + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": revoked_token_value, + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert response.status_code == 400 + assert "revoked" in response.json()["detail"].lower() + + +@pytest.fixture +async def other_oauth_app(test_user: str): + """Create a second OAuth application for cross-app tests.""" + app_id = str(uuid.uuid4()) + client_id = f"other_client_{secrets.token_urlsafe(8)}" + client_secret_plaintext = f"agpt_other_{secrets.token_urlsafe(16)}" + client_secret_hash, client_secret_salt = keysmith.hash_key(client_secret_plaintext) + + await PrismaOAuthApplication.prisma().create( + data={ + "id": app_id, + "name": "Other OAuth App", + "description": "Second test application", + "clientId": client_id, + "clientSecret": client_secret_hash, + "clientSecretSalt": client_secret_salt, + "redirectUris": ["https://other.example.com/callback"], + "grantTypes": ["authorization_code", "refresh_token"], + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "ownerId": test_user, + "isActive": True, + } + ) + + yield { + "id": app_id, + "client_id": client_id, + "client_secret": client_secret_plaintext, + "redirect_uri": "https://other.example.com/callback", + } + + +@pytest.mark.asyncio(loop_scope="session") +async def test_token_refresh_wrong_application( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, + other_oauth_app: dict, +): + """Test token refresh with token from different application.""" + from datetime import datetime, timedelta, timezone + + # Create a refresh token for `test_oauth_app` + token_value = f"app1_refresh_{secrets.token_urlsafe(16)}" + token_hash = hashlib.sha256(token_value.encode()).hexdigest() + now = datetime.now(timezone.utc) + + await PrismaOAuthRefreshToken.prisma().create( + data={ + "token": token_hash, + "applicationId": test_oauth_app["id"], # Belongs to test_oauth_app + "userId": test_user, + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "expiresAt": now + timedelta(days=30), + } + ) + + # Try to use it with `other_oauth_app` + response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": token_value, + "client_id": other_oauth_app["client_id"], + "client_secret": other_oauth_app["client_secret"], + }, + ) + + assert response.status_code == 400 + assert "does not belong" in response.json()["detail"].lower() + + +# ============================================================================ +# Token Introspection Integration Tests +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_introspect_valid_access_token( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test introspection returns correct info for valid access token.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get tokens + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "state": "introspect_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + tokens = token_response.json() + + # Introspect the access token + introspect_response = await client.post( + "/api/oauth/introspect", + json={ + "token": tokens["access_token"], + "token_type_hint": "access_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert introspect_response.status_code == 200 + data = introspect_response.json() + + assert data["active"] is True + assert data["token_type"] == "access_token" + assert data["user_id"] == test_user + assert data["client_id"] == test_oauth_app["client_id"] + assert "EXECUTE_GRAPH" in data["scopes"] + assert "READ_GRAPH" in data["scopes"] + + +@pytest.mark.asyncio(loop_scope="session") +async def test_introspect_invalid_token_returns_inactive( + client: httpx.AsyncClient, + test_oauth_app: dict, +): + """Test introspection returns inactive for non-existent token.""" + introspect_response = await client.post( + "/api/oauth/introspect", + json={ + "token": "completely_invalid_token_that_does_not_exist", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert introspect_response.status_code == 200 + assert introspect_response.json()["active"] is False + + +@pytest.mark.asyncio(loop_scope="session") +async def test_introspect_active_refresh_token( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test introspection returns correct info for valid refresh token.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get tokens via the full flow + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "state": "introspect_refresh_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + tokens = token_response.json() + + # Introspect the refresh token + introspect_response = await client.post( + "/api/oauth/introspect", + json={ + "token": tokens["refresh_token"], + "token_type_hint": "refresh_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert introspect_response.status_code == 200 + data = introspect_response.json() + + assert data["active"] is True + assert data["token_type"] == "refresh_token" + assert data["user_id"] == test_user + assert data["client_id"] == test_oauth_app["client_id"] + + +@pytest.mark.asyncio(loop_scope="session") +async def test_introspect_invalid_client( + client: httpx.AsyncClient, + test_oauth_app: dict, +): + """Test introspection with invalid client credentials.""" + introspect_response = await client.post( + "/api/oauth/introspect", + json={ + "token": "some_token", + "client_id": test_oauth_app["client_id"], + "client_secret": "wrong_secret_value", + }, + ) + + assert introspect_response.status_code == 401 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_validate_access_token_fails_when_app_disabled( + test_user: str, +): + """ + Test that validate_access_token raises InvalidClientError when the app is disabled. + + This tests the security feature where disabling an OAuth application + immediately invalidates all its access tokens. + """ + from datetime import datetime, timedelta, timezone + + from backend.data.auth.oauth import InvalidClientError, validate_access_token + + # Create an OAuth app + app_id = str(uuid.uuid4()) + client_id = f"disable_test_{secrets.token_urlsafe(8)}" + client_secret_plaintext = f"agpt_disable_{secrets.token_urlsafe(16)}" + client_secret_hash, client_secret_salt = keysmith.hash_key(client_secret_plaintext) + + await PrismaOAuthApplication.prisma().create( + data={ + "id": app_id, + "name": "App To Be Disabled", + "description": "Test app for disabled validation", + "clientId": client_id, + "clientSecret": client_secret_hash, + "clientSecretSalt": client_secret_salt, + "redirectUris": ["https://example.com/callback"], + "grantTypes": ["authorization_code"], + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "ownerId": test_user, + "isActive": True, + } + ) + + # Create an access token directly in the database + token_plaintext = f"test_token_{secrets.token_urlsafe(32)}" + token_hash = hashlib.sha256(token_plaintext.encode()).hexdigest() + now = datetime.now(timezone.utc) + + await PrismaOAuthAccessToken.prisma().create( + data={ + "token": token_hash, + "applicationId": app_id, + "userId": test_user, + "scopes": [APIKeyPermission.EXECUTE_GRAPH], + "expiresAt": now + timedelta(hours=1), + } + ) + + # Token should be valid while app is active + token_info, _ = await validate_access_token(token_plaintext) + assert token_info.user_id == test_user + + # Disable the app + await PrismaOAuthApplication.prisma().update( + where={"id": app_id}, + data={"isActive": False}, + ) + + # Token should now fail validation with InvalidClientError + with pytest.raises(InvalidClientError, match="disabled"): + await validate_access_token(token_plaintext) + + # Cleanup + await PrismaOAuthApplication.prisma().delete(where={"id": app_id}) + + +# ============================================================================ +# Token Revocation Integration Tests +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_revoke_access_token_updates_database( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that revoking access token updates database.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get tokens + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "revoke_access_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + tokens = token_response.json() + + # Verify token is not revoked in database + access_hash = hashlib.sha256(tokens["access_token"].encode()).hexdigest() + db_token_before = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": access_hash} + ) + assert db_token_before is not None + assert db_token_before.revokedAt is None + + # Revoke the token + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": tokens["access_token"], + "token_type_hint": "access_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert revoke_response.status_code == 200 + assert revoke_response.json()["status"] == "ok" + + # Verify token is now revoked in database + db_token_after = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": access_hash} + ) + assert db_token_after is not None + assert db_token_after.revokedAt is not None + + +@pytest.mark.asyncio(loop_scope="session") +async def test_revoke_unknown_token_returns_ok( + client: httpx.AsyncClient, + test_oauth_app: dict, +): + """Test that revoking unknown token returns 200 (per RFC 7009).""" + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": "unknown_token_that_does_not_exist_anywhere", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + # Per RFC 7009, should return 200 even for unknown tokens + assert revoke_response.status_code == 200 + assert revoke_response.json()["status"] == "ok" + + +@pytest.mark.asyncio(loop_scope="session") +async def test_revoke_refresh_token_updates_database( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """Test that revoking refresh token updates database.""" + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get tokens + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "revoke_refresh_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + tokens = token_response.json() + + # Verify refresh token is not revoked in database + refresh_hash = hashlib.sha256(tokens["refresh_token"].encode()).hexdigest() + db_token_before = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": refresh_hash} + ) + assert db_token_before is not None + assert db_token_before.revokedAt is None + + # Revoke the refresh token + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": tokens["refresh_token"], + "token_type_hint": "refresh_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert revoke_response.status_code == 200 + assert revoke_response.json()["status"] == "ok" + + # Verify refresh token is now revoked in database + db_token_after = await PrismaOAuthRefreshToken.prisma().find_unique( + where={"token": refresh_hash} + ) + assert db_token_after is not None + assert db_token_after.revokedAt is not None + + +@pytest.mark.asyncio(loop_scope="session") +async def test_revoke_invalid_client( + client: httpx.AsyncClient, + test_oauth_app: dict, +): + """Test revocation with invalid client credentials.""" + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": "some_token", + "client_id": test_oauth_app["client_id"], + "client_secret": "wrong_secret_value", + }, + ) + + assert revoke_response.status_code == 401 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_revoke_token_from_different_app_fails_silently( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, +): + """ + Test that an app cannot revoke tokens belonging to a different app. + + Per RFC 7009, the endpoint still returns 200 OK (to prevent token scanning), + but the token should remain valid in the database. + """ + from urllib.parse import parse_qs, urlparse + + verifier, challenge = generate_pkce() + + # Get tokens for app 1 + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH"], + "state": "cross_app_revoke_test", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + auth_code = parse_qs(urlparse(auth_response.json()["redirect_url"]).query)["code"][ + 0 + ] + + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + tokens = token_response.json() + + # Create a second OAuth app + app2_id = str(uuid.uuid4()) + app2_client_id = f"test_client_app2_{secrets.token_urlsafe(8)}" + app2_client_secret_plaintext = f"agpt_secret_app2_{secrets.token_urlsafe(16)}" + app2_client_secret_hash, app2_client_secret_salt = keysmith.hash_key( + app2_client_secret_plaintext + ) + + await PrismaOAuthApplication.prisma().create( + data={ + "id": app2_id, + "name": "Second Test OAuth App", + "description": "Second test application for cross-app revocation test", + "clientId": app2_client_id, + "clientSecret": app2_client_secret_hash, + "clientSecretSalt": app2_client_secret_salt, + "redirectUris": ["https://other-app.com/callback"], + "grantTypes": ["authorization_code", "refresh_token"], + "scopes": [APIKeyPermission.EXECUTE_GRAPH, APIKeyPermission.READ_GRAPH], + "ownerId": test_user, + "isActive": True, + } + ) + + # App 2 tries to revoke App 1's access token + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": tokens["access_token"], + "token_type_hint": "access_token", + "client_id": app2_client_id, + "client_secret": app2_client_secret_plaintext, + }, + ) + + # Per RFC 7009, returns 200 OK even if token not found/not owned + assert revoke_response.status_code == 200 + assert revoke_response.json()["status"] == "ok" + + # But the token should NOT be revoked in the database + access_hash = hashlib.sha256(tokens["access_token"].encode()).hexdigest() + db_token = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": access_hash} + ) + assert db_token is not None + assert db_token.revokedAt is None, "Token should NOT be revoked by different app" + + # Now app 1 revokes its own token - should work + revoke_response2 = await client.post( + "/api/oauth/revoke", + json={ + "token": tokens["access_token"], + "token_type_hint": "access_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert revoke_response2.status_code == 200 + + # Token should now be revoked + db_token_after = await PrismaOAuthAccessToken.prisma().find_unique( + where={"token": access_hash} + ) + assert db_token_after is not None + assert db_token_after.revokedAt is not None, "Token should be revoked by own app" + + # Cleanup second app + await PrismaOAuthApplication.prisma().delete(where={"id": app2_id}) + + +# ============================================================================ +# Complete End-to-End OAuth Flow Test +# ============================================================================ + + +@pytest.mark.asyncio(loop_scope="session") +async def test_complete_oauth_flow_end_to_end( + client: httpx.AsyncClient, + test_user: str, + test_oauth_app: dict, + pkce_credentials: tuple[str, str], +): + """ + Test the complete OAuth 2.0 flow from authorization to token refresh. + + This is a comprehensive integration test that verifies the entire + OAuth flow works correctly with real API calls and database operations. + """ + from urllib.parse import parse_qs, urlparse + + verifier, challenge = pkce_credentials + + # Step 1: Authorization request with PKCE + auth_response = await client.post( + "/api/oauth/authorize", + json={ + "client_id": test_oauth_app["client_id"], + "redirect_uri": test_oauth_app["redirect_uri"], + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "state": "e2e_test_state", + "response_type": "code", + "code_challenge": challenge, + "code_challenge_method": "S256", + }, + follow_redirects=False, + ) + + assert auth_response.status_code == 200 + + redirect_url = auth_response.json()["redirect_url"] + query = parse_qs(urlparse(redirect_url).query) + + assert query["state"][0] == "e2e_test_state" + auth_code = query["code"][0] + + # Verify authorization code in database + db_code = await PrismaOAuthAuthorizationCode.prisma().find_unique( + where={"code": auth_code} + ) + assert db_code is not None + assert db_code.codeChallenge == challenge + + # Step 2: Exchange code for tokens + token_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "authorization_code", + "code": auth_code, + "redirect_uri": test_oauth_app["redirect_uri"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + "code_verifier": verifier, + }, + ) + + assert token_response.status_code == 200 + tokens = token_response.json() + assert "access_token" in tokens + assert "refresh_token" in tokens + + # Verify code is marked as used + db_code_used = await PrismaOAuthAuthorizationCode.prisma().find_unique_or_raise( + where={"code": auth_code} + ) + assert db_code_used.usedAt is not None + + # Step 3: Introspect access token + introspect_response = await client.post( + "/api/oauth/introspect", + json={ + "token": tokens["access_token"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert introspect_response.status_code == 200 + introspect_data = introspect_response.json() + assert introspect_data["active"] is True + assert introspect_data["user_id"] == test_user + + # Step 4: Refresh tokens + refresh_response = await client.post( + "/api/oauth/token", + json={ + "grant_type": "refresh_token", + "refresh_token": tokens["refresh_token"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert refresh_response.status_code == 200 + new_tokens = refresh_response.json() + assert new_tokens["access_token"] != tokens["access_token"] + assert new_tokens["refresh_token"] != tokens["refresh_token"] + + # Verify old refresh token is revoked + old_refresh_hash = hashlib.sha256(tokens["refresh_token"].encode()).hexdigest() + old_db_refresh = await PrismaOAuthRefreshToken.prisma().find_unique_or_raise( + where={"token": old_refresh_hash} + ) + assert old_db_refresh.revokedAt is not None + + # Step 5: Verify new access token works + new_introspect = await client.post( + "/api/oauth/introspect", + json={ + "token": new_tokens["access_token"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert new_introspect.status_code == 200 + assert new_introspect.json()["active"] is True + + # Step 6: Revoke new access token + revoke_response = await client.post( + "/api/oauth/revoke", + json={ + "token": new_tokens["access_token"], + "token_type_hint": "access_token", + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert revoke_response.status_code == 200 + + # Step 7: Verify revoked token is inactive + final_introspect = await client.post( + "/api/oauth/introspect", + json={ + "token": new_tokens["access_token"], + "client_id": test_oauth_app["client_id"], + "client_secret": test_oauth_app["client_secret"], + }, + ) + + assert final_introspect.status_code == 200 + assert final_introspect.json()["active"] is False + + # Verify in database + new_access_hash = hashlib.sha256(new_tokens["access_token"].encode()).hexdigest() + db_revoked = await PrismaOAuthAccessToken.prisma().find_unique_or_raise( + where={"token": new_access_hash} + ) + assert db_revoked.revokedAt is not None diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index d74d4ecdf7..e5e74690f8 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -31,9 +31,9 @@ from typing_extensions import Optional, TypedDict import backend.server.integrations.router import backend.server.routers.analytics import backend.server.v2.library.db as library_db -from backend.data import api_key as api_key_db from backend.data import execution as execution_db from backend.data import graph as graph_db +from backend.data.auth import api_key as api_key_db from backend.data.block import BlockInput, CompletedBlockOutput, get_block, get_blocks from backend.data.credit import ( AutoTopUpConfig, diff --git a/autogpt_platform/backend/backend/util/settings.py b/autogpt_platform/backend/backend/util/settings.py index 4eb45dc972..0f17b1215c 100644 --- a/autogpt_platform/backend/backend/util/settings.py +++ b/autogpt_platform/backend/backend/util/settings.py @@ -362,6 +362,13 @@ class Config(UpdateTrackingModel["Config"], BaseSettings): description="Hours between cloud storage cleanup runs (1-24 hours)", ) + oauth_token_cleanup_interval_hours: int = Field( + default=6, + ge=1, + le=24, + description="Hours between OAuth token cleanup runs (1-24 hours)", + ) + upload_file_size_limit_mb: int = Field( default=256, ge=1, diff --git a/autogpt_platform/backend/migrations/20251212165920_add_oauth_provider_support/migration.sql b/autogpt_platform/backend/migrations/20251212165920_add_oauth_provider_support/migration.sql new file mode 100644 index 0000000000..9c8672c4c3 --- /dev/null +++ b/autogpt_platform/backend/migrations/20251212165920_add_oauth_provider_support/migration.sql @@ -0,0 +1,129 @@ +-- CreateTable +CREATE TABLE "OAuthApplication" ( + "id" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "name" TEXT NOT NULL, + "description" TEXT, + "clientId" TEXT NOT NULL, + "clientSecret" TEXT NOT NULL, + "clientSecretSalt" TEXT NOT NULL, + "redirectUris" TEXT[], + "grantTypes" TEXT[] DEFAULT ARRAY['authorization_code', 'refresh_token']::TEXT[], + "scopes" "APIKeyPermission"[], + "ownerId" TEXT NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + + CONSTRAINT "OAuthApplication_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OAuthAuthorizationCode" ( + "id" TEXT NOT NULL, + "code" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expiresAt" TIMESTAMP(3) NOT NULL, + "applicationId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "scopes" "APIKeyPermission"[], + "redirectUri" TEXT NOT NULL, + "codeChallenge" TEXT, + "codeChallengeMethod" TEXT, + "usedAt" TIMESTAMP(3), + + CONSTRAINT "OAuthAuthorizationCode_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OAuthAccessToken" ( + "id" TEXT NOT NULL, + "token" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expiresAt" TIMESTAMP(3) NOT NULL, + "applicationId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "scopes" "APIKeyPermission"[], + "revokedAt" TIMESTAMP(3), + + CONSTRAINT "OAuthAccessToken_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OAuthRefreshToken" ( + "id" TEXT NOT NULL, + "token" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expiresAt" TIMESTAMP(3) NOT NULL, + "applicationId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "scopes" "APIKeyPermission"[], + "revokedAt" TIMESTAMP(3), + + CONSTRAINT "OAuthRefreshToken_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "OAuthApplication_clientId_key" ON "OAuthApplication"("clientId"); + +-- CreateIndex +CREATE INDEX "OAuthApplication_clientId_idx" ON "OAuthApplication"("clientId"); + +-- CreateIndex +CREATE INDEX "OAuthApplication_ownerId_idx" ON "OAuthApplication"("ownerId"); + +-- CreateIndex +CREATE UNIQUE INDEX "OAuthAuthorizationCode_code_key" ON "OAuthAuthorizationCode"("code"); + +-- CreateIndex +CREATE INDEX "OAuthAuthorizationCode_code_idx" ON "OAuthAuthorizationCode"("code"); + +-- CreateIndex +CREATE INDEX "OAuthAuthorizationCode_applicationId_userId_idx" ON "OAuthAuthorizationCode"("applicationId", "userId"); + +-- CreateIndex +CREATE INDEX "OAuthAuthorizationCode_expiresAt_idx" ON "OAuthAuthorizationCode"("expiresAt"); + +-- CreateIndex +CREATE UNIQUE INDEX "OAuthAccessToken_token_key" ON "OAuthAccessToken"("token"); + +-- CreateIndex +CREATE INDEX "OAuthAccessToken_token_idx" ON "OAuthAccessToken"("token"); + +-- CreateIndex +CREATE INDEX "OAuthAccessToken_userId_applicationId_idx" ON "OAuthAccessToken"("userId", "applicationId"); + +-- CreateIndex +CREATE INDEX "OAuthAccessToken_expiresAt_idx" ON "OAuthAccessToken"("expiresAt"); + +-- CreateIndex +CREATE UNIQUE INDEX "OAuthRefreshToken_token_key" ON "OAuthRefreshToken"("token"); + +-- CreateIndex +CREATE INDEX "OAuthRefreshToken_token_idx" ON "OAuthRefreshToken"("token"); + +-- CreateIndex +CREATE INDEX "OAuthRefreshToken_userId_applicationId_idx" ON "OAuthRefreshToken"("userId", "applicationId"); + +-- CreateIndex +CREATE INDEX "OAuthRefreshToken_expiresAt_idx" ON "OAuthRefreshToken"("expiresAt"); + +-- AddForeignKey +ALTER TABLE "OAuthApplication" ADD CONSTRAINT "OAuthApplication_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthAuthorizationCode" ADD CONSTRAINT "OAuthAuthorizationCode_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "OAuthApplication"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthAuthorizationCode" ADD CONSTRAINT "OAuthAuthorizationCode_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthAccessToken" ADD CONSTRAINT "OAuthAccessToken_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "OAuthApplication"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthAccessToken" ADD CONSTRAINT "OAuthAccessToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthRefreshToken" ADD CONSTRAINT "OAuthRefreshToken_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "OAuthApplication"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OAuthRefreshToken" ADD CONSTRAINT "OAuthRefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/autogpt_platform/backend/migrations/20251218231330_add_oauth_app_logo/migration.sql b/autogpt_platform/backend/migrations/20251218231330_add_oauth_app_logo/migration.sql new file mode 100644 index 0000000000..c9c8c76df1 --- /dev/null +++ b/autogpt_platform/backend/migrations/20251218231330_add_oauth_app_logo/migration.sql @@ -0,0 +1,5 @@ +-- AlterEnum +ALTER TYPE "APIKeyPermission" ADD VALUE 'IDENTITY'; + +-- AlterTable +ALTER TABLE "OAuthApplication" ADD COLUMN "logoUrl" TEXT; diff --git a/autogpt_platform/backend/pyproject.toml b/autogpt_platform/backend/pyproject.toml index a87ae8e71d..fb06b65162 100644 --- a/autogpt_platform/backend/pyproject.toml +++ b/autogpt_platform/backend/pyproject.toml @@ -115,6 +115,8 @@ format = "linter:format" lint = "linter:lint" test = "run_tests:test" load-store-agents = "test.load_store_agents:run" +export-api-schema = "backend.cli.generate_openapi_json:main" +oauth-tool = "backend.cli.oauth_tool:cli" [tool.isort] profile = "black" diff --git a/autogpt_platform/backend/schema.prisma b/autogpt_platform/backend/schema.prisma index 121ccab5fc..d81cd4d1b1 100644 --- a/autogpt_platform/backend/schema.prisma +++ b/autogpt_platform/backend/schema.prisma @@ -61,6 +61,12 @@ model User { IntegrationWebhooks IntegrationWebhook[] NotificationBatches UserNotificationBatch[] PendingHumanReviews PendingHumanReview[] + + // OAuth Provider relations + OAuthApplications OAuthApplication[] + OAuthAuthorizationCodes OAuthAuthorizationCode[] + OAuthAccessTokens OAuthAccessToken[] + OAuthRefreshTokens OAuthRefreshToken[] } enum OnboardingStep { @@ -924,6 +930,7 @@ enum SubmissionStatus { } enum APIKeyPermission { + IDENTITY // Info about the authenticated user EXECUTE_GRAPH // Can execute agent graphs READ_GRAPH // Can get graph versions and details EXECUTE_BLOCK // Can execute individual blocks @@ -975,3 +982,113 @@ enum APIKeyStatus { REVOKED SUSPENDED } + +//////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////// +////////////// OAUTH PROVIDER TABLES ////////////////// +//////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////// + +// OAuth2 applications that can access AutoGPT on behalf of users +model OAuthApplication { + id String @id @default(uuid()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + // Application metadata + name String + description String? + logoUrl String? // URL to app logo stored in GCS + clientId String @unique + clientSecret String // Hashed with Scrypt (same as API keys) + clientSecretSalt String // Salt for Scrypt hashing + + // OAuth configuration + redirectUris String[] // Allowed callback URLs + grantTypes String[] @default(["authorization_code", "refresh_token"]) + scopes APIKeyPermission[] // Which permissions the app can request + + // Application management + ownerId String + Owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade) + isActive Boolean @default(true) + + // Relations + AuthorizationCodes OAuthAuthorizationCode[] + AccessTokens OAuthAccessToken[] + RefreshTokens OAuthRefreshToken[] + + @@index([clientId]) + @@index([ownerId]) +} + +// Temporary authorization codes (10 min TTL) +model OAuthAuthorizationCode { + id String @id @default(uuid()) + code String @unique + createdAt DateTime @default(now()) + expiresAt DateTime // Now + 10 minutes + + applicationId String + Application OAuthApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade) + + userId String + User User @relation(fields: [userId], references: [id], onDelete: Cascade) + + scopes APIKeyPermission[] + redirectUri String // Must match one from application + + // PKCE (Proof Key for Code Exchange) support + codeChallenge String? + codeChallengeMethod String? // "S256" or "plain" + + usedAt DateTime? // Set when code is consumed + + @@index([code]) + @@index([applicationId, userId]) + @@index([expiresAt]) // For cleanup +} + +// Access tokens (1 hour TTL) +model OAuthAccessToken { + id String @id @default(uuid()) + token String @unique // SHA256 hash of plaintext token + createdAt DateTime @default(now()) + expiresAt DateTime // Now + 1 hour + + applicationId String + Application OAuthApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade) + + userId String + User User @relation(fields: [userId], references: [id], onDelete: Cascade) + + scopes APIKeyPermission[] + + revokedAt DateTime? // Set when token is revoked + + @@index([token]) // For token lookup + @@index([userId, applicationId]) + @@index([expiresAt]) // For cleanup +} + +// Refresh tokens (30 days TTL) +model OAuthRefreshToken { + id String @id @default(uuid()) + token String @unique // SHA256 hash of plaintext token + createdAt DateTime @default(now()) + expiresAt DateTime // Now + 30 days + + applicationId String + Application OAuthApplication @relation(fields: [applicationId], references: [id], onDelete: Cascade) + + userId String + User User @relation(fields: [userId], references: [id], onDelete: Cascade) + + scopes APIKeyPermission[] + + revokedAt DateTime? // Set when token is revoked + + @@index([token]) // For token lookup + @@index([userId, applicationId]) + @@index([expiresAt]) // For cleanup +} diff --git a/autogpt_platform/backend/test/e2e_test_data.py b/autogpt_platform/backend/test/e2e_test_data.py index 013c8c11a7..943c506f5c 100644 --- a/autogpt_platform/backend/test/e2e_test_data.py +++ b/autogpt_platform/backend/test/e2e_test_data.py @@ -23,13 +23,13 @@ from typing import Any, Dict, List from faker import Faker -from backend.data.api_key import create_api_key +from backend.data.auth.api_key import create_api_key from backend.data.credit import get_user_credit_model from backend.data.db import prisma from backend.data.graph import Graph, Link, Node, create_graph +from backend.data.user import get_or_create_user # Import API functions from the backend -from backend.data.user import get_or_create_user from backend.server.v2.library.db import create_library_agent, create_preset from backend.server.v2.library.model import LibraryAgentPresetCreatable from backend.server.v2.store.db import create_store_submission, review_store_submission @@ -464,7 +464,7 @@ class TestDataCreator: api_keys = [] for user in self.users: - from backend.data.api_key import APIKeyPermission + from backend.data.auth.api_key import APIKeyPermission try: # Use the API function to create API key diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx b/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx new file mode 100644 index 0000000000..8093b75965 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx @@ -0,0 +1,296 @@ +"use client"; + +import { useState } from "react"; +import { useSearchParams } from "next/navigation"; +import { AuthCard } from "@/components/auth/AuthCard"; +import { Text } from "@/components/atoms/Text/Text"; +import { Button } from "@/components/atoms/Button/Button"; +import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; +import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { ImageIcon, SealCheckIcon } from "@phosphor-icons/react"; +import { + postOauthAuthorize, + useGetOauthGetOauthAppInfo, +} from "@/app/api/__generated__/endpoints/oauth/oauth"; +import type { APIKeyPermission } from "@/app/api/__generated__/models/aPIKeyPermission"; + +// Human-readable scope descriptions +const SCOPE_DESCRIPTIONS: { [key in APIKeyPermission]: string } = { + IDENTITY: "Read user ID, name, e-mail, and timezone", + EXECUTE_GRAPH: "Run your agents", + READ_GRAPH: "View your agents and their configurations", + EXECUTE_BLOCK: "Execute individual blocks", + READ_BLOCK: "View available blocks", + READ_STORE: "Access the Marketplace", + USE_TOOLS: "Use tools on your behalf", + MANAGE_INTEGRATIONS: "Set up new integrations", + READ_INTEGRATIONS: "View your connected integrations", + DELETE_INTEGRATIONS: "Remove connected integrations", +}; + +export default function AuthorizePage() { + const searchParams = useSearchParams(); + + // Extract OAuth parameters from URL + const clientID = searchParams.get("client_id"); + const redirectURI = searchParams.get("redirect_uri"); + const scope = searchParams.get("scope"); + const state = searchParams.get("state"); + const codeChallenge = searchParams.get("code_challenge"); + const codeChallengeMethod = + searchParams.get("code_challenge_method") || "S256"; + const responseType = searchParams.get("response_type") || "code"; + + // Parse requested scopes + const requestedScopes = scope?.split(" ").filter(Boolean) || []; + + // Fetch application info using generated hook + const { + data: appInfoResponse, + isLoading, + error, + refetch, + } = useGetOauthGetOauthAppInfo(clientID || "", { + query: { + enabled: !!clientID, + staleTime: Infinity, + refetchOnMount: false, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + }, + }); + + const appInfo = appInfoResponse?.status === 200 ? appInfoResponse.data : null; + + // Validate required parameters + const missingParams: string[] = []; + if (!clientID) missingParams.push("client_id"); + if (!redirectURI) missingParams.push("redirect_uri"); + if (!scope) missingParams.push("scope"); + if (!state) missingParams.push("state"); + if (!codeChallenge) missingParams.push("code_challenge"); + + const [isAuthorizing, setIsAuthorizing] = useState(false); + const [authorizeError, setAuthorizeError] = useState(null); + + async function handleApprove() { + setIsAuthorizing(true); + setAuthorizeError(null); + + try { + // Call the backend /oauth/authorize POST endpoint + // Returns JSON with redirect_url that we use to redirect the user + const response = await postOauthAuthorize({ + client_id: clientID!, + redirect_uri: redirectURI!, + scopes: requestedScopes, + state: state!, + response_type: responseType, + code_challenge: codeChallenge!, + code_challenge_method: codeChallengeMethod as "S256" | "plain", + }); + + if (response.status === 200 && response.data.redirect_url) { + window.location.href = response.data.redirect_url; + } else { + setAuthorizeError("Authorization failed: no redirect URL received"); + setIsAuthorizing(false); + } + } catch (err) { + console.error("Authorization error:", err); + setAuthorizeError( + err instanceof Error ? err.message : "Authorization failed", + ); + setIsAuthorizing(false); + } + } + + function handleDeny() { + // Redirect back to client with access_denied error + const params = new URLSearchParams({ + error: "access_denied", + error_description: "User denied access", + state: state || "", + }); + window.location.href = `${redirectURI}?${params.toString()}`; + } + + // Show error if missing required parameters + if (missingParams.length > 0) { + return ( +
+ + + +
+ ); + } + + // Show loading state + if (isLoading) { + return ( +
+ +
+ + + Loading application information... + +
+
+
+ ); + } + + // Show error if app not found + if (error || !appInfo) { + return ( +
+ + + {redirectURI && ( + + )} + +
+ ); + } + + // Validate that requested scopes are allowed by the app + const invalidScopes = requestedScopes.filter( + (s) => !appInfo.scopes.includes(s), + ); + + if (invalidScopes.length > 0) { + return ( +
+ + + + +
+ ); + } + + return ( +
+ +
+ {/* App info */} +
+ {/* App logo */} +
+ {appInfo.logo_url ? ( + // eslint-disable-next-line @next/next/no-img-element + {`${appInfo.name} + ) : ( + + )} +
+ + {appInfo.name} + + {appInfo.description && ( + + {appInfo.description} + + )} +
+ + {/* Permissions */} +
+ + This application is requesting permission to: + +
    + {requestedScopes.map((scopeKey) => ( +
  • + + + {SCOPE_DESCRIPTIONS[scopeKey as APIKeyPermission] || + scopeKey} + +
  • + ))} +
+
+ + {/* Error message */} + {authorizeError && ( + + )} + + {/* Action buttons */} +
+ + +
+ + {/* Warning */} + + By authorizing, you allow this application to access your AutoGPT + account with the permissions listed above. + +
+
+
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts index bff2fd0b68..13f8d988fe 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/callback/route.ts @@ -74,6 +74,9 @@ export async function GET(request: Request) { ); } + // Get redirect destination from 'next' query parameter + next = searchParams.get("next") || next; + const forwardedHost = request.headers.get("x-forwarded-host"); // original origin before load balancer const isLocalEnv = process.env.NODE_ENV === "development"; if (isLocalEnv) { diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx new file mode 100644 index 0000000000..5163c46d5b --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx @@ -0,0 +1,331 @@ +"use client"; + +import Image from "next/image"; +import Link from "next/link"; +import { useSearchParams } from "next/navigation"; +import { useState, useMemo, useRef } from "react"; +import { AuthCard } from "@/components/auth/AuthCard"; +import { Text } from "@/components/atoms/Text/Text"; +import { Button } from "@/components/atoms/Button/Button"; +import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; +import type { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, + CredentialsType, +} from "@/lib/autogpt-server-api"; +import { CheckIcon, CircleIcon } from "@phosphor-icons/react"; +import { useGetOauthGetOauthAppInfo } from "@/app/api/__generated__/endpoints/oauth/oauth"; +import { okData } from "@/app/api/helpers"; +import { OAuthApplicationPublicInfo } from "@/app/api/__generated__/models/oAuthApplicationPublicInfo"; + +// All credential types - we accept any type of credential +const ALL_CREDENTIAL_TYPES: CredentialsType[] = [ + "api_key", + "oauth2", + "user_password", + "host_scoped", +]; + +/** + * Provider configuration for the setup wizard. + * + * Query parameters: + * - `providers`: base64-encoded JSON array of { provider, scopes? } objects + * - `app_name`: (optional) Name of the requesting application + * - `redirect_uri`: Where to redirect after completion + * - `state`: Anti-CSRF token + * + * Example `providers` JSON: + * [ + * { "provider": "google", "scopes": ["https://www.googleapis.com/auth/gmail.readonly"] }, + * { "provider": "github", "scopes": ["repo"] } + * ] + * + * Example URL: + * /auth/integrations/setup-wizard?app_name=My%20App&providers=W3sicHJvdmlkZXIiOiJnb29nbGUifV0=&redirect_uri=... + */ +interface ProviderConfig { + provider: string; + scopes?: string[]; +} + +function createSchemaFromProviderConfig( + config: ProviderConfig, +): BlockIOCredentialsSubSchema { + return { + type: "object", + properties: {}, + credentials_provider: [config.provider], + credentials_types: ALL_CREDENTIAL_TYPES, + credentials_scopes: config.scopes, + discriminator: undefined, + discriminator_mapping: undefined, + discriminator_values: undefined, + }; +} + +function toDisplayName(provider: string): string { + // Convert snake_case or kebab-case to Title Case + return provider + .split(/[_-]/) + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(" "); +} + +function parseProvidersParam(providersParam: string): ProviderConfig[] { + try { + // Decode base64 and parse JSON + const decoded = atob(providersParam); + const parsed = JSON.parse(decoded); + + if (!Array.isArray(parsed)) { + console.warn("providers parameter is not an array"); + return []; + } + + return parsed.filter( + (item): item is ProviderConfig => + typeof item === "object" && + item !== null && + typeof item.provider === "string", + ); + } catch (error) { + console.warn("Failed to parse providers parameter:", error); + return []; + } +} + +export default function IntegrationSetupWizardPage() { + const searchParams = useSearchParams(); + + // Extract query parameters + // `providers` is a base64-encoded JSON array of { provider, scopes?: string[] } objects + const clientID = searchParams.get("client_id"); + const providersParam = searchParams.get("providers"); + const redirectURI = searchParams.get("redirect_uri"); + const state = searchParams.get("state"); + + const { data: appInfo } = useGetOauthGetOauthAppInfo(clientID || "", { + query: { enabled: !!clientID, select: okData }, + }); + + // Parse providers from base64-encoded JSON + const providerConfigs = useMemo(() => { + if (!providersParam) return []; + return parseProvidersParam(providersParam); + }, [providersParam]); + + // Track selected credentials for each provider + const [selectedCredentials, setSelectedCredentials] = useState< + Record + >({}); + + // Track if we've already redirected + const hasRedirectedRef = useRef(false); + + // Check if all providers have credentials + const isAllComplete = useMemo(() => { + if (providerConfigs.length === 0) return false; + return providerConfigs.every( + (config) => selectedCredentials[config.provider], + ); + }, [providerConfigs, selectedCredentials]); + + // Handle credential selection + const handleCredentialSelect = ( + provider: string, + credential?: CredentialsMetaInput, + ) => { + setSelectedCredentials((prev) => ({ + ...prev, + [provider]: credential, + })); + }; + + // Handle completion - redirect back to client + const handleComplete = () => { + if (!redirectURI || hasRedirectedRef.current) return; + hasRedirectedRef.current = true; + + const params = new URLSearchParams({ + success: "true", + }); + if (state) { + params.set("state", state); + } + + window.location.href = `${redirectURI}?${params.toString()}`; + }; + + // Handle cancel - redirect back to client with error + const handleCancel = () => { + if (!redirectURI || hasRedirectedRef.current) return; + hasRedirectedRef.current = true; + + const params = new URLSearchParams({ + error: "user_cancelled", + error_description: "User cancelled the integration setup", + }); + if (state) { + params.set("state", state); + } + + window.location.href = `${redirectURI}?${params.toString()}`; + }; + + // Validate required parameters + const missingParams: string[] = []; + if (!providersParam) missingParams.push("providers"); + if (!redirectURI) missingParams.push("redirect_uri"); + + if (missingParams.length > 0) { + return ( +
+ + + +
+ ); + } + + if (providerConfigs.length === 0) { + return ( +
+ + + + +
+ ); + } + + return ( +
+ +
+ + {appInfo ? ( + <> + {appInfo.name} is requesting you to connect the + following integrations to your AutoGPT account. + + ) : ( + "Please connect the following integrations to continue." + )} + + + {/* Provider credentials list */} +
+ {providerConfigs.map((config) => { + const schema = createSchemaFromProviderConfig(config); + const isSelected = !!selectedCredentials[config.provider]; + + return ( +
+
+
+ {`${config.provider} +
+ + {toDisplayName(config.provider)} + +
+ {isSelected ? ( + + ) : ( + + )} + {isSelected && ( + + Connected + + )} +
+ + + handleCredentialSelect(config.provider, credMeta) + } + showTitle={false} + className="mb-0" + /> +
+ ); + })} +
+ + {/* Action buttons */} +
+ + +
+ + {/* Link to integrations settings */} + + You can view and manage all your integrations in your{" "} + + integration settings + + . + +
+
+
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx index e63105c751..07350fb610 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx @@ -15,13 +15,14 @@ import { HostScopedCredentialsModal } from "./components/HotScopedCredentialsMod import { OAuthFlowWaitingModal } from "./components/OAuthWaitingModal/OAuthWaitingModal"; import { PasswordCredentialsModal } from "./components/PasswordCredentialsModal/PasswordCredentialsModal"; import { getCredentialDisplayName } from "./helpers"; -import { useCredentialsInputs } from "./useCredentialsInputs"; - -type UseCredentialsInputsReturn = ReturnType; +import { + CredentialsInputState, + useCredentialsInput, +} from "./useCredentialsInput"; function isLoaded( - data: UseCredentialsInputsReturn, -): data is Extract { + data: CredentialsInputState, +): data is Extract { return data.isLoading === false; } @@ -33,21 +34,23 @@ type Props = { onSelectCredentials: (newValue?: CredentialsMetaInput) => void; onLoaded?: (loaded: boolean) => void; readOnly?: boolean; + showTitle?: boolean; }; export function CredentialsInput({ schema, className, - selectedCredentials, - onSelectCredentials, + selectedCredentials: selectedCredential, + onSelectCredentials: onSelectCredential, siblingInputs, onLoaded, readOnly = false, + showTitle = true, }: Props) { - const hookData = useCredentialsInputs({ + const hookData = useCredentialsInput({ schema, - selectedCredentials, - onSelectCredentials, + selectedCredential, + onSelectCredential, siblingInputs, onLoaded, readOnly, @@ -89,12 +92,14 @@ export function CredentialsInput({ return (
-
- {displayName} credentials - {schema.description && ( - - )} -
+ {showTitle && ( +
+ {displayName} credentials + {schema.description && ( + + )} +
+ )} {hasCredentialsToShow ? ( <> @@ -103,7 +108,7 @@ export function CredentialsInput({ credentials={credentialsToShow} provider={provider} displayName={displayName} - selectedCredentials={selectedCredentials} + selectedCredentials={selectedCredential} onSelectCredential={handleCredentialSelect} readOnly={readOnly} /> @@ -164,7 +169,7 @@ export function CredentialsInput({ open={isAPICredentialsModalOpen} onClose={() => setAPICredentialsModalOpen(false)} onCredentialsCreate={(credsMeta) => { - onSelectCredentials(credsMeta); + onSelectCredential(credsMeta); setAPICredentialsModalOpen(false); }} siblingInputs={siblingInputs} @@ -183,7 +188,7 @@ export function CredentialsInput({ open={isUserPasswordCredentialsModalOpen} onClose={() => setUserPasswordCredentialsModalOpen(false)} onCredentialsCreate={(creds) => { - onSelectCredentials(creds); + onSelectCredential(creds); setUserPasswordCredentialsModalOpen(false); }} siblingInputs={siblingInputs} @@ -195,7 +200,7 @@ export function CredentialsInput({ open={isHostScopedCredentialsModalOpen} onClose={() => setHostScopedCredentialsModalOpen(false)} onCredentialsCreate={(creds) => { - onSelectCredentials(creds); + onSelectCredential(creds); setHostScopedCredentialsModalOpen(false); }} siblingInputs={siblingInputs} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInputs.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInput.ts similarity index 76% rename from autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInputs.ts rename to autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInput.ts index 460980c10b..6f5ca48126 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInputs.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/useCredentialsInput.ts @@ -5,32 +5,33 @@ import { BlockIOCredentialsSubSchema, CredentialsMetaInput, } from "@/lib/autogpt-server-api/types"; -import { CredentialsProvidersContext } from "@/providers/agent-credentials/credentials-provider"; import { useQueryClient } from "@tanstack/react-query"; -import { useContext, useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { getActionButtonText, OAUTH_TIMEOUT_MS, OAuthPopupResultMessage, } from "./helpers"; -type Args = { +export type CredentialsInputState = ReturnType; + +type Params = { schema: BlockIOCredentialsSubSchema; - selectedCredentials?: CredentialsMetaInput; - onSelectCredentials: (newValue?: CredentialsMetaInput) => void; + selectedCredential?: CredentialsMetaInput; + onSelectCredential: (newValue?: CredentialsMetaInput) => void; siblingInputs?: Record; onLoaded?: (loaded: boolean) => void; readOnly?: boolean; }; -export function useCredentialsInputs({ +export function useCredentialsInput({ schema, - selectedCredentials, - onSelectCredentials, + selectedCredential, + onSelectCredential, siblingInputs, onLoaded, readOnly = false, -}: Args) { +}: Params) { const [isAPICredentialsModalOpen, setAPICredentialsModalOpen] = useState(false); const [ @@ -51,7 +52,6 @@ export function useCredentialsInputs({ const api = useBackendAPI(); const queryClient = useQueryClient(); const credentials = useCredentials(schema, siblingInputs); - const allProviders = useContext(CredentialsProvidersContext); const deleteCredentialsMutation = useDeleteV1DeleteCredentials({ mutation: { @@ -63,57 +63,49 @@ export function useCredentialsInputs({ queryKey: [`/api/integrations/${credentials?.provider}/credentials`], }); setCredentialToDelete(null); - if (selectedCredentials?.id === credentialToDelete?.id) { - onSelectCredentials(undefined); + if (selectedCredential?.id === credentialToDelete?.id) { + onSelectCredential(undefined); } }, }, }); - const rawProvider = credentials - ? allProviders?.[credentials.provider as keyof typeof allProviders] - : null; - useEffect(() => { if (onLoaded) { onLoaded(Boolean(credentials && credentials.isLoading === false)); } }, [credentials, onLoaded]); + // Unselect credential if not available useEffect(() => { if (readOnly) return; if (!credentials || !("savedCredentials" in credentials)) return; if ( - selectedCredentials && - !credentials.savedCredentials.some((c) => c.id === selectedCredentials.id) + selectedCredential && + !credentials.savedCredentials.some((c) => c.id === selectedCredential.id) ) { - onSelectCredentials(undefined); + onSelectCredential(undefined); } - }, [credentials, selectedCredentials, onSelectCredentials, readOnly]); + }, [credentials, selectedCredential, onSelectCredential, readOnly]); - const { singleCredential } = useMemo(() => { + // The available credential, if there is only one + const singleCredential = useMemo(() => { if (!credentials || !("savedCredentials" in credentials)) { - return { - singleCredential: null, - }; + return null; } - const single = - credentials.savedCredentials.length === 1 - ? credentials.savedCredentials[0] - : null; - - return { - singleCredential: single, - }; + return credentials.savedCredentials.length === 1 + ? credentials.savedCredentials[0] + : null; }, [credentials]); + // Auto-select the one available credential useEffect(() => { if (readOnly) return; - if (singleCredential && !selectedCredentials) { - onSelectCredentials(singleCredential); + if (singleCredential && !selectedCredential) { + onSelectCredential(singleCredential); } - }, [singleCredential, selectedCredentials, onSelectCredentials, readOnly]); + }, [singleCredential, selectedCredential, onSelectCredential, readOnly]); if ( !credentials || @@ -136,25 +128,6 @@ export function useCredentialsInputs({ oAuthCallback, } = credentials; - const allSavedCredentials = rawProvider?.savedCredentials || savedCredentials; - - const credentialsToShow = (() => { - const creds = [...allSavedCredentials]; - if ( - !readOnly && - selectedCredentials && - !creds.some((c) => c.id === selectedCredentials.id) - ) { - creds.push({ - id: selectedCredentials.id, - type: selectedCredentials.type, - title: selectedCredentials.title || "Selected credential", - provider: provider, - } as any); - } - return creds; - })(); - async function handleOAuthLogin() { setOAuthError(null); const { login_url, state_token } = await api.oAuthLogin( @@ -207,7 +180,31 @@ export function useCredentialsInputs({ console.debug("Processing OAuth callback"); const credentials = await oAuthCallback(e.data.code, e.data.state); console.debug("OAuth callback processed successfully"); - onSelectCredentials({ + + // Check if the credential's scopes match the required scopes + const requiredScopes = schema.credentials_scopes; + if (requiredScopes && requiredScopes.length > 0) { + const grantedScopes = new Set(credentials.scopes || []); + const hasAllRequiredScopes = new Set(requiredScopes).isSubsetOf( + grantedScopes, + ); + + if (!hasAllRequiredScopes) { + console.error( + `Newly created OAuth credential for ${providerName} has insufficient scopes. Required:`, + requiredScopes, + "Granted:", + credentials.scopes, + ); + setOAuthError( + "Connection failed: the granted permissions don't match what's required. " + + "Please contact the application administrator.", + ); + return; + } + } + + onSelectCredential({ id: credentials.id, type: "oauth2", title: credentials.title, @@ -253,9 +250,9 @@ export function useCredentialsInputs({ } function handleCredentialSelect(credentialId: string) { - const selectedCreds = credentialsToShow.find((c) => c.id === credentialId); + const selectedCreds = savedCredentials.find((c) => c.id === credentialId); if (selectedCreds) { - onSelectCredentials({ + onSelectCredential({ id: selectedCreds.id, type: selectedCreds.type, provider: provider, @@ -285,8 +282,8 @@ export function useCredentialsInputs({ supportsOAuth2, supportsUserPassword, supportsHostScoped, - credentialsToShow, - selectedCredentials, + credentialsToShow: savedCredentials, + selectedCredential, oAuthError, isAPICredentialsModalOpen, isUserPasswordCredentialsModalOpen, @@ -300,7 +297,7 @@ export function useCredentialsInputs({ supportsApiKey, supportsUserPassword, supportsHostScoped, - credentialsToShow.length > 0, + savedCredentials.length > 0, ), setAPICredentialsModalOpen, setUserPasswordCredentialsModalOpen, @@ -311,7 +308,7 @@ export function useCredentialsInputs({ handleDeleteCredential, handleDeleteConfirm, handleOAuthLogin, - onSelectCredentials, + onSelectCredential, schema, siblingInputs, }; diff --git a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx index 3f06e7f429..b670be5127 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/login/page.tsx @@ -11,8 +11,16 @@ import { environment } from "@/services/environment"; import { LoadingLogin } from "./components/LoadingLogin"; import { useLoginPage } from "./useLoginPage"; import { MobileWarningBanner } from "@/components/auth/MobileWarningBanner"; +import { useSearchParams } from "next/navigation"; export default function LoginPage() { + const searchParams = useSearchParams(); + const nextUrl = searchParams.get("next"); + // Preserve next parameter when switching between login/signup + const signupHref = nextUrl + ? `/signup?next=${encodeURIComponent(nextUrl)}` + : "/signup"; + const { user, form, @@ -108,7 +116,7 @@ export default function LoginPage() { diff --git a/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts index a1e8b5a92c..656e1febc2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/login/useLoginPage.ts @@ -3,7 +3,7 @@ import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { environment } from "@/services/environment"; import { loginFormSchema, LoginProvider } from "@/types/auth"; import { zodResolver } from "@hookform/resolvers/zod"; -import { useRouter } from "next/navigation"; +import { useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import z from "zod"; @@ -13,6 +13,7 @@ export function useLoginPage() { const { supabase, user, isUserLoading, isLoggedIn } = useSupabase(); const [feedback, setFeedback] = useState(null); const router = useRouter(); + const searchParams = useSearchParams(); const { toast } = useToast(); const [isLoading, setIsLoading] = useState(false); const [isLoggingIn, setIsLoggingIn] = useState(false); @@ -20,11 +21,14 @@ export function useLoginPage() { const [showNotAllowedModal, setShowNotAllowedModal] = useState(false); const isCloudEnv = environment.isCloud(); + // Get redirect destination from 'next' query parameter + const nextUrl = searchParams.get("next"); + useEffect(() => { if (isLoggedIn && !isLoggingIn) { - router.push("/marketplace"); + router.push(nextUrl || "/marketplace"); } - }, [isLoggedIn, isLoggingIn]); + }, [isLoggedIn, isLoggingIn, nextUrl, router]); const form = useForm>({ resolver: zodResolver(loginFormSchema), @@ -39,10 +43,16 @@ export function useLoginPage() { setIsLoggingIn(true); try { + // Include next URL in OAuth flow if present + const callbackUrl = nextUrl + ? `/auth/callback?next=${encodeURIComponent(nextUrl)}` + : `/auth/callback`; + const fullCallbackUrl = `${window.location.origin}${callbackUrl}`; + const response = await fetch("/api/auth/provider", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ provider }), + body: JSON.stringify({ provider, redirectTo: fullCallbackUrl }), }); if (!response.ok) { @@ -83,7 +93,9 @@ export function useLoginPage() { throw new Error(result.error || "Login failed"); } - if (result.onboarding) { + if (nextUrl) { + router.replace(nextUrl); + } else if (result.onboarding) { router.replace("/onboarding"); } else { router.replace("/marketplace"); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeySection/APIKeySection.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/APIKeySection.tsx similarity index 100% rename from autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeySection/APIKeySection.tsx rename to autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/APIKeySection.tsx diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeySection/useAPISection.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts similarity index 100% rename from autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeySection/useAPISection.tsx rename to autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeysModals/APIKeysModals.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeysModals/APIKeysModals.tsx similarity index 100% rename from autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeysModals/APIKeysModals.tsx rename to autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeysModals/APIKeysModals.tsx diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeysModals/useAPIkeysModals.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeysModals/useAPIkeysModals.ts similarity index 100% rename from autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/components/APIKeysModals/useAPIkeysModals.tsx rename to autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeysModals/useAPIkeysModals.ts diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/page.tsx similarity index 94% rename from autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx rename to autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/page.tsx index ca66f0fb85..aedc3cc60c 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api_keys/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/page.tsx @@ -1,5 +1,5 @@ import { Metadata } from "next/types"; -import { APIKeysSection } from "@/app/(platform)/profile/(user)/api_keys/components/APIKeySection/APIKeySection"; +import { APIKeysSection } from "@/app/(platform)/profile/(user)/api-keys/components/APIKeySection/APIKeySection"; import { Card, CardContent, diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/layout.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/layout.tsx index 800028a49f..ca0e846557 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/layout.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/layout.tsx @@ -3,13 +3,14 @@ import * as React from "react"; import { Sidebar } from "@/components/__legacy__/Sidebar"; import { - IconDashboardLayout, - IconIntegrations, - IconProfile, - IconSliders, - IconCoin, -} from "@/components/__legacy__/ui/icons"; -import { KeyIcon } from "lucide-react"; + AppWindowIcon, + CoinsIcon, + KeyIcon, + PlugsIcon, + SlidersHorizontalIcon, + StorefrontIcon, + UserCircleIcon, +} from "@phosphor-icons/react"; import { useGetFlag, Flag } from "@/services/feature-flags/use-get-flag"; export default function Layout({ children }: { children: React.ReactNode }) { @@ -18,39 +19,44 @@ export default function Layout({ children }: { children: React.ReactNode }) { const sidebarLinkGroups = [ { links: [ + { + text: "Profile", + href: "/profile", + icon: , + }, { text: "Creator Dashboard", href: "/profile/dashboard", - icon: , + icon: , }, - ...(isPaymentEnabled + ...(isPaymentEnabled || true ? [ { text: "Billing", href: "/profile/credits", - icon: , + icon: , }, ] : []), { text: "Integrations", href: "/profile/integrations", - icon: , - }, - { - text: "API Keys", - href: "/profile/api_keys", - icon: , - }, - { - text: "Profile", - href: "/profile", - icon: , + icon: , }, { text: "Settings", href: "/profile/settings", - icon: , + icon: , + }, + { + text: "API Keys", + href: "/profile/api-keys", + icon: , + }, + { + text: "OAuth Apps", + href: "/profile/oauth-apps", + icon: , }, ], }, diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/OAuthAppsSection.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/OAuthAppsSection.tsx new file mode 100644 index 0000000000..a864199348 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/OAuthAppsSection.tsx @@ -0,0 +1,147 @@ +"use client"; + +import { useRef } from "react"; +import { UploadIcon, ImageIcon, PowerIcon } from "@phosphor-icons/react"; +import { Button } from "@/components/atoms/Button/Button"; +import { Badge } from "@/components/atoms/Badge/Badge"; +import { useOAuthApps } from "./useOAuthApps"; +import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; + +export function OAuthAppsSection() { + const { + oauthApps, + isLoading, + updatingAppId, + uploadingAppId, + handleToggleStatus, + handleUploadLogo, + } = useOAuthApps(); + + const fileInputRefs = useRef<{ [key: string]: HTMLInputElement | null }>({}); + + const handleFileChange = ( + appId: string, + event: React.ChangeEvent, + ) => { + const file = event.target.files?.[0]; + if (file) { + handleUploadLogo(appId, file); + } + // Reset the input so the same file can be selected again + event.target.value = ""; + }; + + if (isLoading) { + return ( +
+ +
+ ); + } + + if (oauthApps.length === 0) { + return ( +
+

You don't have any OAuth applications.

+

+ OAuth applications can currently not be registered + via the API. Contact the system administrator to request an OAuth app + registration. +

+
+ ); + } + + return ( +
+ {oauthApps.map((app) => ( +
+ {/* Header: Logo, Name, Status */} +
+
+ {app.logo_url ? ( + // eslint-disable-next-line @next/next/no-img-element + {`${app.name} + ) : ( + + )} +
+
+
+

{app.name}

+ + {app.is_active ? "Active" : "Disabled"} + +
+ {app.description && ( +

+ {app.description} +

+ )} +
+
+ + {/* Client ID */} +
+ + Client ID + + + {app.client_id} + +
+ + {/* Footer: Created date and Actions */} +
+ + Created {new Date(app.created_at).toLocaleDateString()} + +
+ + { + fileInputRefs.current[app.id] = el; + }} + onChange={(e) => handleFileChange(app.id, e)} + accept="image/jpeg,image/png,image/webp" + className="hidden" + /> + +
+
+
+ ))} +
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts new file mode 100644 index 0000000000..5b5afc5783 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts @@ -0,0 +1,110 @@ +"use client"; + +import { useState } from "react"; +import { + useGetOauthListMyOauthApps, + usePatchOauthUpdateAppStatus, + usePostOauthUploadAppLogo, + getGetOauthListMyOauthAppsQueryKey, +} from "@/app/api/__generated__/endpoints/oauth/oauth"; +import { OAuthApplicationInfo } from "@/app/api/__generated__/models/oAuthApplicationInfo"; +import { okData } from "@/app/api/helpers"; +import { useToast } from "@/components/molecules/Toast/use-toast"; +import { getQueryClient } from "@/lib/react-query/queryClient"; + +export const useOAuthApps = () => { + const queryClient = getQueryClient(); + const { toast } = useToast(); + const [updatingAppId, setUpdatingAppId] = useState(null); + const [uploadingAppId, setUploadingAppId] = useState(null); + + const { data: oauthAppsResponse, isLoading } = useGetOauthListMyOauthApps({ + query: { select: okData }, + }); + + const { mutateAsync: updateStatus } = usePatchOauthUpdateAppStatus({ + mutation: { + onSettled: () => { + return queryClient.invalidateQueries({ + queryKey: getGetOauthListMyOauthAppsQueryKey(), + }); + }, + }, + }); + + const { mutateAsync: uploadLogo } = usePostOauthUploadAppLogo({ + mutation: { + onSettled: () => { + return queryClient.invalidateQueries({ + queryKey: getGetOauthListMyOauthAppsQueryKey(), + }); + }, + }, + }); + + const handleToggleStatus = async (appId: string, currentStatus: boolean) => { + try { + setUpdatingAppId(appId); + const result = await updateStatus({ + appId, + data: { is_active: !currentStatus }, + }); + + if (result.status === 200) { + toast({ + title: "Success", + description: `Application ${result.data.is_active ? "enabled" : "disabled"} successfully`, + }); + } else { + throw new Error("Failed to update status"); + } + } catch { + toast({ + title: "Error", + description: "Failed to update application status", + variant: "destructive", + }); + } finally { + setUpdatingAppId(null); + } + }; + + const handleUploadLogo = async (appId: string, file: File) => { + try { + setUploadingAppId(appId); + const result = await uploadLogo({ + appId, + data: { file }, + }); + + if (result.status === 200) { + toast({ + title: "Success", + description: "Logo uploaded successfully", + }); + } else { + throw new Error("Failed to upload logo"); + } + } catch (error) { + console.error("Failed to upload logo:", error); + const errorMessage = + error instanceof Error ? error.message : "Failed to upload logo"; + toast({ + title: "Error", + description: errorMessage, + variant: "destructive", + }); + } finally { + setUploadingAppId(null); + } + }; + + return { + oauthApps: oauthAppsResponse ?? [], + isLoading, + updatingAppId, + uploadingAppId, + handleToggleStatus, + handleUploadLogo, + }; +}; diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/page.tsx new file mode 100644 index 0000000000..4251bb954e --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/page.tsx @@ -0,0 +1,21 @@ +import { Metadata } from "next/types"; +import { Text } from "@/components/atoms/Text/Text"; +import { OAuthAppsSection } from "./components/OAuthAppsSection"; + +export const metadata: Metadata = { title: "OAuth Apps - AutoGPT Platform" }; + +const OAuthAppsPage = () => { + return ( +
+
+ OAuth Applications + + Manage your OAuth applications that use the AutoGPT Platform API + +
+ +
+ ); +}; + +export default OAuthAppsPage; diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx index 53c47eeba7..b565699426 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/signup/page.tsx @@ -21,8 +21,16 @@ import { WarningOctagonIcon } from "@phosphor-icons/react/dist/ssr"; import { LoadingSignup } from "./components/LoadingSignup"; import { useSignupPage } from "./useSignupPage"; import { MobileWarningBanner } from "@/components/auth/MobileWarningBanner"; +import { useSearchParams } from "next/navigation"; export default function SignupPage() { + const searchParams = useSearchParams(); + const nextUrl = searchParams.get("next"); + // Preserve next parameter when switching between login/signup + const loginHref = nextUrl + ? `/login?next=${encodeURIComponent(nextUrl)}` + : "/login"; + const { form, feedback, @@ -186,7 +194,7 @@ export default function SignupPage() { diff --git a/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts b/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts index 23ee8fb57c..e6d7c68aef 100644 --- a/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/signup/useSignupPage.ts @@ -3,7 +3,7 @@ import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { environment } from "@/services/environment"; import { LoginProvider, signupFormSchema } from "@/types/auth"; import { zodResolver } from "@hookform/resolvers/zod"; -import { useRouter } from "next/navigation"; +import { useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import z from "zod"; @@ -14,17 +14,21 @@ export function useSignupPage() { const [feedback, setFeedback] = useState(null); const { toast } = useToast(); const router = useRouter(); + const searchParams = useSearchParams(); const [isLoading, setIsLoading] = useState(false); const [isSigningUp, setIsSigningUp] = useState(false); const [isGoogleLoading, setIsGoogleLoading] = useState(false); const [showNotAllowedModal, setShowNotAllowedModal] = useState(false); const isCloudEnv = environment.isCloud(); + // Get redirect destination from 'next' query parameter + const nextUrl = searchParams.get("next"); + useEffect(() => { if (isLoggedIn && !isSigningUp) { - router.push("/marketplace"); + router.push(nextUrl || "/marketplace"); } - }, [isLoggedIn, isSigningUp]); + }, [isLoggedIn, isSigningUp, nextUrl, router]); const form = useForm>({ resolver: zodResolver(signupFormSchema), @@ -41,10 +45,16 @@ export function useSignupPage() { setIsSigningUp(true); try { + // Include next URL in OAuth flow if present + const callbackUrl = nextUrl + ? `/auth/callback?next=${encodeURIComponent(nextUrl)}` + : `/auth/callback`; + const fullCallbackUrl = `${window.location.origin}${callbackUrl}`; + const response = await fetch("/api/auth/provider", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ provider }), + body: JSON.stringify({ provider, redirectTo: fullCallbackUrl }), }); if (!response.ok) { @@ -118,8 +128,9 @@ export function useSignupPage() { return; } - const next = result.next || "/"; - if (next) router.replace(next); + // Prefer the URL's next parameter, then result.next (for onboarding), then default + const redirectTo = nextUrl || result.next || "/"; + router.replace(redirectTo); } catch (error) { setIsLoading(false); setIsSigningUp(false); diff --git a/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts b/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts index 0a31eb6942..315b68ab87 100644 --- a/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts +++ b/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts @@ -113,6 +113,19 @@ export const customMutator = async < body: data, }); + // Check if response is a redirect (3xx) and redirect is allowed + const allowRedirect = requestOptions.redirect !== "error"; + const isRedirect = response.status >= 300 && response.status < 400; + + // For redirect responses, return early without trying to parse body + if (allowRedirect && isRedirect) { + return { + status: response.status, + data: null, + headers: response.headers, + } as T; + } + if (!response.ok) { let responseData: any = null; try { diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index f8c5563476..3556e2f5c7 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -5370,6 +5370,369 @@ } } }, + "/api/oauth/app/{client_id}": { + "get": { + "tags": ["oauth"], + "summary": "Get Oauth App Info", + "description": "Get public information about an OAuth application.\n\nThis endpoint is used by the consent screen to display application details\nto the user before they authorize access.\n\nReturns:\n- name: Application name\n- description: Application description (if provided)\n- scopes: List of scopes the application is allowed to request", + "operationId": "getOauthGetOauthAppInfo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "client_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Client Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationPublicInfo" + } + } + } + }, + "404": { "description": "Application not found or disabled" }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + } + } + }, + "/api/oauth/authorize": { + "post": { + "tags": ["oauth"], + "summary": "Authorize", + "description": "OAuth 2.0 Authorization Endpoint\n\nUser must be logged in (authenticated with Supabase JWT).\nThis endpoint creates an authorization code and returns a redirect URL.\n\nPKCE (Proof Key for Code Exchange) is REQUIRED for all authorization requests.\n\nThe frontend consent screen should call this endpoint after the user approves,\nthen redirect the user to the returned `redirect_url`.\n\nRequest Body:\n- client_id: The OAuth application's client ID\n- redirect_uri: Where to redirect after authorization (must match registered URI)\n- scopes: List of permissions (e.g., \"EXECUTE_GRAPH READ_GRAPH\")\n- state: Anti-CSRF token provided by client (will be returned in redirect)\n- response_type: Must be \"code\" (for authorization code flow)\n- code_challenge: PKCE code challenge (required)\n- code_challenge_method: \"S256\" (recommended) or \"plain\"\n\nReturns:\n- redirect_url: The URL to redirect the user to (includes authorization code)\n\nError cases return a redirect_url with error parameters, or raise HTTPException\nfor critical errors (like invalid redirect_uri).", + "operationId": "postOauthAuthorize", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AuthorizeRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AuthorizeResponse" } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/oauth/token": { + "post": { + "tags": ["oauth"], + "summary": "Token", + "description": "OAuth 2.0 Token Endpoint\n\nExchanges authorization code or refresh token for access token.\n\nGrant Types:\n1. authorization_code: Exchange authorization code for tokens\n - Required: grant_type, code, redirect_uri, client_id, client_secret\n - Optional: code_verifier (required if PKCE was used)\n\n2. refresh_token: Exchange refresh token for new access token\n - Required: grant_type, refresh_token, client_id, client_secret\n\nReturns:\n- access_token: Bearer token for API access (1 hour TTL)\n- token_type: \"Bearer\"\n- expires_in: Seconds until access token expires\n- refresh_token: Token for refreshing access (30 days TTL)\n- scopes: List of scopes", + "operationId": "postOauthToken", + "requestBody": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/TokenRequestByCode" }, + { "$ref": "#/components/schemas/TokenRequestByRefreshToken" } + ], + "title": "Request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/TokenResponse" } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/introspect": { + "post": { + "tags": ["oauth"], + "summary": "Introspect", + "description": "OAuth 2.0 Token Introspection Endpoint (RFC 7662)\n\nAllows clients to check if a token is valid and get its metadata.\n\nReturns:\n- active: Whether the token is currently active\n- scopes: List of authorized scopes (if active)\n- client_id: The client the token was issued to (if active)\n- user_id: The user the token represents (if active)\n- exp: Expiration timestamp (if active)\n- token_type: \"access_token\" or \"refresh_token\" (if active)", + "operationId": "postOauthIntrospect", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postOauthIntrospect" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenIntrospectionResult" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/revoke": { + "post": { + "tags": ["oauth"], + "summary": "Revoke", + "description": "OAuth 2.0 Token Revocation Endpoint (RFC 7009)\n\nAllows clients to revoke an access or refresh token.\n\nNote: Revoking a refresh token does NOT revoke associated access tokens.\nRevoking an access token does NOT revoke the associated refresh token.", + "operationId": "postOauthRevoke", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Body_postOauthRevoke" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/apps/mine": { + "get": { + "tags": ["oauth"], + "summary": "List My Oauth Apps", + "description": "List all OAuth applications owned by the current user.\n\nReturns a list of OAuth applications with their details including:\n- id, name, description, logo_url\n- client_id (public identifier)\n- redirect_uris, grant_types, scopes\n- is_active status\n- created_at, updated_at timestamps\n\nNote: client_secret is never returned for security reasons.", + "operationId": "getOauthListMyOauthApps", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + }, + "type": "array", + "title": "Response Getoauthlistmyoauthapps" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/oauth/apps/{app_id}/status": { + "patch": { + "tags": ["oauth"], + "summary": "Update App Status", + "description": "Enable or disable an OAuth application.\n\nOnly the application owner can update the status.\nWhen disabled, the application cannot be used for new authorizations\nand existing access tokens will fail validation.\n\nReturns the updated application info.", + "operationId": "patchOauthUpdateAppStatus", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_patchOauthUpdateAppStatus" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + } + } + }, + "/api/oauth/apps/{app_id}/logo": { + "patch": { + "tags": ["oauth"], + "summary": "Update App Logo", + "description": "Update the logo URL for an OAuth application.\n\nOnly the application owner can update the logo.\nThe logo should be uploaded first using the media upload endpoint,\nthen this endpoint is called with the resulting URL.\n\nLogo requirements:\n- Must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n\nReturns the updated application info.", + "operationId": "patchOauthUpdateAppLogo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateAppLogoRequest" } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + } + } + }, + "/api/oauth/apps/{app_id}/logo/upload": { + "post": { + "tags": ["oauth"], + "summary": "Upload App Logo", + "description": "Upload a logo image for an OAuth application.\n\nRequirements:\n- Image must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n- Allowed formats: JPEG, PNG, WebP\n- Maximum file size: 3MB\n\nThe image is uploaded to cloud storage and the app's logoUrl is updated.\nReturns the updated application info.", + "operationId": "postOauthUploadAppLogo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_postOauthUploadAppLogo" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + } + } + }, "/health": { "get": { "tags": ["health"], @@ -5418,29 +5781,30 @@ }, "APIKeyInfo": { "properties": { - "id": { "type": "string", "title": "Id" }, - "name": { "type": "string", "title": "Name" }, - "head": { - "type": "string", - "title": "Head", - "description": "The first 8 characters of the key" - }, - "tail": { - "type": "string", - "title": "Tail", - "description": "The last 8 characters of the key" - }, - "status": { "$ref": "#/components/schemas/APIKeyStatus" }, - "permissions": { + "user_id": { "type": "string", "title": "User Id" }, + "scopes": { "items": { "$ref": "#/components/schemas/APIKeyPermission" }, "type": "array", - "title": "Permissions" + "title": "Scopes" + }, + "type": { + "type": "string", + "const": "api_key", + "title": "Type", + "default": "api_key" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, + "expires_at": { + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "null" } + ], + "title": "Expires At" + }, "last_used_at": { "anyOf": [ { "type": "string", "format": "date-time" }, @@ -5455,28 +5819,41 @@ ], "title": "Revoked At" }, + "id": { "type": "string", "title": "Id" }, + "name": { "type": "string", "title": "Name" }, + "head": { + "type": "string", + "title": "Head", + "description": "The first 8 characters of the key" + }, + "tail": { + "type": "string", + "title": "Tail", + "description": "The last 8 characters of the key" + }, + "status": { "$ref": "#/components/schemas/APIKeyStatus" }, "description": { "anyOf": [{ "type": "string" }, { "type": "null" }], "title": "Description" - }, - "user_id": { "type": "string", "title": "User Id" } + } }, "type": "object", "required": [ + "user_id", + "scopes", + "created_at", "id", "name", "head", "tail", - "status", - "permissions", - "created_at", - "user_id" + "status" ], "title": "APIKeyInfo" }, "APIKeyPermission": { "type": "string", "enum": [ + "IDENTITY", "EXECUTE_GRAPH", "READ_GRAPH", "EXECUTE_BLOCK", @@ -5614,6 +5991,72 @@ "required": ["answer", "documents", "success"], "title": "ApiResponse" }, + "AuthorizeRequest": { + "properties": { + "client_id": { + "type": "string", + "title": "Client Id", + "description": "Client identifier" + }, + "redirect_uri": { + "type": "string", + "title": "Redirect Uri", + "description": "Redirect URI" + }, + "scopes": { + "items": { "type": "string" }, + "type": "array", + "title": "Scopes", + "description": "List of scopes" + }, + "state": { + "type": "string", + "title": "State", + "description": "Anti-CSRF token from client" + }, + "response_type": { + "type": "string", + "title": "Response Type", + "description": "Must be 'code' for authorization code flow", + "default": "code" + }, + "code_challenge": { + "type": "string", + "title": "Code Challenge", + "description": "PKCE code challenge (required)" + }, + "code_challenge_method": { + "type": "string", + "enum": ["S256", "plain"], + "title": "Code Challenge Method", + "description": "PKCE code challenge method (S256 recommended)", + "default": "S256" + } + }, + "type": "object", + "required": [ + "client_id", + "redirect_uri", + "scopes", + "state", + "code_challenge" + ], + "title": "AuthorizeRequest", + "description": "OAuth 2.0 authorization request" + }, + "AuthorizeResponse": { + "properties": { + "redirect_url": { + "type": "string", + "title": "Redirect Url", + "description": "URL to redirect the user to" + } + }, + "type": "object", + "required": ["redirect_url"], + "title": "AuthorizeResponse", + "description": "OAuth 2.0 authorization response with redirect URL" + }, "AutoTopUpConfig": { "properties": { "amount": { "type": "integer", "title": "Amount" }, @@ -5863,6 +6306,86 @@ "required": ["blocks", "pagination"], "title": "BlockResponse" }, + "Body_patchOauthUpdateAppStatus": { + "properties": { + "is_active": { + "type": "boolean", + "title": "Is Active", + "description": "Whether the app should be active" + } + }, + "type": "object", + "required": ["is_active"], + "title": "Body_patchOauthUpdateAppStatus" + }, + "Body_postOauthIntrospect": { + "properties": { + "token": { + "type": "string", + "title": "Token", + "description": "Token to introspect" + }, + "token_type_hint": { + "anyOf": [ + { "type": "string", "enum": ["access_token", "refresh_token"] }, + { "type": "null" } + ], + "title": "Token Type Hint", + "description": "Hint about token type ('access_token' or 'refresh_token')" + }, + "client_id": { + "type": "string", + "title": "Client Id", + "description": "Client identifier" + }, + "client_secret": { + "type": "string", + "title": "Client Secret", + "description": "Client secret" + } + }, + "type": "object", + "required": ["token", "client_id", "client_secret"], + "title": "Body_postOauthIntrospect" + }, + "Body_postOauthRevoke": { + "properties": { + "token": { + "type": "string", + "title": "Token", + "description": "Token to revoke" + }, + "token_type_hint": { + "anyOf": [ + { "type": "string", "enum": ["access_token", "refresh_token"] }, + { "type": "null" } + ], + "title": "Token Type Hint", + "description": "Hint about token type ('access_token' or 'refresh_token')" + }, + "client_id": { + "type": "string", + "title": "Client Id", + "description": "Client identifier" + }, + "client_secret": { + "type": "string", + "title": "Client Secret", + "description": "Client secret" + } + }, + "type": "object", + "required": ["token", "client_id", "client_secret"], + "title": "Body_postOauthRevoke" + }, + "Body_postOauthUploadAppLogo": { + "properties": { + "file": { "type": "string", "format": "binary", "title": "File" } + }, + "type": "object", + "required": ["file"], + "title": "Body_postOauthUploadAppLogo" + }, "Body_postV1Exchange_oauth_code_for_tokens": { "properties": { "code": { @@ -7855,6 +8378,85 @@ "required": ["provider", "access_token", "scopes"], "title": "OAuth2Credentials" }, + "OAuthApplicationInfo": { + "properties": { + "id": { "type": "string", "title": "Id" }, + "name": { "type": "string", "title": "Name" }, + "description": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Description" + }, + "logo_url": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Logo Url" + }, + "client_id": { "type": "string", "title": "Client Id" }, + "redirect_uris": { + "items": { "type": "string" }, + "type": "array", + "title": "Redirect Uris" + }, + "grant_types": { + "items": { "type": "string" }, + "type": "array", + "title": "Grant Types" + }, + "scopes": { + "items": { "$ref": "#/components/schemas/APIKeyPermission" }, + "type": "array", + "title": "Scopes" + }, + "owner_id": { "type": "string", "title": "Owner Id" }, + "is_active": { "type": "boolean", "title": "Is Active" }, + "created_at": { + "type": "string", + "format": "date-time", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "title": "Updated At" + } + }, + "type": "object", + "required": [ + "id", + "name", + "client_id", + "redirect_uris", + "grant_types", + "scopes", + "owner_id", + "is_active", + "created_at", + "updated_at" + ], + "title": "OAuthApplicationInfo", + "description": "OAuth application information (without client secret hash)" + }, + "OAuthApplicationPublicInfo": { + "properties": { + "name": { "type": "string", "title": "Name" }, + "description": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Description" + }, + "logo_url": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Logo Url" + }, + "scopes": { + "items": { "type": "string" }, + "type": "array", + "title": "Scopes" + } + }, + "type": "object", + "required": ["name", "scopes"], + "title": "OAuthApplicationPublicInfo", + "description": "Public information about an OAuth application (for consent screen)" + }, "OnboardingStep": { "type": "string", "enum": [ @@ -9892,6 +10494,134 @@ "required": ["timezone"], "title": "TimezoneResponse" }, + "TokenIntrospectionResult": { + "properties": { + "active": { "type": "boolean", "title": "Active" }, + "scopes": { + "anyOf": [ + { "items": { "type": "string" }, "type": "array" }, + { "type": "null" } + ], + "title": "Scopes" + }, + "client_id": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Client Id" + }, + "user_id": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "User Id" + }, + "exp": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Exp" + }, + "token_type": { + "anyOf": [ + { "type": "string", "enum": ["access_token", "refresh_token"] }, + { "type": "null" } + ], + "title": "Token Type" + } + }, + "type": "object", + "required": ["active"], + "title": "TokenIntrospectionResult", + "description": "Result of token introspection (RFC 7662)" + }, + "TokenRequestByCode": { + "properties": { + "grant_type": { + "type": "string", + "const": "authorization_code", + "title": "Grant Type" + }, + "code": { + "type": "string", + "title": "Code", + "description": "Authorization code" + }, + "redirect_uri": { + "type": "string", + "title": "Redirect Uri", + "description": "Redirect URI (must match authorization request)" + }, + "client_id": { "type": "string", "title": "Client Id" }, + "client_secret": { "type": "string", "title": "Client Secret" }, + "code_verifier": { + "type": "string", + "title": "Code Verifier", + "description": "PKCE code verifier" + } + }, + "type": "object", + "required": [ + "grant_type", + "code", + "redirect_uri", + "client_id", + "client_secret", + "code_verifier" + ], + "title": "TokenRequestByCode" + }, + "TokenRequestByRefreshToken": { + "properties": { + "grant_type": { + "type": "string", + "const": "refresh_token", + "title": "Grant Type" + }, + "refresh_token": { "type": "string", "title": "Refresh Token" }, + "client_id": { "type": "string", "title": "Client Id" }, + "client_secret": { "type": "string", "title": "Client Secret" } + }, + "type": "object", + "required": [ + "grant_type", + "refresh_token", + "client_id", + "client_secret" + ], + "title": "TokenRequestByRefreshToken" + }, + "TokenResponse": { + "properties": { + "token_type": { + "type": "string", + "const": "Bearer", + "title": "Token Type", + "default": "Bearer" + }, + "access_token": { "type": "string", "title": "Access Token" }, + "access_token_expires_at": { + "type": "string", + "format": "date-time", + "title": "Access Token Expires At" + }, + "refresh_token": { "type": "string", "title": "Refresh Token" }, + "refresh_token_expires_at": { + "type": "string", + "format": "date-time", + "title": "Refresh Token Expires At" + }, + "scopes": { + "items": { "type": "string" }, + "type": "array", + "title": "Scopes" + } + }, + "type": "object", + "required": [ + "access_token", + "access_token_expires_at", + "refresh_token", + "refresh_token_expires_at", + "scopes" + ], + "title": "TokenResponse", + "description": "OAuth 2.0 token response" + }, "TransactionHistory": { "properties": { "transactions": { @@ -9938,6 +10668,18 @@ "required": ["name", "graph_id", "graph_version", "trigger_config"], "title": "TriggeredPresetSetupRequest" }, + "UpdateAppLogoRequest": { + "properties": { + "logo_url": { + "type": "string", + "title": "Logo Url", + "description": "URL of the uploaded logo image" + } + }, + "type": "object", + "required": ["logo_url"], + "title": "UpdateAppLogoRequest" + }, "UpdatePermissionsRequest": { "properties": { "permissions": { diff --git a/autogpt_platform/frontend/src/components/molecules/ErrorCard/ErrorCard.tsx b/autogpt_platform/frontend/src/components/molecules/ErrorCard/ErrorCard.tsx index 4269ae5415..843330b085 100644 --- a/autogpt_platform/frontend/src/components/molecules/ErrorCard/ErrorCard.tsx +++ b/autogpt_platform/frontend/src/components/molecules/ErrorCard/ErrorCard.tsx @@ -7,6 +7,7 @@ import { ActionButtons } from "./components/ActionButtons"; export interface ErrorCardProps { isSuccess?: boolean; + isOurProblem?: boolean; responseError?: { detail?: Array<{ msg: string }> | string; message?: string; @@ -17,15 +18,18 @@ export interface ErrorCardProps { message?: string; }; context?: string; + hint?: string; onRetry?: () => void; className?: string; } export function ErrorCard({ isSuccess = false, + isOurProblem = true, responseError, httpError, context = "data", + hint, onRetry, className = "", }: ErrorCardProps) { @@ -50,13 +54,19 @@ export function ErrorCard({
- - + {isOurProblem && ( + + )}
); diff --git a/autogpt_platform/frontend/src/components/molecules/ErrorCard/components/ErrorMessage.tsx b/autogpt_platform/frontend/src/components/molecules/ErrorCard/components/ErrorMessage.tsx index f232e6ff3f..bfb3726de1 100644 --- a/autogpt_platform/frontend/src/components/molecules/ErrorCard/components/ErrorMessage.tsx +++ b/autogpt_platform/frontend/src/components/molecules/ErrorCard/components/ErrorMessage.tsx @@ -4,9 +4,10 @@ import { Text } from "@/components/atoms/Text/Text"; interface Props { errorMessage: string; context: string; + hint?: string; } -export function ErrorMessage({ errorMessage, context }: Props) { +export function ErrorMessage({ errorMessage, context, hint }: Props) { return (
@@ -17,6 +18,13 @@ export function ErrorMessage({ errorMessage, context }: Props) { {errorMessage}
+ {hint && ( +
+ + {hint} + +
+ )}
); } diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts index 0d8be1df5d..2f27ef126d 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts @@ -912,7 +912,7 @@ export interface APIKey { prefix: string; postfix: string; status: APIKeyStatus; - permissions: APIKeyPermission[]; + scopes: APIKeyPermission[]; created_at: string; last_used_at?: string; revoked_at?: string; diff --git a/autogpt_platform/frontend/src/lib/supabase/helpers.ts b/autogpt_platform/frontend/src/lib/supabase/helpers.ts index 7b2d36a0fd..f41c8c2f0f 100644 --- a/autogpt_platform/frontend/src/lib/supabase/helpers.ts +++ b/autogpt_platform/frontend/src/lib/supabase/helpers.ts @@ -4,6 +4,8 @@ import { type CookieOptions } from "@supabase/ssr"; import { SupabaseClient } from "@supabase/supabase-js"; export const PROTECTED_PAGES = [ + "/auth/authorize", + "/auth/integrations", "/monitor", "/build", "/onboarding", @@ -59,14 +61,15 @@ export function hasWebSocketDisconnectIntent(): boolean { // Redirect utilities export function getRedirectPath( - pathname: string, + path: string, // including query strings userRole?: string, ): string | null { - if (shouldRedirectOnLogout(pathname)) { - return "/login"; + if (shouldRedirectOnLogout(path)) { + // Preserve the original path as a 'next' parameter so user can return after login + return `/login?next=${encodeURIComponent(path)}`; } - if (isAdminPage(pathname) && userRole !== "admin") { + if (isAdminPage(path) && userRole !== "admin") { return "/marketplace"; } diff --git a/autogpt_platform/frontend/src/lib/supabase/hooks/helpers.ts b/autogpt_platform/frontend/src/lib/supabase/hooks/helpers.ts index cce4f7a769..95b9e8bbca 100644 --- a/autogpt_platform/frontend/src/lib/supabase/hooks/helpers.ts +++ b/autogpt_platform/frontend/src/lib/supabase/hooks/helpers.ts @@ -77,7 +77,7 @@ export async function fetchUser(): Promise { } interface ValidateSessionParams { - pathname: string; + path: string; currentUser: User | null; } @@ -92,7 +92,7 @@ export async function validateSession( params: ValidateSessionParams, ): Promise { try { - const result = await validateSessionAction(params.pathname); + const result = await validateSessionAction(params.path); if (!result.isValid) { return { @@ -118,7 +118,7 @@ export async function validateSession( }; } catch (error) { console.error("Session validation error:", error); - const redirectPath = getRedirectPath(params.pathname); + const redirectPath = getRedirectPath(params.path); return { isValid: false, redirectPath, @@ -146,7 +146,7 @@ interface StorageEventHandlerParams { event: StorageEvent; api: BackendAPI | null; router: AppRouterInstance | null; - pathname: string; + path: string; } interface StorageEventHandlerResult { @@ -167,7 +167,7 @@ export function handleStorageEvent( params.api.disconnectWebSocket(); } - const redirectPath = getRedirectPath(params.pathname); + const redirectPath = getRedirectPath(params.path); return { shouldLogout: true, diff --git a/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts index 41fdee25a2..5f362397f6 100644 --- a/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts +++ b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabase.ts @@ -1,8 +1,8 @@ "use client"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; -import { usePathname, useRouter } from "next/navigation"; -import { useEffect } from "react"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; +import { useEffect, useMemo } from "react"; import { useShallow } from "zustand/react/shallow"; import type { ServerLogoutOptions } from "../actions"; import { useSupabaseStore } from "./useSupabaseStore"; @@ -10,8 +10,15 @@ import { useSupabaseStore } from "./useSupabaseStore"; export function useSupabase() { const router = useRouter(); const pathname = usePathname(); + const searchParams = useSearchParams(); const api = useBackendAPI(); + // Combine pathname and search params to get full path for redirect preservation + const fullPath = useMemo(() => { + const search = searchParams.toString(); + return search ? `${pathname}?${search}` : pathname; + }, [pathname, searchParams]); + const { user, supabase, @@ -36,9 +43,9 @@ export function useSupabase() { void initialize({ api, router, - pathname, + path: fullPath, }); - }, [api, initialize, pathname, router]); + }, [api, initialize, fullPath, router]); function handleLogout(options: ServerLogoutOptions = {}) { return logOut({ @@ -49,7 +56,7 @@ export function useSupabase() { function handleValidateSession() { return validateSession({ - pathname, + path: fullPath, router, }); } diff --git a/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabaseStore.ts b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabaseStore.ts index dcc6029668..5207397ee4 100644 --- a/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabaseStore.ts +++ b/autogpt_platform/frontend/src/lib/supabase/hooks/useSupabaseStore.ts @@ -21,7 +21,7 @@ import { interface InitializeParams { api: BackendAPI; router: AppRouterInstance; - pathname: string; + path: string; } interface LogOutParams { @@ -32,7 +32,7 @@ interface LogOutParams { interface ValidateParams { force?: boolean; - pathname?: string; + path?: string; router?: AppRouterInstance; } @@ -47,7 +47,7 @@ interface SupabaseStoreState { listenersCleanup: (() => void) | null; routerRef: AppRouterInstance | null; apiRef: BackendAPI | null; - currentPathname: string; + currentPath: string; initialize: (params: InitializeParams) => Promise; logOut: (params?: LogOutParams) => Promise; validateSession: (params?: ValidateParams) => Promise; @@ -60,7 +60,7 @@ export const useSupabaseStore = create((set, get) => { set({ routerRef: params.router, apiRef: params.api, - currentPathname: params.pathname, + currentPath: params.path, }); const supabaseClient = ensureSupabaseClient(); @@ -83,7 +83,7 @@ export const useSupabaseStore = create((set, get) => { // This handles race conditions after login where cookies might not be immediately available if (!result.user) { const validationResult = await validateSessionHelper({ - pathname: params.pathname, + path: params.path, currentUser: null, }); @@ -160,7 +160,7 @@ export const useSupabaseStore = create((set, get) => { params?: ValidateParams, ): Promise { const router = params?.router ?? get().routerRef; - const pathname = params?.pathname ?? get().currentPathname; + const pathname = params?.path ?? get().currentPath; if (!router || !pathname) return true; if (!params?.force && get().isValidating) return true; @@ -175,7 +175,7 @@ export const useSupabaseStore = create((set, get) => { try { const result = await validateSessionHelper({ - pathname, + path: pathname, currentUser: get().user, }); @@ -224,7 +224,7 @@ export const useSupabaseStore = create((set, get) => { event, api: get().apiRef, router: get().routerRef, - pathname: get().currentPathname, + path: get().currentPath, }); if (!result.shouldLogout) return; @@ -283,7 +283,7 @@ export const useSupabaseStore = create((set, get) => { listenersCleanup: null, routerRef: null, apiRef: null, - currentPathname: "", + currentPath: "", initialize, logOut, validateSession: validateSessionInternal, diff --git a/autogpt_platform/frontend/src/lib/supabase/middleware.ts b/autogpt_platform/frontend/src/lib/supabase/middleware.ts index 5e04efde67..5e4bd01e83 100644 --- a/autogpt_platform/frontend/src/lib/supabase/middleware.ts +++ b/autogpt_platform/frontend/src/lib/supabase/middleware.ts @@ -57,7 +57,9 @@ export async function updateSession(request: NextRequest) { const attemptingAdminPage = isAdminPage(pathname); if (attemptingProtectedPage || attemptingAdminPage) { + const currentDest = url.pathname + url.search; url.pathname = "/login"; + url.search = `?next=${encodeURIComponent(currentDest)}`; return NextResponse.redirect(url); } } diff --git a/autogpt_platform/frontend/src/middleware.ts b/autogpt_platform/frontend/src/middleware.ts index 65edec41d7..af1c823295 100644 --- a/autogpt_platform/frontend/src/middleware.ts +++ b/autogpt_platform/frontend/src/middleware.ts @@ -9,11 +9,15 @@ export const config = { matcher: [ /* * Match all request paths except for the ones starting with: - * - _next/static (static files) - * - _next/image (image optimization files) - * - favicon.ico (favicon file) + * - /_next/static (static files) + * - /_next/image (image optimization files) + * - /favicon.ico (favicon file) + * - /auth/callback (OAuth callback - needs to work without auth) * Feel free to modify this pattern to include more paths. + * + * Note: /auth/authorize and /auth/integrations/* ARE protected and need + * middleware to run for authentication checks. */ - "/((?!_next/static|_next/image|favicon.ico|auth|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)", + "/((?!_next/static|_next/image|favicon.ico|auth/callback|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)", ], }; diff --git a/autogpt_platform/frontend/src/tests/api-keys.spec.ts b/autogpt_platform/frontend/src/tests/api-keys.spec.ts index a42ae8384e..e2a5575aed 100644 --- a/autogpt_platform/frontend/src/tests/api-keys.spec.ts +++ b/autogpt_platform/frontend/src/tests/api-keys.spec.ts @@ -19,8 +19,8 @@ test.describe("API Keys Page", () => { const page = await context.newPage(); try { - await page.goto("/profile/api_keys"); - await hasUrl(page, "/login"); + await page.goto("/profile/api-keys"); + await hasUrl(page, "/login?next=%2Fprofile%2Fapi-keys"); } finally { await page.close(); await context.close(); @@ -29,7 +29,7 @@ test.describe("API Keys Page", () => { test("should create a new API key successfully", async ({ page }) => { const { getButton, getField } = getSelectors(page); - await page.goto("/profile/api_keys"); + await page.goto("/profile/api-keys"); await getButton("Create Key").click(); await getField("Name").fill("Test Key"); @@ -45,7 +45,7 @@ test.describe("API Keys Page", () => { test("should revoke an existing API key", async ({ page }) => { const { getRole, getId } = getSelectors(page); - await page.goto("/profile/api_keys"); + await page.goto("/profile/api-keys"); const apiKeyRow = getId("api-key-row").first(); const apiKeyContent = await apiKeyRow diff --git a/autogpt_platform/frontend/src/tests/profile-form.spec.ts b/autogpt_platform/frontend/src/tests/profile-form.spec.ts index 527c5cca92..1fc1008e9c 100644 --- a/autogpt_platform/frontend/src/tests/profile-form.spec.ts +++ b/autogpt_platform/frontend/src/tests/profile-form.spec.ts @@ -24,7 +24,7 @@ test.describe("Profile Form", () => { try { await page.goto("/profile"); - await hasUrl(page, "/login"); + await hasUrl(page, "/login?next=%2Fprofile"); } finally { await page.close(); await context.close(); diff --git a/autogpt_platform/frontend/src/tests/signin.spec.ts b/autogpt_platform/frontend/src/tests/signin.spec.ts index 6e53855a8e..0f36006c4d 100644 --- a/autogpt_platform/frontend/src/tests/signin.spec.ts +++ b/autogpt_platform/frontend/src/tests/signin.spec.ts @@ -152,10 +152,10 @@ test("multi-tab logout with WebSocket cleanup", async ({ context }) => { // Check if Tab 2 has been redirected to login or refresh the page to trigger redirect try { await page2.reload(); - await hasUrl(page2, "/login"); + await hasUrl(page2, "/login?next=%2Fbuild"); } catch { // If reload fails, the page might already be redirecting - await hasUrl(page2, "/login"); + await hasUrl(page2, "/login?next=%2Fbuild"); } // Verify the profile menu is no longer visible (user is logged out) diff --git a/docs/content/platform/integrating/api-guide.md b/docs/content/platform/integrating/api-guide.md new file mode 100644 index 0000000000..19d210af91 --- /dev/null +++ b/docs/content/platform/integrating/api-guide.md @@ -0,0 +1,85 @@ +# AutoGPT Platform External API Guide + +The AutoGPT Platform provides an External API that allows you to programmatically interact with agents, blocks, the store, and more. + +## API Documentation + +Full API documentation with interactive examples is available at: + +**[https://backend.agpt.co/external-api/docs](https://backend.agpt.co/external-api/docs)** + +This Swagger UI documentation includes all available endpoints, request/response schemas, and allows you to try out API calls directly. + +## Authentication Methods + +The External API supports two authentication methods: + +### 1. API Keys + +API keys are the simplest way to authenticate. Generate an API key from your AutoGPT Platform account settings and include it in your requests: + +```http +GET /external-api/v1/blocks +X-API-Key: your_api_key_here +``` + +API keys are ideal for: +- Server-to-server integrations +- Personal scripts and automation +- Backend services + +### 2. OAuth 2.0 (Single Sign-On) + +For applications that need to act on behalf of users, use OAuth 2.0. This allows users to authorize your application to access their AutoGPT resources. + +OAuth is ideal for: +- Third-party applications +- "Sign in with AutoGPT" (SSO, Single Sign-On) functionality +- Applications that need user-specific permissions + +See the [SSO Integration Guide](sso-guide.md) for complete OAuth implementation details. + +## Available Scopes + +When using OAuth, request only the scopes your application needs: + +| Scope | Description | +|-------|-------------| +| `IDENTITY` | Read user ID, e-mail, and timezone | +| `EXECUTE_GRAPH` | Run agents | +| `READ_GRAPH` | Read agent run results | +| `EXECUTE_BLOCK` | Run individual blocks | +| `READ_BLOCK` | Read block definitions | +| `READ_STORE` | Access the agent store | +| `USE_TOOLS` | Use platform tools | +| `MANAGE_INTEGRATIONS` | Create and update user integrations | +| `READ_INTEGRATIONS` | Read user integration status | +| `DELETE_INTEGRATIONS` | Remove user integrations | + +## Quick Start + +### Using an API Key + +```bash +# List available blocks +curl -H "X-API-Key: YOUR_API_KEY" \ + https://backend.agpt.co/external-api/v1/blocks +``` + +### Using OAuth + +1. Register an OAuth application (contact platform administrator) +2. Implement the OAuth flow as described in the [SSO Guide](sso-guide.md) +3. Use the obtained access token: + +```bash +curl -H "Authorization: Bearer agpt_xt_..." \ + https://backend.agpt.co/external-api/v1/blocks +``` + +## Support + +For issues or questions about API integration: + +- Open an issue on [GitHub](https://github.com/Significant-Gravitas/AutoGPT) +- Check the [Swagger documentation](https://backend.agpt.co/external-api/docs) diff --git a/docs/content/platform/integrating/oauth-guide.md b/docs/content/platform/integrating/oauth-guide.md new file mode 100644 index 0000000000..d88ef385e1 --- /dev/null +++ b/docs/content/platform/integrating/oauth-guide.md @@ -0,0 +1,440 @@ +# AutoGPT Platform OAuth Integration Guide + +This guide explains how to integrate your application with AutoGPT Platform using OAuth 2.0. OAuth can be used for API access, Single Sign-On (SSO), or both. + +For general API information and endpoint documentation, see the [API Guide](api-guide.md) and the [Swagger documentation](https://backend.agpt.co/external-api/docs). + +## Overview + +AutoGPT Platform's OAuth implementation supports multiple use cases: + +### OAuth for API Access + +Use OAuth when your application needs to call AutoGPT APIs on behalf of users. This is the most common use case for third-party integrations. + +**When to use:** + +- Your app needs to run agents, access the store, or manage integrations for users +- You want user-specific permissions rather than a single API key +- Users should be able to revoke access to your app + +### SSO: "Sign in with AutoGPT" + +Use SSO when you want users to sign in to your app through their AutoGPT account. Request the `IDENTITY` scope to get user information. + +**When to use:** + +- You want to use AutoGPT as an identity provider +- Users already have AutoGPT accounts and you want seamless login +- You need to identify users without managing passwords + +**Note:** SSO and API access can be combined. Request `IDENTITY` along with other scopes to both authenticate users and access APIs on their behalf. + +### Integration Setup Wizard + +A separate flow that guides users through connecting third-party services (GitHub, Google, etc.) to their AutoGPT account. See [Integration Setup Wizard](#integration-setup-wizard) below. + +## Prerequisites + +Before integrating, you need an OAuth application registered with AutoGPT Platform. Contact the platform administrator to obtain: + +- **Client ID** - Public identifier for your application +- **Client Secret** - Secret key for authenticating your application (keep this secure!) +- **Registered Redirect URIs** - URLs where users will be redirected after authorization + +## OAuth Flow + +The OAuth flow is technically the same whether you're using it for API access, SSO, or both. The main difference is which scopes you request. + +### Step 1: Redirect User to Authorization + +Redirect the user to the AutoGPT authorization page with the required parameters: + +```url +https://platform.agpt.co/auth/authorize? + client_id={YOUR_CLIENT_ID}& + redirect_uri=https://yourapp.com/callback& + scope=EXECUTE_GRAPH READ_GRAPH& + state={RANDOM_STATE_TOKEN}& + code_challenge={PKCE_CHALLENGE}& + code_challenge_method=S256& + response_type=code +``` + +#### Parameters + +| Parameter | Required | Description | +|-----------|----------|-------------| +| `client_id` | Yes | Your OAuth application's client ID | +| `redirect_uri` | Yes | URL to redirect after authorization (must match registered URI) | +| `scope` | Yes | Space-separated list of permissions (see [Available Scopes](api-guide.md#available-scopes)) | +| `state` | Yes | Random string to prevent CSRF attacks (store and verify on callback) | +| `code_challenge` | Yes | PKCE code challenge (see [PKCE](#pkce-implementation)) | +| `code_challenge_method` | Yes | Must be `S256` | +| `response_type` | Yes | Must be `code` | + +### Step 2: Handle the Callback + +After the user approves (or denies) access, they'll be redirected to your `redirect_uri`: + +**Success:** + +```url +https://yourapp.com/callback?code=AUTHORIZATION_CODE&state=RANDOM_STATE_TOKEN +``` + +**Error:** + +```url +https://yourapp.com/callback?error=access_denied&error_description=User%20denied%20access&state=RANDOM_STATE_TOKEN +``` + +Always verify the `state` parameter matches what you sent in Step 1. + +### Step 3: Exchange Code for Tokens + +Exchange the authorization code for access and refresh tokens: + +```http +POST /api/oauth/token +Content-Type: application/json + +{ + "grant_type": "authorization_code", + "code": "{AUTHORIZATION_CODE}", + "redirect_uri": "https://yourapp.com/callback", + "client_id": "{YOUR_CLIENT_ID}", + "client_secret": "{YOUR_CLIENT_SECRET}", + "code_verifier": "{PKCE_VERIFIER}" +} +``` + +**Response:** + +```json +{ + "token_type": "Bearer", + "access_token": "agpt_xt_...", + "access_token_expires_at": "2025-01-15T12:00:00Z", + "refresh_token": "agpt_rt_...", + "refresh_token_expires_at": "2025-02-14T12:00:00Z", + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"] +} +``` + +### Step 4: Use the Access Token + +Include the access token in API requests: + +```http +GET /external-api/v1/blocks +Authorization: Bearer agpt_xt_... +``` + +**For SSO:** If you requested the `IDENTITY` scope, fetch user info to identify the user: + +```http +GET /external-api/v1/me +Authorization: Bearer agpt_xt_... +``` + +**Response:** + +```json +{ + "id": "user-uuid", + "name": "John Doe", + "email": "john@example.com", + "timezone": "Europe/Amsterdam" +} +``` + +See the [Swagger documentation](https://backend.agpt.co/external-api/docs) for all available endpoints. + +### Step 5: Refresh Tokens + +Access tokens expire after 1 hour. Use the refresh token to get new tokens: + +```http +POST /api/oauth/token +Content-Type: application/json + +{ + "grant_type": "refresh_token", + "refresh_token": "agpt_rt_...", + "client_id": "{YOUR_CLIENT_ID}", + "client_secret": "{YOUR_CLIENT_SECRET}" +} +``` + +**Response:** + +```json +{ + "token_type": "Bearer", + "access_token": "agpt_xt_...", + "access_token_expires_at": "2025-01-15T13:00:00Z", + "refresh_token": "agpt_rt_...", + "refresh_token_expires_at": "2025-02-14T12:00:00Z", + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"] +} +``` + +## Integration Setup Wizard + +The Integration Setup Wizard guides users through connecting third-party services (like GitHub, Google, etc.) to their AutoGPT account. This is useful when your application needs users to have specific integrations configured. + +### Redirect to the Wizard + +```url +https://platform.agpt.co/auth/integrations/setup-wizard? + client_id={YOUR_CLIENT_ID}& + providers={BASE64_ENCODED_PROVIDERS}& + redirect_uri=https://yourapp.com/callback& + state={RANDOM_STATE_TOKEN} +``` + +#### Parameters + +| Parameter | Required | Description | +|-----------|----------|-------------| +| `client_id` | Yes | Your OAuth application's client ID | +| `providers` | Yes | Base64-encoded JSON array of provider configurations | +| `redirect_uri` | Yes | URL to redirect after setup completes | +| `state` | Yes | Random string to prevent CSRF attacks | + +#### Provider Configuration + +The `providers` parameter is a Base64-encoded JSON array: + +```javascript +const providers = [ + { provider: 'github', scopes: ['repo', 'read:user'] }, + { provider: 'google', scopes: ['https://www.googleapis.com/auth/calendar'] }, + { provider: 'slack' } // Uses default scopes +]; + +const providersBase64 = btoa(JSON.stringify(providers)); +``` + +### Handle the Callback + +After setup completes: + +**Success:** + +```url +https://yourapp.com/callback?success=true&state=RANDOM_STATE_TOKEN +``` + +**Failure/Cancelled:** + +```url +https://yourapp.com/callback?success=false&state=RANDOM_STATE_TOKEN +``` + +## Provider Scopes Reference + +When using the Integration Setup Wizard, you need to specify which scopes to request from each provider. Here are common providers and their scopes: + +### GitHub + +Documentation: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps + +| Scope | Description | +|-------|-------------| +| `repo` | Full control of private repositories | +| `read:user` | Read user profile data | +| `user:email` | Access user email addresses | +| `gist` | Create and manage gists | +| `workflow` | Update GitHub Actions workflows | + +**Example:** + +```javascript +{ provider: 'github', scopes: ['repo', 'read:user'] } +``` + +### Google + +Documentation: https://developers.google.com/identity/protocols/oauth2/scopes + +| Scope | Description | +|-------|-------------| +| `email` | View email address (default) | +| `profile` | View basic profile info (default) | +| `openid` | OpenID Connect (default) | +| `https://www.googleapis.com/auth/calendar` | Google Calendar access | +| `https://www.googleapis.com/auth/drive` | Google Drive access | +| `https://www.googleapis.com/auth/gmail.readonly` | Read Gmail messages | + +**Example:** + +```javascript +{ provider: 'google', scopes: ['https://www.googleapis.com/auth/calendar'] } +// Or use defaults (email, profile, openid): +{ provider: 'google' } +``` + +### Notion + +Documentation: https://developers.notion.com/reference/capabilities + +Notion uses a single OAuth scope that grants access based on pages the user selects during authorization. + +### Linear + +Documentation: https://developers.linear.app/docs/oauth/authentication + +| Scope | Description | +|-------|-------------| +| `read` | Read access to Linear data | +| `write` | Write access to Linear data | +| `issues:create` | Create issues | + +## PKCE Implementation + +PKCE (Proof Key for Code Exchange) is required for all authorization requests. Here's how to implement it: + +### JavaScript Example + +```javascript +async function generatePkce() { + // Generate a random code verifier + const array = new Uint8Array(32); + crypto.getRandomValues(array); + const verifier = Array.from(array, b => b.toString(16).padStart(2, '0')).join(''); + + // Create SHA-256 hash and base64url encode it + const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier)); + const challenge = btoa(String.fromCharCode(...new Uint8Array(hash))) + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + + return { verifier, challenge }; +} + +// Usage: +const pkce = await generatePkce(); +// Store pkce.verifier securely (e.g., in session storage) +// Use pkce.challenge in the authorization URL +``` + +### Python Example + +```python +import hashlib +import base64 +import secrets + +def generate_pkce(): + # Generate a random code verifier + verifier = secrets.token_urlsafe(32) + + # Create SHA-256 hash and base64url encode it + digest = hashlib.sha256(verifier.encode()).digest() + challenge = base64.urlsafe_b64encode(digest).decode().rstrip('=') + + return verifier, challenge + +# Usage: +verifier, challenge = generate_pkce() +# Store verifier securely in session +# Use challenge in the authorization URL +``` + +## Token Management + +### Token Lifetimes + +| Token Type | Lifetime | +|------------|----------| +| Access Token | 1 hour | +| Refresh Token | 30 days | +| Authorization Code | 10 minutes | + +### Token Introspection + +Check if a token is valid: + +```http +POST /api/oauth/introspect +Content-Type: application/json + +{ + "token": "agpt_xt_...", + "token_type_hint": "access_token", + "client_id": "{YOUR_CLIENT_ID}", + "client_secret": "{YOUR_CLIENT_SECRET}" +} +``` + +**Response:** + +```json +{ + "active": true, + "scopes": ["EXECUTE_GRAPH", "READ_GRAPH"], + "client_id": "agpt_client_...", + "user_id": "user-uuid", + "exp": 1705320000, + "token_type": "access_token" +} +``` + +### Token Revocation + +Revoke a token when the user logs out: + +```http +POST /api/oauth/revoke +Content-Type: application/json + +{ + "token": "agpt_xt_...", + "token_type_hint": "access_token", + "client_id": "{YOUR_CLIENT_ID}", + "client_secret": "{YOUR_CLIENT_SECRET}" +} +``` + +## Security Best Practices + +1. **Store client secrets securely** - Never expose them in client-side code or version control +2. **Always use PKCE** - Required for all authorization requests +3. **Validate state parameters** - Prevents CSRF attacks +4. **Use HTTPS** - All production redirect URIs must use HTTPS +5. **Request minimal scopes** - Only request the permissions your app needs +6. **Handle token expiration** - Implement automatic token refresh +7. **Revoke tokens on logout** - Clean up when users disconnect your app + +## Error Handling + +### Common OAuth Errors + +| Error | Description | Solution | +|-------|-------------|----------| +| `invalid_client` | Client ID not found or inactive | Verify client ID is correct | +| `invalid_redirect_uri` | Redirect URI not registered | Register URI with platform admin | +| `invalid_scope` | Requested scope not allowed | Check allowed scopes for your app | +| `invalid_grant` | Code expired or already used | Authorization codes are single-use | +| `access_denied` | User denied authorization | Handle gracefully in your UI | + +### HTTP Status Codes + +| Code | Meaning | +|------|---------| +| 200 | Success | +| 400 | Bad request (invalid parameters) | +| 401 | Unauthorized (invalid/expired token) | +| 403 | Forbidden (insufficient scope) | +| 404 | Resource not found | + +## Support + +For issues or questions about OAuth integration: + +- Open an issue on [GitHub](https://github.com/Significant-Gravitas/AutoGPT) +- See the [API Guide](api-guide.md) for general API information +- Check the [Swagger documentation](https://backend.agpt.co/external-api/docs) for endpoint details diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index ebf987f34b..876467633e 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -7,14 +7,14 @@ docs_dir: content nav: - Home: index.md - - The AutoGPT Platform 🆕: - - Getting Started: + - The AutoGPT Platform 🆕: + - Getting Started: - Setup AutoGPT (Local-Host): platform/getting-started.md - Edit an Agent: platform/edit-agent.md - Delete an Agent: platform/delete-agent.md - - Download & Import and Agent: platform/download-agent-from-marketplace-local.md + - Download & Import and Agent: platform/download-agent-from-marketplace-local.md - Create a Basic Agent: platform/create-basic-agent.md - - Submit an Agent to the Marketplace: platform/submit-agent-to-marketplace.md + - Submit an Agent to the Marketplace: platform/submit-agent-to-marketplace.md - Advanced Setup: platform/advanced_setup.md - Agent Blocks: platform/agent-blocks.md - Build your own Blocks: platform/new_blocks.md @@ -23,6 +23,9 @@ nav: - Using AI/ML API: platform/aimlapi.md - Using D-ID: platform/d_id.md - Blocks: platform/blocks/blocks.md + - API: + - Introduction: platform/integrating/api-guide.md + - OAuth & SSO: platform/integrating/oauth-guide.md - Contributing: - Tests: platform/contributing/tests.md - OAuth Flows: platform/contributing/oauth-integration-flow.md From 217e3718d7ea0ecdca27221aad58b738944e3229 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Sat, 20 Dec 2025 16:52:51 +0100 Subject: [PATCH 007/160] feat(platform): implement HITL UI redesign with improved review flow (#11529) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary • Redesigned Human-in-the-Loop review interface with yellow warning scheme • Implemented separate approved_data/rejected_data output pins for human_in_the_loop block • Added real-time execution status tracking to legacy flow for review detection • Fixed button loading states and improved UI consistency across flows • Standardized Tailwind CSS usage removing custom values image image image ## Changes Made ### Backend Changes - Modified `human_in_the_loop.py` block to output separate `approved_data` and `rejected_data` pins instead of single reviewed_data with status - Updated block output schema to support better data flow in graph builder ### Frontend UI Changes - Redesigned PendingReviewsList with yellow warning color scheme (replacing orange) - Fixed button loading states to show spinner only on clicked button - Improved FloatingReviewsPanel layout removing redundant headers - Added real-time status tracking to legacy flow using useFlowRealtime hook - Fixed AgentActivityDropdown text overflow and layout issues - Enhanced Safe Mode toggle positioning and toast timing - Standardized all custom Tailwind values to use standard classes ### Design System Updates - Added yellow design tokens (25, 150, 600) for warning states - Unified REVIEW status handling across all components - Improved component composition patterns ## Test Plan - [x] Verify HITL blocks create separate output pins for approved/rejected data - [x] Test review flow works in both new and legacy flow builders - [x] Confirm button loading states work correctly (only clicked button shows spinner) - [x] Validate AgentActivityDropdown properly displays review status - [x] Check Safe Mode toggle positioning matches old flow - [x] Ensure real-time status updates work in legacy flow - [x] Verify yellow warning colors are consistent throughout 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Lluis Agusti --- .../components/FloatingSafeModeToogle.tsx | 86 +++++++++++ .../build/components/FlowEditor/Flow/Flow.tsx | 5 +- .../components/NodeExecutionBadge.tsx | 2 +- .../FlowEditor/nodes/CustomNode/helpers.ts | 2 +- .../components/legacy-builder/Flow/Flow.tsx | 9 +- .../NewAgentLibraryView.tsx | 57 +++++-- .../CredentialRow/CredentialRow.tsx | 2 +- .../components/other/AgentSettingsButton.tsx | 29 ++++ .../selected-views/AnchorLinksWrap.tsx | 14 -- .../selected-views/LoadingSelectedContent.tsx | 12 +- .../SelectedRunView/SelectedRunView.tsx | 61 ++++---- .../components/RunStatusBadge.tsx | 8 +- .../SelectedRunView/components/RunSummary.tsx | 2 +- .../components/SafeModeToggle.tsx | 52 +++++++ .../SelectedRunActions/SelectedRunActions.tsx | 4 +- .../SelectedScheduleView.tsx | 12 +- .../SelectedSettingsView.tsx | 67 ++++++++ .../SelectedTemplateView.tsx | 4 +- .../SelectedTriggerView.tsx | 4 +- .../selected-views/SelectedViewLayout.tsx | 32 +++- .../components/TaskListItem.tsx | 4 +- .../useNewAgentLibraryView.ts | 14 +- .../components/agent-run-status-chip.tsx | 4 +- .../monitoring/components/AgentFlowList.tsx | 2 +- .../AgentActivityDropdown.tsx | 3 +- .../ActivityDropdown/ActivityDropdown.tsx | 2 +- .../components/ActivityItem.tsx | 111 ++++++------- .../molecules/Breadcrumbs/Breadcrumbs.tsx | 20 ++- .../FloatingReviewsPanel.tsx | 35 +++-- .../PendingReviewCard/PendingReviewCard.tsx | 133 +++++++++------- .../PendingReviewsList/PendingReviewsList.tsx | 146 ++++++++---------- .../frontend/src/components/styles/colors.ts | 4 +- .../useAgentSafeMode.ts} | 86 ++--------- .../frontend/src/hooks/useExecutionEvents.ts | 23 ++- 34 files changed, 648 insertions(+), 403 deletions(-) create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/FloatingSafeModeToogle.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx delete mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AnchorLinksWrap.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SafeModeToggle.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedSettingsView/SelectedSettingsView.tsx rename autogpt_platform/frontend/src/{components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle.tsx => hooks/useAgentSafeMode.ts} (65%) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FloatingSafeModeToogle.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FloatingSafeModeToogle.tsx new file mode 100644 index 0000000000..c1a7ef3b35 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FloatingSafeModeToogle.tsx @@ -0,0 +1,86 @@ +import { GraphModel } from "@/app/api/__generated__/models/graphModel"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { Button } from "@/components/atoms/Button/Button"; +import { Graph } from "@/lib/autogpt-server-api/types"; +import { cn } from "@/lib/utils"; +import { ShieldCheckIcon, ShieldIcon } from "@phosphor-icons/react"; +import { Text } from "@/components/atoms/Text/Text"; +import { useAgentSafeMode } from "@/hooks/useAgentSafeMode"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/atoms/Tooltip/BaseTooltip"; + +interface Props { + graph: GraphModel | LibraryAgent | Graph; + className?: string; + fullWidth?: boolean; +} + +export function FloatingSafeModeToggle({ + graph, + className, + fullWidth = false, +}: Props) { + const { + currentSafeMode, + isPending, + shouldShowToggle, + isStateUndetermined, + handleToggle, + } = useAgentSafeMode(graph); + + if (!shouldShowToggle || isStateUndetermined || isPending) { + return null; + } + + return ( +
+ + + + + +
+
+ Safe Mode: {currentSafeMode! ? "ON" : "OFF"} +
+
+ {currentSafeMode! + ? "Human in the loop blocks require manual review" + : "Human in the loop blocks proceed automatically"} +
+
+
+
+
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx index 13268fc816..d312fd487d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx @@ -16,12 +16,12 @@ import { useCopyPaste } from "./useCopyPaste"; import { FloatingReviewsPanel } from "@/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel"; import { parseAsString, useQueryStates } from "nuqs"; import { CustomControls } from "./components/CustomControl"; -import { FloatingSafeModeToggle } from "@/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle"; import { useGetV1GetSpecificGraph } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { GraphModel } from "@/app/api/__generated__/models/graphModel"; import { okData } from "@/app/api/helpers"; import { TriggerAgentBanner } from "./components/TriggerAgentBanner"; import { resolveCollisions } from "./helpers/resolve-collision"; +import { FloatingSafeModeToggle } from "../../FloatingSafeModeToogle"; export const Flow = () => { const [{ flowID, flowExecutionID }] = useQueryStates({ @@ -113,8 +113,7 @@ export const Flow = () => { {graph && ( )} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeExecutionBadge.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeExecutionBadge.tsx index acc0c26156..5571274ffb 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeExecutionBadge.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeExecutionBadge.tsx @@ -9,7 +9,7 @@ const statusStyles: Record = { INCOMPLETE: "text-slate-700 border-slate-400", QUEUED: "text-blue-700 border-blue-400", RUNNING: "text-amber-700 border-amber-400", - REVIEW: "text-orange-700 border-orange-400 bg-orange-50", + REVIEW: "text-yellow-700 border-yellow-400 bg-yellow-50", COMPLETED: "text-green-700 border-green-400", TERMINATED: "text-orange-700 border-orange-400", FAILED: "text-red-700 border-red-400", diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/helpers.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/helpers.ts index 2093fed40f..8d228d0cd0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/helpers.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/helpers.ts @@ -4,7 +4,7 @@ export const nodeStyleBasedOnStatus: Record = { INCOMPLETE: "ring-slate-300 bg-slate-300", QUEUED: " ring-blue-300 bg-blue-300", RUNNING: "ring-amber-300 bg-amber-300", - REVIEW: "ring-orange-300 bg-orange-300", + REVIEW: "ring-yellow-300 bg-yellow-300", COMPLETED: "ring-green-300 bg-green-300", TERMINATED: "ring-orange-300 bg-orange-300 ", FAILED: "ring-red-300 bg-red-300", diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx index 7e9b54d626..80a6fb022d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx @@ -65,7 +65,8 @@ import NewControlPanel from "@/app/(platform)/build/components/NewControlPanel/N import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { BuildActionBar } from "../BuildActionBar"; import { FloatingReviewsPanel } from "@/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel"; -import { FloatingSafeModeToggle } from "@/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle"; +import { useFlowRealtime } from "@/app/(platform)/build/components/FlowEditor/Flow/useFlowRealtime"; +import { FloatingSafeModeToggle } from "../../FloatingSafeModeToogle"; // This is for the history, this is the minimum distance a block must move before it is logged // It helps to prevent spamming the history with small movements especially when pressing on a input in a block @@ -153,6 +154,9 @@ const FlowEditor: React.FC<{ Record >(Object.fromEntries(nodes.map((node) => [node.id, node.position]))); + // Add realtime execution status tracking for FloatingReviewsPanel + useFlowRealtime(); + const router = useRouter(); const pathname = usePathname(); const params = useSearchParams(); @@ -924,8 +928,7 @@ const FlowEditor: React.FC<{ {savedAgent && ( )} {isNewBlockEnabled ? ( diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx index 2831d6cdba..2d7a1b30f4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx @@ -5,6 +5,7 @@ import { Breadcrumbs } from "@/components/molecules/Breadcrumbs/Breadcrumbs"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; import { cn } from "@/lib/utils"; import { PlusIcon } from "@phosphor-icons/react"; +import { useEffect } from "react"; import { RunAgentModal } from "./components/modals/RunAgentModal/RunAgentModal"; import { AgentRunsLoading } from "./components/other/AgentRunsLoading"; import { EmptySchedules } from "./components/other/EmptySchedules"; @@ -17,6 +18,7 @@ import { SelectedRunView } from "./components/selected-views/SelectedRunView/Sel import { SelectedScheduleView } from "./components/selected-views/SelectedScheduleView/SelectedScheduleView"; import { SelectedTemplateView } from "./components/selected-views/SelectedTemplateView/SelectedTemplateView"; import { SelectedTriggerView } from "./components/selected-views/SelectedTriggerView/SelectedTriggerView"; +import { SelectedSettingsView } from "./components/selected-views/SelectedSettingsView/SelectedSettingsView"; import { SelectedViewLayout } from "./components/selected-views/SelectedViewLayout"; import { SidebarRunsList } from "./components/sidebar/SidebarRunsList/SidebarRunsList"; import { AGENT_LIBRARY_SECTION_PADDING_X } from "./helpers"; @@ -24,7 +26,6 @@ import { useNewAgentLibraryView } from "./useNewAgentLibraryView"; export function NewAgentLibraryView() { const { - agentId, agent, ready, activeTemplate, @@ -39,10 +40,17 @@ export function NewAgentLibraryView() { handleCountsChange, handleClearSelectedRun, onRunInitiated, + handleSelectSettings, onTriggerSetup, onScheduleCreated, } = useNewAgentLibraryView(); + useEffect(() => { + if (agent) { + document.title = `${agent.name} - Library - AutoGPT Platform`; + } + }, [agent]); + if (error) { return (
- +
+ +
{activeItem ? ( - activeTab === "scheduled" ? ( + activeItem === "settings" ? ( + + ) : activeTab === "scheduled" ? ( ) ) : sidebarLoading ? ( - + ) : activeTab === "scheduled" ? ( - + ) : activeTab === "templates" ? ( - + ) : activeTab === "triggers" ? ( - + ) : ( - + {"*".repeat(MASKED_KEY_LENGTH)} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx new file mode 100644 index 0000000000..bc710ebc4e --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx @@ -0,0 +1,29 @@ +import { Button } from "@/components/atoms/Button/Button"; +import { GearIcon } from "@phosphor-icons/react"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { useAgentSafeMode } from "@/hooks/useAgentSafeMode"; + +interface Props { + agent: LibraryAgent; + onSelectSettings: () => void; +} + +export function AgentSettingsButton({ agent, onSelectSettings }: Props) { + const { hasHITLBlocks } = useAgentSafeMode(agent); + + if (!hasHITLBlocks) { + return null; + } + + return ( + + ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AnchorLinksWrap.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AnchorLinksWrap.tsx deleted file mode 100644 index 6dae969142..0000000000 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AnchorLinksWrap.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { cn } from "@/lib/utils"; -import { AGENT_LIBRARY_SECTION_PADDING_X } from "../../helpers"; - -type Props = { - children: React.ReactNode; -}; - -export function AnchorLinksWrap({ children }: Props) { - return ( -
- -
- ); -} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/LoadingSelectedContent.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/LoadingSelectedContent.tsx index d239f57e31..dc2bb7cac2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/LoadingSelectedContent.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/LoadingSelectedContent.tsx @@ -1,16 +1,22 @@ import { Skeleton } from "@/components/__legacy__/ui/skeleton"; import { cn } from "@/lib/utils"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { AGENT_LIBRARY_SECTION_PADDING_X } from "../../helpers"; import { SelectedViewLayout } from "./SelectedViewLayout"; interface Props { - agentName: string; - agentId: string; + agent: LibraryAgent; + onSelectSettings?: () => void; + selectedSettings?: boolean; } export function LoadingSelectedContent(props: Props) { return ( - +
diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx index ff9a4e5809..9e470139ff 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx @@ -32,6 +32,8 @@ interface Props { runId: string; onSelectRun?: (id: string) => void; onClearSelectedRun?: () => void; + onSelectSettings?: () => void; + selectedSettings?: boolean; } export function SelectedRunView({ @@ -39,6 +41,7 @@ export function SelectedRunView({ runId, onSelectRun, onClearSelectedRun, + onSelectSettings, }: Props) { const { run, preset, isLoading, responseError, httpError } = useSelectedRunView(agent.graph_id, runId); @@ -72,13 +75,13 @@ export function SelectedRunView({ } if (isLoading && !run) { - return ; + return ; } return (
- +
@@ -106,6 +109,11 @@ export function SelectedRunView({ className="-mt-2 flex flex-col" > + {withReviews && ( + + Reviews ({pendingReviews.length}) + + )} {withSummary && ( Summary @@ -117,13 +125,29 @@ export function SelectedRunView({ Your input - {withReviews && ( - - Reviews ({pendingReviews.length}) - - )}
+ {/* Human-in-the-Loop Reviews Section */} + {withReviews && ( + +
+ {reviewsLoading ? ( + + ) : pendingReviews.length > 0 ? ( + + ) : ( + + No pending reviews for this execution + + )} +
+
+ )} + {/* Summary Section */} {withSummary && ( @@ -186,29 +210,6 @@ export function SelectedRunView({
- - {/* Reviews Section */} - {withReviews && ( - -
- - {reviewsLoading ? ( - - ) : pendingReviews.length > 0 ? ( - - ) : ( - - No pending reviews for this execution - - )} - -
-
- )}
diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunStatusBadge.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunStatusBadge.tsx index cf92280c86..3781e724ad 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunStatusBadge.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunStatusBadge.tsx @@ -2,10 +2,10 @@ import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecut import { CheckCircleIcon, ClockIcon, - EyeIcon, PauseCircleIcon, StopCircleIcon, WarningCircleIcon, + WarningIcon, XCircleIcon, } from "@phosphor-icons/react"; import { Text } from "@/components/atoms/Text/Text"; @@ -38,9 +38,9 @@ const statusIconMap: Record = { textColor: "!text-yellow-700", }, REVIEW: { - icon: , - bgColor: "bg-orange-50", - textColor: "!text-orange-700", + icon: , + bgColor: "bg-yellow-50", + textColor: "!text-yellow-700", }, COMPLETED: { icon: ( diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunSummary.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunSummary.tsx index aea9bae7f9..c887ae969d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunSummary.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunSummary.tsx @@ -25,7 +25,7 @@ export function RunSummary({ run }: Props) {

{typeof correctnessScore === "number" && ( -
+
Success Estimate: diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SafeModeToggle.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SafeModeToggle.tsx new file mode 100644 index 0000000000..9ba37d8d17 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SafeModeToggle.tsx @@ -0,0 +1,52 @@ +import { GraphModel } from "@/app/api/__generated__/models/graphModel"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { Button } from "@/components/atoms/Button/Button"; +import { Graph } from "@/lib/autogpt-server-api/types"; +import { cn } from "@/lib/utils"; +import { ShieldCheckIcon, ShieldIcon } from "@phosphor-icons/react"; +import { useAgentSafeMode } from "@/hooks/useAgentSafeMode"; + +interface Props { + graph: GraphModel | LibraryAgent | Graph; + className?: string; + fullWidth?: boolean; +} + +export function SafeModeToggle({ graph }: Props) { + const { + currentSafeMode, + isPending, + shouldShowToggle, + isStateUndetermined, + handleToggle, + } = useAgentSafeMode(graph); + + if (!shouldShowToggle || isStateUndetermined) { + return null; + } + + return ( + + ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx index 92db3e0b37..cb821b2ecd 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx @@ -2,7 +2,6 @@ import { GraphExecution } from "@/app/api/__generated__/models/graphExecution"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { Button } from "@/components/atoms/Button/Button"; import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; -import { FloatingSafeModeToggle } from "@/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle"; import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { ArrowBendLeftUpIcon, @@ -16,6 +15,7 @@ import { SelectedActionsWrap } from "../../../SelectedActionsWrap"; import { ShareRunButton } from "../../../ShareRunButton/ShareRunButton"; import { CreateTemplateModal } from "../CreateTemplateModal/CreateTemplateModal"; import { useSelectedRunActions } from "./useSelectedRunActions"; +import { SafeModeToggle } from "../SafeModeToggle"; type Props = { agent: LibraryAgent; @@ -113,7 +113,7 @@ export function SelectedRunActions({ shareToken={run.share_token} /> )} - + {canRunManually && ( <> + Agent Settings +
+ +
+ {!hasHITLBlocks ? ( +
+ + This agent doesn't have any human-in-the-loop blocks, so + there are no settings to configure. + +
+ ) : ( +
+
+
+ Require human approval + + The agent will pause and wait for your review before + continuing + +
+ +
+
+ )} +
+
+ + ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx index ead985457e..71f7d582bd 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx @@ -87,7 +87,7 @@ export function SelectedTemplateView({ } if (isLoading && !template) { - return ; + return ; } if (!template) { @@ -100,7 +100,7 @@ export function SelectedTemplateView({ return (
- +
diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx index 64d4430e78..f8ec392f09 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx @@ -81,7 +81,7 @@ export function SelectedTriggerView({ } if (isLoading && !trigger) { - return ; + return ; } if (!trigger) { @@ -93,7 +93,7 @@ export function SelectedTriggerView({ return (
- +
diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedViewLayout.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedViewLayout.tsx index 242430ba6a..df549bea58 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedViewLayout.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedViewLayout.tsx @@ -1,11 +1,15 @@ import { Breadcrumbs } from "@/components/molecules/Breadcrumbs/Breadcrumbs"; +import { AgentSettingsButton } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { AGENT_LIBRARY_SECTION_PADDING_X } from "../../helpers"; import { SectionWrap } from "../other/SectionWrap"; interface Props { - agentName: string; - agentId: string; + agent: LibraryAgent; children: React.ReactNode; + additionalBreadcrumb?: { name: string; link?: string }; + onSelectSettings?: () => void; + selectedSettings?: boolean; } export function SelectedViewLayout(props: Props) { @@ -14,12 +18,24 @@ export function SelectedViewLayout(props: Props) {
- +
+ + {props.agent && props.onSelectSettings && ( +
+ +
+ )} +
{props.children} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskListItem.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskListItem.tsx index 22adc54e4f..2e2871e15e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskListItem.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskListItem.tsx @@ -34,8 +34,8 @@ const statusIconMap: Record = { ), REVIEW: ( - - + + ), COMPLETED: ( diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts index b280400401..394edb1a6d 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts @@ -89,10 +89,8 @@ export function useNewAgentLibraryView() { [sidebarCounts], ); - // Show sidebar layout while loading or when there are items - const showSidebarLayout = sidebarLoading || hasAnyItems; - - useEffect(() => { + // Show sidebar layout while loading or when there are items or settings is selected + const showSidebarLayout = useEffect(() => { if (agent) { document.title = `${agent.name} - Library - AutoGPT Platform`; } @@ -134,6 +132,13 @@ export function useNewAgentLibraryView() { }); } + function handleSelectSettings() { + setQueryStates({ + activeItem: "settings", + activeTab: "runs", // Reset to runs tab when going to settings + }); + } + const handleCountsChange = useCallback( (counts: { runsCount: number; @@ -205,6 +210,7 @@ export function useNewAgentLibraryView() { handleCountsChange, handleSelectRun, onRunInitiated, + handleSelectSettings, onTriggerSetup, onScheduleCreated, }; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-status-chip.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-status-chip.tsx index 24b2864359..58f1ee8381 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-status-chip.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-status-chip.tsx @@ -38,7 +38,7 @@ const statusData: Record< draft: { label: "Draft", variant: "secondary" }, stopped: { label: "Stopped", variant: "secondary" }, scheduled: { label: "Scheduled", variant: "secondary" }, - review: { label: "In Review", variant: "orange" }, + review: { label: "In Review", variant: "warning" }, }; const statusStyles = { @@ -47,8 +47,6 @@ const statusStyles = { destructive: "bg-red-100 text-red-800 hover:bg-red-100 hover:text-red-800", warning: "bg-yellow-100 text-yellow-800 hover:bg-yellow-100 hover:text-yellow-800", - orange: - "bg-orange-100 text-orange-800 hover:bg-orange-100 hover:text-orange-800", info: "bg-blue-100 text-blue-800 hover:bg-blue-100 hover:text-blue-800", secondary: "bg-slate-100 text-slate-800 hover:bg-slate-100 hover:text-slate-800", diff --git a/autogpt_platform/frontend/src/app/(platform)/monitoring/components/AgentFlowList.tsx b/autogpt_platform/frontend/src/app/(platform)/monitoring/components/AgentFlowList.tsx index 1080a355cd..d4cb6fc649 100644 --- a/autogpt_platform/frontend/src/app/(platform)/monitoring/components/AgentFlowList.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/monitoring/components/AgentFlowList.tsx @@ -54,7 +54,7 @@ export const AgentFlowList = ({
{/* Split "Create" button */} - diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/AgentActivityDropdown.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/AgentActivityDropdown.tsx index 6dcea33d51..1d120c3b09 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/AgentActivityDropdown.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/AgentActivityDropdown.tsx @@ -48,8 +48,7 @@ export function AgentActivityDropdown() { className="absolute bottom-[-2.5rem] left-1/2 z-50 hidden -translate-x-1/2 transform whitespace-nowrap rounded-small bg-white px-4 py-2 shadow-md group-hover:block" > - {activeCount} running agent - {activeCount > 1 ? "s" : ""} + {activeCount} active agent{activeCount > 1 ? "s" : ""}
diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/components/ActivityDropdown/ActivityDropdown.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/components/ActivityDropdown/ActivityDropdown.tsx index 4eafee8f2e..263453b327 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/components/ActivityDropdown/ActivityDropdown.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/components/ActivityDropdown/ActivityDropdown.tsx @@ -130,7 +130,7 @@ export function ActivityDropdown({ {filteredExecutions.length > 0 ? ( ; + return ; case AgentExecutionStatus.RUNNING: return ( - + ); case AgentExecutionStatus.COMPLETED: - return ( - - ); + return ; case AgentExecutionStatus.FAILED: - return ; + return ; case AgentExecutionStatus.TERMINATED: - return ( - - ); + return ; case AgentExecutionStatus.INCOMPLETE: - return ; + return ; case AgentExecutionStatus.REVIEW: - return ; + return ; default: return null; } } - function getTimeDisplay() { + function getItemDisplay() { + // Handle active statuses (running/queued) const isActiveStatus = execution.status === AgentExecutionStatus.RUNNING || - execution.status === AgentExecutionStatus.QUEUED || - execution.status === AgentExecutionStatus.REVIEW; + execution.status === AgentExecutionStatus.QUEUED; if (isActiveStatus) { const timeAgo = formatTimeAgo(execution.started_at.toString()); - let statusText = "running"; - if (execution.status === AgentExecutionStatus.QUEUED) { - statusText = "queued"; - } - return `Started ${timeAgo}, ${getExecutionDuration(execution)} ${statusText}`; + const statusText = + execution.status === AgentExecutionStatus.QUEUED ? "queued" : "running"; + return [ + `Started ${timeAgo}, ${getExecutionDuration(execution)} ${statusText}`, + ]; } - if (execution.ended_at) { - const timeAgo = formatTimeAgo(execution.ended_at.toString()); - switch (execution.status) { - case AgentExecutionStatus.COMPLETED: - return `Completed ${timeAgo}`; - case AgentExecutionStatus.FAILED: - return `Failed ${timeAgo}`; - case AgentExecutionStatus.TERMINATED: - return `Stopped ${timeAgo}`; - case AgentExecutionStatus.INCOMPLETE: - return `Incomplete ${timeAgo}`; - case AgentExecutionStatus.REVIEW: - return `In review ${timeAgo}`; - default: - return `Ended ${timeAgo}`; - } + // Handle all other statuses with time display + const timeAgo = execution.ended_at + ? formatTimeAgo(execution.ended_at.toString()) + : formatTimeAgo(execution.started_at.toString()); + + let statusText = "ended"; + switch (execution.status) { + case AgentExecutionStatus.COMPLETED: + statusText = "completed"; + break; + case AgentExecutionStatus.FAILED: + statusText = "failed"; + break; + case AgentExecutionStatus.TERMINATED: + statusText = "stopped"; + break; + case AgentExecutionStatus.INCOMPLETE: + statusText = "incomplete"; + break; + case AgentExecutionStatus.REVIEW: + statusText = "awaiting approval"; + break; } - return "Unknown"; + return [ + `${statusText.charAt(0).toUpperCase() + statusText.slice(1)} ${timeAgo}`, + ]; } // Determine the tab based on execution status @@ -101,20 +100,22 @@ export function ActivityItem({ execution }: Props) { {/* Icon + Agent Name */}
{getStatusIcon()} - + {execution.agent_name}
{/* Agent Message - Indented */}
- {/* Time - Indented */} - - {getTimeDisplay()} - + {getItemDisplay().map((line, index) => ( + + {line} + + ))}
); diff --git a/autogpt_platform/frontend/src/components/molecules/Breadcrumbs/Breadcrumbs.tsx b/autogpt_platform/frontend/src/components/molecules/Breadcrumbs/Breadcrumbs.tsx index 1fb69763fe..f990970a6c 100644 --- a/autogpt_platform/frontend/src/components/molecules/Breadcrumbs/Breadcrumbs.tsx +++ b/autogpt_platform/frontend/src/components/molecules/Breadcrumbs/Breadcrumbs.tsx @@ -4,7 +4,7 @@ import * as React from "react"; interface BreadcrumbItem { name: string; - link: string; + link?: string; } interface Props { @@ -16,12 +16,18 @@ export function Breadcrumbs({ items }: Props) {
{items.map((item, index) => ( - - {item.name} - + {item.link ? ( + + {item.name} + + ) : ( + + {item.name} + + )} {index < items.length - 1 && ( / diff --git a/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx b/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx index 183fd8599e..12014e50fe 100644 --- a/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx +++ b/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx @@ -7,6 +7,8 @@ import { cn } from "@/lib/utils"; import { Text } from "@/components/atoms/Text/Text"; import { useGetV1GetExecutionDetails } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecutionStatus"; +import { useGraphStore } from "@/app/(platform)/build/stores/graphStore"; +import { useShallow } from "zustand/react/shallow"; interface FloatingReviewsPanelProps { executionId?: string; @@ -34,6 +36,11 @@ export function FloatingReviewsPanel({ const executionStatus = executionDetails?.status === 200 ? executionDetails.data.status : undefined; + // Get graph execution status from the store (updated via WebSocket) + const graphExecutionStatus = useGraphStore( + useShallow((state) => state.graphExecutionStatus), + ); + const { pendingReviews, isLoading, refetch } = usePendingReviewsForExecution( executionId || "", ); @@ -44,6 +51,13 @@ export function FloatingReviewsPanel({ } }, [executionStatus, executionId, refetch]); + // Refetch when graph execution status changes to REVIEW + useEffect(() => { + if (graphExecutionStatus === AgentExecutionStatus.REVIEW && executionId) { + refetch(); + } + }, [graphExecutionStatus, executionId, refetch]); + if ( !executionId || (!isLoading && @@ -73,18 +87,17 @@ export function FloatingReviewsPanel({ )} {isOpen && ( -
-
-
- - Pending Reviews -
- -
+
+ -
+
{isLoading ? (
diff --git a/autogpt_platform/frontend/src/components/organisms/PendingReviewCard/PendingReviewCard.tsx b/autogpt_platform/frontend/src/components/organisms/PendingReviewCard/PendingReviewCard.tsx index b5094dd4cd..3ac636060c 100644 --- a/autogpt_platform/frontend/src/components/organisms/PendingReviewCard/PendingReviewCard.tsx +++ b/autogpt_platform/frontend/src/components/organisms/PendingReviewCard/PendingReviewCard.tsx @@ -40,18 +40,18 @@ function extractReviewData(payload: unknown): { interface PendingReviewCardProps { review: PendingHumanReviewModel; onReviewDataChange: (nodeExecId: string, data: string) => void; - reviewMessage: string; - onReviewMessageChange: (nodeExecId: string, message: string) => void; - isDisabled: boolean; - onToggleDisabled: (nodeExecId: string) => void; + reviewMessage?: string; + onReviewMessageChange?: (nodeExecId: string, message: string) => void; + isDisabled?: boolean; + onToggleDisabled?: (nodeExecId: string) => void; } export function PendingReviewCard({ review, onReviewDataChange, - reviewMessage, + reviewMessage = "", onReviewMessageChange, - isDisabled, + isDisabled = false, onToggleDisabled, }: PendingReviewCardProps) { const extractedData = extractReviewData(review.payload); @@ -65,9 +65,12 @@ export function PendingReviewCard({ }; const handleMessageChange = (newMessage: string) => { - onReviewMessageChange(review.node_exec_id, newMessage); + onReviewMessageChange?.(review.node_exec_id, newMessage); }; + // Show simplified view when no toggle functionality is provided (Screenshot 1 mode) + const showSimplified = !onToggleDisabled; + const renderDataInput = () => { const data = currentData; @@ -134,60 +137,80 @@ export function PendingReviewCard({ } }; - return ( -
-
-
- {isDisabled && ( - - This item will be rejected - - )} -
- -
+ // Helper function to get proper field label + const getFieldLabel = (instructions?: string) => { + if (instructions) + return instructions.charAt(0).toUpperCase() + instructions.slice(1); + return "Data to Review"; + }; - {instructions && ( -
- - Instructions: - - {instructions} + // Use the existing HITL review interface + return ( +
+ {!showSimplified && ( +
+
+ {isDisabled && ( + + This item will be rejected + + )} +
+
)} -
- - Data to Review: - {!isDataEditable && ( - - (Read-only) - + {/* Show instructions as field label */} + {instructions && ( +
+ + {getFieldLabel(instructions)} + + {isDataEditable && !isDisabled ? ( + renderDataInput() + ) : ( +
+ + {JSON.stringify(currentData, null, 2)} + +
)} - - {isDataEditable && !isDisabled ? ( - renderDataInput() - ) : ( -
- - {JSON.stringify(currentData, null, 2)} - -
- )} -
+
+ )} - {isDisabled && ( + {/* If no instructions, show data directly */} + {!instructions && ( +
+ + Data to Review + {!isDataEditable && ( + + (Read-only) + + )} + + {isDataEditable && !isDisabled ? ( + renderDataInput() + ) : ( +
+ + {JSON.stringify(currentData, null, 2)} + +
+ )} +
+ )} + + {!showSimplified && isDisabled && (
Rejection Reason (Optional): diff --git a/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx b/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx index 320d84e91f..ddc9bab972 100644 --- a/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx +++ b/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx @@ -4,7 +4,7 @@ import { PendingReviewCard } from "@/components/organisms/PendingReviewCard/Pend import { Text } from "@/components/atoms/Text/Text"; import { Button } from "@/components/atoms/Button/Button"; import { useToast } from "@/components/molecules/Toast/use-toast"; -import { ClockIcon, PlayIcon, XIcon, CheckIcon } from "@phosphor-icons/react"; +import { ClockIcon, WarningIcon } from "@phosphor-icons/react"; import { usePostV2ProcessReviewAction } from "@/app/api/__generated__/endpoints/executions/executions"; interface PendingReviewsListProps { @@ -35,9 +35,10 @@ export function PendingReviewsList({ const [reviewMessageMap, setReviewMessageMap] = useState< Record >({}); - const [disabledReviews, setDisabledReviews] = useState>( - new Set(), - ); + + const [pendingAction, setPendingAction] = useState< + "approve" | "reject" | null + >(null); const { toast } = useToast(); @@ -69,9 +70,11 @@ export function PendingReviewsList({ }); } + setPendingAction(null); onReviewComplete?.(); }, onError: (error: Error) => { + setPendingAction(null); toast({ title: "Failed to process reviews", description: error.message || "An error occurred", @@ -89,28 +92,7 @@ export function PendingReviewsList({ setReviewMessageMap((prev) => ({ ...prev, [nodeExecId]: message })); } - function handleToggleDisabled(nodeExecId: string) { - setDisabledReviews((prev) => { - const newSet = new Set(prev); - if (newSet.has(nodeExecId)) { - newSet.delete(nodeExecId); - } else { - newSet.add(nodeExecId); - } - return newSet; - }); - } - - function handleApproveAll() { - setDisabledReviews(new Set()); - } - - function handleRejectAll() { - const allReviewIds = reviews.map((review) => review.node_exec_id); - setDisabledReviews(new Set(allReviewIds)); - } - - function handleContinue() { + function processReviews(approved: boolean) { if (reviews.length === 0) { toast({ title: "No reviews to process", @@ -120,34 +102,34 @@ export function PendingReviewsList({ return; } + setPendingAction(approved ? "approve" : "reject"); const reviewItems = []; for (const review of reviews) { - const isApproved = !disabledReviews.has(review.node_exec_id); const reviewData = reviewDataMap[review.node_exec_id]; const reviewMessage = reviewMessageMap[review.node_exec_id]; - let parsedData; - if (isApproved && review.editable && reviewData) { + let parsedData: any = review.payload; // Default to original payload + + // Parse edited data if available and editable + if (review.editable && reviewData) { try { parsedData = JSON.parse(reviewData); - if (JSON.stringify(parsedData) === JSON.stringify(review.payload)) { - parsedData = undefined; - } } catch (error) { toast({ title: "Invalid JSON", description: `Please fix the JSON format in review for node ${review.node_exec_id}: ${error instanceof Error ? error.message : "Invalid syntax"}`, variant: "destructive", }); + setPendingAction(null); return; } } reviewItems.push({ node_exec_id: review.node_exec_id, - approved: isApproved, - reviewed_data: isApproved ? parsedData : undefined, + approved, + reviewed_data: parsedData, message: reviewMessage || undefined, }); } @@ -175,71 +157,67 @@ export function PendingReviewsList({ } return ( -
-
+
+ {/* Warning Box Header */} +
+
+ + + Your review is needed + +
+ + This task is paused until you approve the changes below. Please review + and edit if needed. + +
+ +
{reviews.map((review) => ( ))}
-
-
- - -
+
+ + Note: Changes you make here apply only to this task + -
-
- - {disabledReviews.size > 0 ? ( - <> - Approve {reviews.length - disabledReviews.size}, reject{" "} - {disabledReviews.size} of {reviews.length} items - - ) : ( - <>Approve all {reviews.length} items - )} - -
+
+
diff --git a/autogpt_platform/frontend/src/components/styles/colors.ts b/autogpt_platform/frontend/src/components/styles/colors.ts index 4e37b9bdd5..cfb25ac107 100644 --- a/autogpt_platform/frontend/src/components/styles/colors.ts +++ b/autogpt_platform/frontend/src/components/styles/colors.ts @@ -48,13 +48,15 @@ export const colors = { 900: "#6b3900", }, yellow: { + 25: "#FFFCF3", 50: "#fef9e6", 100: "#fcebb0", + 150: "#FDEFBF", 200: "#fae28a", 300: "#f8d554", 400: "#f7cd33", 500: "#f5c000", - 600: "#dfaf00", + 600: "#DFAF00", 700: "#ae8800", 800: "#876a00", 900: "#675100", diff --git a/autogpt_platform/frontend/src/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle.tsx b/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts similarity index 65% rename from autogpt_platform/frontend/src/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle.tsx rename to autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts index a10367177f..654ef858b6 100644 --- a/autogpt_platform/frontend/src/components/molecules/FloatingSafeModeToggle/FloatingSafeModeToggle.tsx +++ b/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts @@ -1,22 +1,14 @@ +import { useCallback, useState, useEffect } from "react"; import { usePatchV1UpdateGraphSettings } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { getGetV2GetLibraryAgentQueryOptions, useGetV2GetLibraryAgentByGraphId, } from "@/app/api/__generated__/endpoints/library/library"; +import { useToast } from "@/components/molecules/Toast/use-toast"; import { GraphModel } from "@/app/api/__generated__/models/graphModel"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; -import { Button } from "@/components/atoms/Button/Button"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "@/components/atoms/Tooltip/BaseTooltip"; -import { useToast } from "@/components/molecules/Toast/use-toast"; -import { Graph } from "@/lib/autogpt-server-api/types"; -import { cn } from "@/lib/utils"; -import { ShieldCheckIcon, ShieldIcon } from "@phosphor-icons/react"; import { useQueryClient } from "@tanstack/react-query"; -import { useCallback, useEffect, useState } from "react"; +import { Graph } from "@/lib/autogpt-server-api/types"; function getGraphId(graph: GraphModel | LibraryAgent | Graph): string { if ("graph_id" in graph) return graph.graph_id || ""; @@ -41,19 +33,7 @@ function isLibraryAgent( return "graph_id" in graph && "settings" in graph; } -interface FloatingSafeModeToggleProps { - graph: GraphModel | LibraryAgent | Graph; - className?: string; - fullWidth?: boolean; - variant?: "white" | "black"; -} - -export function FloatingSafeModeToggle({ - graph, - className, - fullWidth = false, - variant = "white", -}: FloatingSafeModeToggleProps) { +export function useAgentSafeMode(graph: GraphModel | LibraryAgent | Graph) { const { toast } = useToast(); const queryClient = useQueryClient(); @@ -120,6 +100,7 @@ export function FloatingSafeModeToggle({ description: newSafeMode ? "Human-in-the-loop blocks will require manual review" : "Human-in-the-loop blocks will proceed automatically", + duration: 2000, }); } catch (error) { const isNotFoundError = @@ -154,53 +135,12 @@ export function FloatingSafeModeToggle({ toast, ]); - if (!shouldShowToggle || isStateUndetermined) { - return null; - } - - return ( -
- - - - - -
-
- Safe Mode: {currentSafeMode! ? "ON" : "OFF"} -
-
- {currentSafeMode! - ? "HITL blocks require manual review" - : "HITL blocks proceed automatically"} -
-
-
-
-
- ); + return { + currentSafeMode, + isPending, + shouldShowToggle, + isStateUndetermined, + handleToggle, + hasHITLBlocks: shouldShowToggle, + }; } diff --git a/autogpt_platform/frontend/src/hooks/useExecutionEvents.ts b/autogpt_platform/frontend/src/hooks/useExecutionEvents.ts index 9af2b8aead..ac24396a20 100644 --- a/autogpt_platform/frontend/src/hooks/useExecutionEvents.ts +++ b/autogpt_platform/frontend/src/hooks/useExecutionEvents.ts @@ -63,21 +63,16 @@ export function useExecutionEvents({ if (subscribedIds.has(id)) return; subscribedIds.add(id); - api - .subscribeToGraphExecutions(id as GraphID) - .then(() => { - console.debug(`Subscribed to execution updates for graph ${id}`); - }) - .catch((error) => { - console.error( - `Failed to subscribe to execution updates for graph ${id}:`, - error, - ); - Sentry.captureException(error, { - tags: { graphId: id }, - }); - subscribedIds.delete(id); + api.subscribeToGraphExecutions(id as GraphID).catch((error) => { + console.error( + `Failed to subscribe to execution updates for graph ${id}:`, + error, + ); + Sentry.captureException(error, { + tags: { graphId: id }, }); + subscribedIds.delete(id); + }); }); }); From de78d062a9e938bea2efed7505bf6f586c86919a Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sat, 20 Dec 2025 21:33:10 +0100 Subject: [PATCH 008/160] refactor(backend/api): Clean up API file structure (#11629) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We'll soon be needing a more feature-complete external API. To make way for this, I'm moving some files around so: - We can more easily create new versions of our external API - The file structure of our internal API is more homogeneous These changes are quite opinionated, but IMO in any case they're better than the chaotic structure we have now. ### Changes 🏗️ - Move `backend/server` -> `backend/api` - Move `backend/server/routers` + `backend/server/v2` -> `backend/api/features` - Change absolute sibling imports to relative imports - Move `backend/server/v2/AutoMod` -> `backend/executor/automod` - Combine `backend/server/routers/analytics_*test.py` -> `backend/api/features/analytics_test.py` - Sort OpenAPI spec file ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - CI tests - [x] Clicking around in the app -> no obvious breakage --- .../autogpt_libs/autogpt_libs/auth/helpers.py | 12 +- autogpt_platform/backend/TESTING.md | 4 +- .../backend/{server => api}/__init__.py | 0 .../backend/{server => api}/conftest.py | 0 .../backend/{server => api}/conn_manager.py | 2 +- .../{server => api}/conn_manager_test.py | 4 +- .../backend/api/external/fastapi_app.py | 25 + .../{server => api}/external/middleware.py | 0 .../routes => api/external/v1}/__init__.py | 0 .../external/v1}/integrations.py | 4 +- .../v1.py => api/external/v1/routes.py} | 12 +- .../routes => api/external/v1}/tools.py | 8 +- .../postmark => api/features}/__init__.py | 0 .../features/admin}/__init__.py | 0 .../features}/admin/credit_admin_routes.py | 3 +- .../admin/credit_admin_routes_test.py | 33 +- .../admin/execution_analytics_routes.py | 0 .../v2 => api/features}/admin/model.py | 0 .../features}/admin/store_admin_routes.py | 24 +- .../routers => api/features}/analytics.py | 3 +- .../backend/api/features/analytics_test.py | 340 + .../features/builder}/__init__.py | 0 .../{server/v2 => api/features}/builder/db.py | 15 +- .../v2 => api/features}/builder/model.py | 4 +- .../v2 => api/features}/builder/routes.py | 5 +- .../backend/api/features/chat/__init__.py | 0 .../v2 => api/features}/chat/config.py | 0 .../{server/v2 => api/features}/chat/model.py | 3 +- .../v2 => api/features}/chat/model_test.py | 2 +- .../features}/chat/prompts/chat_system.md | 0 .../features}/chat/response_model.py | 0 .../v2 => api/features}/chat/routes.py | 5 +- .../v2 => api/features}/chat/service.py | 13 +- .../v2 => api/features}/chat/service_test.py | 4 +- .../features}/chat/tools/__init__.py | 4 +- .../features}/chat/tools/_test_data.py | 4 +- .../v2 => api/features}/chat/tools/base.py | 4 +- .../features}/chat/tools/find_agent.py | 11 +- .../v2 => api/features}/chat/tools/models.py | 0 .../features}/chat/tools/run_agent.py | 23 +- .../features}/chat/tools/run_agent_test.py | 4 +- .../v2 => api/features}/chat/tools/utils.py | 6 +- .../api/features/executions/__init__.py | 0 .../features/executions/review/__init__.py | 0 .../features}/executions/review/model.py | 0 .../executions/review/review_routes_test.py | 49 +- .../features}/executions/review/routes.py | 7 +- .../api/features/integrations/__init__.py | 0 .../features}/integrations/models.py | 0 .../features}/integrations/router.py | 11 +- .../backend/api/features/library/__init__.py | 0 .../{server/v2 => api/features}/library/db.py | 10 +- .../v2 => api/features}/library/db_test.py | 17 +- .../v2 => api/features}/library/model.py | 0 .../v2 => api/features}/library/model_test.py | 2 +- .../features}/library/routes/__init__.py | 0 .../features}/library/routes/agents.py | 7 +- .../features}/library/routes/presets.py | 5 +- .../features}/library/routes_test.py | 19 +- .../{server/routers => api/features}/oauth.py | 4 +- .../routers => api/features}/oauth_test.py | 2 +- .../backend/api/features/otto/__init__.py | 0 .../v2 => api/features}/otto/models.py | 0 .../v2 => api/features}/otto/routes.py | 0 .../v2 => api/features}/otto/routes_test.py | 6 +- .../v2 => api/features}/otto/service.py | 0 .../backend/api/features/postmark/__init__.py | 0 .../features}/postmark/models.py | 0 .../features}/postmark/postmark.py | 7 +- .../v2 => api/features}/store/README.md | 0 .../backend/api/features/store/__init__.py | 0 .../v2 => api/features}/store/cache.py | 13 +- .../{server/v2 => api/features}/store/db.py | 173 +- .../v2 => api/features}/store/db_test.py | 4 +- .../v2 => api/features}/store/exceptions.py | 0 .../v2 => api/features}/store/image_gen.py | 0 .../v2 => api/features}/store/media.py | 45 +- .../v2 => api/features}/store/media_test.py | 50 +- .../v2 => api/features}/store/model.py | 0 .../v2 => api/features}/store/model_test.py | 34 +- .../v2 => api/features}/store/routes.py | 86 +- .../v2 => api/features}/store/routes_test.py | 154 +- .../features}/store/test_cache_delete.py | 11 +- .../{server/routers => api/features}/v1.py | 155 +- .../routers => api/features}/v1_test.py | 60 +- .../{server => api}/middleware/security.py | 0 .../middleware/security_test.py | 2 +- .../backend/backend/{server => api}/model.py | 0 .../backend/{server => api}/rest_api.py | 122 +- .../backend/{server => api}/test_helpers.py | 0 .../{server => api}/utils/api_key_auth.py | 0 .../utils/api_key_auth_test.py | 2 +- .../backend/{server => api}/utils/cors.py | 0 .../{server => api}/utils/cors_test.py | 2 +- .../backend/backend/api/utils/openapi.py | 41 + .../backend/backend/{server => api}/ws_api.py | 16 +- .../backend/{server => api}/ws_api_test.py | 26 +- autogpt_platform/backend/backend/app.py | 4 +- .../blocks/test/test_smart_decision_maker.py | 4 +- autogpt_platform/backend/backend/cli.py | 6 +- .../backend/cli/generate_openapi_json.py | 4 +- .../backend/backend/data/__init__.py | 2 +- .../backend/backend/data/credit.py | 2 +- autogpt_platform/backend/backend/data/db.py | 2 +- .../backend/backend/data/graph_test.py | 4 +- .../backend/backend/data/human_review.py | 2 +- .../backend/backend/data/integrations.py | 6 +- .../backend/backend/data/notification_bus.py | 2 +- .../backend/backend/data/onboarding.py | 4 +- .../AutoMod => executor/automod}/__init__.py | 0 .../AutoMod => executor/automod}/manager.py | 7 +- .../v2/AutoMod => executor/automod}/models.py | 0 .../backend/backend/executor/database.py | 7 +- .../backend/backend/executor/manager.py | 36 +- .../backend/backend/executor/manager_test.py | 18 +- .../backend/executor/scheduler_test.py | 2 +- .../backend/integrations/webhooks/utils.py | 4 +- autogpt_platform/backend/backend/rest.py | 2 +- .../backend/backend/server/external/api.py | 29 - .../server/routers/analytics_improved_test.py | 150 - .../routers/analytics_parametrized_test.py | 115 - .../backend/server/routers/analytics_test.py | 284 - autogpt_platform/backend/backend/util/test.py | 2 +- .../backend/backend/util/virus_scanner.py | 2 +- .../backend/util/virus_scanner_test.py | 2 +- autogpt_platform/backend/backend/ws.py | 2 +- .../backend/test/e2e_test_data.py | 12 +- .../app/(platform)/auth/authorize/page.tsx | 2 +- .../frontend/src/app/api/openapi.json | 8817 +++++++++-------- 129 files changed, 5527 insertions(+), 5731 deletions(-) rename autogpt_platform/backend/backend/{server => api}/__init__.py (100%) rename autogpt_platform/backend/backend/{server => api}/conftest.py (100%) rename autogpt_platform/backend/backend/{server => api}/conn_manager.py (98%) rename autogpt_platform/backend/backend/{server => api}/conn_manager_test.py (98%) create mode 100644 autogpt_platform/backend/backend/api/external/fastapi_app.py rename autogpt_platform/backend/backend/{server => api}/external/middleware.py (100%) rename autogpt_platform/backend/backend/{server/external/routes => api/external/v1}/__init__.py (100%) rename autogpt_platform/backend/backend/{server/external/routes => api/external/v1}/integrations.py (99%) rename autogpt_platform/backend/backend/{server/external/routes/v1.py => api/external/v1/routes.py} (96%) rename autogpt_platform/backend/backend/{server/external/routes => api/external/v1}/tools.py (94%) rename autogpt_platform/backend/backend/{server/routers/postmark => api/features}/__init__.py (100%) rename autogpt_platform/backend/backend/{server/v2/library => api/features/admin}/__init__.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/admin/credit_admin_routes.py (96%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/admin/credit_admin_routes_test.py (90%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/admin/execution_analytics_routes.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/admin/model.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/admin/store_admin_routes.py (84%) rename autogpt_platform/backend/backend/{server/routers => api/features}/analytics.py (94%) create mode 100644 autogpt_platform/backend/backend/api/features/analytics_test.py rename autogpt_platform/backend/backend/{server/v2/store => api/features/builder}/__init__.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/builder/db.py (98%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/builder/model.py (93%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/builder/routes.py (98%) create mode 100644 autogpt_platform/backend/backend/api/features/chat/__init__.py rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/config.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/model.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/model_test.py (97%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/prompts/chat_system.md (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/response_model.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/routes.py (98%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/service.py (98%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/service_test.py (95%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/__init__.py (87%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/_test_data.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/base.py (96%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/find_agent.py (95%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/models.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/run_agent.py (98%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/run_agent_test.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/chat/tools/utils.py (98%) create mode 100644 autogpt_platform/backend/backend/api/features/executions/__init__.py create mode 100644 autogpt_platform/backend/backend/api/features/executions/review/__init__.py rename autogpt_platform/backend/backend/{server/v2 => api/features}/executions/review/model.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/executions/review/review_routes_test.py (87%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/executions/review/routes.py (98%) create mode 100644 autogpt_platform/backend/backend/api/features/integrations/__init__.py rename autogpt_platform/backend/backend/{server => api/features}/integrations/models.py (100%) rename autogpt_platform/backend/backend/{server => api/features}/integrations/router.py (99%) create mode 100644 autogpt_platform/backend/backend/api/features/library/__init__.py rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/db.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/db_test.py (94%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/model.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/model_test.py (95%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/routes/__init__.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/routes/agents.py (98%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/routes/presets.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/library/routes_test.py (93%) rename autogpt_platform/backend/backend/{server/routers => api/features}/oauth.py (99%) rename autogpt_platform/backend/backend/{server/routers => api/features}/oauth_test.py (99%) create mode 100644 autogpt_platform/backend/backend/api/features/otto/__init__.py rename autogpt_platform/backend/backend/{server/v2 => api/features}/otto/models.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/otto/routes.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/otto/routes_test.py (97%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/otto/service.py (100%) create mode 100644 autogpt_platform/backend/backend/api/features/postmark/__init__.py rename autogpt_platform/backend/backend/{server/routers => api/features}/postmark/models.py (100%) rename autogpt_platform/backend/backend/{server/routers => api/features}/postmark/postmark.py (96%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/README.md (100%) create mode 100644 autogpt_platform/backend/backend/api/features/store/__init__.py rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/cache.py (85%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/db.py (92%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/db_test.py (99%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/exceptions.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/image_gen.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/media.py (81%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/media_test.py (75%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/model.py (100%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/model_test.py (83%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/routes.py (87%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/routes_test.py (76%) rename autogpt_platform/backend/backend/{server/v2 => api/features}/store/test_cache_delete.py (96%) rename autogpt_platform/backend/backend/{server/routers => api/features}/v1.py (98%) rename autogpt_platform/backend/backend/{server/routers => api/features}/v1_test.py (91%) rename autogpt_platform/backend/backend/{server => api}/middleware/security.py (100%) rename autogpt_platform/backend/backend/{server => api}/middleware/security_test.py (98%) rename autogpt_platform/backend/backend/{server => api}/model.py (100%) rename autogpt_platform/backend/backend/{server => api}/rest_api.py (78%) rename autogpt_platform/backend/backend/{server => api}/test_helpers.py (100%) rename autogpt_platform/backend/backend/{server => api}/utils/api_key_auth.py (100%) rename autogpt_platform/backend/backend/{server => api}/utils/api_key_auth_test.py (99%) rename autogpt_platform/backend/backend/{server => api}/utils/cors.py (100%) rename autogpt_platform/backend/backend/{server => api}/utils/cors_test.py (97%) create mode 100644 autogpt_platform/backend/backend/api/utils/openapi.py rename autogpt_platform/backend/backend/{server => api}/ws_api.py (98%) rename autogpt_platform/backend/backend/{server => api}/ws_api_test.py (92%) rename autogpt_platform/backend/backend/{server/v2/AutoMod => executor/automod}/__init__.py (100%) rename autogpt_platform/backend/backend/{server/v2/AutoMod => executor/automod}/manager.py (99%) rename autogpt_platform/backend/backend/{server/v2/AutoMod => executor/automod}/models.py (100%) delete mode 100644 autogpt_platform/backend/backend/server/external/api.py delete mode 100644 autogpt_platform/backend/backend/server/routers/analytics_improved_test.py delete mode 100644 autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py delete mode 100644 autogpt_platform/backend/backend/server/routers/analytics_test.py diff --git a/autogpt_platform/autogpt_libs/autogpt_libs/auth/helpers.py b/autogpt_platform/autogpt_libs/autogpt_libs/auth/helpers.py index d3d571d73c..10101778e7 100644 --- a/autogpt_platform/autogpt_libs/autogpt_libs/auth/helpers.py +++ b/autogpt_platform/autogpt_libs/autogpt_libs/auth/helpers.py @@ -1,29 +1,25 @@ from fastapi import FastAPI -from fastapi.openapi.utils import get_openapi from .jwt_utils import bearer_jwt_auth def add_auth_responses_to_openapi(app: FastAPI) -> None: """ - Set up custom OpenAPI schema generation that adds 401 responses + Patch a FastAPI instance's `openapi()` method to add 401 responses to all authenticated endpoints. This is needed when using HTTPBearer with auto_error=False to get proper 401 responses instead of 403, but FastAPI only automatically adds security responses when auto_error=True. """ + # Wrap current method to allow stacking OpenAPI schema modifiers like this + wrapped_openapi = app.openapi def custom_openapi(): if app.openapi_schema: return app.openapi_schema - openapi_schema = get_openapi( - title=app.title, - version=app.version, - description=app.description, - routes=app.routes, - ) + openapi_schema = wrapped_openapi() # Add 401 response to all endpoints that have security requirements for path, methods in openapi_schema["paths"].items(): diff --git a/autogpt_platform/backend/TESTING.md b/autogpt_platform/backend/TESTING.md index 39fe4611b4..a3a5db68ef 100644 --- a/autogpt_platform/backend/TESTING.md +++ b/autogpt_platform/backend/TESTING.md @@ -108,7 +108,7 @@ import fastapi.testclient import pytest from pytest_snapshot.plugin import Snapshot -from backend.server.v2.myroute import router +from backend.api.features.myroute import router app = fastapi.FastAPI() app.include_router(router) @@ -149,7 +149,7 @@ These provide the easiest way to set up authentication mocking in test modules: import fastapi import fastapi.testclient import pytest -from backend.server.v2.myroute import router +from backend.api.features.myroute import router app = fastapi.FastAPI() app.include_router(router) diff --git a/autogpt_platform/backend/backend/server/__init__.py b/autogpt_platform/backend/backend/api/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/__init__.py rename to autogpt_platform/backend/backend/api/__init__.py diff --git a/autogpt_platform/backend/backend/server/conftest.py b/autogpt_platform/backend/backend/api/conftest.py similarity index 100% rename from autogpt_platform/backend/backend/server/conftest.py rename to autogpt_platform/backend/backend/api/conftest.py diff --git a/autogpt_platform/backend/backend/server/conn_manager.py b/autogpt_platform/backend/backend/api/conn_manager.py similarity index 98% rename from autogpt_platform/backend/backend/server/conn_manager.py rename to autogpt_platform/backend/backend/api/conn_manager.py index 8d65117564..52e0f50f69 100644 --- a/autogpt_platform/backend/backend/server/conn_manager.py +++ b/autogpt_platform/backend/backend/api/conn_manager.py @@ -3,12 +3,12 @@ from typing import Dict, Set from fastapi import WebSocket +from backend.api.model import NotificationPayload, WSMessage, WSMethod from backend.data.execution import ( ExecutionEventType, GraphExecutionEvent, NodeExecutionEvent, ) -from backend.server.model import NotificationPayload, WSMessage, WSMethod _EVENT_TYPE_TO_METHOD_MAP: dict[ExecutionEventType, WSMethod] = { ExecutionEventType.GRAPH_EXEC_UPDATE: WSMethod.GRAPH_EXECUTION_EVENT, diff --git a/autogpt_platform/backend/backend/server/conn_manager_test.py b/autogpt_platform/backend/backend/api/conn_manager_test.py similarity index 98% rename from autogpt_platform/backend/backend/server/conn_manager_test.py rename to autogpt_platform/backend/backend/api/conn_manager_test.py index 379928fae7..71dbc0ffee 100644 --- a/autogpt_platform/backend/backend/server/conn_manager_test.py +++ b/autogpt_platform/backend/backend/api/conn_manager_test.py @@ -4,13 +4,13 @@ from unittest.mock import AsyncMock import pytest from fastapi import WebSocket +from backend.api.conn_manager import ConnectionManager +from backend.api.model import NotificationPayload, WSMessage, WSMethod from backend.data.execution import ( ExecutionStatus, GraphExecutionEvent, NodeExecutionEvent, ) -from backend.server.conn_manager import ConnectionManager -from backend.server.model import NotificationPayload, WSMessage, WSMethod @pytest.fixture diff --git a/autogpt_platform/backend/backend/api/external/fastapi_app.py b/autogpt_platform/backend/backend/api/external/fastapi_app.py new file mode 100644 index 0000000000..b55c918a74 --- /dev/null +++ b/autogpt_platform/backend/backend/api/external/fastapi_app.py @@ -0,0 +1,25 @@ +from fastapi import FastAPI + +from backend.api.middleware.security import SecurityHeadersMiddleware +from backend.monitoring.instrumentation import instrument_fastapi + +from .v1.routes import v1_router + +external_api = FastAPI( + title="AutoGPT External API", + description="External API for AutoGPT integrations", + docs_url="/docs", + version="1.0", +) + +external_api.add_middleware(SecurityHeadersMiddleware) +external_api.include_router(v1_router, prefix="/v1") + +# Add Prometheus instrumentation +instrument_fastapi( + external_api, + service_name="external-api", + expose_endpoint=True, + endpoint="/metrics", + include_in_schema=True, +) diff --git a/autogpt_platform/backend/backend/server/external/middleware.py b/autogpt_platform/backend/backend/api/external/middleware.py similarity index 100% rename from autogpt_platform/backend/backend/server/external/middleware.py rename to autogpt_platform/backend/backend/api/external/middleware.py diff --git a/autogpt_platform/backend/backend/server/external/routes/__init__.py b/autogpt_platform/backend/backend/api/external/v1/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/external/routes/__init__.py rename to autogpt_platform/backend/backend/api/external/v1/__init__.py diff --git a/autogpt_platform/backend/backend/server/external/routes/integrations.py b/autogpt_platform/backend/backend/api/external/v1/integrations.py similarity index 99% rename from autogpt_platform/backend/backend/server/external/routes/integrations.py rename to autogpt_platform/backend/backend/api/external/v1/integrations.py index f9a8875ada..a3df481a67 100644 --- a/autogpt_platform/backend/backend/server/external/routes/integrations.py +++ b/autogpt_platform/backend/backend/api/external/v1/integrations.py @@ -16,6 +16,8 @@ from fastapi import APIRouter, Body, HTTPException, Path, Security, status from prisma.enums import APIKeyPermission from pydantic import BaseModel, Field, SecretStr +from backend.api.external.middleware import require_permission +from backend.api.features.integrations.models import get_all_provider_names from backend.data.auth.base import APIAuthorizationInfo from backend.data.model import ( APIKeyCredentials, @@ -28,8 +30,6 @@ from backend.data.model import ( from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.oauth import CREDENTIALS_BY_PROVIDER, HANDLERS_BY_NAME from backend.integrations.providers import ProviderName -from backend.server.external.middleware import require_permission -from backend.server.integrations.models import get_all_provider_names from backend.util.settings import Settings if TYPE_CHECKING: diff --git a/autogpt_platform/backend/backend/server/external/routes/v1.py b/autogpt_platform/backend/backend/api/external/v1/routes.py similarity index 96% rename from autogpt_platform/backend/backend/server/external/routes/v1.py rename to autogpt_platform/backend/backend/api/external/v1/routes.py index f83673465a..58e15dc6a3 100644 --- a/autogpt_platform/backend/backend/server/external/routes/v1.py +++ b/autogpt_platform/backend/backend/api/external/v1/routes.py @@ -8,23 +8,29 @@ from prisma.enums import AgentExecutionStatus, APIKeyPermission from pydantic import BaseModel, Field from typing_extensions import TypedDict +import backend.api.features.store.cache as store_cache +import backend.api.features.store.model as store_model import backend.data.block -import backend.server.v2.store.cache as store_cache -import backend.server.v2.store.model as store_model +from backend.api.external.middleware import require_permission from backend.data import execution as execution_db from backend.data import graph as graph_db from backend.data import user as user_db from backend.data.auth.base import APIAuthorizationInfo from backend.data.block import BlockInput, CompletedBlockOutput from backend.executor.utils import add_graph_execution -from backend.server.external.middleware import require_permission from backend.util.settings import Settings +from .integrations import integrations_router +from .tools import tools_router + settings = Settings() logger = logging.getLogger(__name__) v1_router = APIRouter() +v1_router.include_router(integrations_router) +v1_router.include_router(tools_router) + class UserInfoResponse(BaseModel): id: str diff --git a/autogpt_platform/backend/backend/server/external/routes/tools.py b/autogpt_platform/backend/backend/api/external/v1/tools.py similarity index 94% rename from autogpt_platform/backend/backend/server/external/routes/tools.py rename to autogpt_platform/backend/backend/api/external/v1/tools.py index 8e3f4cbfdb..9e362fb32c 100644 --- a/autogpt_platform/backend/backend/server/external/routes/tools.py +++ b/autogpt_platform/backend/backend/api/external/v1/tools.py @@ -14,11 +14,11 @@ from fastapi import APIRouter, Security from prisma.enums import APIKeyPermission from pydantic import BaseModel, Field +from backend.api.external.middleware import require_permission +from backend.api.features.chat.model import ChatSession +from backend.api.features.chat.tools import find_agent_tool, run_agent_tool +from backend.api.features.chat.tools.models import ToolResponseBase from backend.data.auth.base import APIAuthorizationInfo -from backend.server.external.middleware import require_permission -from backend.server.v2.chat.model import ChatSession -from backend.server.v2.chat.tools import find_agent_tool, run_agent_tool -from backend.server.v2.chat.tools.models import ToolResponseBase logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/server/routers/postmark/__init__.py b/autogpt_platform/backend/backend/api/features/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/routers/postmark/__init__.py rename to autogpt_platform/backend/backend/api/features/__init__.py diff --git a/autogpt_platform/backend/backend/server/v2/library/__init__.py b/autogpt_platform/backend/backend/api/features/admin/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/library/__init__.py rename to autogpt_platform/backend/backend/api/features/admin/__init__.py diff --git a/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes.py b/autogpt_platform/backend/backend/api/features/admin/credit_admin_routes.py similarity index 96% rename from autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes.py rename to autogpt_platform/backend/backend/api/features/admin/credit_admin_routes.py index e4ea2c7f32..8930172c7f 100644 --- a/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes.py +++ b/autogpt_platform/backend/backend/api/features/admin/credit_admin_routes.py @@ -6,9 +6,10 @@ from fastapi import APIRouter, Body, Security from prisma.enums import CreditTransactionType from backend.data.credit import admin_get_user_history, get_user_credit_model -from backend.server.v2.admin.model import AddUserCreditsResponse, UserHistoryResponse from backend.util.json import SafeJson +from .model import AddUserCreditsResponse, UserHistoryResponse + logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py b/autogpt_platform/backend/backend/api/features/admin/credit_admin_routes_test.py similarity index 90% rename from autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py rename to autogpt_platform/backend/backend/api/features/admin/credit_admin_routes_test.py index 0248da352f..db2d3cb41a 100644 --- a/autogpt_platform/backend/backend/server/v2/admin/credit_admin_routes_test.py +++ b/autogpt_platform/backend/backend/api/features/admin/credit_admin_routes_test.py @@ -9,14 +9,15 @@ import pytest_mock from autogpt_libs.auth.jwt_utils import get_jwt_payload from pytest_snapshot.plugin import Snapshot -import backend.server.v2.admin.credit_admin_routes as credit_admin_routes -import backend.server.v2.admin.model as admin_model from backend.data.model import UserTransaction from backend.util.json import SafeJson from backend.util.models import Pagination +from .credit_admin_routes import router as credit_admin_router +from .model import UserHistoryResponse + app = fastapi.FastAPI() -app.include_router(credit_admin_routes.router) +app.include_router(credit_admin_router) client = fastapi.testclient.TestClient(app) @@ -30,7 +31,7 @@ def setup_app_admin_auth(mock_jwt_admin): def test_add_user_credits_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, configured_snapshot: Snapshot, admin_user_id: str, target_user_id: str, @@ -42,7 +43,7 @@ def test_add_user_credits_success( return_value=(1500, "transaction-123-uuid") ) mocker.patch( - "backend.server.v2.admin.credit_admin_routes.get_user_credit_model", + "backend.api.features.admin.credit_admin_routes.get_user_credit_model", return_value=mock_credit_model, ) @@ -84,7 +85,7 @@ def test_add_user_credits_success( def test_add_user_credits_negative_amount( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, snapshot: Snapshot, ) -> None: """Test credit deduction by admin (negative amount)""" @@ -94,7 +95,7 @@ def test_add_user_credits_negative_amount( return_value=(200, "transaction-456-uuid") ) mocker.patch( - "backend.server.v2.admin.credit_admin_routes.get_user_credit_model", + "backend.api.features.admin.credit_admin_routes.get_user_credit_model", return_value=mock_credit_model, ) @@ -119,12 +120,12 @@ def test_add_user_credits_negative_amount( def test_get_user_history_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, snapshot: Snapshot, ) -> None: """Test successful retrieval of user credit history""" # Mock the admin_get_user_history function - mock_history_response = admin_model.UserHistoryResponse( + mock_history_response = UserHistoryResponse( history=[ UserTransaction( user_id="user-1", @@ -150,7 +151,7 @@ def test_get_user_history_success( ) mocker.patch( - "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + "backend.api.features.admin.credit_admin_routes.admin_get_user_history", return_value=mock_history_response, ) @@ -170,12 +171,12 @@ def test_get_user_history_success( def test_get_user_history_with_filters( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, snapshot: Snapshot, ) -> None: """Test user credit history with search and filter parameters""" # Mock the admin_get_user_history function - mock_history_response = admin_model.UserHistoryResponse( + mock_history_response = UserHistoryResponse( history=[ UserTransaction( user_id="user-3", @@ -194,7 +195,7 @@ def test_get_user_history_with_filters( ) mock_get_history = mocker.patch( - "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + "backend.api.features.admin.credit_admin_routes.admin_get_user_history", return_value=mock_history_response, ) @@ -230,12 +231,12 @@ def test_get_user_history_with_filters( def test_get_user_history_empty_results( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, snapshot: Snapshot, ) -> None: """Test user credit history with no results""" # Mock empty history response - mock_history_response = admin_model.UserHistoryResponse( + mock_history_response = UserHistoryResponse( history=[], pagination=Pagination( total_items=0, @@ -246,7 +247,7 @@ def test_get_user_history_empty_results( ) mocker.patch( - "backend.server.v2.admin.credit_admin_routes.admin_get_user_history", + "backend.api.features.admin.credit_admin_routes.admin_get_user_history", return_value=mock_history_response, ) diff --git a/autogpt_platform/backend/backend/server/v2/admin/execution_analytics_routes.py b/autogpt_platform/backend/backend/api/features/admin/execution_analytics_routes.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/admin/execution_analytics_routes.py rename to autogpt_platform/backend/backend/api/features/admin/execution_analytics_routes.py diff --git a/autogpt_platform/backend/backend/server/v2/admin/model.py b/autogpt_platform/backend/backend/api/features/admin/model.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/admin/model.py rename to autogpt_platform/backend/backend/api/features/admin/model.py diff --git a/autogpt_platform/backend/backend/server/v2/admin/store_admin_routes.py b/autogpt_platform/backend/backend/api/features/admin/store_admin_routes.py similarity index 84% rename from autogpt_platform/backend/backend/server/v2/admin/store_admin_routes.py rename to autogpt_platform/backend/backend/api/features/admin/store_admin_routes.py index c611c43f5a..9c4b89fee6 100644 --- a/autogpt_platform/backend/backend/server/v2/admin/store_admin_routes.py +++ b/autogpt_platform/backend/backend/api/features/admin/store_admin_routes.py @@ -7,9 +7,9 @@ import fastapi import fastapi.responses import prisma.enums -import backend.server.v2.store.cache as store_cache -import backend.server.v2.store.db -import backend.server.v2.store.model +import backend.api.features.store.cache as store_cache +import backend.api.features.store.db as store_db +import backend.api.features.store.model as store_model import backend.util.json logger = logging.getLogger(__name__) @@ -24,7 +24,7 @@ router = fastapi.APIRouter( @router.get( "/listings", summary="Get Admin Listings History", - response_model=backend.server.v2.store.model.StoreListingsWithVersionsResponse, + response_model=store_model.StoreListingsWithVersionsResponse, ) async def get_admin_listings_with_versions( status: typing.Optional[prisma.enums.SubmissionStatus] = None, @@ -48,7 +48,7 @@ async def get_admin_listings_with_versions( StoreListingsWithVersionsResponse with listings and their versions """ try: - listings = await backend.server.v2.store.db.get_admin_listings_with_versions( + listings = await store_db.get_admin_listings_with_versions( status=status, search_query=search, page=page, @@ -68,11 +68,11 @@ async def get_admin_listings_with_versions( @router.post( "/submissions/{store_listing_version_id}/review", summary="Review Store Submission", - response_model=backend.server.v2.store.model.StoreSubmission, + response_model=store_model.StoreSubmission, ) async def review_submission( store_listing_version_id: str, - request: backend.server.v2.store.model.ReviewSubmissionRequest, + request: store_model.ReviewSubmissionRequest, user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), ): """ @@ -87,12 +87,10 @@ async def review_submission( StoreSubmission with updated review information """ try: - already_approved = ( - await backend.server.v2.store.db.check_submission_already_approved( - store_listing_version_id=store_listing_version_id, - ) + already_approved = await store_db.check_submission_already_approved( + store_listing_version_id=store_listing_version_id, ) - submission = await backend.server.v2.store.db.review_store_submission( + submission = await store_db.review_store_submission( store_listing_version_id=store_listing_version_id, is_approved=request.is_approved, external_comments=request.comments, @@ -136,7 +134,7 @@ async def admin_download_agent_file( Raises: HTTPException: If the agent is not found or an unexpected error occurs. """ - graph_data = await backend.server.v2.store.db.get_agent_as_admin( + graph_data = await store_db.get_agent_as_admin( user_id=user_id, store_listing_version_id=store_listing_version_id, ) diff --git a/autogpt_platform/backend/backend/server/routers/analytics.py b/autogpt_platform/backend/backend/api/features/analytics.py similarity index 94% rename from autogpt_platform/backend/backend/server/routers/analytics.py rename to autogpt_platform/backend/backend/api/features/analytics.py index 98c2dd8e96..73a4590dcb 100644 --- a/autogpt_platform/backend/backend/server/routers/analytics.py +++ b/autogpt_platform/backend/backend/api/features/analytics.py @@ -6,10 +6,11 @@ from typing import Annotated import fastapi import pydantic from autogpt_libs.auth import get_user_id +from autogpt_libs.auth.dependencies import requires_user import backend.data.analytics -router = fastapi.APIRouter() +router = fastapi.APIRouter(dependencies=[fastapi.Security(requires_user)]) logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/api/features/analytics_test.py b/autogpt_platform/backend/backend/api/features/analytics_test.py new file mode 100644 index 0000000000..2493bdb7e4 --- /dev/null +++ b/autogpt_platform/backend/backend/api/features/analytics_test.py @@ -0,0 +1,340 @@ +"""Tests for analytics API endpoints.""" + +import json +from unittest.mock import AsyncMock, Mock + +import fastapi +import fastapi.testclient +import pytest +import pytest_mock +from pytest_snapshot.plugin import Snapshot + +from .analytics import router as analytics_router + +app = fastapi.FastAPI() +app.include_router(analytics_router) + +client = fastapi.testclient.TestClient(app) + + +@pytest.fixture(autouse=True) +def setup_app_auth(mock_jwt_user): + """Setup auth overrides for all tests in this module.""" + from autogpt_libs.auth.jwt_utils import get_jwt_payload + + app.dependency_overrides[get_jwt_payload] = mock_jwt_user["get_jwt_payload"] + yield + app.dependency_overrides.clear() + + +# ============================================================================= +# /log_raw_metric endpoint tests +# ============================================================================= + + +def test_log_raw_metric_success( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, + test_user_id: str, +) -> None: + """Test successful raw metric logging.""" + mock_result = Mock(id="metric-123-uuid") + mock_log_metric = mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "metric_name": "page_load_time", + "metric_value": 2.5, + "data_string": "/dashboard", + } + + response = client.post("/log_raw_metric", json=request_data) + + assert response.status_code == 200, f"Unexpected response: {response.text}" + assert response.json() == "metric-123-uuid" + + mock_log_metric.assert_called_once_with( + user_id=test_user_id, + metric_name="page_load_time", + metric_value=2.5, + data_string="/dashboard", + ) + + configured_snapshot.assert_match( + json.dumps({"metric_id": response.json()}, indent=2, sort_keys=True), + "analytics_log_metric_success", + ) + + +@pytest.mark.parametrize( + "metric_value,metric_name,data_string,test_id", + [ + (100, "api_calls_count", "external_api", "integer_value"), + (0, "error_count", "no_errors", "zero_value"), + (-5.2, "temperature_delta", "cooling", "negative_value"), + (1.23456789, "precision_test", "float_precision", "float_precision"), + (999999999, "large_number", "max_value", "large_number"), + (0.0000001, "tiny_number", "min_value", "tiny_number"), + ], +) +def test_log_raw_metric_various_values( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, + metric_value: float, + metric_name: str, + data_string: str, + test_id: str, +) -> None: + """Test raw metric logging with various metric values.""" + mock_result = Mock(id=f"metric-{test_id}-uuid") + mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "metric_name": metric_name, + "metric_value": metric_value, + "data_string": data_string, + } + + response = client.post("/log_raw_metric", json=request_data) + + assert response.status_code == 200, f"Failed for {test_id}: {response.text}" + + configured_snapshot.assert_match( + json.dumps( + {"metric_id": response.json(), "test_case": test_id}, + indent=2, + sort_keys=True, + ), + f"analytics_metric_{test_id}", + ) + + +@pytest.mark.parametrize( + "invalid_data,expected_error", + [ + ({}, "Field required"), + ({"metric_name": "test"}, "Field required"), + ( + {"metric_name": "test", "metric_value": "not_a_number", "data_string": "x"}, + "Input should be a valid number", + ), + ( + {"metric_name": "", "metric_value": 1.0, "data_string": "test"}, + "String should have at least 1 character", + ), + ( + {"metric_name": "test", "metric_value": 1.0, "data_string": ""}, + "String should have at least 1 character", + ), + ], + ids=[ + "empty_request", + "missing_metric_value_and_data_string", + "invalid_metric_value_type", + "empty_metric_name", + "empty_data_string", + ], +) +def test_log_raw_metric_validation_errors( + invalid_data: dict, + expected_error: str, +) -> None: + """Test validation errors for invalid metric requests.""" + response = client.post("/log_raw_metric", json=invalid_data) + + assert response.status_code == 422 + error_detail = response.json() + assert "detail" in error_detail, f"Missing 'detail' in error: {error_detail}" + + error_text = json.dumps(error_detail) + assert ( + expected_error in error_text + ), f"Expected '{expected_error}' in error response: {error_text}" + + +def test_log_raw_metric_service_error( + mocker: pytest_mock.MockFixture, + test_user_id: str, +) -> None: + """Test error handling when analytics service fails.""" + mocker.patch( + "backend.data.analytics.log_raw_metric", + new_callable=AsyncMock, + side_effect=Exception("Database connection failed"), + ) + + request_data = { + "metric_name": "test_metric", + "metric_value": 1.0, + "data_string": "test", + } + + response = client.post("/log_raw_metric", json=request_data) + + assert response.status_code == 500 + error_detail = response.json()["detail"] + assert "Database connection failed" in error_detail["message"] + assert "hint" in error_detail + + +# ============================================================================= +# /log_raw_analytics endpoint tests +# ============================================================================= + + +def test_log_raw_analytics_success( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, + test_user_id: str, +) -> None: + """Test successful raw analytics logging.""" + mock_result = Mock(id="analytics-789-uuid") + mock_log_analytics = mocker.patch( + "backend.data.analytics.log_raw_analytics", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "type": "user_action", + "data": { + "action": "button_click", + "button_id": "submit_form", + "timestamp": "2023-01-01T00:00:00Z", + "metadata": {"form_type": "registration", "fields_filled": 5}, + }, + "data_index": "button_click_submit_form", + } + + response = client.post("/log_raw_analytics", json=request_data) + + assert response.status_code == 200, f"Unexpected response: {response.text}" + assert response.json() == "analytics-789-uuid" + + mock_log_analytics.assert_called_once_with( + test_user_id, + "user_action", + request_data["data"], + "button_click_submit_form", + ) + + configured_snapshot.assert_match( + json.dumps({"analytics_id": response.json()}, indent=2, sort_keys=True), + "analytics_log_analytics_success", + ) + + +def test_log_raw_analytics_complex_data( + mocker: pytest_mock.MockFixture, + configured_snapshot: Snapshot, +) -> None: + """Test raw analytics logging with complex nested data structures.""" + mock_result = Mock(id="analytics-complex-uuid") + mocker.patch( + "backend.data.analytics.log_raw_analytics", + new_callable=AsyncMock, + return_value=mock_result, + ) + + request_data = { + "type": "agent_execution", + "data": { + "agent_id": "agent_123", + "execution_id": "exec_456", + "status": "completed", + "duration_ms": 3500, + "nodes_executed": 15, + "blocks_used": [ + {"block_id": "llm_block", "count": 3}, + {"block_id": "http_block", "count": 5}, + {"block_id": "code_block", "count": 2}, + ], + "errors": [], + "metadata": { + "trigger": "manual", + "user_tier": "premium", + "environment": "production", + }, + }, + "data_index": "agent_123_exec_456", + } + + response = client.post("/log_raw_analytics", json=request_data) + + assert response.status_code == 200 + + configured_snapshot.assert_match( + json.dumps( + {"analytics_id": response.json(), "logged_data": request_data["data"]}, + indent=2, + sort_keys=True, + ), + "analytics_log_analytics_complex_data", + ) + + +@pytest.mark.parametrize( + "invalid_data,expected_error", + [ + ({}, "Field required"), + ({"type": "test"}, "Field required"), + ( + {"type": "test", "data": "not_a_dict", "data_index": "test"}, + "Input should be a valid dictionary", + ), + ({"type": "test", "data": {"key": "value"}}, "Field required"), + ], + ids=[ + "empty_request", + "missing_data_and_data_index", + "invalid_data_type", + "missing_data_index", + ], +) +def test_log_raw_analytics_validation_errors( + invalid_data: dict, + expected_error: str, +) -> None: + """Test validation errors for invalid analytics requests.""" + response = client.post("/log_raw_analytics", json=invalid_data) + + assert response.status_code == 422 + error_detail = response.json() + assert "detail" in error_detail, f"Missing 'detail' in error: {error_detail}" + + error_text = json.dumps(error_detail) + assert ( + expected_error in error_text + ), f"Expected '{expected_error}' in error response: {error_text}" + + +def test_log_raw_analytics_service_error( + mocker: pytest_mock.MockFixture, + test_user_id: str, +) -> None: + """Test error handling when analytics service fails.""" + mocker.patch( + "backend.data.analytics.log_raw_analytics", + new_callable=AsyncMock, + side_effect=Exception("Analytics DB unreachable"), + ) + + request_data = { + "type": "test_event", + "data": {"key": "value"}, + "data_index": "test_index", + } + + response = client.post("/log_raw_analytics", json=request_data) + + assert response.status_code == 500 + error_detail = response.json()["detail"] + assert "Analytics DB unreachable" in error_detail["message"] + assert "hint" in error_detail diff --git a/autogpt_platform/backend/backend/server/v2/store/__init__.py b/autogpt_platform/backend/backend/api/features/builder/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/store/__init__.py rename to autogpt_platform/backend/backend/api/features/builder/__init__.py diff --git a/autogpt_platform/backend/backend/server/v2/builder/db.py b/autogpt_platform/backend/backend/api/features/builder/db.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/builder/db.py rename to autogpt_platform/backend/backend/api/features/builder/db.py index 9856d53c0e..7177fa4dc6 100644 --- a/autogpt_platform/backend/backend/server/v2/builder/db.py +++ b/autogpt_platform/backend/backend/api/features/builder/db.py @@ -6,17 +6,20 @@ from typing import Sequence import prisma +import backend.api.features.library.db as library_db +import backend.api.features.library.model as library_model +import backend.api.features.store.db as store_db +import backend.api.features.store.model as store_model import backend.data.block -import backend.server.v2.library.db as library_db -import backend.server.v2.library.model as library_model -import backend.server.v2.store.db as store_db -import backend.server.v2.store.model as store_model from backend.blocks import load_all_blocks from backend.blocks.llm import LlmModel from backend.data.block import AnyBlockSchema, BlockCategory, BlockInfo, BlockSchema from backend.data.db import query_raw_with_schema from backend.integrations.providers import ProviderName -from backend.server.v2.builder.model import ( +from backend.util.cache import cached +from backend.util.models import Pagination + +from .model import ( BlockCategoryResponse, BlockResponse, BlockType, @@ -26,8 +29,6 @@ from backend.server.v2.builder.model import ( ProviderResponse, SearchEntry, ) -from backend.util.cache import cached -from backend.util.models import Pagination logger = logging.getLogger(__name__) llm_models = [name.name.lower().replace("_", " ") for name in LlmModel] diff --git a/autogpt_platform/backend/backend/server/v2/builder/model.py b/autogpt_platform/backend/backend/api/features/builder/model.py similarity index 93% rename from autogpt_platform/backend/backend/server/v2/builder/model.py rename to autogpt_platform/backend/backend/api/features/builder/model.py index 4a1de595d1..fcd19dba94 100644 --- a/autogpt_platform/backend/backend/server/v2/builder/model.py +++ b/autogpt_platform/backend/backend/api/features/builder/model.py @@ -2,8 +2,8 @@ from typing import Literal from pydantic import BaseModel -import backend.server.v2.library.model as library_model -import backend.server.v2.store.model as store_model +import backend.api.features.library.model as library_model +import backend.api.features.store.model as store_model from backend.data.block import BlockInfo from backend.integrations.providers import ProviderName from backend.util.models import Pagination diff --git a/autogpt_platform/backend/backend/server/v2/builder/routes.py b/autogpt_platform/backend/backend/api/features/builder/routes.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/builder/routes.py rename to autogpt_platform/backend/backend/api/features/builder/routes.py index b87bf8ca1a..7fe9cab189 100644 --- a/autogpt_platform/backend/backend/server/v2/builder/routes.py +++ b/autogpt_platform/backend/backend/api/features/builder/routes.py @@ -4,11 +4,12 @@ from typing import Annotated, Sequence import fastapi from autogpt_libs.auth.dependencies import get_user_id, requires_user -import backend.server.v2.builder.db as builder_db -import backend.server.v2.builder.model as builder_model from backend.integrations.providers import ProviderName from backend.util.models import Pagination +from . import db as builder_db +from . import model as builder_model + logger = logging.getLogger(__name__) router = fastapi.APIRouter( diff --git a/autogpt_platform/backend/backend/api/features/chat/__init__.py b/autogpt_platform/backend/backend/api/features/chat/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/v2/chat/config.py b/autogpt_platform/backend/backend/api/features/chat/config.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/chat/config.py rename to autogpt_platform/backend/backend/api/features/chat/config.py diff --git a/autogpt_platform/backend/backend/server/v2/chat/model.py b/autogpt_platform/backend/backend/api/features/chat/model.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/chat/model.py rename to autogpt_platform/backend/backend/api/features/chat/model.py index 0f06ddab00..b8aea5a334 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/model.py +++ b/autogpt_platform/backend/backend/api/features/chat/model.py @@ -19,9 +19,10 @@ from openai.types.chat.chat_completion_message_tool_call_param import ( from pydantic import BaseModel from backend.data.redis_client import get_redis_async -from backend.server.v2.chat.config import ChatConfig from backend.util.exceptions import RedisError +from .config import ChatConfig + logger = logging.getLogger(__name__) config = ChatConfig() diff --git a/autogpt_platform/backend/backend/server/v2/chat/model_test.py b/autogpt_platform/backend/backend/api/features/chat/model_test.py similarity index 97% rename from autogpt_platform/backend/backend/server/v2/chat/model_test.py rename to autogpt_platform/backend/backend/api/features/chat/model_test.py index f9c79b331b..b7f4c8a493 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/model_test.py +++ b/autogpt_platform/backend/backend/api/features/chat/model_test.py @@ -1,6 +1,6 @@ import pytest -from backend.server.v2.chat.model import ( +from .model import ( ChatMessage, ChatSession, Usage, diff --git a/autogpt_platform/backend/backend/server/v2/chat/prompts/chat_system.md b/autogpt_platform/backend/backend/api/features/chat/prompts/chat_system.md similarity index 100% rename from autogpt_platform/backend/backend/server/v2/chat/prompts/chat_system.md rename to autogpt_platform/backend/backend/api/features/chat/prompts/chat_system.md diff --git a/autogpt_platform/backend/backend/server/v2/chat/response_model.py b/autogpt_platform/backend/backend/api/features/chat/response_model.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/chat/response_model.py rename to autogpt_platform/backend/backend/api/features/chat/response_model.py diff --git a/autogpt_platform/backend/backend/server/v2/chat/routes.py b/autogpt_platform/backend/backend/api/features/chat/routes.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/chat/routes.py rename to autogpt_platform/backend/backend/api/features/chat/routes.py index 86bcf861c0..667335d048 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/routes.py +++ b/autogpt_platform/backend/backend/api/features/chat/routes.py @@ -9,10 +9,11 @@ from fastapi import APIRouter, Depends, Query, Security from fastapi.responses import StreamingResponse from pydantic import BaseModel -import backend.server.v2.chat.service as chat_service -from backend.server.v2.chat.config import ChatConfig from backend.util.exceptions import NotFoundError +from . import service as chat_service +from .config import ChatConfig + config = ChatConfig() diff --git a/autogpt_platform/backend/backend/server/v2/chat/service.py b/autogpt_platform/backend/backend/api/features/chat/service.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/chat/service.py rename to autogpt_platform/backend/backend/api/features/chat/service.py index 4328deb016..2d96d4abcd 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/service.py +++ b/autogpt_platform/backend/backend/api/features/chat/service.py @@ -7,15 +7,17 @@ import orjson from openai import AsyncOpenAI from openai.types.chat import ChatCompletionChunk, ChatCompletionToolParam -import backend.server.v2.chat.config -from backend.server.v2.chat.model import ( +from backend.util.exceptions import NotFoundError + +from .config import ChatConfig +from .model import ( ChatMessage, ChatSession, Usage, get_chat_session, upsert_chat_session, ) -from backend.server.v2.chat.response_model import ( +from .response_model import ( StreamBaseResponse, StreamEnd, StreamError, @@ -26,12 +28,11 @@ from backend.server.v2.chat.response_model import ( StreamToolExecutionResult, StreamUsage, ) -from backend.server.v2.chat.tools import execute_tool, tools -from backend.util.exceptions import NotFoundError +from .tools import execute_tool, tools logger = logging.getLogger(__name__) -config = backend.server.v2.chat.config.ChatConfig() +config = ChatConfig() client = AsyncOpenAI(api_key=config.api_key, base_url=config.base_url) diff --git a/autogpt_platform/backend/backend/server/v2/chat/service_test.py b/autogpt_platform/backend/backend/api/features/chat/service_test.py similarity index 95% rename from autogpt_platform/backend/backend/server/v2/chat/service_test.py rename to autogpt_platform/backend/backend/api/features/chat/service_test.py index df3d64976e..d1af22a71a 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/service_test.py +++ b/autogpt_platform/backend/backend/api/features/chat/service_test.py @@ -3,8 +3,8 @@ from os import getenv import pytest -import backend.server.v2.chat.service as chat_service -from backend.server.v2.chat.response_model import ( +from . import service as chat_service +from .response_model import ( StreamEnd, StreamError, StreamTextChunk, diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/__init__.py b/autogpt_platform/backend/backend/api/features/chat/tools/__init__.py similarity index 87% rename from autogpt_platform/backend/backend/server/v2/chat/tools/__init__.py rename to autogpt_platform/backend/backend/api/features/chat/tools/__init__.py index 50f0d9892b..5b9b8649a8 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/__init__.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/__init__.py @@ -2,14 +2,14 @@ from typing import TYPE_CHECKING, Any from openai.types.chat import ChatCompletionToolParam -from backend.server.v2.chat.model import ChatSession +from backend.api.features.chat.model import ChatSession from .base import BaseTool from .find_agent import FindAgentTool from .run_agent import RunAgentTool if TYPE_CHECKING: - from backend.server.v2.chat.response_model import StreamToolExecutionResult + from backend.api.features.chat.response_model import StreamToolExecutionResult # Initialize tool instances find_agent_tool = FindAgentTool() diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/_test_data.py b/autogpt_platform/backend/backend/api/features/chat/tools/_test_data.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/chat/tools/_test_data.py rename to autogpt_platform/backend/backend/api/features/chat/tools/_test_data.py index 162894f5f1..f75b7bb0d0 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/_test_data.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/_test_data.py @@ -5,6 +5,8 @@ from os import getenv import pytest from pydantic import SecretStr +from backend.api.features.chat.model import ChatSession +from backend.api.features.store import db as store_db from backend.blocks.firecrawl.scrape import FirecrawlScrapeBlock from backend.blocks.io import AgentInputBlock, AgentOutputBlock from backend.blocks.llm import AITextGeneratorBlock @@ -13,8 +15,6 @@ from backend.data.graph import Graph, Link, Node, create_graph from backend.data.model import APIKeyCredentials from backend.data.user import get_or_create_user from backend.integrations.credentials_store import IntegrationCredentialsStore -from backend.server.v2.chat.model import ChatSession -from backend.server.v2.store import db as store_db def make_session(user_id: str | None = None): diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/base.py b/autogpt_platform/backend/backend/api/features/chat/tools/base.py similarity index 96% rename from autogpt_platform/backend/backend/server/v2/chat/tools/base.py rename to autogpt_platform/backend/backend/api/features/chat/tools/base.py index f6c4c06284..b4c9d8d731 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/base.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/base.py @@ -5,8 +5,8 @@ from typing import Any from openai.types.chat import ChatCompletionToolParam -from backend.server.v2.chat.model import ChatSession -from backend.server.v2.chat.response_model import StreamToolExecutionResult +from backend.api.features.chat.model import ChatSession +from backend.api.features.chat.response_model import StreamToolExecutionResult from .models import ErrorResponse, NeedLoginResponse, ToolResponseBase diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/find_agent.py b/autogpt_platform/backend/backend/api/features/chat/tools/find_agent.py similarity index 95% rename from autogpt_platform/backend/backend/server/v2/chat/tools/find_agent.py rename to autogpt_platform/backend/backend/api/features/chat/tools/find_agent.py index 111041a8f4..3ad071f412 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/find_agent.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/find_agent.py @@ -3,17 +3,18 @@ import logging from typing import Any -from backend.server.v2.chat.model import ChatSession -from backend.server.v2.chat.tools.base import BaseTool -from backend.server.v2.chat.tools.models import ( +from backend.api.features.chat.model import ChatSession +from backend.api.features.store import db as store_db +from backend.util.exceptions import DatabaseError, NotFoundError + +from .base import BaseTool +from .models import ( AgentCarouselResponse, AgentInfo, ErrorResponse, NoResultsResponse, ToolResponseBase, ) -from backend.server.v2.store import db as store_db -from backend.util.exceptions import DatabaseError, NotFoundError logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/models.py b/autogpt_platform/backend/backend/api/features/chat/tools/models.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/chat/tools/models.py rename to autogpt_platform/backend/backend/api/features/chat/tools/models.py diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/run_agent.py b/autogpt_platform/backend/backend/api/features/chat/tools/run_agent.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/chat/tools/run_agent.py rename to autogpt_platform/backend/backend/api/features/chat/tools/run_agent.py index 9ba2eab893..931e075021 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/run_agent.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/run_agent.py @@ -5,14 +5,21 @@ from typing import Any from pydantic import BaseModel, Field, field_validator +from backend.api.features.chat.config import ChatConfig +from backend.api.features.chat.model import ChatSession from backend.data.graph import GraphModel from backend.data.model import CredentialsMetaInput from backend.data.user import get_user_by_id from backend.executor import utils as execution_utils -from backend.server.v2.chat.config import ChatConfig -from backend.server.v2.chat.model import ChatSession -from backend.server.v2.chat.tools.base import BaseTool -from backend.server.v2.chat.tools.models import ( +from backend.util.clients import get_scheduler_client +from backend.util.exceptions import DatabaseError, NotFoundError +from backend.util.timezone_utils import ( + convert_utc_time_to_user_timezone, + get_user_timezone_or_utc, +) + +from .base import BaseTool +from .models import ( AgentDetails, AgentDetailsResponse, ErrorResponse, @@ -23,19 +30,13 @@ from backend.server.v2.chat.tools.models import ( ToolResponseBase, UserReadiness, ) -from backend.server.v2.chat.tools.utils import ( +from .utils import ( check_user_has_required_credentials, extract_credentials_from_schema, fetch_graph_from_store_slug, get_or_create_library_agent, match_user_credentials_to_graph, ) -from backend.util.clients import get_scheduler_client -from backend.util.exceptions import DatabaseError, NotFoundError -from backend.util.timezone_utils import ( - convert_utc_time_to_user_timezone, - get_user_timezone_or_utc, -) logger = logging.getLogger(__name__) config = ChatConfig() diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/run_agent_test.py b/autogpt_platform/backend/backend/api/features/chat/tools/run_agent_test.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/chat/tools/run_agent_test.py rename to autogpt_platform/backend/backend/api/features/chat/tools/run_agent_test.py index 3ffd4a883e..ebad1a0050 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/run_agent_test.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/run_agent_test.py @@ -3,13 +3,13 @@ import uuid import orjson import pytest -from backend.server.v2.chat.tools._test_data import ( +from ._test_data import ( make_session, setup_firecrawl_test_data, setup_llm_test_data, setup_test_data, ) -from backend.server.v2.chat.tools.run_agent import RunAgentTool +from .run_agent import RunAgentTool # This is so the formatter doesn't remove the fixture imports setup_llm_test_data = setup_llm_test_data diff --git a/autogpt_platform/backend/backend/server/v2/chat/tools/utils.py b/autogpt_platform/backend/backend/api/features/chat/tools/utils.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/chat/tools/utils.py rename to autogpt_platform/backend/backend/api/features/chat/tools/utils.py index ef4bc6f272..19e092c312 100644 --- a/autogpt_platform/backend/backend/server/v2/chat/tools/utils.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/utils.py @@ -3,13 +3,13 @@ import logging from typing import Any +from backend.api.features.library import db as library_db +from backend.api.features.library import model as library_model +from backend.api.features.store import db as store_db from backend.data import graph as graph_db from backend.data.graph import GraphModel from backend.data.model import CredentialsMetaInput from backend.integrations.creds_manager import IntegrationCredentialsManager -from backend.server.v2.library import db as library_db -from backend.server.v2.library import model as library_model -from backend.server.v2.store import db as store_db from backend.util.exceptions import NotFoundError logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/api/features/executions/__init__.py b/autogpt_platform/backend/backend/api/features/executions/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/api/features/executions/review/__init__.py b/autogpt_platform/backend/backend/api/features/executions/review/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/v2/executions/review/model.py b/autogpt_platform/backend/backend/api/features/executions/review/model.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/executions/review/model.py rename to autogpt_platform/backend/backend/api/features/executions/review/model.py diff --git a/autogpt_platform/backend/backend/server/v2/executions/review/review_routes_test.py b/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py similarity index 87% rename from autogpt_platform/backend/backend/server/v2/executions/review/review_routes_test.py rename to autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py index 2e62641ad3..9d1df5f999 100644 --- a/autogpt_platform/backend/backend/server/v2/executions/review/review_routes_test.py +++ b/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py @@ -7,9 +7,10 @@ import pytest_mock from prisma.enums import ReviewStatus from pytest_snapshot.plugin import Snapshot -from backend.server.rest_api import handle_internal_http_error -from backend.server.v2.executions.review.model import PendingHumanReviewModel -from backend.server.v2.executions.review.routes import router +from backend.api.rest_api import handle_internal_http_error + +from .model import PendingHumanReviewModel +from .routes import router # Using a fixed timestamp for reproducible tests FIXED_NOW = datetime.datetime(2023, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc) @@ -60,7 +61,7 @@ def test_get_pending_reviews_empty( ) -> None: """Test getting pending reviews when none exist""" mock_get_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_user" + "backend.api.features.executions.review.routes.get_pending_reviews_for_user" ) mock_get_reviews.return_value = [] @@ -79,7 +80,7 @@ def test_get_pending_reviews_with_data( ) -> None: """Test getting pending reviews with data""" mock_get_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_user" + "backend.api.features.executions.review.routes.get_pending_reviews_for_user" ) mock_get_reviews.return_value = [sample_pending_review] @@ -101,7 +102,7 @@ def test_get_pending_reviews_for_execution_success( ) -> None: """Test getting pending reviews for specific execution""" mock_get_graph_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_graph_execution_meta" + "backend.api.features.executions.review.routes.get_graph_execution_meta" ) mock_get_graph_execution.return_value = { "id": "test_graph_exec_456", @@ -109,7 +110,7 @@ def test_get_pending_reviews_for_execution_success( } mock_get_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews.return_value = [sample_pending_review] @@ -127,7 +128,7 @@ def test_get_pending_reviews_for_execution_access_denied( ) -> None: """Test access denied when user doesn't own the execution""" mock_get_graph_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_graph_execution_meta" + "backend.api.features.executions.review.routes.get_graph_execution_meta" ) mock_get_graph_execution.return_value = None @@ -146,12 +147,12 @@ def test_process_review_action_approve_success( # Mock the route functions mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [sample_pending_review] mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) # Create approved review for return approved_review = PendingHumanReviewModel( @@ -174,11 +175,11 @@ def test_process_review_action_approve_success( mock_process_all_reviews.return_value = {"test_node_123": approved_review} mock_has_pending = mocker.patch( - "backend.server.v2.executions.review.routes.has_pending_reviews_for_graph_exec" + "backend.api.features.executions.review.routes.has_pending_reviews_for_graph_exec" ) mock_has_pending.return_value = False - mocker.patch("backend.server.v2.executions.review.routes.add_graph_execution") + mocker.patch("backend.api.features.executions.review.routes.add_graph_execution") request_data = { "reviews": [ @@ -210,12 +211,12 @@ def test_process_review_action_reject_success( # Mock the route functions mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [sample_pending_review] mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) rejected_review = PendingHumanReviewModel( node_exec_id="test_node_123", @@ -237,7 +238,7 @@ def test_process_review_action_reject_success( mock_process_all_reviews.return_value = {"test_node_123": rejected_review} mock_has_pending = mocker.patch( - "backend.server.v2.executions.review.routes.has_pending_reviews_for_graph_exec" + "backend.api.features.executions.review.routes.has_pending_reviews_for_graph_exec" ) mock_has_pending.return_value = False @@ -289,12 +290,12 @@ def test_process_review_action_mixed_success( # Mock the route functions mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [sample_pending_review, second_review] mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) # Create approved version of first review approved_review = PendingHumanReviewModel( @@ -338,7 +339,7 @@ def test_process_review_action_mixed_success( } mock_has_pending = mocker.patch( - "backend.server.v2.executions.review.routes.has_pending_reviews_for_graph_exec" + "backend.api.features.executions.review.routes.has_pending_reviews_for_graph_exec" ) mock_has_pending.return_value = False @@ -392,13 +393,13 @@ def test_process_review_action_review_not_found( """Test error when review is not found""" # Mock the functions that extract graph execution ID from the request mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [] # No reviews found # Mock process_all_reviews to simulate not finding reviews mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) # This should raise a ValueError with "Reviews not found" message based on the data/human_review.py logic mock_process_all_reviews.side_effect = ValueError( @@ -429,13 +430,13 @@ def test_process_review_action_partial_failure( """Test handling of partial failures in review processing""" # Mock the route functions mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [sample_pending_review] # Mock partial failure in processing mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) mock_process_all_reviews.side_effect = ValueError("Some reviews failed validation") @@ -463,13 +464,13 @@ def test_process_review_action_invalid_node_exec_id( """Test failure when trying to process review with invalid node execution ID""" # Mock the route functions mock_get_reviews_for_execution = mocker.patch( - "backend.server.v2.executions.review.routes.get_pending_reviews_for_execution" + "backend.api.features.executions.review.routes.get_pending_reviews_for_execution" ) mock_get_reviews_for_execution.return_value = [sample_pending_review] # Mock validation failure - this should return 400, not 500 mock_process_all_reviews = mocker.patch( - "backend.server.v2.executions.review.routes.process_all_reviews_for_execution" + "backend.api.features.executions.review.routes.process_all_reviews_for_execution" ) mock_process_all_reviews.side_effect = ValueError( "Invalid node execution ID format" diff --git a/autogpt_platform/backend/backend/server/v2/executions/review/routes.py b/autogpt_platform/backend/backend/api/features/executions/review/routes.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/executions/review/routes.py rename to autogpt_platform/backend/backend/api/features/executions/review/routes.py index 14fb435457..4aa4fac49b 100644 --- a/autogpt_platform/backend/backend/server/v2/executions/review/routes.py +++ b/autogpt_platform/backend/backend/api/features/executions/review/routes.py @@ -13,11 +13,8 @@ from backend.data.human_review import ( process_all_reviews_for_execution, ) from backend.executor.utils import add_graph_execution -from backend.server.v2.executions.review.model import ( - PendingHumanReviewModel, - ReviewRequest, - ReviewResponse, -) + +from .model import PendingHumanReviewModel, ReviewRequest, ReviewResponse logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/api/features/integrations/__init__.py b/autogpt_platform/backend/backend/api/features/integrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/integrations/models.py b/autogpt_platform/backend/backend/api/features/integrations/models.py similarity index 100% rename from autogpt_platform/backend/backend/server/integrations/models.py rename to autogpt_platform/backend/backend/api/features/integrations/models.py diff --git a/autogpt_platform/backend/backend/server/integrations/router.py b/autogpt_platform/backend/backend/api/features/integrations/router.py similarity index 99% rename from autogpt_platform/backend/backend/server/integrations/router.py rename to autogpt_platform/backend/backend/api/features/integrations/router.py index b4227ad02a..f5dd8c092b 100644 --- a/autogpt_platform/backend/backend/server/integrations/router.py +++ b/autogpt_platform/backend/backend/api/features/integrations/router.py @@ -17,6 +17,8 @@ from fastapi import ( from pydantic import BaseModel, Field, SecretStr from starlette.status import HTTP_500_INTERNAL_SERVER_ERROR, HTTP_502_BAD_GATEWAY +from backend.api.features.library.db import set_preset_webhook, update_preset +from backend.api.features.library.model import LibraryAgentPreset from backend.data.graph import NodeModel, get_graph, set_node_webhook from backend.data.integrations import ( WebhookEvent, @@ -45,13 +47,6 @@ from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.integrations.oauth import CREDENTIALS_BY_PROVIDER, HANDLERS_BY_NAME from backend.integrations.providers import ProviderName from backend.integrations.webhooks import get_webhook_manager -from backend.server.integrations.models import ( - ProviderConstants, - ProviderNamesResponse, - get_all_provider_names, -) -from backend.server.v2.library.db import set_preset_webhook, update_preset -from backend.server.v2.library.model import LibraryAgentPreset from backend.util.exceptions import ( GraphNotInLibraryError, MissingConfigError, @@ -60,6 +55,8 @@ from backend.util.exceptions import ( ) from backend.util.settings import Settings +from .models import ProviderConstants, ProviderNamesResponse, get_all_provider_names + if TYPE_CHECKING: from backend.integrations.oauth import BaseOAuthHandler diff --git a/autogpt_platform/backend/backend/api/features/library/__init__.py b/autogpt_platform/backend/backend/api/features/library/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/v2/library/db.py b/autogpt_platform/backend/backend/api/features/library/db.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/library/db.py rename to autogpt_platform/backend/backend/api/features/library/db.py index 17a0efa7be..ad34326700 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db.py +++ b/autogpt_platform/backend/backend/api/features/library/db.py @@ -4,16 +4,14 @@ from typing import Literal, Optional import fastapi import prisma.errors -import prisma.fields import prisma.models import prisma.types +import backend.api.features.store.exceptions as store_exceptions +import backend.api.features.store.image_gen as store_image_gen +import backend.api.features.store.media as store_media import backend.data.graph as graph_db import backend.data.integrations as integrations_db -import backend.server.v2.library.model as library_model -import backend.server.v2.store.exceptions as store_exceptions -import backend.server.v2.store.image_gen as store_image_gen -import backend.server.v2.store.media as store_media from backend.data.block import BlockInput from backend.data.db import transaction from backend.data.execution import get_graph_execution @@ -28,6 +26,8 @@ from backend.util.json import SafeJson from backend.util.models import Pagination from backend.util.settings import Config +from . import model as library_model + logger = logging.getLogger(__name__) config = Config() integration_creds_manager = IntegrationCredentialsManager() diff --git a/autogpt_platform/backend/backend/server/v2/library/db_test.py b/autogpt_platform/backend/backend/api/features/library/db_test.py similarity index 94% rename from autogpt_platform/backend/backend/server/v2/library/db_test.py rename to autogpt_platform/backend/backend/api/features/library/db_test.py index cb0095fb39..6023177070 100644 --- a/autogpt_platform/backend/backend/server/v2/library/db_test.py +++ b/autogpt_platform/backend/backend/api/features/library/db_test.py @@ -1,16 +1,15 @@ from datetime import datetime import prisma.enums -import prisma.errors import prisma.models -import prisma.types import pytest -import backend.server.v2.library.db as db -import backend.server.v2.store.exceptions +import backend.api.features.store.exceptions from backend.data.db import connect from backend.data.includes import library_agent_include +from . import db + @pytest.mark.asyncio async def test_get_library_agents(mocker): @@ -88,7 +87,7 @@ async def test_add_agent_to_library(mocker): await connect() # Mock the transaction context - mock_transaction = mocker.patch("backend.server.v2.library.db.transaction") + mock_transaction = mocker.patch("backend.api.features.library.db.transaction") mock_transaction.return_value.__aenter__ = mocker.AsyncMock(return_value=None) mock_transaction.return_value.__aexit__ = mocker.AsyncMock(return_value=None) # Mock data @@ -151,7 +150,7 @@ async def test_add_agent_to_library(mocker): ) # Mock graph_db.get_graph function that's called to check for HITL blocks - mock_graph_db = mocker.patch("backend.server.v2.library.db.graph_db") + mock_graph_db = mocker.patch("backend.api.features.library.db.graph_db") mock_graph_model = mocker.Mock() mock_graph_model.nodes = ( [] @@ -159,7 +158,9 @@ async def test_add_agent_to_library(mocker): mock_graph_db.get_graph = mocker.AsyncMock(return_value=mock_graph_model) # Mock the model conversion - mock_from_db = mocker.patch("backend.server.v2.library.model.LibraryAgent.from_db") + mock_from_db = mocker.patch( + "backend.api.features.library.model.LibraryAgent.from_db" + ) mock_from_db.return_value = mocker.Mock() # Call function @@ -217,7 +218,7 @@ async def test_add_agent_to_library_not_found(mocker): ) # Call function and verify exception - with pytest.raises(backend.server.v2.store.exceptions.AgentNotFoundError): + with pytest.raises(backend.api.features.store.exceptions.AgentNotFoundError): await db.add_store_agent_to_library("version123", "test-user") # Verify mock called correctly diff --git a/autogpt_platform/backend/backend/server/v2/library/model.py b/autogpt_platform/backend/backend/api/features/library/model.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/library/model.py rename to autogpt_platform/backend/backend/api/features/library/model.py diff --git a/autogpt_platform/backend/backend/server/v2/library/model_test.py b/autogpt_platform/backend/backend/api/features/library/model_test.py similarity index 95% rename from autogpt_platform/backend/backend/server/v2/library/model_test.py rename to autogpt_platform/backend/backend/api/features/library/model_test.py index d90ecf6f7a..a32b19322d 100644 --- a/autogpt_platform/backend/backend/server/v2/library/model_test.py +++ b/autogpt_platform/backend/backend/api/features/library/model_test.py @@ -3,7 +3,7 @@ import datetime import prisma.models import pytest -import backend.server.v2.library.model as library_model +from . import model as library_model @pytest.mark.asyncio diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/__init__.py b/autogpt_platform/backend/backend/api/features/library/routes/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/library/routes/__init__.py rename to autogpt_platform/backend/backend/api/features/library/routes/__init__.py diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py b/autogpt_platform/backend/backend/api/features/library/routes/agents.py similarity index 98% rename from autogpt_platform/backend/backend/server/v2/library/routes/agents.py rename to autogpt_platform/backend/backend/api/features/library/routes/agents.py index 173b6ab2b4..5a043009fc 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/agents.py +++ b/autogpt_platform/backend/backend/api/features/library/routes/agents.py @@ -6,12 +6,13 @@ from fastapi import APIRouter, Body, HTTPException, Query, Security, status from fastapi.responses import Response from prisma.enums import OnboardingStep -import backend.server.v2.library.db as library_db -import backend.server.v2.library.model as library_model -import backend.server.v2.store.exceptions as store_exceptions +import backend.api.features.store.exceptions as store_exceptions from backend.data.onboarding import complete_onboarding_step from backend.util.exceptions import DatabaseError, NotFoundError +from .. import db as library_db +from .. import model as library_model + logger = logging.getLogger(__name__) router = APIRouter( diff --git a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py b/autogpt_platform/backend/backend/api/features/library/routes/presets.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/library/routes/presets.py rename to autogpt_platform/backend/backend/api/features/library/routes/presets.py index b1810395f0..cd4c04e0f2 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes/presets.py +++ b/autogpt_platform/backend/backend/api/features/library/routes/presets.py @@ -4,8 +4,6 @@ from typing import Any, Optional import autogpt_libs.auth as autogpt_auth_lib from fastapi import APIRouter, Body, HTTPException, Query, Security, status -import backend.server.v2.library.db as db -import backend.server.v2.library.model as models from backend.data.execution import GraphExecutionMeta from backend.data.graph import get_graph from backend.data.integrations import get_webhook @@ -17,6 +15,9 @@ from backend.integrations.webhooks import get_webhook_manager from backend.integrations.webhooks.utils import setup_webhook_for_block from backend.util.exceptions import NotFoundError +from .. import db +from .. import model as models + logger = logging.getLogger(__name__) credentials_manager = IntegrationCredentialsManager() diff --git a/autogpt_platform/backend/backend/server/v2/library/routes_test.py b/autogpt_platform/backend/backend/api/features/library/routes_test.py similarity index 93% rename from autogpt_platform/backend/backend/server/v2/library/routes_test.py rename to autogpt_platform/backend/backend/api/features/library/routes_test.py index bd5d9827de..ad28b5b6bd 100644 --- a/autogpt_platform/backend/backend/server/v2/library/routes_test.py +++ b/autogpt_platform/backend/backend/api/features/library/routes_test.py @@ -7,10 +7,11 @@ import pytest import pytest_mock from pytest_snapshot.plugin import Snapshot -import backend.server.v2.library.model as library_model -from backend.server.v2.library.routes import router as library_router from backend.util.models import Pagination +from . import model as library_model +from .routes import router as library_router + app = fastapi.FastAPI() app.include_router(library_router) @@ -86,7 +87,7 @@ async def test_get_library_agents_success( total_items=2, total_pages=1, current_page=1, page_size=50 ), ) - mock_db_call = mocker.patch("backend.server.v2.library.db.list_library_agents") + mock_db_call = mocker.patch("backend.api.features.library.db.list_library_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?search_term=test") @@ -112,7 +113,7 @@ async def test_get_library_agents_success( def test_get_library_agents_error(mocker: pytest_mock.MockFixture, test_user_id: str): - mock_db_call = mocker.patch("backend.server.v2.library.db.list_library_agents") + mock_db_call = mocker.patch("backend.api.features.library.db.list_library_agents") mock_db_call.side_effect = Exception("Test error") response = client.get("/agents?search_term=test") @@ -161,7 +162,7 @@ async def test_get_favorite_library_agents_success( ), ) mock_db_call = mocker.patch( - "backend.server.v2.library.db.list_favorite_library_agents" + "backend.api.features.library.db.list_favorite_library_agents" ) mock_db_call.return_value = mocked_value @@ -184,7 +185,7 @@ def test_get_favorite_library_agents_error( mocker: pytest_mock.MockFixture, test_user_id: str ): mock_db_call = mocker.patch( - "backend.server.v2.library.db.list_favorite_library_agents" + "backend.api.features.library.db.list_favorite_library_agents" ) mock_db_call.side_effect = Exception("Test error") @@ -223,11 +224,11 @@ def test_add_agent_to_library_success( ) mock_db_call = mocker.patch( - "backend.server.v2.library.db.add_store_agent_to_library" + "backend.api.features.library.db.add_store_agent_to_library" ) mock_db_call.return_value = mock_library_agent mock_complete_onboarding = mocker.patch( - "backend.server.v2.library.routes.agents.complete_onboarding_step", + "backend.api.features.library.routes.agents.complete_onboarding_step", new_callable=AsyncMock, ) @@ -249,7 +250,7 @@ def test_add_agent_to_library_success( def test_add_agent_to_library_error(mocker: pytest_mock.MockFixture, test_user_id: str): mock_db_call = mocker.patch( - "backend.server.v2.library.db.add_store_agent_to_library" + "backend.api.features.library.db.add_store_agent_to_library" ) mock_db_call.side_effect = Exception("Test error") diff --git a/autogpt_platform/backend/backend/server/routers/oauth.py b/autogpt_platform/backend/backend/api/features/oauth.py similarity index 99% rename from autogpt_platform/backend/backend/server/routers/oauth.py rename to autogpt_platform/backend/backend/api/features/oauth.py index 55f591427a..023a433951 100644 --- a/autogpt_platform/backend/backend/server/routers/oauth.py +++ b/autogpt_platform/backend/backend/api/features/oauth.py @@ -5,11 +5,11 @@ Implements OAuth 2.0 Authorization Code flow with PKCE support. Flow: 1. User clicks "Login with AutoGPT" in 3rd party app -2. App redirects user to /oauth/authorize with client_id, redirect_uri, scope, state +2. App redirects user to /auth/authorize with client_id, redirect_uri, scope, state 3. User sees consent screen (if not already logged in, redirects to login first) 4. User approves → backend creates authorization code 5. User redirected back to app with code -6. App exchanges code for access/refresh tokens at /oauth/token +6. App exchanges code for access/refresh tokens at /api/oauth/token 7. App uses access token to call external API endpoints """ diff --git a/autogpt_platform/backend/backend/server/routers/oauth_test.py b/autogpt_platform/backend/backend/api/features/oauth_test.py similarity index 99% rename from autogpt_platform/backend/backend/server/routers/oauth_test.py rename to autogpt_platform/backend/backend/api/features/oauth_test.py index 8ec6911152..5f6b85a88a 100644 --- a/autogpt_platform/backend/backend/server/routers/oauth_test.py +++ b/autogpt_platform/backend/backend/api/features/oauth_test.py @@ -28,7 +28,7 @@ from prisma.models import OAuthAuthorizationCode as PrismaOAuthAuthorizationCode from prisma.models import OAuthRefreshToken as PrismaOAuthRefreshToken from prisma.models import User as PrismaUser -from backend.server.rest_api import app +from backend.api.rest_api import app keysmith = APIKeySmith() diff --git a/autogpt_platform/backend/backend/api/features/otto/__init__.py b/autogpt_platform/backend/backend/api/features/otto/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/v2/otto/models.py b/autogpt_platform/backend/backend/api/features/otto/models.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/otto/models.py rename to autogpt_platform/backend/backend/api/features/otto/models.py diff --git a/autogpt_platform/backend/backend/server/v2/otto/routes.py b/autogpt_platform/backend/backend/api/features/otto/routes.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/otto/routes.py rename to autogpt_platform/backend/backend/api/features/otto/routes.py diff --git a/autogpt_platform/backend/backend/server/v2/otto/routes_test.py b/autogpt_platform/backend/backend/api/features/otto/routes_test.py similarity index 97% rename from autogpt_platform/backend/backend/server/v2/otto/routes_test.py rename to autogpt_platform/backend/backend/api/features/otto/routes_test.py index 2641babe2b..416bcdee76 100644 --- a/autogpt_platform/backend/backend/server/v2/otto/routes_test.py +++ b/autogpt_platform/backend/backend/api/features/otto/routes_test.py @@ -6,9 +6,9 @@ import pytest import pytest_mock from pytest_snapshot.plugin import Snapshot -import backend.server.v2.otto.models as otto_models -import backend.server.v2.otto.routes as otto_routes -from backend.server.v2.otto.service import OttoService +from . import models as otto_models +from . import routes as otto_routes +from .service import OttoService app = fastapi.FastAPI() app.include_router(otto_routes.router) diff --git a/autogpt_platform/backend/backend/server/v2/otto/service.py b/autogpt_platform/backend/backend/api/features/otto/service.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/otto/service.py rename to autogpt_platform/backend/backend/api/features/otto/service.py diff --git a/autogpt_platform/backend/backend/api/features/postmark/__init__.py b/autogpt_platform/backend/backend/api/features/postmark/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/routers/postmark/models.py b/autogpt_platform/backend/backend/api/features/postmark/models.py similarity index 100% rename from autogpt_platform/backend/backend/server/routers/postmark/models.py rename to autogpt_platform/backend/backend/api/features/postmark/models.py diff --git a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py b/autogpt_platform/backend/backend/api/features/postmark/postmark.py similarity index 96% rename from autogpt_platform/backend/backend/server/routers/postmark/postmark.py rename to autogpt_platform/backend/backend/api/features/postmark/postmark.py index 2190aa5fce..224e30fa9d 100644 --- a/autogpt_platform/backend/backend/server/routers/postmark/postmark.py +++ b/autogpt_platform/backend/backend/api/features/postmark/postmark.py @@ -4,12 +4,15 @@ from typing import Annotated from fastapi import APIRouter, Body, HTTPException, Query, Security from fastapi.responses import JSONResponse +from backend.api.utils.api_key_auth import APIKeyAuthenticator from backend.data.user import ( get_user_by_email, set_user_email_verification, unsubscribe_user_by_token, ) -from backend.server.routers.postmark.models import ( +from backend.util.settings import Settings + +from .models import ( PostmarkBounceEnum, PostmarkBounceWebhook, PostmarkClickWebhook, @@ -19,8 +22,6 @@ from backend.server.routers.postmark.models import ( PostmarkSubscriptionChangeWebhook, PostmarkWebhook, ) -from backend.server.utils.api_key_auth import APIKeyAuthenticator -from backend.util.settings import Settings logger = logging.getLogger(__name__) settings = Settings() diff --git a/autogpt_platform/backend/backend/server/v2/store/README.md b/autogpt_platform/backend/backend/api/features/store/README.md similarity index 100% rename from autogpt_platform/backend/backend/server/v2/store/README.md rename to autogpt_platform/backend/backend/api/features/store/README.md diff --git a/autogpt_platform/backend/backend/api/features/store/__init__.py b/autogpt_platform/backend/backend/api/features/store/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/autogpt_platform/backend/backend/server/v2/store/cache.py b/autogpt_platform/backend/backend/api/features/store/cache.py similarity index 85% rename from autogpt_platform/backend/backend/server/v2/store/cache.py rename to autogpt_platform/backend/backend/api/features/store/cache.py index 574403342e..7832069d49 100644 --- a/autogpt_platform/backend/backend/server/v2/store/cache.py +++ b/autogpt_platform/backend/backend/api/features/store/cache.py @@ -1,8 +1,9 @@ from typing import Literal -import backend.server.v2.store.db from backend.util.cache import cached +from . import db as store_db + ############################################## ############### Caches ####################### ############################################## @@ -29,7 +30,7 @@ async def _get_cached_store_agents( page_size: int, ): """Cached helper to get store agents.""" - return await backend.server.v2.store.db.get_store_agents( + return await store_db.get_store_agents( featured=featured, creators=[creator] if creator else None, sorted_by=sorted_by, @@ -44,7 +45,7 @@ async def _get_cached_store_agents( @cached(maxsize=200, ttl_seconds=300, shared_cache=True) async def _get_cached_agent_details(username: str, agent_name: str): """Cached helper to get agent details.""" - return await backend.server.v2.store.db.get_store_agent_details( + return await store_db.get_store_agent_details( username=username, agent_name=agent_name ) @@ -59,7 +60,7 @@ async def _get_cached_store_creators( page_size: int, ): """Cached helper to get store creators.""" - return await backend.server.v2.store.db.get_store_creators( + return await store_db.get_store_creators( featured=featured, search_query=search_query, sorted_by=sorted_by, @@ -72,6 +73,4 @@ async def _get_cached_store_creators( @cached(maxsize=100, ttl_seconds=300, shared_cache=True) async def _get_cached_creator_details(username: str): """Cached helper to get creator details.""" - return await backend.server.v2.store.db.get_store_creator_details( - username=username.lower() - ) + return await store_db.get_store_creator_details(username=username.lower()) diff --git a/autogpt_platform/backend/backend/server/v2/store/db.py b/autogpt_platform/backend/backend/api/features/store/db.py similarity index 92% rename from autogpt_platform/backend/backend/server/v2/store/db.py rename to autogpt_platform/backend/backend/api/features/store/db.py index 33554a9c2a..12f1783468 100644 --- a/autogpt_platform/backend/backend/server/v2/store/db.py +++ b/autogpt_platform/backend/backend/api/features/store/db.py @@ -10,8 +10,6 @@ import prisma.errors import prisma.models import prisma.types -import backend.server.v2.store.exceptions -import backend.server.v2.store.model from backend.data.db import query_raw_with_schema, transaction from backend.data.graph import ( GraphMeta, @@ -30,6 +28,9 @@ from backend.notifications.notifications import queue_notification_async from backend.util.exceptions import DatabaseError from backend.util.settings import Settings +from . import exceptions as store_exceptions +from . import model as store_model + logger = logging.getLogger(__name__) settings = Settings() @@ -47,7 +48,7 @@ async def get_store_agents( category: str | None = None, page: int = 1, page_size: int = 20, -) -> backend.server.v2.store.model.StoreAgentsResponse: +) -> store_model.StoreAgentsResponse: """ Get PUBLIC store agents from the StoreAgent view """ @@ -148,10 +149,10 @@ async def get_store_agents( total_pages = (total + page_size - 1) // page_size # Convert raw results to StoreAgent models - store_agents: list[backend.server.v2.store.model.StoreAgent] = [] + store_agents: list[store_model.StoreAgent] = [] for agent in agents: try: - store_agent = backend.server.v2.store.model.StoreAgent( + store_agent = store_model.StoreAgent( slug=agent["slug"], agent_name=agent["agent_name"], agent_image=( @@ -197,11 +198,11 @@ async def get_store_agents( total = await prisma.models.StoreAgent.prisma().count(where=where_clause) total_pages = (total + page_size - 1) // page_size - store_agents: list[backend.server.v2.store.model.StoreAgent] = [] + store_agents: list[store_model.StoreAgent] = [] for agent in agents: try: # Create the StoreAgent object safely - store_agent = backend.server.v2.store.model.StoreAgent( + store_agent = store_model.StoreAgent( slug=agent.slug, agent_name=agent.agent_name, agent_image=agent.agent_image[0] if agent.agent_image else "", @@ -223,9 +224,9 @@ async def get_store_agents( continue logger.debug(f"Found {len(store_agents)} agents") - return backend.server.v2.store.model.StoreAgentsResponse( + return store_model.StoreAgentsResponse( agents=store_agents, - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=total, total_pages=total_pages, @@ -257,7 +258,7 @@ async def log_search_term(search_query: str): async def get_store_agent_details( username: str, agent_name: str -) -> backend.server.v2.store.model.StoreAgentDetails: +) -> store_model.StoreAgentDetails: """Get PUBLIC store agent details from the StoreAgent view""" logger.debug(f"Getting store agent details for {username}/{agent_name}") @@ -268,7 +269,7 @@ async def get_store_agent_details( if not agent: logger.warning(f"Agent not found: {username}/{agent_name}") - raise backend.server.v2.store.exceptions.AgentNotFoundError( + raise store_exceptions.AgentNotFoundError( f"Agent {username}/{agent_name} not found" ) @@ -322,7 +323,7 @@ async def get_store_agent_details( recommended_schedule_cron = None logger.debug(f"Found agent details for {username}/{agent_name}") - return backend.server.v2.store.model.StoreAgentDetails( + return store_model.StoreAgentDetails( store_listing_version_id=agent.storeListingVersionId, slug=agent.slug, agent_name=agent.agent_name, @@ -342,7 +343,7 @@ async def get_store_agent_details( has_approved_version=has_approved_version, recommended_schedule_cron=recommended_schedule_cron, ) - except backend.server.v2.store.exceptions.AgentNotFoundError: + except store_exceptions.AgentNotFoundError: raise except Exception as e: logger.error(f"Error getting store agent details: {e}") @@ -378,7 +379,7 @@ async def get_available_graph(store_listing_version_id: str) -> GraphMeta: async def get_store_agent_by_version_id( store_listing_version_id: str, -) -> backend.server.v2.store.model.StoreAgentDetails: +) -> store_model.StoreAgentDetails: logger.debug(f"Getting store agent details for {store_listing_version_id}") try: @@ -388,12 +389,12 @@ async def get_store_agent_by_version_id( if not agent: logger.warning(f"Agent not found: {store_listing_version_id}") - raise backend.server.v2.store.exceptions.AgentNotFoundError( + raise store_exceptions.AgentNotFoundError( f"Agent {store_listing_version_id} not found" ) logger.debug(f"Found agent details for {store_listing_version_id}") - return backend.server.v2.store.model.StoreAgentDetails( + return store_model.StoreAgentDetails( store_listing_version_id=agent.storeListingVersionId, slug=agent.slug, agent_name=agent.agent_name, @@ -410,7 +411,7 @@ async def get_store_agent_by_version_id( versions=agent.versions, last_updated=agent.updated_at, ) - except backend.server.v2.store.exceptions.AgentNotFoundError: + except store_exceptions.AgentNotFoundError: raise except Exception as e: logger.error(f"Error getting store agent details: {e}") @@ -423,7 +424,7 @@ async def get_store_creators( sorted_by: Literal["agent_rating", "agent_runs", "num_agents"] | None = None, page: int = 1, page_size: int = 20, -) -> backend.server.v2.store.model.CreatorsResponse: +) -> store_model.CreatorsResponse: """Get PUBLIC store creators from the Creator view""" logger.debug( f"Getting store creators. featured={featured}, search={search_query}, sorted_by={sorted_by}, page={page}" @@ -498,7 +499,7 @@ async def get_store_creators( # Convert to response model creator_models = [ - backend.server.v2.store.model.Creator( + store_model.Creator( username=creator.username, name=creator.name, description=creator.description, @@ -512,9 +513,9 @@ async def get_store_creators( ] logger.debug(f"Found {len(creator_models)} creators") - return backend.server.v2.store.model.CreatorsResponse( + return store_model.CreatorsResponse( creators=creator_models, - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=total, total_pages=total_pages, @@ -528,7 +529,7 @@ async def get_store_creators( async def get_store_creator_details( username: str, -) -> backend.server.v2.store.model.CreatorDetails: +) -> store_model.CreatorDetails: logger.debug(f"Getting store creator details for {username}") try: @@ -539,12 +540,10 @@ async def get_store_creator_details( if not creator: logger.warning(f"Creator not found: {username}") - raise backend.server.v2.store.exceptions.CreatorNotFoundError( - f"Creator {username} not found" - ) + raise store_exceptions.CreatorNotFoundError(f"Creator {username} not found") logger.debug(f"Found creator details for {username}") - return backend.server.v2.store.model.CreatorDetails( + return store_model.CreatorDetails( name=creator.name, username=creator.username, description=creator.description, @@ -554,7 +553,7 @@ async def get_store_creator_details( agent_runs=creator.agent_runs, top_categories=creator.top_categories, ) - except backend.server.v2.store.exceptions.CreatorNotFoundError: + except store_exceptions.CreatorNotFoundError: raise except Exception as e: logger.error(f"Error getting store creator details: {e}") @@ -563,7 +562,7 @@ async def get_store_creator_details( async def get_store_submissions( user_id: str, page: int = 1, page_size: int = 20 -) -> backend.server.v2.store.model.StoreSubmissionsResponse: +) -> store_model.StoreSubmissionsResponse: """Get store submissions for the authenticated user -- not an admin""" logger.debug(f"Getting store submissions for user {user_id}, page={page}") @@ -588,7 +587,7 @@ async def get_store_submissions( # Convert to response models submission_models = [] for sub in submissions: - submission_model = backend.server.v2.store.model.StoreSubmission( + submission_model = store_model.StoreSubmission( agent_id=sub.agent_id, agent_version=sub.agent_version, name=sub.name, @@ -613,9 +612,9 @@ async def get_store_submissions( submission_models.append(submission_model) logger.debug(f"Found {len(submission_models)} submissions") - return backend.server.v2.store.model.StoreSubmissionsResponse( + return store_model.StoreSubmissionsResponse( submissions=submission_models, - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=total, total_pages=total_pages, @@ -626,9 +625,9 @@ async def get_store_submissions( except Exception as e: logger.error(f"Error fetching store submissions: {e}") # Return empty response rather than exposing internal errors - return backend.server.v2.store.model.StoreSubmissionsResponse( + return store_model.StoreSubmissionsResponse( submissions=[], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=0, total_pages=0, @@ -661,7 +660,7 @@ async def delete_store_submission( if not submission: logger.warning(f"Submission not found for user {user_id}: {submission_id}") - raise backend.server.v2.store.exceptions.SubmissionNotFoundError( + raise store_exceptions.SubmissionNotFoundError( f"Submission not found for this user. User ID: {user_id}, Submission ID: {submission_id}" ) @@ -693,7 +692,7 @@ async def create_store_submission( categories: list[str] = [], changes_summary: str | None = "Initial Submission", recommended_schedule_cron: str | None = None, -) -> backend.server.v2.store.model.StoreSubmission: +) -> store_model.StoreSubmission: """ Create the first (and only) store listing and thus submission as a normal user @@ -734,7 +733,7 @@ async def create_store_submission( logger.warning( f"Agent not found for user {user_id}: {agent_id} v{agent_version}" ) - raise backend.server.v2.store.exceptions.AgentNotFoundError( + raise store_exceptions.AgentNotFoundError( f"Agent not found for this user. User ID: {user_id}, Agent ID: {agent_id}, Version: {agent_version}" ) @@ -807,7 +806,7 @@ async def create_store_submission( logger.debug(f"Created store listing for agent {agent_id}") # Return submission details - return backend.server.v2.store.model.StoreSubmission( + return store_model.StoreSubmission( agent_id=agent_id, agent_version=agent_version, name=name, @@ -830,7 +829,7 @@ async def create_store_submission( logger.debug( f"Slug '{slug}' is already in use by another agent (agent_id: {agent_id}) for user {user_id}" ) - raise backend.server.v2.store.exceptions.SlugAlreadyInUseError( + raise store_exceptions.SlugAlreadyInUseError( f"The URL slug '{slug}' is already in use by another one of your agents. Please choose a different slug." ) from exc else: @@ -839,8 +838,8 @@ async def create_store_submission( f"Unique constraint violated (not slug): {error_str}" ) from exc except ( - backend.server.v2.store.exceptions.AgentNotFoundError, - backend.server.v2.store.exceptions.ListingExistsError, + store_exceptions.AgentNotFoundError, + store_exceptions.ListingExistsError, ): raise except prisma.errors.PrismaError as e: @@ -861,7 +860,7 @@ async def edit_store_submission( changes_summary: str | None = "Update submission", recommended_schedule_cron: str | None = None, instructions: str | None = None, -) -> backend.server.v2.store.model.StoreSubmission: +) -> store_model.StoreSubmission: """ Edit an existing store listing submission. @@ -903,7 +902,7 @@ async def edit_store_submission( ) if not current_version: - raise backend.server.v2.store.exceptions.SubmissionNotFoundError( + raise store_exceptions.SubmissionNotFoundError( f"Store listing version not found: {store_listing_version_id}" ) @@ -912,7 +911,7 @@ async def edit_store_submission( not current_version.StoreListing or current_version.StoreListing.owningUserId != user_id ): - raise backend.server.v2.store.exceptions.UnauthorizedError( + raise store_exceptions.UnauthorizedError( f"User {user_id} does not own submission {store_listing_version_id}" ) @@ -921,7 +920,7 @@ async def edit_store_submission( # Check if we can edit this submission if current_version.submissionStatus == prisma.enums.SubmissionStatus.REJECTED: - raise backend.server.v2.store.exceptions.InvalidOperationError( + raise store_exceptions.InvalidOperationError( "Cannot edit a rejected submission" ) @@ -970,7 +969,7 @@ async def edit_store_submission( if not updated_version: raise DatabaseError("Failed to update store listing version") - return backend.server.v2.store.model.StoreSubmission( + return store_model.StoreSubmission( agent_id=current_version.agentGraphId, agent_version=current_version.agentGraphVersion, name=name, @@ -991,16 +990,16 @@ async def edit_store_submission( ) else: - raise backend.server.v2.store.exceptions.InvalidOperationError( + raise store_exceptions.InvalidOperationError( f"Cannot edit submission with status: {current_version.submissionStatus}" ) except ( - backend.server.v2.store.exceptions.SubmissionNotFoundError, - backend.server.v2.store.exceptions.UnauthorizedError, - backend.server.v2.store.exceptions.AgentNotFoundError, - backend.server.v2.store.exceptions.ListingExistsError, - backend.server.v2.store.exceptions.InvalidOperationError, + store_exceptions.SubmissionNotFoundError, + store_exceptions.UnauthorizedError, + store_exceptions.AgentNotFoundError, + store_exceptions.ListingExistsError, + store_exceptions.InvalidOperationError, ): raise except prisma.errors.PrismaError as e: @@ -1023,7 +1022,7 @@ async def create_store_version( categories: list[str] = [], changes_summary: str | None = "Initial submission", recommended_schedule_cron: str | None = None, -) -> backend.server.v2.store.model.StoreSubmission: +) -> store_model.StoreSubmission: """ Create a new version for an existing store listing @@ -1056,7 +1055,7 @@ async def create_store_version( ) if not listing: - raise backend.server.v2.store.exceptions.ListingNotFoundError( + raise store_exceptions.ListingNotFoundError( f"Store listing not found. User ID: {user_id}, Listing ID: {store_listing_id}" ) @@ -1068,7 +1067,7 @@ async def create_store_version( ) if not agent: - raise backend.server.v2.store.exceptions.AgentNotFoundError( + raise store_exceptions.AgentNotFoundError( f"Agent not found for this user. User ID: {user_id}, Agent ID: {agent_id}, Version: {agent_version}" ) @@ -1103,7 +1102,7 @@ async def create_store_version( f"Created new version for listing {store_listing_id} of agent {agent_id}" ) # Return submission details - return backend.server.v2.store.model.StoreSubmission( + return store_model.StoreSubmission( agent_id=agent_id, agent_version=agent_version, name=name, @@ -1130,7 +1129,7 @@ async def create_store_review( store_listing_version_id: str, score: int, comments: str | None = None, -) -> backend.server.v2.store.model.StoreReview: +) -> store_model.StoreReview: """Create a review for a store listing as a user to detail their experience""" try: data = prisma.types.StoreListingReviewUpsertInput( @@ -1155,7 +1154,7 @@ async def create_store_review( data=data, ) - return backend.server.v2.store.model.StoreReview( + return store_model.StoreReview( score=review.score, comments=review.comments, ) @@ -1167,7 +1166,7 @@ async def create_store_review( async def get_user_profile( user_id: str, -) -> backend.server.v2.store.model.ProfileDetails | None: +) -> store_model.ProfileDetails | None: logger.debug(f"Getting user profile for {user_id}") try: @@ -1177,7 +1176,7 @@ async def get_user_profile( if not profile: return None - return backend.server.v2.store.model.ProfileDetails( + return store_model.ProfileDetails( name=profile.name, username=profile.username, description=profile.description, @@ -1190,8 +1189,8 @@ async def get_user_profile( async def update_profile( - user_id: str, profile: backend.server.v2.store.model.Profile -) -> backend.server.v2.store.model.CreatorDetails: + user_id: str, profile: store_model.Profile +) -> store_model.CreatorDetails: """ Update the store profile for a user or create a new one if it doesn't exist. Args: @@ -1214,7 +1213,7 @@ async def update_profile( where={"userId": user_id} ) if not existing_profile: - raise backend.server.v2.store.exceptions.ProfileNotFoundError( + raise store_exceptions.ProfileNotFoundError( f"Profile not found for user {user_id}. This should not be possible." ) @@ -1250,7 +1249,7 @@ async def update_profile( logger.error(f"Failed to update profile for user {user_id}") raise DatabaseError("Failed to update profile") - return backend.server.v2.store.model.CreatorDetails( + return store_model.CreatorDetails( name=updated_profile.name, username=updated_profile.username, description=updated_profile.description, @@ -1270,7 +1269,7 @@ async def get_my_agents( user_id: str, page: int = 1, page_size: int = 20, -) -> backend.server.v2.store.model.MyAgentsResponse: +) -> store_model.MyAgentsResponse: """Get the agents for the authenticated user""" logger.debug(f"Getting my agents for user {user_id}, page={page}") @@ -1307,7 +1306,7 @@ async def get_my_agents( total_pages = (total + page_size - 1) // page_size my_agents = [ - backend.server.v2.store.model.MyAgent( + store_model.MyAgent( agent_id=graph.id, agent_version=graph.version, agent_name=graph.name or "", @@ -1320,9 +1319,9 @@ async def get_my_agents( if (graph := library_agent.AgentGraph) ] - return backend.server.v2.store.model.MyAgentsResponse( + return store_model.MyAgentsResponse( agents=my_agents, - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=total, total_pages=total_pages, @@ -1469,7 +1468,7 @@ async def review_store_submission( external_comments: str, internal_comments: str, reviewer_id: str, -) -> backend.server.v2.store.model.StoreSubmission: +) -> store_model.StoreSubmission: """Review a store listing submission as an admin.""" try: store_listing_version = ( @@ -1682,7 +1681,7 @@ async def review_store_submission( pass # Convert to Pydantic model for consistency - return backend.server.v2.store.model.StoreSubmission( + return store_model.StoreSubmission( agent_id=submission.agentGraphId, agent_version=submission.agentGraphVersion, name=submission.name, @@ -1717,7 +1716,7 @@ async def get_admin_listings_with_versions( search_query: str | None = None, page: int = 1, page_size: int = 20, -) -> backend.server.v2.store.model.StoreListingsWithVersionsResponse: +) -> store_model.StoreListingsWithVersionsResponse: """ Get store listings for admins with all their versions. @@ -1816,10 +1815,10 @@ async def get_admin_listings_with_versions( # Convert to response models listings_with_versions = [] for listing in listings: - versions: list[backend.server.v2.store.model.StoreSubmission] = [] + versions: list[store_model.StoreSubmission] = [] # If we have versions, turn them into StoreSubmission models for version in listing.Versions or []: - version_model = backend.server.v2.store.model.StoreSubmission( + version_model = store_model.StoreSubmission( agent_id=version.agentGraphId, agent_version=version.agentGraphVersion, name=version.name, @@ -1847,26 +1846,24 @@ async def get_admin_listings_with_versions( creator_email = listing.OwningUser.email if listing.OwningUser else None - listing_with_versions = ( - backend.server.v2.store.model.StoreListingWithVersions( - listing_id=listing.id, - slug=listing.slug, - agent_id=listing.agentGraphId, - agent_version=listing.agentGraphVersion, - active_version_id=listing.activeVersionId, - has_approved_version=listing.hasApprovedVersion, - creator_email=creator_email, - latest_version=latest_version, - versions=versions, - ) + listing_with_versions = store_model.StoreListingWithVersions( + listing_id=listing.id, + slug=listing.slug, + agent_id=listing.agentGraphId, + agent_version=listing.agentGraphVersion, + active_version_id=listing.activeVersionId, + has_approved_version=listing.hasApprovedVersion, + creator_email=creator_email, + latest_version=latest_version, + versions=versions, ) listings_with_versions.append(listing_with_versions) logger.debug(f"Found {len(listings_with_versions)} listings for admin") - return backend.server.v2.store.model.StoreListingsWithVersionsResponse( + return store_model.StoreListingsWithVersionsResponse( listings=listings_with_versions, - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=total, total_pages=total_pages, @@ -1876,9 +1873,9 @@ async def get_admin_listings_with_versions( except Exception as e: logger.error(f"Error fetching admin store listings: {e}") # Return empty response rather than exposing internal errors - return backend.server.v2.store.model.StoreListingsWithVersionsResponse( + return store_model.StoreListingsWithVersionsResponse( listings=[], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=page, total_items=0, total_pages=0, diff --git a/autogpt_platform/backend/backend/server/v2/store/db_test.py b/autogpt_platform/backend/backend/api/features/store/db_test.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/store/db_test.py rename to autogpt_platform/backend/backend/api/features/store/db_test.py index bf7cf39d6a..641f392d86 100644 --- a/autogpt_platform/backend/backend/server/v2/store/db_test.py +++ b/autogpt_platform/backend/backend/api/features/store/db_test.py @@ -6,8 +6,8 @@ import prisma.models import pytest from prisma import Prisma -import backend.server.v2.store.db as db -from backend.server.v2.store.model import Profile +from . import db +from .model import Profile @pytest.fixture(autouse=True) diff --git a/autogpt_platform/backend/backend/server/v2/store/exceptions.py b/autogpt_platform/backend/backend/api/features/store/exceptions.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/store/exceptions.py rename to autogpt_platform/backend/backend/api/features/store/exceptions.py diff --git a/autogpt_platform/backend/backend/server/v2/store/image_gen.py b/autogpt_platform/backend/backend/api/features/store/image_gen.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/store/image_gen.py rename to autogpt_platform/backend/backend/api/features/store/image_gen.py diff --git a/autogpt_platform/backend/backend/server/v2/store/media.py b/autogpt_platform/backend/backend/api/features/store/media.py similarity index 81% rename from autogpt_platform/backend/backend/server/v2/store/media.py rename to autogpt_platform/backend/backend/api/features/store/media.py index 88542dd2c8..cfdc71567a 100644 --- a/autogpt_platform/backend/backend/server/v2/store/media.py +++ b/autogpt_platform/backend/backend/api/features/store/media.py @@ -5,11 +5,12 @@ import uuid import fastapi from gcloud.aio import storage as async_storage -import backend.server.v2.store.exceptions from backend.util.exceptions import MissingConfigError from backend.util.settings import Settings from backend.util.virus_scanner import scan_content_safe +from . import exceptions as store_exceptions + logger = logging.getLogger(__name__) ALLOWED_IMAGE_TYPES = {"image/jpeg", "image/png", "image/gif", "image/webp"} @@ -68,61 +69,55 @@ async def upload_media( await file.seek(0) # Reset file pointer except Exception as e: logger.error(f"Error reading file content: {str(e)}") - raise backend.server.v2.store.exceptions.FileReadError( - "Failed to read file content" - ) from e + raise store_exceptions.FileReadError("Failed to read file content") from e # Validate file signature/magic bytes if file.content_type in ALLOWED_IMAGE_TYPES: # Check image file signatures if content.startswith(b"\xff\xd8\xff"): # JPEG if file.content_type != "image/jpeg": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) elif content.startswith(b"\x89PNG\r\n\x1a\n"): # PNG if file.content_type != "image/png": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) elif content.startswith(b"GIF87a") or content.startswith(b"GIF89a"): # GIF if file.content_type != "image/gif": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) elif content.startswith(b"RIFF") and content[8:12] == b"WEBP": # WebP if file.content_type != "image/webp": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) else: - raise backend.server.v2.store.exceptions.InvalidFileTypeError( - "Invalid image file signature" - ) + raise store_exceptions.InvalidFileTypeError("Invalid image file signature") elif file.content_type in ALLOWED_VIDEO_TYPES: # Check video file signatures if content.startswith(b"\x00\x00\x00") and (content[4:8] == b"ftyp"): # MP4 if file.content_type != "video/mp4": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) elif content.startswith(b"\x1a\x45\xdf\xa3"): # WebM if file.content_type != "video/webm": - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( "File signature does not match content type" ) else: - raise backend.server.v2.store.exceptions.InvalidFileTypeError( - "Invalid video file signature" - ) + raise store_exceptions.InvalidFileTypeError("Invalid video file signature") settings = Settings() # Check required settings first before doing any file processing if not settings.config.media_gcs_bucket_name: logger.error("Missing GCS bucket name setting") - raise backend.server.v2.store.exceptions.StorageConfigError( + raise store_exceptions.StorageConfigError( "Missing storage bucket configuration" ) @@ -137,7 +132,7 @@ async def upload_media( and content_type not in ALLOWED_VIDEO_TYPES ): logger.warning(f"Invalid file type attempted: {content_type}") - raise backend.server.v2.store.exceptions.InvalidFileTypeError( + raise store_exceptions.InvalidFileTypeError( f"File type not supported. Must be jpeg, png, gif, webp, mp4 or webm. Content type: {content_type}" ) @@ -150,16 +145,14 @@ async def upload_media( file_size += len(chunk) if file_size > MAX_FILE_SIZE: logger.warning(f"File size too large: {file_size} bytes") - raise backend.server.v2.store.exceptions.FileSizeTooLargeError( + raise store_exceptions.FileSizeTooLargeError( "File too large. Maximum size is 50MB" ) - except backend.server.v2.store.exceptions.FileSizeTooLargeError: + except store_exceptions.FileSizeTooLargeError: raise except Exception as e: logger.error(f"Error reading file chunks: {str(e)}") - raise backend.server.v2.store.exceptions.FileReadError( - "Failed to read uploaded file" - ) from e + raise store_exceptions.FileReadError("Failed to read uploaded file") from e # Reset file pointer await file.seek(0) @@ -198,14 +191,14 @@ async def upload_media( except Exception as e: logger.error(f"GCS storage error: {str(e)}") - raise backend.server.v2.store.exceptions.StorageUploadError( + raise store_exceptions.StorageUploadError( "Failed to upload file to storage" ) from e - except backend.server.v2.store.exceptions.MediaUploadError: + except store_exceptions.MediaUploadError: raise except Exception as e: logger.exception("Unexpected error in upload_media") - raise backend.server.v2.store.exceptions.MediaUploadError( + raise store_exceptions.MediaUploadError( "Unexpected error during media upload" ) from e diff --git a/autogpt_platform/backend/backend/server/v2/store/media_test.py b/autogpt_platform/backend/backend/api/features/store/media_test.py similarity index 75% rename from autogpt_platform/backend/backend/server/v2/store/media_test.py rename to autogpt_platform/backend/backend/api/features/store/media_test.py index 3722d2fdc3..7f3899c8a5 100644 --- a/autogpt_platform/backend/backend/server/v2/store/media_test.py +++ b/autogpt_platform/backend/backend/api/features/store/media_test.py @@ -6,17 +6,18 @@ import fastapi import pytest import starlette.datastructures -import backend.server.v2.store.exceptions -import backend.server.v2.store.media from backend.util.settings import Settings +from . import exceptions as store_exceptions +from . import media as store_media + @pytest.fixture def mock_settings(monkeypatch): settings = Settings() settings.config.media_gcs_bucket_name = "test-bucket" settings.config.google_application_credentials = "test-credentials" - monkeypatch.setattr("backend.server.v2.store.media.Settings", lambda: settings) + monkeypatch.setattr("backend.api.features.store.media.Settings", lambda: settings) return settings @@ -32,12 +33,13 @@ def mock_storage_client(mocker): # Mock the constructor to return our mock client mocker.patch( - "backend.server.v2.store.media.async_storage.Storage", return_value=mock_client + "backend.api.features.store.media.async_storage.Storage", + return_value=mock_client, ) # Mock virus scanner to avoid actual scanning mocker.patch( - "backend.server.v2.store.media.scan_content_safe", new_callable=AsyncMock + "backend.api.features.store.media.scan_content_safe", new_callable=AsyncMock ) return mock_client @@ -53,7 +55,7 @@ async def test_upload_media_success(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "image/jpeg"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/images/" @@ -69,8 +71,8 @@ async def test_upload_media_invalid_type(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "text/plain"}), ) - with pytest.raises(backend.server.v2.store.exceptions.InvalidFileTypeError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.InvalidFileTypeError): + await store_media.upload_media("test-user", test_file) mock_storage_client.upload.assert_not_called() @@ -79,7 +81,7 @@ async def test_upload_media_missing_credentials(monkeypatch): settings = Settings() settings.config.media_gcs_bucket_name = "" settings.config.google_application_credentials = "" - monkeypatch.setattr("backend.server.v2.store.media.Settings", lambda: settings) + monkeypatch.setattr("backend.api.features.store.media.Settings", lambda: settings) test_file = fastapi.UploadFile( filename="laptop.jpeg", @@ -87,8 +89,8 @@ async def test_upload_media_missing_credentials(monkeypatch): headers=starlette.datastructures.Headers({"content-type": "image/jpeg"}), ) - with pytest.raises(backend.server.v2.store.exceptions.StorageConfigError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.StorageConfigError): + await store_media.upload_media("test-user", test_file) async def test_upload_media_video_type(mock_settings, mock_storage_client): @@ -98,7 +100,7 @@ async def test_upload_media_video_type(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "video/mp4"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/videos/" @@ -117,8 +119,8 @@ async def test_upload_media_file_too_large(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "image/jpeg"}), ) - with pytest.raises(backend.server.v2.store.exceptions.FileSizeTooLargeError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.FileSizeTooLargeError): + await store_media.upload_media("test-user", test_file) async def test_upload_media_file_read_error(mock_settings, mock_storage_client): @@ -129,8 +131,8 @@ async def test_upload_media_file_read_error(mock_settings, mock_storage_client): ) test_file.read = unittest.mock.AsyncMock(side_effect=Exception("Read error")) - with pytest.raises(backend.server.v2.store.exceptions.FileReadError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.FileReadError): + await store_media.upload_media("test-user", test_file) async def test_upload_media_png_success(mock_settings, mock_storage_client): @@ -140,7 +142,7 @@ async def test_upload_media_png_success(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "image/png"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/images/" ) @@ -154,7 +156,7 @@ async def test_upload_media_gif_success(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "image/gif"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/images/" ) @@ -168,7 +170,7 @@ async def test_upload_media_webp_success(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "image/webp"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/images/" ) @@ -182,7 +184,7 @@ async def test_upload_media_webm_success(mock_settings, mock_storage_client): headers=starlette.datastructures.Headers({"content-type": "video/webm"}), ) - result = await backend.server.v2.store.media.upload_media("test-user", test_file) + result = await store_media.upload_media("test-user", test_file) assert result.startswith( "https://storage.googleapis.com/test-bucket/users/test-user/videos/" ) @@ -196,8 +198,8 @@ async def test_upload_media_mismatched_signature(mock_settings, mock_storage_cli headers=starlette.datastructures.Headers({"content-type": "image/jpeg"}), ) - with pytest.raises(backend.server.v2.store.exceptions.InvalidFileTypeError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.InvalidFileTypeError): + await store_media.upload_media("test-user", test_file) async def test_upload_media_invalid_signature(mock_settings, mock_storage_client): @@ -207,5 +209,5 @@ async def test_upload_media_invalid_signature(mock_settings, mock_storage_client headers=starlette.datastructures.Headers({"content-type": "image/jpeg"}), ) - with pytest.raises(backend.server.v2.store.exceptions.InvalidFileTypeError): - await backend.server.v2.store.media.upload_media("test-user", test_file) + with pytest.raises(store_exceptions.InvalidFileTypeError): + await store_media.upload_media("test-user", test_file) diff --git a/autogpt_platform/backend/backend/server/v2/store/model.py b/autogpt_platform/backend/backend/api/features/store/model.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/store/model.py rename to autogpt_platform/backend/backend/api/features/store/model.py diff --git a/autogpt_platform/backend/backend/server/v2/store/model_test.py b/autogpt_platform/backend/backend/api/features/store/model_test.py similarity index 83% rename from autogpt_platform/backend/backend/server/v2/store/model_test.py rename to autogpt_platform/backend/backend/api/features/store/model_test.py index c387dfdecb..3633e6549e 100644 --- a/autogpt_platform/backend/backend/server/v2/store/model_test.py +++ b/autogpt_platform/backend/backend/api/features/store/model_test.py @@ -2,11 +2,11 @@ import datetime import prisma.enums -import backend.server.v2.store.model +from . import model as store_model def test_pagination(): - pagination = backend.server.v2.store.model.Pagination( + pagination = store_model.Pagination( total_items=100, total_pages=5, current_page=2, page_size=20 ) assert pagination.total_items == 100 @@ -16,7 +16,7 @@ def test_pagination(): def test_store_agent(): - agent = backend.server.v2.store.model.StoreAgent( + agent = store_model.StoreAgent( slug="test-agent", agent_name="Test Agent", agent_image="test.jpg", @@ -34,9 +34,9 @@ def test_store_agent(): def test_store_agents_response(): - response = backend.server.v2.store.model.StoreAgentsResponse( + response = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="test-agent", agent_name="Test Agent", agent_image="test.jpg", @@ -48,7 +48,7 @@ def test_store_agents_response(): rating=4.5, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( total_items=1, total_pages=1, current_page=1, page_size=20 ), ) @@ -57,7 +57,7 @@ def test_store_agents_response(): def test_store_agent_details(): - details = backend.server.v2.store.model.StoreAgentDetails( + details = store_model.StoreAgentDetails( store_listing_version_id="version123", slug="test-agent", agent_name="Test Agent", @@ -81,7 +81,7 @@ def test_store_agent_details(): def test_creator(): - creator = backend.server.v2.store.model.Creator( + creator = store_model.Creator( agent_rating=4.8, agent_runs=1000, name="Test Creator", @@ -96,9 +96,9 @@ def test_creator(): def test_creators_response(): - response = backend.server.v2.store.model.CreatorsResponse( + response = store_model.CreatorsResponse( creators=[ - backend.server.v2.store.model.Creator( + store_model.Creator( agent_rating=4.8, agent_runs=1000, name="Test Creator", @@ -109,7 +109,7 @@ def test_creators_response(): is_featured=False, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( total_items=1, total_pages=1, current_page=1, page_size=20 ), ) @@ -118,7 +118,7 @@ def test_creators_response(): def test_creator_details(): - details = backend.server.v2.store.model.CreatorDetails( + details = store_model.CreatorDetails( name="Test Creator", username="creator1", description="Test description", @@ -135,7 +135,7 @@ def test_creator_details(): def test_store_submission(): - submission = backend.server.v2.store.model.StoreSubmission( + submission = store_model.StoreSubmission( agent_id="agent123", agent_version=1, sub_heading="Test subheading", @@ -154,9 +154,9 @@ def test_store_submission(): def test_store_submissions_response(): - response = backend.server.v2.store.model.StoreSubmissionsResponse( + response = store_model.StoreSubmissionsResponse( submissions=[ - backend.server.v2.store.model.StoreSubmission( + store_model.StoreSubmission( agent_id="agent123", agent_version=1, sub_heading="Test subheading", @@ -170,7 +170,7 @@ def test_store_submissions_response(): rating=4.5, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( total_items=1, total_pages=1, current_page=1, page_size=20 ), ) @@ -179,7 +179,7 @@ def test_store_submissions_response(): def test_store_submission_request(): - request = backend.server.v2.store.model.StoreSubmissionRequest( + request = store_model.StoreSubmissionRequest( agent_id="agent123", agent_version=1, slug="test-agent", diff --git a/autogpt_platform/backend/backend/server/v2/store/routes.py b/autogpt_platform/backend/backend/api/features/store/routes.py similarity index 87% rename from autogpt_platform/backend/backend/server/v2/store/routes.py rename to autogpt_platform/backend/backend/api/features/store/routes.py index b0c1df6e22..6a9bb05291 100644 --- a/autogpt_platform/backend/backend/server/v2/store/routes.py +++ b/autogpt_platform/backend/backend/api/features/store/routes.py @@ -9,14 +9,14 @@ import fastapi import fastapi.responses import backend.data.graph -import backend.server.v2.store.cache as store_cache -import backend.server.v2.store.db -import backend.server.v2.store.exceptions -import backend.server.v2.store.image_gen -import backend.server.v2.store.media -import backend.server.v2.store.model import backend.util.json +from . import cache as store_cache +from . import db as store_db +from . import image_gen as store_image_gen +from . import media as store_media +from . import model as store_model + logger = logging.getLogger(__name__) router = fastapi.APIRouter() @@ -32,7 +32,7 @@ router = fastapi.APIRouter() summary="Get user profile", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.ProfileDetails, + response_model=store_model.ProfileDetails, ) async def get_profile( user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), @@ -41,7 +41,7 @@ async def get_profile( Get the profile details for the authenticated user. Cached for 1 hour per user. """ - profile = await backend.server.v2.store.db.get_user_profile(user_id) + profile = await store_db.get_user_profile(user_id) if profile is None: return fastapi.responses.JSONResponse( status_code=404, @@ -55,10 +55,10 @@ async def get_profile( summary="Update user profile", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.CreatorDetails, + response_model=store_model.CreatorDetails, ) async def update_or_create_profile( - profile: backend.server.v2.store.model.Profile, + profile: store_model.Profile, user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), ): """ @@ -74,9 +74,7 @@ async def update_or_create_profile( Raises: HTTPException: If there is an error updating the profile """ - updated_profile = await backend.server.v2.store.db.update_profile( - user_id=user_id, profile=profile - ) + updated_profile = await store_db.update_profile(user_id=user_id, profile=profile) return updated_profile @@ -89,7 +87,7 @@ async def update_or_create_profile( "/agents", summary="List store agents", tags=["store", "public"], - response_model=backend.server.v2.store.model.StoreAgentsResponse, + response_model=store_model.StoreAgentsResponse, ) async def get_agents( featured: bool = False, @@ -152,7 +150,7 @@ async def get_agents( "/agents/{username}/{agent_name}", summary="Get specific agent", tags=["store", "public"], - response_model=backend.server.v2.store.model.StoreAgentDetails, + response_model=store_model.StoreAgentDetails, ) async def get_agent(username: str, agent_name: str): """ @@ -179,9 +177,7 @@ async def get_graph_meta_by_store_listing_version_id(store_listing_version_id: s """ Get Agent Graph from Store Listing Version ID. """ - graph = await backend.server.v2.store.db.get_available_graph( - store_listing_version_id - ) + graph = await store_db.get_available_graph(store_listing_version_id) return graph @@ -190,15 +186,13 @@ async def get_graph_meta_by_store_listing_version_id(store_listing_version_id: s summary="Get agent by version", tags=["store"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.StoreAgentDetails, + response_model=store_model.StoreAgentDetails, ) async def get_store_agent(store_listing_version_id: str): """ Get Store Agent Details from Store Listing Version ID. """ - agent = await backend.server.v2.store.db.get_store_agent_by_version_id( - store_listing_version_id - ) + agent = await store_db.get_store_agent_by_version_id(store_listing_version_id) return agent @@ -208,12 +202,12 @@ async def get_store_agent(store_listing_version_id: str): summary="Create agent review", tags=["store"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.StoreReview, + response_model=store_model.StoreReview, ) async def create_review( username: str, agent_name: str, - review: backend.server.v2.store.model.StoreReviewCreate, + review: store_model.StoreReviewCreate, user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), ): """ @@ -231,7 +225,7 @@ async def create_review( username = urllib.parse.unquote(username).lower() agent_name = urllib.parse.unquote(agent_name).lower() # Create the review - created_review = await backend.server.v2.store.db.create_store_review( + created_review = await store_db.create_store_review( user_id=user_id, store_listing_version_id=review.store_listing_version_id, score=review.score, @@ -250,7 +244,7 @@ async def create_review( "/creators", summary="List store creators", tags=["store", "public"], - response_model=backend.server.v2.store.model.CreatorsResponse, + response_model=store_model.CreatorsResponse, ) async def get_creators( featured: bool = False, @@ -295,7 +289,7 @@ async def get_creators( "/creator/{username}", summary="Get creator details", tags=["store", "public"], - response_model=backend.server.v2.store.model.CreatorDetails, + response_model=store_model.CreatorDetails, ) async def get_creator( username: str, @@ -319,7 +313,7 @@ async def get_creator( summary="Get my agents", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.MyAgentsResponse, + response_model=store_model.MyAgentsResponse, ) async def get_my_agents( user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), @@ -329,9 +323,7 @@ async def get_my_agents( """ Get user's own agents. """ - agents = await backend.server.v2.store.db.get_my_agents( - user_id, page=page, page_size=page_size - ) + agents = await store_db.get_my_agents(user_id, page=page, page_size=page_size) return agents @@ -356,7 +348,7 @@ async def delete_submission( Returns: bool: True if the submission was successfully deleted, False otherwise """ - result = await backend.server.v2.store.db.delete_store_submission( + result = await store_db.delete_store_submission( user_id=user_id, submission_id=submission_id, ) @@ -369,7 +361,7 @@ async def delete_submission( summary="List my submissions", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.StoreSubmissionsResponse, + response_model=store_model.StoreSubmissionsResponse, ) async def get_submissions( user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), @@ -399,7 +391,7 @@ async def get_submissions( raise fastapi.HTTPException( status_code=422, detail="Page size must be greater than 0" ) - listings = await backend.server.v2.store.db.get_store_submissions( + listings = await store_db.get_store_submissions( user_id=user_id, page=page, page_size=page_size, @@ -412,10 +404,10 @@ async def get_submissions( summary="Create store submission", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.StoreSubmission, + response_model=store_model.StoreSubmission, ) async def create_submission( - submission_request: backend.server.v2.store.model.StoreSubmissionRequest, + submission_request: store_model.StoreSubmissionRequest, user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), ): """ @@ -431,7 +423,7 @@ async def create_submission( Raises: HTTPException: If there is an error creating the submission """ - result = await backend.server.v2.store.db.create_store_submission( + result = await store_db.create_store_submission( user_id=user_id, agent_id=submission_request.agent_id, agent_version=submission_request.agent_version, @@ -456,11 +448,11 @@ async def create_submission( summary="Edit store submission", tags=["store", "private"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], - response_model=backend.server.v2.store.model.StoreSubmission, + response_model=store_model.StoreSubmission, ) async def edit_submission( store_listing_version_id: str, - submission_request: backend.server.v2.store.model.StoreSubmissionEditRequest, + submission_request: store_model.StoreSubmissionEditRequest, user_id: str = fastapi.Security(autogpt_libs.auth.get_user_id), ): """ @@ -477,7 +469,7 @@ async def edit_submission( Raises: HTTPException: If there is an error editing the submission """ - result = await backend.server.v2.store.db.edit_store_submission( + result = await store_db.edit_store_submission( user_id=user_id, store_listing_version_id=store_listing_version_id, name=submission_request.name, @@ -518,9 +510,7 @@ async def upload_submission_media( Raises: HTTPException: If there is an error uploading the media """ - media_url = await backend.server.v2.store.media.upload_media( - user_id=user_id, file=file - ) + media_url = await store_media.upload_media(user_id=user_id, file=file) return media_url @@ -555,14 +545,12 @@ async def generate_image( # Use .jpeg here since we are generating JPEG images filename = f"agent_{agent_id}.jpeg" - existing_url = await backend.server.v2.store.media.check_media_exists( - user_id, filename - ) + existing_url = await store_media.check_media_exists(user_id, filename) if existing_url: logger.info(f"Using existing image for agent {agent_id}") return fastapi.responses.JSONResponse(content={"image_url": existing_url}) # Generate agent image as JPEG - image = await backend.server.v2.store.image_gen.generate_agent_image(agent=agent) + image = await store_image_gen.generate_agent_image(agent=agent) # Create UploadFile with the correct filename and content_type image_file = fastapi.UploadFile( @@ -570,7 +558,7 @@ async def generate_image( filename=filename, ) - image_url = await backend.server.v2.store.media.upload_media( + image_url = await store_media.upload_media( user_id=user_id, file=image_file, use_file_name=True ) @@ -599,7 +587,7 @@ async def download_agent_file( Raises: HTTPException: If the agent is not found or an unexpected error occurs. """ - graph_data = await backend.server.v2.store.db.get_agent(store_listing_version_id) + graph_data = await store_db.get_agent(store_listing_version_id) file_name = f"agent_{graph_data.id}_v{graph_data.version or 'latest'}.json" # Sending graph as a stream (similar to marketplace v1) diff --git a/autogpt_platform/backend/backend/server/v2/store/routes_test.py b/autogpt_platform/backend/backend/api/features/store/routes_test.py similarity index 76% rename from autogpt_platform/backend/backend/server/v2/store/routes_test.py rename to autogpt_platform/backend/backend/api/features/store/routes_test.py index 03322ee988..b9c040c149 100644 --- a/autogpt_platform/backend/backend/server/v2/store/routes_test.py +++ b/autogpt_platform/backend/backend/api/features/store/routes_test.py @@ -8,15 +8,15 @@ import pytest import pytest_mock from pytest_snapshot.plugin import Snapshot -import backend.server.v2.store.model -import backend.server.v2.store.routes +from . import model as store_model +from . import routes as store_routes # Using a fixed timestamp for reproducible tests # 2023 date is intentionally used to ensure tests work regardless of current year FIXED_NOW = datetime.datetime(2023, 1, 1, 0, 0, 0) app = fastapi.FastAPI() -app.include_router(backend.server.v2.store.routes.router) +app.include_router(store_routes.router) client = fastapi.testclient.TestClient(app) @@ -35,23 +35,21 @@ def test_get_agents_defaults( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=0, total_items=0, total_pages=0, page_size=10, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert data.pagination.total_pages == 0 assert data.agents == [] @@ -72,9 +70,9 @@ def test_get_agents_featured( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="featured-agent", agent_name="Featured Agent", agent_image="featured.jpg", @@ -86,20 +84,18 @@ def test_get_agents_featured( rating=4.5, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?featured=true") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 1 assert data.agents[0].slug == "featured-agent" snapshot.snapshot_dir = "snapshots" @@ -119,9 +115,9 @@ def test_get_agents_by_creator( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="creator-agent", agent_name="Creator Agent", agent_image="agent.jpg", @@ -133,20 +129,18 @@ def test_get_agents_by_creator( rating=4.0, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?creator=specific-creator") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 1 assert data.agents[0].creator == "specific-creator" snapshot.snapshot_dir = "snapshots" @@ -166,9 +160,9 @@ def test_get_agents_sorted( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="top-agent", agent_name="Top Agent", agent_image="top.jpg", @@ -180,20 +174,18 @@ def test_get_agents_sorted( rating=5.0, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?sorted_by=runs") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 1 assert data.agents[0].runs == 1000 snapshot.snapshot_dir = "snapshots" @@ -213,9 +205,9 @@ def test_get_agents_search( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="search-agent", agent_name="Search Agent", agent_image="search.jpg", @@ -227,20 +219,18 @@ def test_get_agents_search( rating=4.2, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?search_query=specific") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 1 assert "specific" in data.agents[0].description.lower() snapshot.snapshot_dir = "snapshots" @@ -260,9 +250,9 @@ def test_get_agents_category( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug="category-agent", agent_name="Category Agent", agent_image="category.jpg", @@ -274,20 +264,18 @@ def test_get_agents_category( rating=4.1, ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?category=test-category") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 1 snapshot.snapshot_dir = "snapshots" snapshot.assert_match(json.dumps(response.json(), indent=2), "agts_category") @@ -306,9 +294,9 @@ def test_get_agents_pagination( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentsResponse( + mocked_value = store_model.StoreAgentsResponse( agents=[ - backend.server.v2.store.model.StoreAgent( + store_model.StoreAgent( slug=f"agent-{i}", agent_name=f"Agent {i}", agent_image=f"agent{i}.jpg", @@ -321,20 +309,18 @@ def test_get_agents_pagination( ) for i in range(5) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=2, total_items=15, total_pages=3, page_size=5, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.return_value = mocked_value response = client.get("/agents?page=2&page_size=5") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentsResponse.model_validate( - response.json() - ) + data = store_model.StoreAgentsResponse.model_validate(response.json()) assert len(data.agents) == 5 assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 @@ -365,7 +351,7 @@ def test_get_agents_malformed_request(mocker: pytest_mock.MockFixture): assert response.status_code == 422 # Verify no DB calls were made - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agents") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agents") mock_db_call.assert_not_called() @@ -373,7 +359,7 @@ def test_get_agent_details( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.StoreAgentDetails( + mocked_value = store_model.StoreAgentDetails( store_listing_version_id="test-version-id", slug="test-agent", agent_name="Test Agent", @@ -390,15 +376,13 @@ def test_get_agent_details( versions=["1.0.0", "1.1.0"], last_updated=FIXED_NOW, ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_agent_details") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agent_details") mock_db_call.return_value = mocked_value response = client.get("/agents/creator1/test-agent") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreAgentDetails.model_validate( - response.json() - ) + data = store_model.StoreAgentDetails.model_validate(response.json()) assert data.agent_name == "Test Agent" assert data.creator == "creator1" snapshot.snapshot_dir = "snapshots" @@ -410,24 +394,22 @@ def test_get_creators_defaults( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.CreatorsResponse( + mocked_value = store_model.CreatorsResponse( creators=[], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=0, total_items=0, total_pages=0, page_size=10, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_creators") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_creators") mock_db_call.return_value = mocked_value response = client.get("/creators") assert response.status_code == 200 - data = backend.server.v2.store.model.CreatorsResponse.model_validate( - response.json() - ) + data = store_model.CreatorsResponse.model_validate(response.json()) assert data.pagination.total_pages == 0 assert data.creators == [] snapshot.snapshot_dir = "snapshots" @@ -441,9 +423,9 @@ def test_get_creators_pagination( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.CreatorsResponse( + mocked_value = store_model.CreatorsResponse( creators=[ - backend.server.v2.store.model.Creator( + store_model.Creator( name=f"Creator {i}", username=f"creator{i}", description=f"Creator {i} description", @@ -455,22 +437,20 @@ def test_get_creators_pagination( ) for i in range(5) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=2, total_items=15, total_pages=3, page_size=5, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_creators") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_creators") mock_db_call.return_value = mocked_value response = client.get("/creators?page=2&page_size=5") assert response.status_code == 200 - data = backend.server.v2.store.model.CreatorsResponse.model_validate( - response.json() - ) + data = store_model.CreatorsResponse.model_validate(response.json()) assert len(data.creators) == 5 assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 @@ -495,7 +475,7 @@ def test_get_creators_malformed_request(mocker: pytest_mock.MockFixture): assert response.status_code == 422 # Verify no DB calls were made - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_creators") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_creators") mock_db_call.assert_not_called() @@ -503,7 +483,7 @@ def test_get_creator_details( mocker: pytest_mock.MockFixture, snapshot: Snapshot, ) -> None: - mocked_value = backend.server.v2.store.model.CreatorDetails( + mocked_value = store_model.CreatorDetails( name="Test User", username="creator1", description="Test creator description", @@ -513,13 +493,15 @@ def test_get_creator_details( agent_runs=1000, top_categories=["category1", "category2"], ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_creator_details") + mock_db_call = mocker.patch( + "backend.api.features.store.db.get_store_creator_details" + ) mock_db_call.return_value = mocked_value response = client.get("/creator/creator1") assert response.status_code == 200 - data = backend.server.v2.store.model.CreatorDetails.model_validate(response.json()) + data = store_model.CreatorDetails.model_validate(response.json()) assert data.username == "creator1" assert data.name == "Test User" snapshot.snapshot_dir = "snapshots" @@ -532,9 +514,9 @@ def test_get_submissions_success( snapshot: Snapshot, test_user_id: str, ) -> None: - mocked_value = backend.server.v2.store.model.StoreSubmissionsResponse( + mocked_value = store_model.StoreSubmissionsResponse( submissions=[ - backend.server.v2.store.model.StoreSubmission( + store_model.StoreSubmission( name="Test Agent", description="Test agent description", image_urls=["test.jpg"], @@ -550,22 +532,20 @@ def test_get_submissions_success( categories=["test-category"], ) ], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=1, total_items=1, total_pages=1, page_size=20, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_submissions") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_submissions") mock_db_call.return_value = mocked_value response = client.get("/submissions") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreSubmissionsResponse.model_validate( - response.json() - ) + data = store_model.StoreSubmissionsResponse.model_validate(response.json()) assert len(data.submissions) == 1 assert data.submissions[0].name == "Test Agent" assert data.pagination.current_page == 1 @@ -579,24 +559,22 @@ def test_get_submissions_pagination( snapshot: Snapshot, test_user_id: str, ) -> None: - mocked_value = backend.server.v2.store.model.StoreSubmissionsResponse( + mocked_value = store_model.StoreSubmissionsResponse( submissions=[], - pagination=backend.server.v2.store.model.Pagination( + pagination=store_model.Pagination( current_page=2, total_items=10, total_pages=2, page_size=5, ), ) - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_submissions") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_submissions") mock_db_call.return_value = mocked_value response = client.get("/submissions?page=2&page_size=5") assert response.status_code == 200 - data = backend.server.v2.store.model.StoreSubmissionsResponse.model_validate( - response.json() - ) + data = store_model.StoreSubmissionsResponse.model_validate(response.json()) assert data.pagination.current_page == 2 assert data.pagination.page_size == 5 snapshot.snapshot_dir = "snapshots" @@ -618,5 +596,5 @@ def test_get_submissions_malformed_request(mocker: pytest_mock.MockFixture): assert response.status_code == 422 # Verify no DB calls were made - mock_db_call = mocker.patch("backend.server.v2.store.db.get_store_submissions") + mock_db_call = mocker.patch("backend.api.features.store.db.get_store_submissions") mock_db_call.assert_not_called() diff --git a/autogpt_platform/backend/backend/server/v2/store/test_cache_delete.py b/autogpt_platform/backend/backend/api/features/store/test_cache_delete.py similarity index 96% rename from autogpt_platform/backend/backend/server/v2/store/test_cache_delete.py rename to autogpt_platform/backend/backend/api/features/store/test_cache_delete.py index 4111de0ee8..dd9be1f4ab 100644 --- a/autogpt_platform/backend/backend/server/v2/store/test_cache_delete.py +++ b/autogpt_platform/backend/backend/api/features/store/test_cache_delete.py @@ -8,10 +8,11 @@ from unittest.mock import AsyncMock, patch import pytest -from backend.server.v2.store import cache as store_cache -from backend.server.v2.store.model import StoreAgent, StoreAgentsResponse from backend.util.models import Pagination +from . import cache as store_cache +from .model import StoreAgent, StoreAgentsResponse + class TestCacheDeletion: """Test cache deletion functionality for store routes.""" @@ -43,7 +44,7 @@ class TestCacheDeletion: ) with patch( - "backend.server.v2.store.db.get_store_agents", + "backend.api.features.store.db.get_store_agents", new_callable=AsyncMock, return_value=mock_response, ) as mock_db: @@ -152,7 +153,7 @@ class TestCacheDeletion: ) with patch( - "backend.server.v2.store.db.get_store_agents", + "backend.api.features.store.db.get_store_agents", new_callable=AsyncMock, return_value=mock_response, ): @@ -203,7 +204,7 @@ class TestCacheDeletion: ) with patch( - "backend.server.v2.store.db.get_store_agents", + "backend.api.features.store.db.get_store_agents", new_callable=AsyncMock, return_value=mock_response, ) as mock_db: diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/api/features/v1.py similarity index 98% rename from autogpt_platform/backend/backend/server/routers/v1.py rename to autogpt_platform/backend/backend/api/features/v1.py index e5e74690f8..9b05b4755f 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/api/features/v1.py @@ -28,9 +28,18 @@ from pydantic import BaseModel from starlette.status import HTTP_204_NO_CONTENT, HTTP_404_NOT_FOUND from typing_extensions import Optional, TypedDict -import backend.server.integrations.router -import backend.server.routers.analytics -import backend.server.v2.library.db as library_db +from backend.api.model import ( + CreateAPIKeyRequest, + CreateAPIKeyResponse, + CreateGraph, + GraphExecutionSource, + RequestTopUp, + SetGraphActiveVersion, + TimezoneResponse, + UpdatePermissionsRequest, + UpdateTimezoneRequest, + UploadFileResponse, +) from backend.data import execution as execution_db from backend.data import graph as graph_db from backend.data.auth import api_key as api_key_db @@ -79,19 +88,6 @@ from backend.monitoring.instrumentation import ( record_graph_execution, record_graph_operation, ) -from backend.server.model import ( - CreateAPIKeyRequest, - CreateAPIKeyResponse, - CreateGraph, - GraphExecutionSource, - RequestTopUp, - SetGraphActiveVersion, - TimezoneResponse, - UpdatePermissionsRequest, - UpdateTimezoneRequest, - UploadFileResponse, -) -from backend.server.v2.store.model import StoreAgentDetails from backend.util.cache import cached from backend.util.clients import get_scheduler_client from backend.util.cloud_storage import get_cloud_storage_handler @@ -105,6 +101,10 @@ from backend.util.timezone_utils import ( ) from backend.util.virus_scanner import scan_content_safe +from .library import db as library_db +from .library import model as library_model +from .store.model import StoreAgentDetails + def _create_file_size_error(size_bytes: int, max_size_mb: int) -> HTTPException: """Create standardized file size error response.""" @@ -118,76 +118,9 @@ settings = Settings() logger = logging.getLogger(__name__) -async def hide_activity_summaries_if_disabled( - executions: list[execution_db.GraphExecutionMeta], user_id: str -) -> list[execution_db.GraphExecutionMeta]: - """Hide activity summaries and scores if AI_ACTIVITY_STATUS feature is disabled.""" - if await is_feature_enabled(Flag.AI_ACTIVITY_STATUS, user_id): - return executions # Return as-is if feature is enabled - - # Filter out activity features if disabled - filtered_executions = [] - for execution in executions: - if execution.stats: - filtered_stats = execution.stats.without_activity_features() - execution = execution.model_copy(update={"stats": filtered_stats}) - filtered_executions.append(execution) - return filtered_executions - - -async def hide_activity_summary_if_disabled( - execution: execution_db.GraphExecution | execution_db.GraphExecutionWithNodes, - user_id: str, -) -> execution_db.GraphExecution | execution_db.GraphExecutionWithNodes: - """Hide activity summary and score for a single execution if AI_ACTIVITY_STATUS feature is disabled.""" - if await is_feature_enabled(Flag.AI_ACTIVITY_STATUS, user_id): - return execution # Return as-is if feature is enabled - - # Filter out activity features if disabled - if execution.stats: - filtered_stats = execution.stats.without_activity_features() - return execution.model_copy(update={"stats": filtered_stats}) - return execution - - -async def _update_library_agent_version_and_settings( - user_id: str, agent_graph: graph_db.GraphModel -) -> library_db.library_model.LibraryAgent: - # Keep the library agent up to date with the new active version - library = await library_db.update_agent_version_in_library( - user_id, agent_graph.id, agent_graph.version - ) - # If the graph has HITL node, initialize the setting if it's not already set. - if ( - agent_graph.has_human_in_the_loop - and library.settings.human_in_the_loop_safe_mode is None - ): - await library_db.update_library_agent_settings( - user_id=user_id, - agent_id=library.id, - settings=library.settings.model_copy( - update={"human_in_the_loop_safe_mode": True} - ), - ) - return library - - # Define the API routes v1_router = APIRouter() -v1_router.include_router( - backend.server.integrations.router.router, - prefix="/integrations", - tags=["integrations"], -) - -v1_router.include_router( - backend.server.routers.analytics.router, - prefix="/analytics", - tags=["analytics"], - dependencies=[Security(requires_user)], -) - ######################################################## ##################### Auth ############################# @@ -953,6 +886,28 @@ async def set_graph_active_version( await on_graph_deactivate(current_active_graph, user_id=user_id) +async def _update_library_agent_version_and_settings( + user_id: str, agent_graph: graph_db.GraphModel +) -> library_model.LibraryAgent: + # Keep the library agent up to date with the new active version + library = await library_db.update_agent_version_in_library( + user_id, agent_graph.id, agent_graph.version + ) + # If the graph has HITL node, initialize the setting if it's not already set. + if ( + agent_graph.has_human_in_the_loop + and library.settings.human_in_the_loop_safe_mode is None + ): + await library_db.update_library_agent_settings( + user_id=user_id, + agent_id=library.id, + settings=library.settings.model_copy( + update={"human_in_the_loop_safe_mode": True} + ), + ) + return library + + @v1_router.patch( path="/graphs/{graph_id}/settings", summary="Update graph settings", @@ -1155,6 +1110,23 @@ async def list_graph_executions( ) +async def hide_activity_summaries_if_disabled( + executions: list[execution_db.GraphExecutionMeta], user_id: str +) -> list[execution_db.GraphExecutionMeta]: + """Hide activity summaries and scores if AI_ACTIVITY_STATUS feature is disabled.""" + if await is_feature_enabled(Flag.AI_ACTIVITY_STATUS, user_id): + return executions # Return as-is if feature is enabled + + # Filter out activity features if disabled + filtered_executions = [] + for execution in executions: + if execution.stats: + filtered_stats = execution.stats.without_activity_features() + execution = execution.model_copy(update={"stats": filtered_stats}) + filtered_executions.append(execution) + return filtered_executions + + @v1_router.get( path="/graphs/{graph_id}/executions/{graph_exec_id}", summary="Get execution details", @@ -1197,6 +1169,21 @@ async def get_graph_execution( return result +async def hide_activity_summary_if_disabled( + execution: execution_db.GraphExecution | execution_db.GraphExecutionWithNodes, + user_id: str, +) -> execution_db.GraphExecution | execution_db.GraphExecutionWithNodes: + """Hide activity summary and score for a single execution if AI_ACTIVITY_STATUS feature is disabled.""" + if await is_feature_enabled(Flag.AI_ACTIVITY_STATUS, user_id): + return execution # Return as-is if feature is enabled + + # Filter out activity features if disabled + if execution.stats: + filtered_stats = execution.stats.without_activity_features() + return execution.model_copy(update={"stats": filtered_stats}) + return execution + + @v1_router.delete( path="/executions/{graph_exec_id}", summary="Delete graph execution", @@ -1257,7 +1244,7 @@ async def enable_execution_sharing( ) # Return the share URL - frontend_url = Settings().config.frontend_base_url or "http://localhost:3000" + frontend_url = settings.config.frontend_base_url or "http://localhost:3000" share_url = f"{frontend_url}/share/{share_token}" return ShareResponse(share_url=share_url, share_token=share_token) diff --git a/autogpt_platform/backend/backend/server/routers/v1_test.py b/autogpt_platform/backend/backend/api/features/v1_test.py similarity index 91% rename from autogpt_platform/backend/backend/server/routers/v1_test.py rename to autogpt_platform/backend/backend/api/features/v1_test.py index 69e1b5f2ae..a186d38810 100644 --- a/autogpt_platform/backend/backend/server/routers/v1_test.py +++ b/autogpt_platform/backend/backend/api/features/v1_test.py @@ -11,13 +11,13 @@ import starlette.datastructures from fastapi import HTTPException, UploadFile from pytest_snapshot.plugin import Snapshot -import backend.server.routers.v1 as v1_routes from backend.data.credit import AutoTopUpConfig from backend.data.graph import GraphModel -from backend.server.routers.v1 import upload_file + +from .v1 import upload_file, v1_router app = fastapi.FastAPI() -app.include_router(v1_routes.v1_router) +app.include_router(v1_router) client = fastapi.testclient.TestClient(app) @@ -50,7 +50,7 @@ def test_get_or_create_user_route( } mocker.patch( - "backend.server.routers.v1.get_or_create_user", + "backend.api.features.v1.get_or_create_user", return_value=mock_user, ) @@ -71,7 +71,7 @@ def test_update_user_email_route( ) -> None: """Test update user email endpoint""" mocker.patch( - "backend.server.routers.v1.update_user_email", + "backend.api.features.v1.update_user_email", return_value=None, ) @@ -107,7 +107,7 @@ def test_get_graph_blocks( # Mock get_blocks mocker.patch( - "backend.server.routers.v1.get_blocks", + "backend.api.features.v1.get_blocks", return_value={"test-block": lambda: mock_block}, ) @@ -146,7 +146,7 @@ def test_execute_graph_block( mock_block.execute = mock_execute mocker.patch( - "backend.server.routers.v1.get_block", + "backend.api.features.v1.get_block", return_value=mock_block, ) @@ -155,7 +155,7 @@ def test_execute_graph_block( mock_user.timezone = "UTC" mocker.patch( - "backend.server.routers.v1.get_user_by_id", + "backend.api.features.v1.get_user_by_id", return_value=mock_user, ) @@ -181,7 +181,7 @@ def test_execute_graph_block_not_found( ) -> None: """Test execute block with non-existent block""" mocker.patch( - "backend.server.routers.v1.get_block", + "backend.api.features.v1.get_block", return_value=None, ) @@ -200,7 +200,7 @@ def test_get_user_credits( mock_credit_model = Mock() mock_credit_model.get_credits = AsyncMock(return_value=1000) mocker.patch( - "backend.server.routers.v1.get_user_credit_model", + "backend.api.features.v1.get_user_credit_model", return_value=mock_credit_model, ) @@ -227,7 +227,7 @@ def test_request_top_up( return_value="https://checkout.example.com/session123" ) mocker.patch( - "backend.server.routers.v1.get_user_credit_model", + "backend.api.features.v1.get_user_credit_model", return_value=mock_credit_model, ) @@ -254,7 +254,7 @@ def test_get_auto_top_up( mock_config = AutoTopUpConfig(threshold=100, amount=500) mocker.patch( - "backend.server.routers.v1.get_auto_top_up", + "backend.api.features.v1.get_auto_top_up", return_value=mock_config, ) @@ -279,7 +279,7 @@ def test_configure_auto_top_up( """Test configure auto top-up endpoint - this test would have caught the enum casting bug""" # Mock the set_auto_top_up function to avoid database operations mocker.patch( - "backend.server.routers.v1.set_auto_top_up", + "backend.api.features.v1.set_auto_top_up", return_value=None, ) @@ -289,7 +289,7 @@ def test_configure_auto_top_up( mock_credit_model.top_up_credits.return_value = None mocker.patch( - "backend.server.routers.v1.get_user_credit_model", + "backend.api.features.v1.get_user_credit_model", return_value=mock_credit_model, ) @@ -311,7 +311,7 @@ def test_configure_auto_top_up_validation_errors( ) -> None: """Test configure auto top-up endpoint validation""" # Mock set_auto_top_up to avoid database operations for successful case - mocker.patch("backend.server.routers.v1.set_auto_top_up") + mocker.patch("backend.api.features.v1.set_auto_top_up") # Mock credit model to avoid Stripe API calls for the successful case mock_credit_model = mocker.AsyncMock() @@ -319,7 +319,7 @@ def test_configure_auto_top_up_validation_errors( mock_credit_model.top_up_credits.return_value = None mocker.patch( - "backend.server.routers.v1.get_user_credit_model", + "backend.api.features.v1.get_user_credit_model", return_value=mock_credit_model, ) @@ -393,7 +393,7 @@ def test_get_graph( ) mocker.patch( - "backend.server.routers.v1.graph_db.get_graph", + "backend.api.features.v1.graph_db.get_graph", return_value=mock_graph, ) @@ -415,7 +415,7 @@ def test_get_graph_not_found( ) -> None: """Test get graph with non-existent ID""" mocker.patch( - "backend.server.routers.v1.graph_db.get_graph", + "backend.api.features.v1.graph_db.get_graph", return_value=None, ) @@ -443,15 +443,15 @@ def test_delete_graph( ) mocker.patch( - "backend.server.routers.v1.graph_db.get_graph", + "backend.api.features.v1.graph_db.get_graph", return_value=mock_graph, ) mocker.patch( - "backend.server.routers.v1.on_graph_deactivate", + "backend.api.features.v1.on_graph_deactivate", return_value=None, ) mocker.patch( - "backend.server.routers.v1.graph_db.delete_graph", + "backend.api.features.v1.graph_db.delete_graph", return_value=3, # Number of versions deleted ) @@ -498,8 +498,8 @@ async def test_upload_file_success(test_user_id: str): ) # Mock dependencies - with patch("backend.server.routers.v1.scan_content_safe") as mock_scan, patch( - "backend.server.routers.v1.get_cloud_storage_handler" + with patch("backend.api.features.v1.scan_content_safe") as mock_scan, patch( + "backend.api.features.v1.get_cloud_storage_handler" ) as mock_handler_getter: mock_scan.return_value = None @@ -550,8 +550,8 @@ async def test_upload_file_no_filename(test_user_id: str): ), ) - with patch("backend.server.routers.v1.scan_content_safe") as mock_scan, patch( - "backend.server.routers.v1.get_cloud_storage_handler" + with patch("backend.api.features.v1.scan_content_safe") as mock_scan, patch( + "backend.api.features.v1.get_cloud_storage_handler" ) as mock_handler_getter: mock_scan.return_value = None @@ -610,7 +610,7 @@ async def test_upload_file_virus_scan_failure(test_user_id: str): headers=starlette.datastructures.Headers({"content-type": "text/plain"}), ) - with patch("backend.server.routers.v1.scan_content_safe") as mock_scan: + with patch("backend.api.features.v1.scan_content_safe") as mock_scan: # Mock virus scan to raise exception mock_scan.side_effect = RuntimeError("Virus detected!") @@ -631,8 +631,8 @@ async def test_upload_file_cloud_storage_failure(test_user_id: str): headers=starlette.datastructures.Headers({"content-type": "text/plain"}), ) - with patch("backend.server.routers.v1.scan_content_safe") as mock_scan, patch( - "backend.server.routers.v1.get_cloud_storage_handler" + with patch("backend.api.features.v1.scan_content_safe") as mock_scan, patch( + "backend.api.features.v1.get_cloud_storage_handler" ) as mock_handler_getter: mock_scan.return_value = None @@ -678,8 +678,8 @@ async def test_upload_file_gcs_not_configured_fallback(test_user_id: str): headers=starlette.datastructures.Headers({"content-type": "text/plain"}), ) - with patch("backend.server.routers.v1.scan_content_safe") as mock_scan, patch( - "backend.server.routers.v1.get_cloud_storage_handler" + with patch("backend.api.features.v1.scan_content_safe") as mock_scan, patch( + "backend.api.features.v1.get_cloud_storage_handler" ) as mock_handler_getter: mock_scan.return_value = None diff --git a/autogpt_platform/backend/backend/server/middleware/security.py b/autogpt_platform/backend/backend/api/middleware/security.py similarity index 100% rename from autogpt_platform/backend/backend/server/middleware/security.py rename to autogpt_platform/backend/backend/api/middleware/security.py diff --git a/autogpt_platform/backend/backend/server/middleware/security_test.py b/autogpt_platform/backend/backend/api/middleware/security_test.py similarity index 98% rename from autogpt_platform/backend/backend/server/middleware/security_test.py rename to autogpt_platform/backend/backend/api/middleware/security_test.py index 462e5b27ed..57137afc9a 100644 --- a/autogpt_platform/backend/backend/server/middleware/security_test.py +++ b/autogpt_platform/backend/backend/api/middleware/security_test.py @@ -3,7 +3,7 @@ from fastapi import FastAPI from fastapi.testclient import TestClient from starlette.applications import Starlette -from backend.server.middleware.security import SecurityHeadersMiddleware +from backend.api.middleware.security import SecurityHeadersMiddleware @pytest.fixture diff --git a/autogpt_platform/backend/backend/server/model.py b/autogpt_platform/backend/backend/api/model.py similarity index 100% rename from autogpt_platform/backend/backend/server/model.py rename to autogpt_platform/backend/backend/api/model.py diff --git a/autogpt_platform/backend/backend/server/rest_api.py b/autogpt_platform/backend/backend/api/rest_api.py similarity index 78% rename from autogpt_platform/backend/backend/server/rest_api.py rename to autogpt_platform/backend/backend/api/rest_api.py index 5db2b18c27..147f62e781 100644 --- a/autogpt_platform/backend/backend/server/rest_api.py +++ b/autogpt_platform/backend/backend/api/rest_api.py @@ -16,36 +16,33 @@ from fastapi.middleware.gzip import GZipMiddleware from fastapi.routing import APIRoute from prisma.errors import PrismaError +import backend.api.features.admin.credit_admin_routes +import backend.api.features.admin.execution_analytics_routes +import backend.api.features.admin.store_admin_routes +import backend.api.features.builder +import backend.api.features.builder.routes +import backend.api.features.chat.routes as chat_routes +import backend.api.features.executions.review.routes +import backend.api.features.library.db +import backend.api.features.library.model +import backend.api.features.library.routes +import backend.api.features.oauth +import backend.api.features.otto.routes +import backend.api.features.postmark.postmark +import backend.api.features.store.model +import backend.api.features.store.routes +import backend.api.features.v1 import backend.data.block import backend.data.db import backend.data.graph import backend.data.user import backend.integrations.webhooks.utils -import backend.server.routers.oauth -import backend.server.routers.postmark.postmark -import backend.server.routers.v1 -import backend.server.v2.admin.credit_admin_routes -import backend.server.v2.admin.execution_analytics_routes -import backend.server.v2.admin.store_admin_routes -import backend.server.v2.builder -import backend.server.v2.builder.routes -import backend.server.v2.chat.routes as chat_routes -import backend.server.v2.executions.review.routes -import backend.server.v2.library.db -import backend.server.v2.library.model -import backend.server.v2.library.routes -import backend.server.v2.otto.routes -import backend.server.v2.store.model -import backend.server.v2.store.routes import backend.util.service import backend.util.settings from backend.blocks.llm import LlmModel from backend.data.model import Credentials from backend.integrations.providers import ProviderName from backend.monitoring.instrumentation import instrument_fastapi -from backend.server.external.api import external_app -from backend.server.middleware.security import SecurityHeadersMiddleware -from backend.server.utils.cors import build_cors_params from backend.util import json from backend.util.cloud_storage import shutdown_cloud_storage_handler from backend.util.exceptions import ( @@ -56,6 +53,13 @@ from backend.util.exceptions import ( from backend.util.feature_flag import initialize_launchdarkly, shutdown_launchdarkly from backend.util.service import UnhealthyServiceError +from .external.fastapi_app import external_api +from .features.analytics import router as analytics_router +from .features.integrations.router import router as integrations_router +from .middleware.security import SecurityHeadersMiddleware +from .utils.cors import build_cors_params +from .utils.openapi import sort_openapi + settings = backend.util.settings.Settings() logger = logging.getLogger(__name__) @@ -176,6 +180,9 @@ app.add_middleware(GZipMiddleware, minimum_size=50_000) # 50KB threshold # Add 401 responses to authenticated endpoints in OpenAPI spec add_auth_responses_to_openapi(app) +# Sort OpenAPI schema to eliminate diff on refactors +sort_openapi(app) + # Add Prometheus instrumentation instrument_fastapi( app, @@ -254,42 +261,52 @@ app.add_exception_handler(MissingConfigError, handle_internal_http_error(503)) app.add_exception_handler(ValueError, handle_internal_http_error(400)) app.add_exception_handler(Exception, handle_internal_http_error(500)) -app.include_router(backend.server.routers.v1.v1_router, tags=["v1"], prefix="/api") +app.include_router(backend.api.features.v1.v1_router, tags=["v1"], prefix="/api") app.include_router( - backend.server.v2.store.routes.router, tags=["v2"], prefix="/api/store" + integrations_router, + prefix="/api/integrations", + tags=["v1", "integrations"], ) app.include_router( - backend.server.v2.builder.routes.router, tags=["v2"], prefix="/api/builder" + analytics_router, + prefix="/api/analytics", + tags=["analytics"], ) app.include_router( - backend.server.v2.admin.store_admin_routes.router, + backend.api.features.store.routes.router, tags=["v2"], prefix="/api/store" +) +app.include_router( + backend.api.features.builder.routes.router, tags=["v2"], prefix="/api/builder" +) +app.include_router( + backend.api.features.admin.store_admin_routes.router, tags=["v2", "admin"], prefix="/api/store", ) app.include_router( - backend.server.v2.admin.credit_admin_routes.router, + backend.api.features.admin.credit_admin_routes.router, tags=["v2", "admin"], prefix="/api/credits", ) app.include_router( - backend.server.v2.admin.execution_analytics_routes.router, + backend.api.features.admin.execution_analytics_routes.router, tags=["v2", "admin"], prefix="/api/executions", ) app.include_router( - backend.server.v2.executions.review.routes.router, + backend.api.features.executions.review.routes.router, tags=["v2", "executions", "review"], prefix="/api/review", ) app.include_router( - backend.server.v2.library.routes.router, tags=["v2"], prefix="/api/library" + backend.api.features.library.routes.router, tags=["v2"], prefix="/api/library" ) app.include_router( - backend.server.v2.otto.routes.router, tags=["v2", "otto"], prefix="/api/otto" + backend.api.features.otto.routes.router, tags=["v2", "otto"], prefix="/api/otto" ) app.include_router( - backend.server.routers.postmark.postmark.router, + backend.api.features.postmark.postmark.router, tags=["v1", "email"], prefix="/api/email", ) @@ -299,12 +316,12 @@ app.include_router( prefix="/api/chat", ) app.include_router( - backend.server.routers.oauth.router, + backend.api.features.oauth.router, tags=["oauth"], prefix="/api/oauth", ) -app.mount("/external-api", external_app) +app.mount("/external-api", external_api) @app.get(path="/health", tags=["health"], dependencies=[]) @@ -357,7 +374,7 @@ class AgentServer(backend.util.service.AppProcess): graph_version: Optional[int] = None, node_input: Optional[dict[str, Any]] = None, ): - return await backend.server.routers.v1.execute_graph( + return await backend.api.features.v1.execute_graph( user_id=user_id, graph_id=graph_id, graph_version=graph_version, @@ -372,16 +389,16 @@ class AgentServer(backend.util.service.AppProcess): user_id: str, for_export: bool = False, ): - return await backend.server.routers.v1.get_graph( + return await backend.api.features.v1.get_graph( graph_id, user_id, graph_version, for_export ) @staticmethod async def test_create_graph( - create_graph: backend.server.routers.v1.CreateGraph, + create_graph: backend.api.features.v1.CreateGraph, user_id: str, ): - return await backend.server.routers.v1.create_new_graph(create_graph, user_id) + return await backend.api.features.v1.create_new_graph(create_graph, user_id) @staticmethod async def test_get_graph_run_status(graph_exec_id: str, user_id: str): @@ -397,45 +414,45 @@ class AgentServer(backend.util.service.AppProcess): @staticmethod async def test_delete_graph(graph_id: str, user_id: str): """Used for clean-up after a test run""" - await backend.server.v2.library.db.delete_library_agent_by_graph_id( + await backend.api.features.library.db.delete_library_agent_by_graph_id( graph_id=graph_id, user_id=user_id ) - return await backend.server.routers.v1.delete_graph(graph_id, user_id) + return await backend.api.features.v1.delete_graph(graph_id, user_id) @staticmethod async def test_get_presets(user_id: str, page: int = 1, page_size: int = 10): - return await backend.server.v2.library.routes.presets.list_presets( + return await backend.api.features.library.routes.presets.list_presets( user_id=user_id, page=page, page_size=page_size ) @staticmethod async def test_get_preset(preset_id: str, user_id: str): - return await backend.server.v2.library.routes.presets.get_preset( + return await backend.api.features.library.routes.presets.get_preset( preset_id=preset_id, user_id=user_id ) @staticmethod async def test_create_preset( - preset: backend.server.v2.library.model.LibraryAgentPresetCreatable, + preset: backend.api.features.library.model.LibraryAgentPresetCreatable, user_id: str, ): - return await backend.server.v2.library.routes.presets.create_preset( + return await backend.api.features.library.routes.presets.create_preset( preset=preset, user_id=user_id ) @staticmethod async def test_update_preset( preset_id: str, - preset: backend.server.v2.library.model.LibraryAgentPresetUpdatable, + preset: backend.api.features.library.model.LibraryAgentPresetUpdatable, user_id: str, ): - return await backend.server.v2.library.routes.presets.update_preset( + return await backend.api.features.library.routes.presets.update_preset( preset_id=preset_id, preset=preset, user_id=user_id ) @staticmethod async def test_delete_preset(preset_id: str, user_id: str): - return await backend.server.v2.library.routes.presets.delete_preset( + return await backend.api.features.library.routes.presets.delete_preset( preset_id=preset_id, user_id=user_id ) @@ -445,7 +462,7 @@ class AgentServer(backend.util.service.AppProcess): user_id: str, inputs: Optional[dict[str, Any]] = None, ): - return await backend.server.v2.library.routes.presets.execute_preset( + return await backend.api.features.library.routes.presets.execute_preset( preset_id=preset_id, user_id=user_id, inputs=inputs or {}, @@ -454,18 +471,20 @@ class AgentServer(backend.util.service.AppProcess): @staticmethod async def test_create_store_listing( - request: backend.server.v2.store.model.StoreSubmissionRequest, user_id: str + request: backend.api.features.store.model.StoreSubmissionRequest, user_id: str ): - return await backend.server.v2.store.routes.create_submission(request, user_id) + return await backend.api.features.store.routes.create_submission( + request, user_id + ) ### ADMIN ### @staticmethod async def test_review_store_listing( - request: backend.server.v2.store.model.ReviewSubmissionRequest, + request: backend.api.features.store.model.ReviewSubmissionRequest, user_id: str, ): - return await backend.server.v2.admin.store_admin_routes.review_submission( + return await backend.api.features.admin.store_admin_routes.review_submission( request.store_listing_version_id, request, user_id ) @@ -475,10 +494,7 @@ class AgentServer(backend.util.service.AppProcess): provider: ProviderName, credentials: Credentials, ) -> Credentials: - from backend.server.integrations.router import ( - create_credentials, - get_credential, - ) + from .features.integrations.router import create_credentials, get_credential try: return await create_credentials( diff --git a/autogpt_platform/backend/backend/server/test_helpers.py b/autogpt_platform/backend/backend/api/test_helpers.py similarity index 100% rename from autogpt_platform/backend/backend/server/test_helpers.py rename to autogpt_platform/backend/backend/api/test_helpers.py diff --git a/autogpt_platform/backend/backend/server/utils/api_key_auth.py b/autogpt_platform/backend/backend/api/utils/api_key_auth.py similarity index 100% rename from autogpt_platform/backend/backend/server/utils/api_key_auth.py rename to autogpt_platform/backend/backend/api/utils/api_key_auth.py diff --git a/autogpt_platform/backend/backend/server/utils/api_key_auth_test.py b/autogpt_platform/backend/backend/api/utils/api_key_auth_test.py similarity index 99% rename from autogpt_platform/backend/backend/server/utils/api_key_auth_test.py rename to autogpt_platform/backend/backend/api/utils/api_key_auth_test.py index df6af6633c..39c3150561 100644 --- a/autogpt_platform/backend/backend/server/utils/api_key_auth_test.py +++ b/autogpt_platform/backend/backend/api/utils/api_key_auth_test.py @@ -8,7 +8,7 @@ import pytest from fastapi import HTTPException, Request from starlette.status import HTTP_401_UNAUTHORIZED, HTTP_403_FORBIDDEN -from backend.server.utils.api_key_auth import APIKeyAuthenticator +from backend.api.utils.api_key_auth import APIKeyAuthenticator from backend.util.exceptions import MissingConfigError diff --git a/autogpt_platform/backend/backend/server/utils/cors.py b/autogpt_platform/backend/backend/api/utils/cors.py similarity index 100% rename from autogpt_platform/backend/backend/server/utils/cors.py rename to autogpt_platform/backend/backend/api/utils/cors.py diff --git a/autogpt_platform/backend/backend/server/utils/cors_test.py b/autogpt_platform/backend/backend/api/utils/cors_test.py similarity index 97% rename from autogpt_platform/backend/backend/server/utils/cors_test.py rename to autogpt_platform/backend/backend/api/utils/cors_test.py index 94b3f17cfc..011974383b 100644 --- a/autogpt_platform/backend/backend/server/utils/cors_test.py +++ b/autogpt_platform/backend/backend/api/utils/cors_test.py @@ -1,6 +1,6 @@ import pytest -from backend.server.utils.cors import build_cors_params +from backend.api.utils.cors import build_cors_params from backend.util.settings import AppEnvironment diff --git a/autogpt_platform/backend/backend/api/utils/openapi.py b/autogpt_platform/backend/backend/api/utils/openapi.py new file mode 100644 index 0000000000..757b220fd0 --- /dev/null +++ b/autogpt_platform/backend/backend/api/utils/openapi.py @@ -0,0 +1,41 @@ +from fastapi import FastAPI + + +def sort_openapi(app: FastAPI) -> None: + """ + Patch a FastAPI instance's `openapi()` method to sort the endpoints, + schemas, and responses. + """ + wrapped_openapi = app.openapi + + def custom_openapi(): + if app.openapi_schema: + return app.openapi_schema + + openapi_schema = wrapped_openapi() + + # Sort endpoints + openapi_schema["paths"] = dict(sorted(openapi_schema["paths"].items())) + + # Sort endpoints -> methods + for p in openapi_schema["paths"].keys(): + openapi_schema["paths"][p] = dict( + sorted(openapi_schema["paths"][p].items()) + ) + + # Sort endpoints -> methods -> responses + for m in openapi_schema["paths"][p].keys(): + openapi_schema["paths"][p][m]["responses"] = dict( + sorted(openapi_schema["paths"][p][m]["responses"].items()) + ) + + # Sort schemas and responses as well + for k in openapi_schema["components"].keys(): + openapi_schema["components"][k] = dict( + sorted(openapi_schema["components"][k].items()) + ) + + app.openapi_schema = openapi_schema + return openapi_schema + + app.openapi = custom_openapi diff --git a/autogpt_platform/backend/backend/server/ws_api.py b/autogpt_platform/backend/backend/api/ws_api.py similarity index 98% rename from autogpt_platform/backend/backend/server/ws_api.py rename to autogpt_platform/backend/backend/api/ws_api.py index 344fd7e1a6..b71fdb3526 100644 --- a/autogpt_platform/backend/backend/server/ws_api.py +++ b/autogpt_platform/backend/backend/api/ws_api.py @@ -9,6 +9,14 @@ from autogpt_libs.auth.jwt_utils import parse_jwt_token from fastapi import Depends, FastAPI, WebSocket, WebSocketDisconnect from starlette.middleware.cors import CORSMiddleware +from backend.api.conn_manager import ConnectionManager +from backend.api.model import ( + WSMessage, + WSMethod, + WSSubscribeGraphExecutionRequest, + WSSubscribeGraphExecutionsRequest, +) +from backend.api.utils.cors import build_cors_params from backend.data.execution import AsyncRedisExecutionEventBus from backend.data.notification_bus import AsyncRedisNotificationEventBus from backend.data.user import DEFAULT_USER_ID @@ -16,14 +24,6 @@ from backend.monitoring.instrumentation import ( instrument_fastapi, update_websocket_connections, ) -from backend.server.conn_manager import ConnectionManager -from backend.server.model import ( - WSMessage, - WSMethod, - WSSubscribeGraphExecutionRequest, - WSSubscribeGraphExecutionsRequest, -) -from backend.server.utils.cors import build_cors_params from backend.util.retry import continuous_retry from backend.util.service import AppProcess from backend.util.settings import AppEnvironment, Config, Settings diff --git a/autogpt_platform/backend/backend/server/ws_api_test.py b/autogpt_platform/backend/backend/api/ws_api_test.py similarity index 92% rename from autogpt_platform/backend/backend/server/ws_api_test.py rename to autogpt_platform/backend/backend/api/ws_api_test.py index 0bc9902145..edab1bbded 100644 --- a/autogpt_platform/backend/backend/server/ws_api_test.py +++ b/autogpt_platform/backend/backend/api/ws_api_test.py @@ -6,17 +6,17 @@ import pytest from fastapi import WebSocket, WebSocketDisconnect from pytest_snapshot.plugin import Snapshot -from backend.data.user import DEFAULT_USER_ID -from backend.server.conn_manager import ConnectionManager -from backend.server.test_helpers import override_config -from backend.server.ws_api import AppEnvironment, WebsocketServer, WSMessage, WSMethod -from backend.server.ws_api import app as websocket_app -from backend.server.ws_api import ( +from backend.api.conn_manager import ConnectionManager +from backend.api.test_helpers import override_config +from backend.api.ws_api import AppEnvironment, WebsocketServer, WSMessage, WSMethod +from backend.api.ws_api import app as websocket_app +from backend.api.ws_api import ( handle_subscribe, handle_unsubscribe, settings, websocket_router, ) +from backend.data.user import DEFAULT_USER_ID @pytest.fixture @@ -36,12 +36,12 @@ def test_websocket_server_uses_cors_helper(mocker) -> None: "allow_origins": ["https://app.example.com"], "allow_origin_regex": None, } - mocker.patch("backend.server.ws_api.uvicorn.run") + mocker.patch("backend.api.ws_api.uvicorn.run") cors_middleware = mocker.patch( - "backend.server.ws_api.CORSMiddleware", return_value=object() + "backend.api.ws_api.CORSMiddleware", return_value=object() ) build_cors = mocker.patch( - "backend.server.ws_api.build_cors_params", return_value=cors_params + "backend.api.ws_api.build_cors_params", return_value=cors_params ) with override_config( @@ -63,7 +63,7 @@ def test_websocket_server_uses_cors_helper(mocker) -> None: def test_websocket_server_blocks_localhost_in_production(mocker) -> None: - mocker.patch("backend.server.ws_api.uvicorn.run") + mocker.patch("backend.api.ws_api.uvicorn.run") with override_config( settings, "backend_cors_allow_origins", ["http://localhost:3000"] @@ -78,7 +78,7 @@ async def test_websocket_router_subscribe( ) -> None: # Mock the authenticate_websocket function to ensure it returns a valid user_id mocker.patch( - "backend.server.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID + "backend.api.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID ) mock_websocket.receive_text.side_effect = [ @@ -128,7 +128,7 @@ async def test_websocket_router_unsubscribe( ) -> None: # Mock the authenticate_websocket function to ensure it returns a valid user_id mocker.patch( - "backend.server.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID + "backend.api.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID ) mock_websocket.receive_text.side_effect = [ @@ -175,7 +175,7 @@ async def test_websocket_router_invalid_method( ) -> None: # Mock the authenticate_websocket function to ensure it returns a valid user_id mocker.patch( - "backend.server.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID + "backend.api.ws_api.authenticate_websocket", return_value=DEFAULT_USER_ID ) mock_websocket.receive_text.side_effect = [ diff --git a/autogpt_platform/backend/backend/app.py b/autogpt_platform/backend/backend/app.py index 596962ae0b..0afed130ed 100644 --- a/autogpt_platform/backend/backend/app.py +++ b/autogpt_platform/backend/backend/app.py @@ -36,10 +36,10 @@ def main(**kwargs): Run all the processes required for the AutoGPT-server (REST and WebSocket APIs). """ + from backend.api.rest_api import AgentServer + from backend.api.ws_api import WebsocketServer from backend.executor import DatabaseManager, ExecutionManager, Scheduler from backend.notifications import NotificationManager - from backend.server.rest_api import AgentServer - from backend.server.ws_api import WebsocketServer run_processes( DatabaseManager().set_log_level("warning"), diff --git a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py index 29f572d0d6..deff4278f9 100644 --- a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py +++ b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py @@ -5,10 +5,10 @@ from unittest.mock import AsyncMock, MagicMock, patch import pytest +from backend.api.model import CreateGraph +from backend.api.rest_api import AgentServer from backend.data.execution import ExecutionContext from backend.data.model import ProviderName, User -from backend.server.model import CreateGraph -from backend.server.rest_api import AgentServer from backend.usecases.sample import create_test_graph, create_test_user from backend.util.test import SpinTestServer, wait_execution diff --git a/autogpt_platform/backend/backend/cli.py b/autogpt_platform/backend/backend/cli.py index 0fc1bc53c1..d6eaca1dd0 100755 --- a/autogpt_platform/backend/backend/cli.py +++ b/autogpt_platform/backend/backend/cli.py @@ -244,11 +244,7 @@ def websocket(server_address: str, graph_exec_id: str): import websockets.asyncio.client - from backend.server.ws_api import ( - WSMessage, - WSMethod, - WSSubscribeGraphExecutionRequest, - ) + from backend.api.ws_api import WSMessage, WSMethod, WSSubscribeGraphExecutionRequest async def send_message(server_address: str): uri = f"ws://{server_address}" diff --git a/autogpt_platform/backend/backend/cli/generate_openapi_json.py b/autogpt_platform/backend/backend/cli/generate_openapi_json.py index 313e603c44..de74c0b5d2 100644 --- a/autogpt_platform/backend/backend/cli/generate_openapi_json.py +++ b/autogpt_platform/backend/backend/cli/generate_openapi_json.py @@ -2,7 +2,7 @@ """ Script to generate OpenAPI JSON specification for the FastAPI app. -This script imports the FastAPI app from backend.server.rest_api and outputs +This script imports the FastAPI app from backend.api.rest_api and outputs the OpenAPI specification as JSON to stdout or a specified file. Usage: @@ -46,7 +46,7 @@ def main(output: Path, pretty: bool): def get_openapi_schema(): """Get the OpenAPI schema from the FastAPI app""" - from backend.server.rest_api import app + from backend.api.rest_api import app return app.openapi() diff --git a/autogpt_platform/backend/backend/data/__init__.py b/autogpt_platform/backend/backend/data/__init__.py index 31ab09a5df..c98667e362 100644 --- a/autogpt_platform/backend/backend/data/__init__.py +++ b/autogpt_platform/backend/backend/data/__init__.py @@ -1,4 +1,4 @@ -from backend.server.v2.library.model import LibraryAgentPreset +from backend.api.features.library.model import LibraryAgentPreset from .graph import NodeModel from .integrations import Webhook # noqa: F401 diff --git a/autogpt_platform/backend/backend/data/credit.py b/autogpt_platform/backend/backend/data/credit.py index a8942d3b2e..95f0b158e1 100644 --- a/autogpt_platform/backend/backend/data/credit.py +++ b/autogpt_platform/backend/backend/data/credit.py @@ -16,6 +16,7 @@ from prisma.models import CreditRefundRequest, CreditTransaction, User, UserBala from prisma.types import CreditRefundRequestCreateInput, CreditTransactionWhereInput from pydantic import BaseModel +from backend.api.features.admin.model import UserHistoryResponse from backend.data.block_cost_config import BLOCK_COSTS from backend.data.db import query_raw_with_schema from backend.data.includes import MAX_CREDIT_REFUND_REQUESTS_FETCH @@ -29,7 +30,6 @@ from backend.data.model import ( from backend.data.notifications import NotificationEventModel, RefundRequestData from backend.data.user import get_user_by_id, get_user_email_by_id from backend.notifications.notifications import queue_notification_async -from backend.server.v2.admin.model import UserHistoryResponse from backend.util.exceptions import InsufficientBalanceError from backend.util.feature_flag import Flag, is_feature_enabled from backend.util.json import SafeJson, dumps diff --git a/autogpt_platform/backend/backend/data/db.py b/autogpt_platform/backend/backend/data/db.py index b64ce4ef5c..31a27e9163 100644 --- a/autogpt_platform/backend/backend/data/db.py +++ b/autogpt_platform/backend/backend/data/db.py @@ -111,7 +111,7 @@ def get_database_schema() -> str: async def query_raw_with_schema(query_template: str, *args) -> list[dict]: """Execute raw SQL query with proper schema handling.""" schema = get_database_schema() - schema_prefix = f"{schema}." if schema != "public" else "" + schema_prefix = f'"{schema}".' if schema != "public" else "" formatted_query = query_template.format(schema_prefix=schema_prefix) import prisma as prisma_module diff --git a/autogpt_platform/backend/backend/data/graph_test.py b/autogpt_platform/backend/backend/data/graph_test.py index e570392658..044d75e0ca 100644 --- a/autogpt_platform/backend/backend/data/graph_test.py +++ b/autogpt_platform/backend/backend/data/graph_test.py @@ -6,14 +6,14 @@ import fastapi.exceptions import pytest from pytest_snapshot.plugin import Snapshot -import backend.server.v2.store.model as store +import backend.api.features.store.model as store +from backend.api.model import CreateGraph from backend.blocks.basic import StoreValueBlock from backend.blocks.io import AgentInputBlock, AgentOutputBlock from backend.data.block import BlockSchema, BlockSchemaInput from backend.data.graph import Graph, Link, Node from backend.data.model import SchemaField from backend.data.user import DEFAULT_USER_ID -from backend.server.model import CreateGraph from backend.usecases.sample import create_test_user from backend.util.test import SpinTestServer diff --git a/autogpt_platform/backend/backend/data/human_review.py b/autogpt_platform/backend/backend/data/human_review.py index 11b87ec1dd..de7a30759e 100644 --- a/autogpt_platform/backend/backend/data/human_review.py +++ b/autogpt_platform/backend/backend/data/human_review.py @@ -13,7 +13,7 @@ from prisma.models import PendingHumanReview from prisma.types import PendingHumanReviewUpdateInput from pydantic import BaseModel -from backend.server.v2.executions.review.model import ( +from backend.api.features.executions.review.model import ( PendingHumanReviewModel, SafeJsonData, ) diff --git a/autogpt_platform/backend/backend/data/integrations.py b/autogpt_platform/backend/backend/data/integrations.py index 0f328e81b7..5f44f928bd 100644 --- a/autogpt_platform/backend/backend/data/integrations.py +++ b/autogpt_platform/backend/backend/data/integrations.py @@ -23,7 +23,7 @@ from backend.util.exceptions import NotFoundError from backend.util.json import SafeJson if TYPE_CHECKING: - from backend.server.v2.library.model import LibraryAgentPreset + from backend.api.features.library.model import LibraryAgentPreset from .db import BaseDbModel from .graph import NodeModel @@ -79,7 +79,7 @@ class WebhookWithRelations(Webhook): # integrations.py → library/model.py → integrations.py (for Webhook) # Runtime import is used in WebhookWithRelations.from_db() method instead # Import at runtime to avoid circular dependency - from backend.server.v2.library.model import LibraryAgentPreset + from backend.api.features.library.model import LibraryAgentPreset return WebhookWithRelations( **Webhook.from_db(webhook).model_dump(), @@ -285,8 +285,8 @@ async def unlink_webhook_from_graph( user_id: The ID of the user (for authorization) """ # Avoid circular imports + from backend.api.features.library.db import set_preset_webhook from backend.data.graph import set_node_webhook - from backend.server.v2.library.db import set_preset_webhook # Find all nodes in this graph that use this webhook nodes = await AgentNode.prisma().find_many( diff --git a/autogpt_platform/backend/backend/data/notification_bus.py b/autogpt_platform/backend/backend/data/notification_bus.py index 6eb90dca12..fbd484d379 100644 --- a/autogpt_platform/backend/backend/data/notification_bus.py +++ b/autogpt_platform/backend/backend/data/notification_bus.py @@ -4,8 +4,8 @@ from typing import AsyncGenerator from pydantic import BaseModel, field_serializer +from backend.api.model import NotificationPayload from backend.data.event_bus import AsyncRedisEventBus -from backend.server.model import NotificationPayload from backend.util.settings import Settings diff --git a/autogpt_platform/backend/backend/data/onboarding.py b/autogpt_platform/backend/backend/data/onboarding.py index 1415c7694e..d9977e9535 100644 --- a/autogpt_platform/backend/backend/data/onboarding.py +++ b/autogpt_platform/backend/backend/data/onboarding.py @@ -9,6 +9,8 @@ from prisma.enums import OnboardingStep from prisma.models import UserOnboarding from prisma.types import UserOnboardingCreateInput, UserOnboardingUpdateInput +from backend.api.features.store.model import StoreAgentDetails +from backend.api.model import OnboardingNotificationPayload from backend.data import execution as execution_db from backend.data.credit import get_user_credit_model from backend.data.notification_bus import ( @@ -16,8 +18,6 @@ from backend.data.notification_bus import ( NotificationEvent, ) from backend.data.user import get_user_by_id -from backend.server.model import OnboardingNotificationPayload -from backend.server.v2.store.model import StoreAgentDetails from backend.util.cache import cached from backend.util.json import SafeJson from backend.util.timezone_utils import get_user_timezone_or_utc diff --git a/autogpt_platform/backend/backend/server/v2/AutoMod/__init__.py b/autogpt_platform/backend/backend/executor/automod/__init__.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/AutoMod/__init__.py rename to autogpt_platform/backend/backend/executor/automod/__init__.py diff --git a/autogpt_platform/backend/backend/server/v2/AutoMod/manager.py b/autogpt_platform/backend/backend/executor/automod/manager.py similarity index 99% rename from autogpt_platform/backend/backend/server/v2/AutoMod/manager.py rename to autogpt_platform/backend/backend/executor/automod/manager.py index 181fcec248..81001196dd 100644 --- a/autogpt_platform/backend/backend/server/v2/AutoMod/manager.py +++ b/autogpt_platform/backend/backend/executor/automod/manager.py @@ -9,16 +9,13 @@ if TYPE_CHECKING: from pydantic import ValidationError from backend.data.execution import ExecutionStatus -from backend.server.v2.AutoMod.models import ( - AutoModRequest, - AutoModResponse, - ModerationConfig, -) from backend.util.exceptions import ModerationError from backend.util.feature_flag import Flag, is_feature_enabled from backend.util.request import Requests from backend.util.settings import Settings +from .models import AutoModRequest, AutoModResponse, ModerationConfig + logger = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/server/v2/AutoMod/models.py b/autogpt_platform/backend/backend/executor/automod/models.py similarity index 100% rename from autogpt_platform/backend/backend/server/v2/AutoMod/models.py rename to autogpt_platform/backend/backend/executor/automod/models.py diff --git a/autogpt_platform/backend/backend/executor/database.py b/autogpt_platform/backend/backend/executor/database.py index 9c2b3970c6..af68bf526d 100644 --- a/autogpt_platform/backend/backend/executor/database.py +++ b/autogpt_platform/backend/backend/executor/database.py @@ -2,6 +2,11 @@ import logging from contextlib import asynccontextmanager from typing import TYPE_CHECKING, Callable, Concatenate, ParamSpec, TypeVar, cast +from backend.api.features.library.db import ( + add_store_agent_to_library, + list_library_agents, +) +from backend.api.features.store.db import get_store_agent_details, get_store_agents from backend.data import db from backend.data.analytics import ( get_accuracy_trends_and_alerts, @@ -61,8 +66,6 @@ from backend.data.user import ( get_user_notification_preference, update_user_integrations, ) -from backend.server.v2.library.db import add_store_agent_to_library, list_library_agents -from backend.server.v2.store.db import get_store_agent_details, get_store_agents from backend.util.service import ( AppService, AppServiceClient, diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 234f8127c8..161e68b0d6 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -48,27 +48,8 @@ from backend.data.notifications import ( ZeroBalanceData, ) from backend.data.rabbitmq import SyncRabbitMQ -from backend.executor.activity_status_generator import ( - generate_activity_status_for_execution, -) -from backend.executor.utils import ( - GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS, - GRAPH_EXECUTION_CANCEL_QUEUE_NAME, - GRAPH_EXECUTION_EXCHANGE, - GRAPH_EXECUTION_QUEUE_NAME, - GRAPH_EXECUTION_ROUTING_KEY, - CancelExecutionEvent, - ExecutionOutputEntry, - LogMetadata, - NodeExecutionProgress, - block_usage_cost, - create_execution_queue_config, - execution_usage_cost, - validate_exec, -) from backend.integrations.creds_manager import IntegrationCredentialsManager from backend.notifications.notifications import queue_notification -from backend.server.v2.AutoMod.manager import automod_manager from backend.util import json from backend.util.clients import ( get_async_execution_event_bus, @@ -95,7 +76,24 @@ from backend.util.retry import ( ) from backend.util.settings import Settings +from .activity_status_generator import generate_activity_status_for_execution +from .automod.manager import automod_manager from .cluster_lock import ClusterLock +from .utils import ( + GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS, + GRAPH_EXECUTION_CANCEL_QUEUE_NAME, + GRAPH_EXECUTION_EXCHANGE, + GRAPH_EXECUTION_QUEUE_NAME, + GRAPH_EXECUTION_ROUTING_KEY, + CancelExecutionEvent, + ExecutionOutputEntry, + LogMetadata, + NodeExecutionProgress, + block_usage_cost, + create_execution_queue_config, + execution_usage_cost, + validate_exec, +) if TYPE_CHECKING: from backend.executor import DatabaseManagerAsyncClient, DatabaseManagerClient diff --git a/autogpt_platform/backend/backend/executor/manager_test.py b/autogpt_platform/backend/backend/executor/manager_test.py index cd543fef4e..bdfdb5d724 100644 --- a/autogpt_platform/backend/backend/executor/manager_test.py +++ b/autogpt_platform/backend/backend/executor/manager_test.py @@ -3,16 +3,16 @@ import logging import fastapi.responses import pytest -import backend.server.v2.library.model -import backend.server.v2.store.model +import backend.api.features.library.model +import backend.api.features.store.model +from backend.api.model import CreateGraph +from backend.api.rest_api import AgentServer from backend.blocks.basic import StoreValueBlock from backend.blocks.data_manipulation import FindInDictionaryBlock from backend.blocks.io import AgentInputBlock from backend.blocks.maths import CalculatorBlock, Operation from backend.data import execution, graph from backend.data.model import User -from backend.server.model import CreateGraph -from backend.server.rest_api import AgentServer from backend.usecases.sample import create_test_graph, create_test_user from backend.util.test import SpinTestServer, wait_execution @@ -356,7 +356,7 @@ async def test_execute_preset(server: SpinTestServer): test_graph = await create_graph(server, test_graph, test_user) # Create preset with initial values - preset = backend.server.v2.library.model.LibraryAgentPresetCreatable( + preset = backend.api.features.library.model.LibraryAgentPresetCreatable( name="Test Preset With Clash", description="Test preset with clashing input values", graph_id=test_graph.id, @@ -444,7 +444,7 @@ async def test_execute_preset_with_clash(server: SpinTestServer): test_graph = await create_graph(server, test_graph, test_user) # Create preset with initial values - preset = backend.server.v2.library.model.LibraryAgentPresetCreatable( + preset = backend.api.features.library.model.LibraryAgentPresetCreatable( name="Test Preset With Clash", description="Test preset with clashing input values", graph_id=test_graph.id, @@ -485,7 +485,7 @@ async def test_store_listing_graph(server: SpinTestServer): test_user = await create_test_user() test_graph = await create_graph(server, create_test_graph(), test_user) - store_submission_request = backend.server.v2.store.model.StoreSubmissionRequest( + store_submission_request = backend.api.features.store.model.StoreSubmissionRequest( agent_id=test_graph.id, agent_version=test_graph.version, slug=test_graph.id, @@ -514,7 +514,7 @@ async def test_store_listing_graph(server: SpinTestServer): admin_user = await create_test_user(alt_user=True) await server.agent_server.test_review_store_listing( - backend.server.v2.store.model.ReviewSubmissionRequest( + backend.api.features.store.model.ReviewSubmissionRequest( store_listing_version_id=slv_id, is_approved=True, comments="Test comments", @@ -523,7 +523,7 @@ async def test_store_listing_graph(server: SpinTestServer): ) # Add the approved store listing to the admin user's library so they can execute it - from backend.server.v2.library.db import add_store_agent_to_library + from backend.api.features.library.db import add_store_agent_to_library await add_store_agent_to_library( store_listing_version_id=slv_id, user_id=admin_user.id diff --git a/autogpt_platform/backend/backend/executor/scheduler_test.py b/autogpt_platform/backend/backend/executor/scheduler_test.py index c4fa35d46c..21acbaf0e1 100644 --- a/autogpt_platform/backend/backend/executor/scheduler_test.py +++ b/autogpt_platform/backend/backend/executor/scheduler_test.py @@ -1,7 +1,7 @@ import pytest +from backend.api.model import CreateGraph from backend.data import db -from backend.server.model import CreateGraph from backend.usecases.sample import create_test_graph, create_test_user from backend.util.clients import get_scheduler_client from backend.util.test import SpinTestServer diff --git a/autogpt_platform/backend/backend/integrations/webhooks/utils.py b/autogpt_platform/backend/backend/integrations/webhooks/utils.py index fafd641c93..79316c4c0e 100644 --- a/autogpt_platform/backend/backend/integrations/webhooks/utils.py +++ b/autogpt_platform/backend/backend/integrations/webhooks/utils.py @@ -149,10 +149,10 @@ async def setup_webhook_for_block( async def migrate_legacy_triggered_graphs(): from prisma.models import AgentGraph + from backend.api.features.library.db import create_preset + from backend.api.features.library.model import LibraryAgentPresetCreatable from backend.data.graph import AGENT_GRAPH_INCLUDE, GraphModel, set_node_webhook from backend.data.model import is_credentials_field_name - from backend.server.v2.library.db import create_preset - from backend.server.v2.library.model import LibraryAgentPresetCreatable triggered_graphs = [ GraphModel.from_db(_graph) diff --git a/autogpt_platform/backend/backend/rest.py b/autogpt_platform/backend/backend/rest.py index b601144c6f..96a807c125 100644 --- a/autogpt_platform/backend/backend/rest.py +++ b/autogpt_platform/backend/backend/rest.py @@ -1,5 +1,5 @@ +from backend.api.rest_api import AgentServer from backend.app import run_processes -from backend.server.rest_api import AgentServer def main(): diff --git a/autogpt_platform/backend/backend/server/external/api.py b/autogpt_platform/backend/backend/server/external/api.py deleted file mode 100644 index 3bafa63108..0000000000 --- a/autogpt_platform/backend/backend/server/external/api.py +++ /dev/null @@ -1,29 +0,0 @@ -from fastapi import FastAPI - -from backend.monitoring.instrumentation import instrument_fastapi -from backend.server.middleware.security import SecurityHeadersMiddleware - -from .routes.integrations import integrations_router -from .routes.tools import tools_router -from .routes.v1 import v1_router - -external_app = FastAPI( - title="AutoGPT External API", - description="External API for AutoGPT integrations", - docs_url="/docs", - version="1.0", -) - -external_app.add_middleware(SecurityHeadersMiddleware) -external_app.include_router(v1_router, prefix="/v1") -external_app.include_router(tools_router, prefix="/v1") -external_app.include_router(integrations_router, prefix="/v1") - -# Add Prometheus instrumentation -instrument_fastapi( - external_app, - service_name="external-api", - expose_endpoint=True, - endpoint="/metrics", - include_in_schema=True, -) diff --git a/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py b/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py deleted file mode 100644 index 7040faa0b5..0000000000 --- a/autogpt_platform/backend/backend/server/routers/analytics_improved_test.py +++ /dev/null @@ -1,150 +0,0 @@ -"""Example of analytics tests with improved error handling and assertions.""" - -import json -from unittest.mock import AsyncMock, Mock - -import fastapi -import fastapi.testclient -import pytest -import pytest_mock -from pytest_snapshot.plugin import Snapshot - -import backend.server.routers.analytics as analytics_routes -from backend.server.test_helpers import ( - assert_error_response_structure, - assert_mock_called_with_partial, - assert_response_status, - safe_parse_json, -) - -app = fastapi.FastAPI() -app.include_router(analytics_routes.router) - -client = fastapi.testclient.TestClient(app) - - -@pytest.fixture(autouse=True) -def setup_app_auth(mock_jwt_user): - """Setup auth overrides for all tests in this module""" - from autogpt_libs.auth.jwt_utils import get_jwt_payload - - app.dependency_overrides[get_jwt_payload] = mock_jwt_user["get_jwt_payload"] - yield - app.dependency_overrides.clear() - - -def test_log_raw_metric_success_improved( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, - test_user_id: str, -) -> None: - """Test successful raw metric logging with improved assertions.""" - # Mock the analytics function - mock_result = Mock(id="metric-123-uuid") - - mock_log_metric = mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=mock_result, - ) - - request_data = { - "metric_name": "page_load_time", - "metric_value": 2.5, - "data_string": "/dashboard", - } - - response = client.post("/log_raw_metric", json=request_data) - - # Improved assertions with better error messages - assert_response_status(response, 200, "Metric logging should succeed") - response_data = safe_parse_json(response, "Metric response parsing") - - assert response_data == "metric-123-uuid", f"Unexpected response: {response_data}" - - # Verify the function was called with correct parameters - assert_mock_called_with_partial( - mock_log_metric, - user_id=test_user_id, - metric_name="page_load_time", - metric_value=2.5, - data_string="/dashboard", - ) - - # Snapshot test the response - configured_snapshot.assert_match( - json.dumps({"metric_id": response_data}, indent=2, sort_keys=True), - "analytics_log_metric_success_improved", - ) - - -def test_log_raw_metric_invalid_request_improved() -> None: - """Test invalid metric request with improved error assertions.""" - # Test missing required fields - response = client.post("/log_raw_metric", json={}) - - error_data = assert_error_response_structure( - response, expected_status=422, expected_error_fields=["loc", "msg", "type"] - ) - - # Verify specific error details - detail = error_data["detail"] - assert isinstance(detail, list), "Error detail should be a list" - assert len(detail) > 0, "Should have at least one error" - - # Check that required fields are mentioned in errors - error_fields = [error["loc"][-1] for error in detail if "loc" in error] - assert "metric_name" in error_fields, "Should report missing metric_name" - assert "metric_value" in error_fields, "Should report missing metric_value" - assert "data_string" in error_fields, "Should report missing data_string" - - -def test_log_raw_metric_type_validation_improved( - mocker: pytest_mock.MockFixture, -) -> None: - """Test metric type validation with improved assertions.""" - # Mock the analytics function to avoid event loop issues - mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=Mock(id="test-id"), - ) - - invalid_requests = [ - { - "data": { - "metric_name": "test", - "metric_value": "not_a_number", # Invalid type - "data_string": "test", - }, - "expected_error": "Input should be a valid number", - }, - { - "data": { - "metric_name": "", # Empty string - "metric_value": 1.0, - "data_string": "test", - }, - "expected_error": "String should have at least 1 character", - }, - { - "data": { - "metric_name": "test", - "metric_value": 123, # Valid number - "data_string": "", # Empty data_string - }, - "expected_error": "String should have at least 1 character", - }, - ] - - for test_case in invalid_requests: - response = client.post("/log_raw_metric", json=test_case["data"]) - - error_data = assert_error_response_structure(response, expected_status=422) - - # Check that expected error is in the response - error_text = json.dumps(error_data) - assert ( - test_case["expected_error"] in error_text - or test_case["expected_error"].lower() in error_text.lower() - ), f"Expected error '{test_case['expected_error']}' not found in: {error_text}" diff --git a/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py b/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py deleted file mode 100644 index 9dbf03b727..0000000000 --- a/autogpt_platform/backend/backend/server/routers/analytics_parametrized_test.py +++ /dev/null @@ -1,115 +0,0 @@ -"""Example of parametrized tests for analytics endpoints.""" - -import json -from unittest.mock import AsyncMock, Mock - -import fastapi -import fastapi.testclient -import pytest -import pytest_mock -from pytest_snapshot.plugin import Snapshot - -import backend.server.routers.analytics as analytics_routes - -app = fastapi.FastAPI() -app.include_router(analytics_routes.router) - -client = fastapi.testclient.TestClient(app) - - -@pytest.fixture(autouse=True) -def setup_app_auth(mock_jwt_user): - """Setup auth overrides for all tests in this module""" - from autogpt_libs.auth.jwt_utils import get_jwt_payload - - app.dependency_overrides[get_jwt_payload] = mock_jwt_user["get_jwt_payload"] - yield - app.dependency_overrides.clear() - - -@pytest.mark.parametrize( - "metric_value,metric_name,data_string,test_id", - [ - (100, "api_calls_count", "external_api", "integer_value"), - (0, "error_count", "no_errors", "zero_value"), - (-5.2, "temperature_delta", "cooling", "negative_value"), - (1.23456789, "precision_test", "float_precision", "float_precision"), - (999999999, "large_number", "max_value", "large_number"), - (0.0000001, "tiny_number", "min_value", "tiny_number"), - ], -) -def test_log_raw_metric_values_parametrized( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, - metric_value: float, - metric_name: str, - data_string: str, - test_id: str, -) -> None: - """Test raw metric logging with various metric values using parametrize.""" - # Mock the analytics function - mock_result = Mock(id=f"metric-{test_id}-uuid") - - mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=mock_result, - ) - - request_data = { - "metric_name": metric_name, - "metric_value": metric_value, - "data_string": data_string, - } - - response = client.post("/log_raw_metric", json=request_data) - - # Better error handling - assert response.status_code == 200, f"Failed for {test_id}: {response.text}" - response_data = response.json() - - # Snapshot test the response - configured_snapshot.assert_match( - json.dumps( - {"metric_id": response_data, "test_case": test_id}, indent=2, sort_keys=True - ), - f"analytics_metric_{test_id}", - ) - - -@pytest.mark.parametrize( - "invalid_data,expected_error", - [ - ({}, "Field required"), # Missing all fields - ({"metric_name": "test"}, "Field required"), # Missing metric_value - ( - {"metric_name": "test", "metric_value": "not_a_number"}, - "Input should be a valid number", - ), # Invalid type - ( - {"metric_name": "", "metric_value": 1.0, "data_string": "test"}, - "String should have at least 1 character", - ), # Empty name - ], -) -def test_log_raw_metric_invalid_requests_parametrized( - mocker: pytest_mock.MockFixture, - invalid_data: dict, - expected_error: str, -) -> None: - """Test invalid metric requests with parametrize.""" - # Mock the analytics function to avoid event loop issues - mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=Mock(id="test-id"), - ) - - response = client.post("/log_raw_metric", json=invalid_data) - - assert response.status_code == 422 - error_detail = response.json() - assert "detail" in error_detail - # Verify error message contains expected error - error_text = json.dumps(error_detail) - assert expected_error in error_text or expected_error.lower() in error_text.lower() diff --git a/autogpt_platform/backend/backend/server/routers/analytics_test.py b/autogpt_platform/backend/backend/server/routers/analytics_test.py deleted file mode 100644 index 16ee6708dc..0000000000 --- a/autogpt_platform/backend/backend/server/routers/analytics_test.py +++ /dev/null @@ -1,284 +0,0 @@ -import json -from unittest.mock import AsyncMock, Mock - -import fastapi -import fastapi.testclient -import pytest -import pytest_mock -from pytest_snapshot.plugin import Snapshot - -import backend.server.routers.analytics as analytics_routes - -app = fastapi.FastAPI() -app.include_router(analytics_routes.router) - -client = fastapi.testclient.TestClient(app) - - -@pytest.fixture(autouse=True) -def setup_app_auth(mock_jwt_user): - """Setup auth overrides for all tests in this module""" - from autogpt_libs.auth.jwt_utils import get_jwt_payload - - app.dependency_overrides[get_jwt_payload] = mock_jwt_user["get_jwt_payload"] - yield - app.dependency_overrides.clear() - - -def test_log_raw_metric_success( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, - test_user_id: str, -) -> None: - """Test successful raw metric logging""" - - # Mock the analytics function - mock_result = Mock(id="metric-123-uuid") - - mock_log_metric = mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=mock_result, - ) - - request_data = { - "metric_name": "page_load_time", - "metric_value": 2.5, - "data_string": "/dashboard", - } - - response = client.post("/log_raw_metric", json=request_data) - - assert response.status_code == 200 - response_data = response.json() - assert response_data == "metric-123-uuid" - - # Verify the function was called with correct parameters - mock_log_metric.assert_called_once_with( - user_id=test_user_id, - metric_name="page_load_time", - metric_value=2.5, - data_string="/dashboard", - ) - - # Snapshot test the response - configured_snapshot.assert_match( - json.dumps({"metric_id": response.json()}, indent=2, sort_keys=True), - "analytics_log_metric_success", - ) - - -def test_log_raw_metric_various_values( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, -) -> None: - """Test raw metric logging with various metric values""" - - # Mock the analytics function - mock_result = Mock(id="metric-456-uuid") - - mocker.patch( - "backend.data.analytics.log_raw_metric", - new_callable=AsyncMock, - return_value=mock_result, - ) - - # Test with integer value - request_data = { - "metric_name": "api_calls_count", - "metric_value": 100, - "data_string": "external_api", - } - - response = client.post("/log_raw_metric", json=request_data) - assert response.status_code == 200 - - # Test with zero value - request_data = { - "metric_name": "error_count", - "metric_value": 0, - "data_string": "no_errors", - } - - response = client.post("/log_raw_metric", json=request_data) - assert response.status_code == 200 - - # Test with negative value - request_data = { - "metric_name": "temperature_delta", - "metric_value": -5.2, - "data_string": "cooling", - } - - response = client.post("/log_raw_metric", json=request_data) - assert response.status_code == 200 - - # Snapshot the last response - configured_snapshot.assert_match( - json.dumps({"metric_id": response.json()}, indent=2, sort_keys=True), - "analytics_log_metric_various_values", - ) - - -def test_log_raw_analytics_success( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, - test_user_id: str, -) -> None: - """Test successful raw analytics logging""" - - # Mock the analytics function - mock_result = Mock(id="analytics-789-uuid") - - mock_log_analytics = mocker.patch( - "backend.data.analytics.log_raw_analytics", - new_callable=AsyncMock, - return_value=mock_result, - ) - - request_data = { - "type": "user_action", - "data": { - "action": "button_click", - "button_id": "submit_form", - "timestamp": "2023-01-01T00:00:00Z", - "metadata": { - "form_type": "registration", - "fields_filled": 5, - }, - }, - "data_index": "button_click_submit_form", - } - - response = client.post("/log_raw_analytics", json=request_data) - - assert response.status_code == 200 - response_data = response.json() - assert response_data == "analytics-789-uuid" - - # Verify the function was called with correct parameters - mock_log_analytics.assert_called_once_with( - test_user_id, - "user_action", - request_data["data"], - "button_click_submit_form", - ) - - # Snapshot test the response - configured_snapshot.assert_match( - json.dumps({"analytics_id": response_data}, indent=2, sort_keys=True), - "analytics_log_analytics_success", - ) - - -def test_log_raw_analytics_complex_data( - mocker: pytest_mock.MockFixture, - configured_snapshot: Snapshot, -) -> None: - """Test raw analytics logging with complex nested data""" - - # Mock the analytics function - mock_result = Mock(id="analytics-complex-uuid") - - mocker.patch( - "backend.data.analytics.log_raw_analytics", - new_callable=AsyncMock, - return_value=mock_result, - ) - - request_data = { - "type": "agent_execution", - "data": { - "agent_id": "agent_123", - "execution_id": "exec_456", - "status": "completed", - "duration_ms": 3500, - "nodes_executed": 15, - "blocks_used": [ - {"block_id": "llm_block", "count": 3}, - {"block_id": "http_block", "count": 5}, - {"block_id": "code_block", "count": 2}, - ], - "errors": [], - "metadata": { - "trigger": "manual", - "user_tier": "premium", - "environment": "production", - }, - }, - "data_index": "agent_123_exec_456", - } - - response = client.post("/log_raw_analytics", json=request_data) - - assert response.status_code == 200 - response_data = response.json() - - # Snapshot test the complex data structure - configured_snapshot.assert_match( - json.dumps( - { - "analytics_id": response_data, - "logged_data": request_data["data"], - }, - indent=2, - sort_keys=True, - ), - "analytics_log_analytics_complex_data", - ) - - -def test_log_raw_metric_invalid_request() -> None: - """Test raw metric logging with invalid request data""" - # Missing required fields - response = client.post("/log_raw_metric", json={}) - assert response.status_code == 422 - - # Invalid metric_value type - response = client.post( - "/log_raw_metric", - json={ - "metric_name": "test", - "metric_value": "not_a_number", - "data_string": "test", - }, - ) - assert response.status_code == 422 - - # Missing data_string - response = client.post( - "/log_raw_metric", - json={ - "metric_name": "test", - "metric_value": 1.0, - }, - ) - assert response.status_code == 422 - - -def test_log_raw_analytics_invalid_request() -> None: - """Test raw analytics logging with invalid request data""" - # Missing required fields - response = client.post("/log_raw_analytics", json={}) - assert response.status_code == 422 - - # Invalid data type (should be dict) - response = client.post( - "/log_raw_analytics", - json={ - "type": "test", - "data": "not_a_dict", - "data_index": "test", - }, - ) - assert response.status_code == 422 - - # Missing data_index - response = client.post( - "/log_raw_analytics", - json={ - "type": "test", - "data": {"key": "value"}, - }, - ) - assert response.status_code == 422 diff --git a/autogpt_platform/backend/backend/util/test.py b/autogpt_platform/backend/backend/util/test.py index 95ea9554ed..1e8244ff8e 100644 --- a/autogpt_platform/backend/backend/util/test.py +++ b/autogpt_platform/backend/backend/util/test.py @@ -6,6 +6,7 @@ from typing import Sequence, cast from autogpt_libs.auth import get_user_id +from backend.api.rest_api import AgentServer from backend.data import db from backend.data.block import Block, BlockSchema, initialize_blocks from backend.data.execution import ( @@ -18,7 +19,6 @@ from backend.data.model import _BaseCredentials from backend.data.user import create_default_user from backend.executor import DatabaseManager, ExecutionManager, Scheduler from backend.notifications.notifications import NotificationManager -from backend.server.rest_api import AgentServer log = logging.getLogger(__name__) diff --git a/autogpt_platform/backend/backend/util/virus_scanner.py b/autogpt_platform/backend/backend/util/virus_scanner.py index 1ea31cac95..aa43e5f5d9 100644 --- a/autogpt_platform/backend/backend/util/virus_scanner.py +++ b/autogpt_platform/backend/backend/util/virus_scanner.py @@ -196,7 +196,7 @@ async def scan_content_safe(content: bytes, *, filename: str = "unknown") -> Non VirusDetectedError: If virus is found VirusScanError: If scanning fails """ - from backend.server.v2.store.exceptions import VirusDetectedError, VirusScanError + from backend.api.features.store.exceptions import VirusDetectedError, VirusScanError try: result = await get_virus_scanner().scan_file(content, filename=filename) diff --git a/autogpt_platform/backend/backend/util/virus_scanner_test.py b/autogpt_platform/backend/backend/util/virus_scanner_test.py index 81b5ad3342..77010c7320 100644 --- a/autogpt_platform/backend/backend/util/virus_scanner_test.py +++ b/autogpt_platform/backend/backend/util/virus_scanner_test.py @@ -3,7 +3,7 @@ from unittest.mock import AsyncMock, Mock, patch import pytest -from backend.server.v2.store.exceptions import VirusDetectedError, VirusScanError +from backend.api.features.store.exceptions import VirusDetectedError, VirusScanError from backend.util.virus_scanner import ( VirusScannerService, VirusScannerSettings, diff --git a/autogpt_platform/backend/backend/ws.py b/autogpt_platform/backend/backend/ws.py index 3b15a60eb0..77e2e82a90 100644 --- a/autogpt_platform/backend/backend/ws.py +++ b/autogpt_platform/backend/backend/ws.py @@ -1,5 +1,5 @@ +from backend.api.ws_api import WebsocketServer from backend.app import run_processes -from backend.server.ws_api import WebsocketServer def main(): diff --git a/autogpt_platform/backend/test/e2e_test_data.py b/autogpt_platform/backend/test/e2e_test_data.py index 943c506f5c..d7576cdad3 100644 --- a/autogpt_platform/backend/test/e2e_test_data.py +++ b/autogpt_platform/backend/test/e2e_test_data.py @@ -23,16 +23,18 @@ from typing import Any, Dict, List from faker import Faker +# Import API functions from the backend +from backend.api.features.library.db import create_library_agent, create_preset +from backend.api.features.library.model import LibraryAgentPresetCreatable +from backend.api.features.store.db import ( + create_store_submission, + review_store_submission, +) from backend.data.auth.api_key import create_api_key from backend.data.credit import get_user_credit_model from backend.data.db import prisma from backend.data.graph import Graph, Link, Node, create_graph from backend.data.user import get_or_create_user - -# Import API functions from the backend -from backend.server.v2.library.db import create_library_agent, create_preset -from backend.server.v2.library.model import LibraryAgentPresetCreatable -from backend.server.v2.store.db import create_store_submission, review_store_submission from backend.util.clients import get_supabase faker = Faker() diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx b/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx index 8093b75965..7472ef212e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/auth/authorize/page.tsx @@ -16,7 +16,7 @@ import type { APIKeyPermission } from "@/app/api/__generated__/models/aPIKeyPerm // Human-readable scope descriptions const SCOPE_DESCRIPTIONS: { [key in APIKeyPermission]: string } = { - IDENTITY: "Read user ID, name, e-mail, and timezone", + IDENTITY: "View your user ID, e-mail, and timezone", EXECUTE_GRAPH: "Run your agents", READ_GRAPH: "View your agents and their configurations", EXECUTE_BLOCK: "Execute individual blocks", diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index 3556e2f5c7..61a3600892 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -2,46 +2,33 @@ "openapi": "3.1.0", "info": { "title": "AutoGPT Agent Server", + "summary": "AutoGPT Agent Server", "description": "This server is used to execute agents that are created by the AutoGPT system.", "version": "0.1" }, "paths": { - "/api/integrations/{provider}/login": { - "get": { - "tags": ["v1", "integrations"], - "summary": "Initiate OAuth flow", - "operationId": "getV1Initiate oauth flow", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "The provider to initiate an OAuth flow for", - "description": "Provider name for integrations. Can be any string value, including custom provider names." + "/api/analytics/log_raw_analytics": { + "post": { + "tags": ["analytics"], + "summary": "Log Raw Analytics", + "operationId": "postAnalyticsLogRawAnalytics", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postAnalyticsLogRawAnalytics" + } } }, - { - "name": "scopes", - "in": "query", - "required": false, - "schema": { - "type": "string", - "title": "Comma-separated list of authorization scopes", - "default": "" - } - } - ], + "required": true + }, "responses": { "200": { "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LoginResponse" } - } - } + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" }, "422": { "description": "Validation Error", @@ -50,9 +37,2773 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/analytics/log_raw_metric": { + "post": { + "tags": ["analytics"], + "summary": "Log Raw Metric", + "operationId": "postAnalyticsLogRawMetric", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LogRawMetricRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/api-keys": { + "get": { + "tags": ["v1", "api-keys"], + "summary": "List user API keys", + "description": "List all API keys for the user", + "operationId": "getV1List user api keys", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { "$ref": "#/components/schemas/APIKeyInfo" }, + "type": "array", + "title": "Response Getv1List User Api Keys" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "api-keys"], + "summary": "Create new API key", + "description": "Create a new API key", + "operationId": "postV1Create new api key", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateAPIKeyRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAPIKeyResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/api-keys/{key_id}": { + "delete": { + "tags": ["v1", "api-keys"], + "summary": "Revoke API key", + "description": "Revoke an API key", + "operationId": "deleteV1Revoke api key", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "key_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Key Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIKeyInfo" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "get": { + "tags": ["v1", "api-keys"], + "summary": "Get specific API key", + "description": "Get a specific API key", + "operationId": "getV1Get specific api key", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "key_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Key Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIKeyInfo" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/api-keys/{key_id}/permissions": { + "put": { + "tags": ["v1", "api-keys"], + "summary": "Update key permissions", + "description": "Update API key permissions", + "operationId": "putV1Update key permissions", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "key_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Key Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIKeyInfo" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/api-keys/{key_id}/suspend": { + "post": { + "tags": ["v1", "api-keys"], + "summary": "Suspend API key", + "description": "Suspend an API key", + "operationId": "postV1Suspend api key", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "key_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Key Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIKeyInfo" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/auth/user": { + "post": { + "tags": ["v1", "auth"], + "summary": "Get or create user", + "operationId": "postV1Get or create user", + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/auth/user/email": { + "post": { + "tags": ["v1", "auth"], + "summary": "Update user email", + "operationId": "postV1Update user email", + "requestBody": { + "content": { + "application/json": { + "schema": { "type": "string", "title": "Email" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "additionalProperties": { "type": "string" }, + "type": "object", + "title": "Response Postv1Update User Email" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/auth/user/preferences": { + "get": { + "tags": ["v1", "auth"], + "summary": "Get notification preferences", + "operationId": "getV1Get notification preferences", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationPreference" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "auth"], + "summary": "Update notification preferences", + "operationId": "postV1Update notification preferences", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationPreferenceDTO" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationPreference" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/auth/user/timezone": { + "get": { + "tags": ["v1", "auth"], + "summary": "Get user timezone", + "description": "Get user timezone setting.", + "operationId": "getV1Get user timezone", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/TimezoneResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "auth"], + "summary": "Update user timezone", + "description": "Update user timezone. The timezone should be a valid IANA timezone identifier.", + "operationId": "postV1Update user timezone", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateTimezoneRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/TimezoneResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/blocks": { + "get": { + "tags": ["v1", "blocks"], + "summary": "List available blocks", + "operationId": "getV1List available blocks", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { "additionalProperties": true, "type": "object" }, + "type": "array", + "title": "Response Getv1List Available Blocks" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/blocks/{block_id}/execute": { + "post": { + "tags": ["v1", "blocks"], + "summary": "Execute graph block", + "operationId": "postV1Execute graph block", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Block Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true, + "title": "Data" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { "type": "array", "items": {} }, + "title": "Response Postv1Execute Graph Block" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/blocks": { + "get": { + "tags": ["v2"], + "summary": "Get Builder blocks", + "description": "Get blocks based on either category, type, or provider.", + "operationId": "getV2Get builder blocks", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "category", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Category" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "enum": ["all", "input", "action", "output"], + "type": "string" + }, + { "type": "null" } + ], + "title": "Type" + } + }, + { + "name": "provider", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string", + "description": "Provider name for integrations. Can be any string value, including custom provider names." + }, + { "type": "null" } + ], + "title": "Provider" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 1, "title": "Page" } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 50, "title": "Page Size" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BlockResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/blocks/batch": { + "get": { + "tags": ["v2"], + "summary": "Get specific blocks", + "description": "Get specific blocks by their IDs.", + "operationId": "getV2Get specific blocks", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "block_ids", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": { "type": "string" }, + "title": "Block Ids" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/BlockInfo" }, + "title": "Response Getv2Get Specific Blocks" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/categories": { + "get": { + "tags": ["v2"], + "summary": "Get Builder block categories", + "description": "Get all block categories with a specified number of blocks per category.", + "operationId": "getV2Get builder block categories", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "blocks_per_category", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 3, + "title": "Blocks Per Category" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BlockCategoryResponse" + }, + "title": "Response Getv2Get Builder Block Categories" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/counts": { + "get": { + "tags": ["v2"], + "summary": "Get Builder item counts", + "description": "Get item counts for the menu categories in the Blocks Menu.", + "operationId": "getV2Get builder item counts", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CountResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/builder/providers": { + "get": { + "tags": ["v2"], + "summary": "Get Builder integration providers", + "description": "Get all integration providers with their block counts.", + "operationId": "getV2Get builder integration providers", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 1, "title": "Page" } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 50, "title": "Page Size" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ProviderResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/search": { + "get": { + "tags": ["v2", "store", "private"], + "summary": "Builder search", + "description": "Search for blocks (including integrations), marketplace agents, and user library agents.", + "operationId": "getV2Builder search", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "search_query", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Search Query" + } + }, + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "enum": [ + "blocks", + "integrations", + "marketplace_agents", + "my_agents" + ], + "type": "string" + } + }, + { "type": "null" } + ], + "title": "Filter" + } + }, + { + "name": "search_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Search Id" + } + }, + { + "name": "by_creator", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "null" } + ], + "title": "By Creator" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 1, "title": "Page" } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 50, "title": "Page Size" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SearchResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/builder/suggestions": { + "get": { + "tags": ["v2"], + "summary": "Get Builder suggestions", + "description": "Get all suggestions for the Blocks Menu.", + "operationId": "getV2Get builder suggestions", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SuggestionsResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/chat/health": { + "get": { + "tags": ["v2", "chat", "chat"], + "summary": "Health Check", + "description": "Health check endpoint for the chat service.\n\nPerforms a full cycle test of session creation, assignment, and retrieval. Should always return healthy\nif the service and data layer are operational.\n\nReturns:\n dict: A status dictionary indicating health, service name, and API version.", + "operationId": "getV2HealthCheck", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "type": "object", + "title": "Response Getv2Healthcheck" + } + } + } + } + } + } + }, + "/api/chat/sessions": { + "post": { + "tags": ["v2", "chat", "chat"], + "summary": "Create Session", + "description": "Create a new chat session.\n\nInitiates a new chat session for either an authenticated or anonymous user.\n\nArgs:\n user_id: The optional authenticated user ID parsed from the JWT. If missing, creates an anonymous session.\n\nReturns:\n CreateSessionResponse: Details of the created session.", + "operationId": "postV2CreateSession", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSessionResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/chat/sessions/{session_id}": { + "get": { + "tags": ["v2", "chat", "chat"], + "summary": "Get Session", + "description": "Retrieve the details of a specific chat session.\n\nLooks up a chat session by ID for the given user (if authenticated) and returns all session data including messages.\n\nArgs:\n session_id: The unique identifier for the desired chat session.\n user_id: The optional authenticated user ID, or None for anonymous access.\n\nReturns:\n SessionDetailResponse: Details for the requested session; raises NotFoundError if not found.", + "operationId": "getV2GetSession", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "session_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Session Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDetailResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/chat/sessions/{session_id}/assign-user": { + "patch": { + "tags": ["v2", "chat", "chat"], + "summary": "Session Assign User", + "description": "Assign an authenticated user to a chat session.\n\nUsed (typically post-login) to claim an existing anonymous session as the current authenticated user.\n\nArgs:\n session_id: The identifier for the (previously anonymous) session.\n user_id: The authenticated user's ID to associate with the session.\n\nReturns:\n dict: Status of the assignment.", + "operationId": "patchV2SessionAssignUser", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "session_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Session Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true, + "title": "Response Patchv2Sessionassignuser" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/chat/sessions/{session_id}/stream": { + "get": { + "tags": ["v2", "chat", "chat"], + "summary": "Stream Chat", + "description": "Stream chat responses for a session.\n\nStreams the AI/completion responses in real time over Server-Sent Events (SSE), including:\n - Text fragments as they are generated\n - Tool call UI elements (if invoked)\n - Tool execution results\n\nArgs:\n session_id: The chat session identifier to associate with the streamed messages.\n message: The user's new message to process.\n user_id: Optional authenticated user ID.\n is_user_message: Whether the message is a user message.\nReturns:\n StreamingResponse: SSE-formatted response chunks.", + "operationId": "getV2StreamChat", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "session_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Session Id" } + }, + { + "name": "message", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "title": "Message" + } + }, + { + "name": "is_user_message", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true, + "title": "Is User Message" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/credits": { + "get": { + "tags": ["v1", "credits"], + "summary": "Get user credits", + "operationId": "getV1Get user credits", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "additionalProperties": { "type": "integer" }, + "type": "object", + "title": "Response Getv1Get User Credits" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "patch": { + "tags": ["v1", "credits"], + "summary": "Fulfill checkout session", + "operationId": "patchV1Fulfill checkout session", + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "credits"], + "summary": "Request credit top up", + "operationId": "postV1Request credit top up", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/RequestTopUp" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/credits/admin/add_credits": { + "post": { + "tags": ["v2", "admin", "credits", "admin"], + "summary": "Add Credits to User", + "operationId": "postV2Add credits to user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postV2Add_credits_to_user" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddUserCreditsResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/credits/admin/users_history": { + "get": { + "tags": ["v2", "admin", "credits", "admin"], + "summary": "Get All Users History", + "operationId": "getV2Get all users history", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "search", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Search" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 1, "title": "Page" } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 20, "title": "Page Size" } + }, + { + "name": "transaction_filter", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/CreditTransactionType" }, + { "type": "null" } + ], + "title": "Transaction Filter" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UserHistoryResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/credits/auto-top-up": { + "get": { + "tags": ["v1", "credits"], + "summary": "Get auto top up", + "operationId": "getV1Get auto top up", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AutoTopUpConfig" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "credits"], + "summary": "Configure auto top up", + "operationId": "postV1Configure auto top up", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AutoTopUpConfig" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "string", + "title": "Response Postv1Configure Auto Top Up" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/credits/manage": { + "get": { + "tags": ["v1", "credits"], + "summary": "Manage payment methods", + "operationId": "getV1Manage payment methods", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "additionalProperties": { "type": "string" }, + "type": "object", + "title": "Response Getv1Manage Payment Methods" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/credits/refunds": { + "get": { + "tags": ["v1", "credits"], + "summary": "Get refund requests", + "operationId": "getV1Get refund requests", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { "$ref": "#/components/schemas/RefundRequest" }, + "type": "array", + "title": "Response Getv1Get Refund Requests" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/credits/stripe_webhook": { + "post": { + "tags": ["v1", "credits"], + "summary": "Handle Stripe webhooks", + "operationId": "postV1Handle stripe webhooks", + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + } + } + } + }, + "/api/credits/transactions": { + "get": { + "tags": ["v1", "credits"], + "summary": "Get credit history", + "operationId": "getV1Get credit history", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "transaction_time", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "null" } + ], + "title": "Transaction Time" + } + }, + { + "name": "transaction_type", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Transaction Type" + } + }, + { + "name": "transaction_count_limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 100, + "title": "Transaction Count Limit" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/TransactionHistory" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/credits/{transaction_key}/refund": { + "post": { + "tags": ["v1", "credits"], + "summary": "Refund credit transaction", + "operationId": "postV1Refund credit transaction", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "transaction_key", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Transaction Key" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { "type": "string" }, + "title": "Metadata" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "integer", + "title": "Response Postv1Refund Credit Transaction" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/email/": { + "post": { + "tags": ["v1", "email"], + "summary": "Handle Postmark Email Webhooks", + "operationId": "postV1Handle postmark email webhooks", + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/PostmarkDeliveryWebhook" }, + { "$ref": "#/components/schemas/PostmarkBounceWebhook" }, + { + "$ref": "#/components/schemas/PostmarkSpamComplaintWebhook" + }, + { "$ref": "#/components/schemas/PostmarkOpenWebhook" }, + { "$ref": "#/components/schemas/PostmarkClickWebhook" }, + { + "$ref": "#/components/schemas/PostmarkSubscriptionChangeWebhook" + } + ], + "title": "Webhook", + "discriminator": { + "propertyName": "RecordType", + "mapping": { + "Delivery": "#/components/schemas/PostmarkDeliveryWebhook", + "Bounce": "#/components/schemas/PostmarkBounceWebhook", + "SpamComplaint": "#/components/schemas/PostmarkSpamComplaintWebhook", + "Open": "#/components/schemas/PostmarkOpenWebhook", + "Click": "#/components/schemas/PostmarkClickWebhook", + "SubscriptionChange": "#/components/schemas/PostmarkSubscriptionChangeWebhook" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "APIKeyAuthenticator-X-Postmark-Webhook-Token": [] }] + } + }, + "/api/email/unsubscribe": { + "post": { + "tags": ["v1", "email"], + "summary": "One Click Email Unsubscribe", + "operationId": "postV1One click email unsubscribe", + "parameters": [ + { + "name": "token", + "in": "query", + "required": true, + "schema": { "type": "string", "title": "Token" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/executions": { + "get": { + "tags": ["v1", "graphs"], + "summary": "List all executions", + "operationId": "getV1List all executions", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GraphExecutionMeta" + }, + "type": "array", + "title": "Response Getv1List All Executions" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/executions/admin/execution_accuracy_trends": { + "get": { + "tags": ["v2", "admin", "admin", "execution_analytics"], + "summary": "Get Execution Accuracy Trends and Alerts", + "description": "Get execution accuracy trends with moving averages and alert detection.\nSimple single-query approach.", + "operationId": "getV2Get execution accuracy trends and alerts", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "query", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "user_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "User Id" + } + }, + { + "name": "days_back", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 30, "title": "Days Back" } + }, + { + "name": "drop_threshold", + "in": "query", + "required": false, + "schema": { + "type": "number", + "default": 10.0, + "title": "Drop Threshold" + } + }, + { + "name": "include_historical", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "Include Historical" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccuracyTrendsResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/executions/admin/execution_analytics": { + "post": { + "tags": ["v2", "admin", "admin", "execution_analytics"], + "summary": "Generate Execution Analytics", + "description": "Generate activity summaries and correctness scores for graph executions.\n\nThis endpoint:\n1. Fetches all completed executions matching the criteria\n2. Identifies executions missing activity_status or correctness_score\n3. Generates missing data using AI in batches\n4. Updates the database with new stats\n5. Returns a detailed report of the analytics operation", + "operationId": "postV2Generate execution analytics", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionAnalyticsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionAnalyticsResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/executions/admin/execution_analytics/config": { + "get": { + "tags": ["v2", "admin", "admin", "execution_analytics"], + "summary": "Get Execution Analytics Configuration", + "description": "Get the configuration for execution analytics including:\n- Available AI models with metadata\n- Default system and user prompts\n- Recommended model selection", + "operationId": "getV2Get execution analytics configuration", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionAnalyticsConfig" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/executions/{graph_exec_id}": { + "delete": { + "tags": ["v1", "graphs"], + "summary": "Delete graph execution", + "operationId": "deleteV1Delete graph execution", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_exec_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Exec Id" } + } + ], + "responses": { + "204": { "description": "Successful Response" }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/files/upload": { + "post": { + "tags": ["v1", "files"], + "summary": "Upload file to cloud storage", + "description": "Upload a file to cloud storage and return a storage key that can be used\nwith FileStoreBlock and AgentFileInputBlock.\n\nArgs:\n file: The file to upload\n user_id: The user ID\n provider: Cloud storage provider (\"gcs\", \"s3\", \"azure\")\n expiration_hours: Hours until file expires (1-48)\n\nReturns:\n Dict containing the cloud storage path and signed URL", + "operationId": "postV1Upload file to cloud storage", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "provider", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "gcs", + "title": "Provider" + } + }, + { + "name": "expiration_hours", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 24, + "title": "Expiration Hours" + } + } + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_postV1Upload_file_to_cloud_storage" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UploadFileResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs": { + "get": { + "tags": ["v1", "graphs"], + "summary": "List user graphs", + "operationId": "getV1List user graphs", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { "$ref": "#/components/schemas/GraphMeta" }, + "type": "array", + "title": "Response Getv1List User Graphs" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v1", "graphs"], + "summary": "Create new graph", + "operationId": "postV1Create new graph", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateGraph" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphModel" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/graphs/{graph_id}": { + "delete": { + "tags": ["v1", "graphs"], + "summary": "Delete graph permanently", + "operationId": "deleteV1Delete graph permanently", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeleteGraphResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "get": { + "tags": ["v1", "graphs"], + "summary": "Get specific graph", + "operationId": "getV1Get specific graph", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "version", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Version" + } + }, + { + "name": "for_export", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "For Export" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphModel" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "put": { + "tags": ["v1", "graphs"], + "summary": "Update graph version", + "operationId": "putV1Update graph version", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Graph" } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphModel" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/execute/{graph_version}": { + "post": { + "tags": ["v1", "graphs"], + "summary": "Execute graph agent", + "operationId": "postV1Execute graph agent", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "graph_version", + "in": "path", + "required": true, + "schema": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Graph Version" + } + }, + { + "name": "preset_id", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Preset Id" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postV1Execute_graph_agent" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphExecutionMeta" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/executions": { + "get": { + "tags": ["v1", "graphs"], + "summary": "List graph executions", + "operationId": "getV1List graph executions", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Page number (1-indexed)", + "default": 1, + "title": "Page" + }, + "description": "Page number (1-indexed)" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1, + "description": "Number of executions per page", + "default": 25, + "title": "Page Size" + }, + "description": "Number of executions per page" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GraphExecutionsPaginated" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/executions/{graph_exec_id}": { + "get": { + "tags": ["v1", "graphs"], + "summary": "Get execution details", + "operationId": "getV1Get execution details", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "graph_exec_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Exec Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/GraphExecution" }, + { "$ref": "#/components/schemas/GraphExecutionWithNodes" } + ], + "title": "Response Getv1Get Execution Details" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/executions/{graph_exec_id}/share": { + "delete": { + "tags": ["v1"], + "summary": "Disable Execution Sharing", + "description": "Disable sharing for a graph execution.", + "operationId": "deleteV1DisableExecutionSharing", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "graph_exec_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Exec Id" } + } + ], + "responses": { + "204": { "description": "Successful Response" }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "post": { + "tags": ["v1"], + "summary": "Enable Execution Sharing", + "description": "Enable sharing for a graph execution.", + "operationId": "postV1EnableExecutionSharing", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "graph_exec_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Exec Id" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ShareRequest", + "default": {} + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ShareResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/executions/{graph_exec_id}/stop": { + "post": { + "tags": ["v1", "graphs"], + "summary": "Stop graph execution", + "operationId": "postV1Stop graph execution", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "graph_exec_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Exec Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/GraphExecutionMeta" }, + { "type": "null" } + ], + "title": "Response Postv1Stop Graph Execution" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/schedules": { + "get": { + "tags": ["v1", "schedules"], + "summary": "List execution schedules for a graph", + "operationId": "getV1List execution schedules for a graph", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphExecutionJobInfo" + }, + "title": "Response Getv1List Execution Schedules For A Graph" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "post": { + "tags": ["v1", "schedules"], + "summary": "Create execution schedule", + "operationId": "postV1Create execution schedule", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "ID of the graph to schedule", + "title": "Graph Id" + }, + "description": "ID of the graph to schedule" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScheduleCreationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GraphExecutionJobInfo" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/settings": { + "patch": { + "tags": ["v1", "graphs"], + "summary": "Update graph settings", + "description": "Update graph settings for the user's library agent.", + "operationId": "patchV1Update graph settings", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphSettings" } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphSettings" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/versions": { + "get": { + "tags": ["v1", "graphs"], + "summary": "Get all graph versions", + "operationId": "getV1Get all graph versions", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/GraphModel" }, + "title": "Response Getv1Get All Graph Versions" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/versions/active": { + "put": { + "tags": ["v1", "graphs"], + "summary": "Set active graph version", + "operationId": "putV1Set active graph version", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SetGraphActiveVersion" } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/graphs/{graph_id}/versions/{version}": { + "get": { + "tags": ["v1", "graphs"], + "summary": "Get graph version", + "operationId": "getV1Get graph version", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "version", + "in": "path", + "required": true, + "schema": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Version" + } + }, + { + "name": "for_export", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "For Export" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphModel" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/integrations/ayrshare/sso_url": { + "get": { + "tags": ["v1", "integrations"], + "summary": "Get Ayrshare Sso Url", + "description": "Generate an SSO URL for Ayrshare social media integration.\n\nReturns:\n dict: Contains the SSO URL for Ayrshare integration", + "operationId": "getV1GetAyrshareSsoUrl", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AyrshareSSOResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/integrations/credentials": { + "get": { + "tags": ["v1", "integrations"], + "summary": "List Credentials", + "operationId": "getV1List credentials", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/CredentialsMetaResponse" + }, + "type": "array", + "title": "Response Getv1List Credentials" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/integrations/providers": { + "get": { + "tags": ["v1", "integrations"], + "summary": "List Providers", + "description": "Get a list of all available provider names.\n\nReturns both statically defined providers (from ProviderName enum)\nand dynamically registered providers (from SDK decorators).\n\nNote: The complete list of provider names is also available as a constant\nin the generated TypeScript client via PROVIDER_NAMES.", + "operationId": "getV1ListProviders", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { "type": "string" }, + "type": "array", + "title": "Response Getv1Listproviders" + } + } + } + } + } + } + }, + "/api/integrations/providers/constants": { + "get": { + "tags": ["v1", "integrations"], + "summary": "Get Provider Constants", + "description": "Get provider names as constants.\n\nThis endpoint returns a model with provider names as constants,\nspecifically designed for OpenAPI code generation tools to create\nTypeScript constants.", + "operationId": "getV1GetProviderConstants", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ProviderConstants" } + } + } + } + } + } + }, + "/api/integrations/providers/enum-example": { + "get": { + "tags": ["v1", "integrations"], + "summary": "Get Provider Enum Example", + "description": "Example endpoint that uses the CompleteProviderNames enum.\n\nThis endpoint exists to ensure that the CompleteProviderNames enum is included\nin the OpenAPI schema, which will cause Orval to generate it as a\nTypeScript enum/constant.", + "operationId": "getV1GetProviderEnumExample", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderEnumResponse" + } + } + } + } + } + } + }, + "/api/integrations/providers/names": { + "get": { + "tags": ["v1", "integrations"], + "summary": "Get Provider Names", + "description": "Get all provider names in a structured format.\n\nThis endpoint is specifically designed to expose the provider names\nin the OpenAPI schema so that code generators like Orval can create\nappropriate TypeScript constants.", + "operationId": "getV1GetProviderNames", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderNamesResponse" + } + } + } + } + } + } + }, + "/api/integrations/webhooks/{webhook_id}/ping": { + "post": { + "tags": ["v1", "integrations"], + "summary": "Webhook Ping", + "operationId": "postV1WebhookPing", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "webhook_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Our ID for the webhook" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } } } } @@ -96,6 +2847,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -103,40 +2857,10 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/integrations/credentials": { - "get": { - "tags": ["v1", "integrations"], - "summary": "List Credentials", - "operationId": "getV1List credentials", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/CredentialsMetaResponse" - }, - "type": "array", - "title": "Response Getv1List Credentials" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, "/api/integrations/{provider}/credentials": { "get": { "tags": ["v1", "integrations"], @@ -170,6 +2894,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -177,9 +2904,6 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } }, @@ -253,6 +2977,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -260,81 +2987,11 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, "/api/integrations/{provider}/credentials/{cred_id}": { - "get": { - "tags": ["v1", "integrations"], - "summary": "Get Specific Credential By ID", - "operationId": "getV1Get specific credential by id", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "The provider to retrieve credentials for", - "description": "Provider name for integrations. Can be any string value, including custom provider names." - } - }, - { - "name": "cred_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "The ID of the credentials to retrieve" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { "$ref": "#/components/schemas/OAuth2Credentials" }, - { "$ref": "#/components/schemas/APIKeyCredentials" }, - { "$ref": "#/components/schemas/UserPasswordCredentials" }, - { - "$ref": "#/components/schemas/HostScopedCredentials-Output" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "oauth2": "#/components/schemas/OAuth2Credentials", - "api_key": "#/components/schemas/APIKeyCredentials", - "user_password": "#/components/schemas/UserPasswordCredentials", - "host_scoped": "#/components/schemas/HostScopedCredentials-Output" - } - }, - "title": "Response Getv1Get Specific Credential By Id" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, "delete": { "tags": ["v1", "integrations"], "summary": "Delete Credentials", @@ -390,6 +3047,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -397,9 +3057,124 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } + } + } + }, + "get": { + "tags": ["v1", "integrations"], + "summary": "Get Specific Credential By ID", + "operationId": "getV1Get specific credential by id", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "provider", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "The provider to retrieve credentials for", + "description": "Provider name for integrations. Can be any string value, including custom provider names." + } + }, + { + "name": "cred_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "The ID of the credentials to retrieve" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/OAuth2Credentials" }, + { "$ref": "#/components/schemas/APIKeyCredentials" }, + { "$ref": "#/components/schemas/UserPasswordCredentials" }, + { + "$ref": "#/components/schemas/HostScopedCredentials-Output" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "oauth2": "#/components/schemas/OAuth2Credentials", + "api_key": "#/components/schemas/APIKeyCredentials", + "user_password": "#/components/schemas/UserPasswordCredentials", + "host_scoped": "#/components/schemas/HostScopedCredentials-Output" + } + }, + "title": "Response Getv1Get Specific Credential By Id" + } + } + } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/integrations/{provider}/login": { + "get": { + "tags": ["v1", "integrations"], + "summary": "Initiate OAuth flow", + "operationId": "getV1Initiate oauth flow", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "provider", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "The provider to initiate an OAuth flow for", + "description": "Provider name for integrations. Can be any string value, including custom provider names." + } + }, + { + "name": "scopes", + "in": "query", + "required": false, + "schema": { + "type": "string", + "title": "Comma-separated list of authorization scopes", + "default": "" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LoginResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } } } } @@ -443,18 +3218,300 @@ } } }, - "/api/integrations/webhooks/{webhook_id}/ping": { - "post": { - "tags": ["v1", "integrations"], - "summary": "Webhook Ping", - "operationId": "postV1WebhookPing", + "/api/library/agents": { + "get": { + "tags": ["v2", "library", "private"], + "summary": "List Library Agents", + "description": "Get all agents in the user's library (both created and saved).\n\nArgs:\n user_id: ID of the authenticated user.\n search_term: Optional search term to filter agents by name/description.\n filter_by: List of filters to apply (favorites, created by user).\n sort_by: List of sorting criteria (created date, updated date).\n page: Page number to retrieve.\n page_size: Number of agents per page.\n\nReturns:\n A LibraryAgentResponse containing agents and pagination metadata.\n\nRaises:\n HTTPException: If a server/database error occurs.", + "operationId": "getV2List library agents", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "webhook_id", + "name": "search_term", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "description": "Search term to filter agents", + "title": "Search Term" + }, + "description": "Search term to filter agents" + }, + { + "name": "sort_by", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/LibraryAgentSort", + "description": "Criteria to sort results by", + "default": "updatedAt" + }, + "description": "Criteria to sort results by" + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Page number to retrieve (must be >= 1)", + "default": 1, + "title": "Page" + }, + "description": "Page number to retrieve (must be >= 1)" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Number of agents per page (must be >= 1)", + "default": 15, + "title": "Page Size" + }, + "description": "Number of agents per page (must be >= 1)" + } + ], + "responses": { + "200": { + "description": "List of library agents", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryAgentResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "500": { + "description": "Server error", + "content": { "application/json": {} } + } + } + }, + "post": { + "tags": ["v2", "library", "private"], + "summary": "Add Marketplace Agent", + "description": "Add an agent from the marketplace to the user's library.\n\nArgs:\n store_listing_version_id: ID of the store listing version to add.\n user_id: ID of the authenticated user.\n\nReturns:\n library_model.LibraryAgent: Agent added to the library\n\nRaises:\n HTTPException(404): If the listing version is not found.\n HTTPException(500): If a server/database error occurs.", + "operationId": "postV2Add marketplace agent", + "security": [{ "HTTPBearerJWT": [] }], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postV2Add_marketplace_agent" + } + } + } + }, + "responses": { + "201": { + "description": "Agent added successfully", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgent" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "404": { "description": "Store listing version not found" }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "500": { "description": "Server error" } + } + } + }, + "/api/library/agents/by-graph/{graph_id}": { + "get": { + "tags": ["v2", "library", "private"], + "summary": "Get Library Agent By Graph Id", + "operationId": "getV2GetLibraryAgentByGraphId", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "graph_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Our ID for the webhook" } + "schema": { "type": "string", "title": "Graph Id" } + }, + { + "name": "version", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Version" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgent" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/library/agents/favorites": { + "get": { + "tags": ["v2", "library", "private"], + "summary": "List Favorite Library Agents", + "description": "Get all favorite agents in the user's library.\n\nArgs:\n user_id: ID of the authenticated user.\n page: Page number to retrieve.\n page_size: Number of agents per page.\n\nReturns:\n A LibraryAgentResponse containing favorite agents and pagination metadata.\n\nRaises:\n HTTPException: If a server/database error occurs.", + "operationId": "getV2List favorite library agents", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Page number to retrieve (must be >= 1)", + "default": 1, + "title": "Page" + }, + "description": "Page number to retrieve (must be >= 1)" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Number of agents per page (must be >= 1)", + "default": 15, + "title": "Page Size" + }, + "description": "Number of agents per page (must be >= 1)" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryAgentResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "500": { + "description": "Server error", + "content": { "application/json": {} } + } + } + } + }, + "/api/library/agents/marketplace/{store_listing_version_id}": { + "get": { + "tags": ["v2", "library", "private", "store", "library"], + "summary": "Get Agent By Store ID", + "description": "Get Library Agent from Store Listing Version ID.", + "operationId": "getV2Get agent by store id", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "store_listing_version_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Store Listing Version Id" } + } + ], + "responses": { + "200": { + "description": "Library agent found", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/LibraryAgent" }, + { "type": "null" } + ], + "title": "Response Getv2Get Agent By Store Id" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "404": { "description": "Agent not found" }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/library/agents/{library_agent_id}": { + "delete": { + "tags": ["v2", "library", "private"], + "summary": "Delete Library Agent", + "description": "Soft-delete the specified library agent.\n\nArgs:\n library_agent_id: ID of the library agent to delete.\n user_id: ID of the authenticated user.\n\nReturns:\n 204 No Content if successful.\n\nRaises:\n HTTPException(404): If the agent does not exist.\n HTTPException(500): If a server/database error occurs.", + "operationId": "deleteV2Delete library agent", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "library_agent_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Library Agent Id" } } ], "responses": { @@ -462,6 +3519,11 @@ "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, + "204": { "description": "Agent deleted successfully" }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "404": { "description": "Agent not found" }, "422": { "description": "Validation Error", "content": { @@ -470,139 +3532,503 @@ } } }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } + "500": { "description": "Server error" } } - } - }, - "/api/integrations/ayrshare/sso_url": { + }, "get": { - "tags": ["v1", "integrations"], - "summary": "Get Ayrshare Sso Url", - "description": "Generate an SSO URL for Ayrshare social media integration.\n\nReturns:\n dict: Contains the SSO URL for Ayrshare integration", - "operationId": "getV1GetAyrshareSsoUrl", + "tags": ["v2", "library", "private"], + "summary": "Get Library Agent", + "operationId": "getV2Get library agent", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "library_agent_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Library Agent Id" } + } + ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/AyrshareSSOResponse" } + "schema": { "$ref": "#/components/schemas/LibraryAgent" } } } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "patch": { + "tags": ["v2", "library", "private"], + "summary": "Update Library Agent", + "description": "Update the library agent with the given fields.\n\nArgs:\n library_agent_id: ID of the library agent to update.\n payload: Fields to update (auto_update_version, is_favorite, etc.).\n user_id: ID of the authenticated user.\n\nRaises:\n HTTPException(500): If a server/database error occurs.", + "operationId": "patchV2Update library agent", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "library_agent_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Library Agent Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryAgentUpdateRequest" + } + } } }, - "security": [{ "HTTPBearerJWT": [] }] + "responses": { + "200": { + "description": "Agent updated successfully", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgent" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "500": { "description": "Server error" } + } } }, - "/api/integrations/providers": { + "/api/library/agents/{library_agent_id}/fork": { + "post": { + "tags": ["v2", "library", "private"], + "summary": "Fork Library Agent", + "operationId": "postV2Fork library agent", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "library_agent_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Library Agent Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgent" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/library/presets": { "get": { - "tags": ["v1", "integrations"], - "summary": "List Providers", - "description": "Get a list of all available provider names.\n\nReturns both statically defined providers (from ProviderName enum)\nand dynamically registered providers (from SDK decorators).\n\nNote: The complete list of provider names is also available as a constant\nin the generated TypeScript client via PROVIDER_NAMES.", - "operationId": "getV1ListProviders", + "tags": ["v2", "presets"], + "summary": "List presets", + "description": "Retrieve a paginated list of presets for the current user.", + "operationId": "getV2List presets", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "default": 1, + "title": "Page" + } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "default": 10, + "title": "Page Size" + } + }, + { + "name": "graph_id", + "in": "query", + "required": true, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "description": "Allows to filter presets by a specific agent graph", + "title": "Graph Id" + }, + "description": "Allows to filter presets by a specific agent graph" + } + ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { - "items": { "type": "string" }, + "$ref": "#/components/schemas/LibraryAgentPresetResponse" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "post": { + "tags": ["v2", "presets"], + "summary": "Create a new preset", + "description": "Create a new preset for the current user.", + "operationId": "postV2Create a new preset", + "security": [{ "HTTPBearerJWT": [] }], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/LibraryAgentPresetCreatable" + }, + { + "$ref": "#/components/schemas/LibraryAgentPresetCreatableFromGraphExecution" + } + ], + "title": "Preset" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/library/presets/setup-trigger": { + "post": { + "tags": ["v2", "presets"], + "summary": "Setup Trigger", + "description": "Sets up a webhook-triggered `LibraryAgentPreset` for a `LibraryAgent`.\nReturns the correspondingly created `LibraryAgentPreset` with `webhook_id` set.", + "operationId": "postV2SetupTrigger", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggeredPresetSetupRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/library/presets/{preset_id}": { + "delete": { + "tags": ["v2", "presets"], + "summary": "Delete a preset", + "description": "Delete an existing preset by its ID.", + "operationId": "deleteV2Delete a preset", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "preset_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Preset Id" } + } + ], + "responses": { + "204": { "description": "Successful Response" }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "get": { + "tags": ["v2", "presets"], + "summary": "Get a specific preset", + "description": "Retrieve details for a specific preset by its ID.", + "operationId": "getV2Get a specific preset", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "preset_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Preset Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + }, + "patch": { + "tags": ["v2", "presets"], + "summary": "Update an existing preset", + "description": "Update an existing preset by its ID.", + "operationId": "patchV2Update an existing preset", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "preset_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Preset Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryAgentPresetUpdatable" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/library/presets/{preset_id}/execute": { + "post": { + "tags": ["v2", "presets", "presets"], + "summary": "Execute a preset", + "description": "Execute a preset with the given graph and node input for the current user.", + "operationId": "postV2Execute a preset", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "preset_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Preset Id" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_postV2Execute_a_preset" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphExecutionMeta" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/app/{client_id}": { + "get": { + "tags": ["oauth"], + "summary": "Get Oauth App Info", + "description": "Get public information about an OAuth application.\n\nThis endpoint is used by the consent screen to display application details\nto the user before they authorize access.\n\nReturns:\n- name: Application name\n- description: Application description (if provided)\n- scopes: List of scopes the application is allowed to request", + "operationId": "getOauthGetOauthAppInfo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "client_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Client Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationPublicInfo" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "404": { "description": "Application not found or disabled" }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/apps/mine": { + "get": { + "tags": ["oauth"], + "summary": "List My Oauth Apps", + "description": "List all OAuth applications owned by the current user.\n\nReturns a list of OAuth applications with their details including:\n- id, name, description, logo_url\n- client_id (public identifier)\n- redirect_uris, grant_types, scopes\n- is_active status\n- created_at, updated_at timestamps\n\nNote: client_secret is never returned for security reasons.", + "operationId": "getOauthListMyOauthApps", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + }, "type": "array", - "title": "Response Getv1Listproviders" + "title": "Response Getoauthlistmyoauthapps" } } } - } - } - } - }, - "/api/integrations/providers/names": { - "get": { - "tags": ["v1", "integrations"], - "summary": "Get Provider Names", - "description": "Get all provider names in a structured format.\n\nThis endpoint is specifically designed to expose the provider names\nin the OpenAPI schema so that code generators like Orval can create\nappropriate TypeScript constants.", - "operationId": "getV1GetProviderNames", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderNamesResponse" - } - } - } - } - } - } - }, - "/api/integrations/providers/constants": { - "get": { - "tags": ["v1", "integrations"], - "summary": "Get Provider Constants", - "description": "Get provider names as constants.\n\nThis endpoint returns a model with provider names as constants,\nspecifically designed for OpenAPI code generation tools to create\nTypeScript constants.", - "operationId": "getV1GetProviderConstants", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ProviderConstants" } - } - } - } - } - } - }, - "/api/integrations/providers/enum-example": { - "get": { - "tags": ["v1", "integrations"], - "summary": "Get Provider Enum Example", - "description": "Example endpoint that uses the CompleteProviderNames enum.\n\nThis endpoint exists to ensure that the CompleteProviderNames enum is included\nin the OpenAPI schema, which will cause Orval to generate it as a\nTypeScript enum/constant.", - "operationId": "getV1GetProviderEnumExample", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderEnumResponse" - } - } - } - } - } - } - }, - "/api/analytics/log_raw_metric": { - "post": { - "tags": ["v1", "analytics"], - "summary": "Log Raw Metric", - "operationId": "postV1LogRawMetric", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LogRawMetricRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" @@ -611,21 +4037,244 @@ "security": [{ "HTTPBearerJWT": [] }] } }, - "/api/analytics/log_raw_analytics": { + "/api/oauth/apps/{app_id}/logo": { + "patch": { + "tags": ["oauth"], + "summary": "Update App Logo", + "description": "Update the logo URL for an OAuth application.\n\nOnly the application owner can update the logo.\nThe logo should be uploaded first using the media upload endpoint,\nthen this endpoint is called with the resulting URL.\n\nLogo requirements:\n- Must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n\nReturns the updated application info.", + "operationId": "patchOauthUpdateAppLogo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateAppLogoRequest" } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/apps/{app_id}/logo/upload": { "post": { - "tags": ["v1", "analytics"], - "summary": "Log Raw Analytics", - "operationId": "postV1LogRawAnalytics", + "tags": ["oauth"], + "summary": "Upload App Logo", + "description": "Upload a logo image for an OAuth application.\n\nRequirements:\n- Image must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n- Allowed formats: JPEG, PNG, WebP\n- Maximum file size: 3MB\n\nThe image is uploaded to cloud storage and the app's logoUrl is updated.\nReturns the updated application info.", + "operationId": "postOauthUploadAppLogo", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_postOauthUploadAppLogo" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/apps/{app_id}/status": { + "patch": { + "tags": ["oauth"], + "summary": "Update App Status", + "description": "Enable or disable an OAuth application.\n\nOnly the application owner can update the status.\nWhen disabled, the application cannot be used for new authorizations\nand existing access tokens will fail validation.\n\nReturns the updated application info.", + "operationId": "patchOauthUpdateAppStatus", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "App Id" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_patchOauthUpdateAppStatus" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthApplicationInfo" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/authorize": { + "post": { + "tags": ["oauth"], + "summary": "Authorize", + "description": "OAuth 2.0 Authorization Endpoint\n\nUser must be logged in (authenticated with Supabase JWT).\nThis endpoint creates an authorization code and returns a redirect URL.\n\nPKCE (Proof Key for Code Exchange) is REQUIRED for all authorization requests.\n\nThe frontend consent screen should call this endpoint after the user approves,\nthen redirect the user to the returned `redirect_url`.\n\nRequest Body:\n- client_id: The OAuth application's client ID\n- redirect_uri: Where to redirect after authorization (must match registered URI)\n- scopes: List of permissions (e.g., \"EXECUTE_GRAPH READ_GRAPH\")\n- state: Anti-CSRF token provided by client (will be returned in redirect)\n- response_type: Must be \"code\" (for authorization code flow)\n- code_challenge: PKCE code challenge (required)\n- code_challenge_method: \"S256\" (recommended) or \"plain\"\n\nReturns:\n- redirect_url: The URL to redirect the user to (includes authorization code)\n\nError cases return a redirect_url with error parameters, or raise HTTPException\nfor critical errors (like invalid redirect_uri).", + "operationId": "postOauthAuthorize", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AuthorizeRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AuthorizeResponse" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/oauth/introspect": { + "post": { + "tags": ["oauth"], + "summary": "Introspect", + "description": "OAuth 2.0 Token Introspection Endpoint (RFC 7662)\n\nAllows clients to check if a token is valid and get its metadata.\n\nReturns:\n- active: Whether the token is currently active\n- scopes: List of authorized scopes (if active)\n- client_id: The client the token was issued to (if active)\n- user_id: The user the token represents (if active)\n- exp: Expiration timestamp (if active)\n- token_type: \"access_token\" or \"refresh_token\" (if active)", + "operationId": "postOauthIntrospect", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Body_postV1LogRawAnalytics" + "$ref": "#/components/schemas/Body_postOauthIntrospect" } } }, "required": true }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TokenIntrospectionResult" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/oauth/revoke": { + "post": { + "tags": ["oauth"], + "summary": "Revoke", + "description": "OAuth 2.0 Token Revocation Endpoint (RFC 7009)\n\nAllows clients to revoke an access or refresh token.\n\nNote: Revoking a refresh token does NOT revoke associated access tokens.\nRevoking an access token does NOT revoke the associated refresh token.", + "operationId": "postOauthRevoke", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Body_postOauthRevoke" } + } + }, + "required": true + }, "responses": { "200": { "description": "Successful Response", @@ -638,161 +4287,25 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } - }, - "security": [{ "HTTPBearerJWT": [] }] + } } }, - "/api/auth/user": { + "/api/oauth/token": { "post": { - "tags": ["v1", "auth"], - "summary": "Get or create user", - "operationId": "postV1Get or create user", - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/auth/user/email": { - "post": { - "tags": ["v1", "auth"], - "summary": "Update user email", - "operationId": "postV1Update user email", - "requestBody": { - "content": { - "application/json": { - "schema": { "type": "string", "title": "Email" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": { "type": "string" }, - "type": "object", - "title": "Response Postv1Update User Email" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/auth/user/timezone": { - "get": { - "tags": ["v1", "auth"], - "summary": "Get user timezone", - "description": "Get user timezone setting.", - "operationId": "getV1Get user timezone", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TimezoneResponse" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v1", "auth"], - "summary": "Update user timezone", - "description": "Update user timezone. The timezone should be a valid IANA timezone identifier.", - "operationId": "postV1Update user timezone", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/UpdateTimezoneRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TimezoneResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/auth/user/preferences": { - "get": { - "tags": ["v1", "auth"], - "summary": "Get notification preferences", - "operationId": "getV1Get notification preferences", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationPreference" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v1", "auth"], - "summary": "Update notification preferences", - "operationId": "postV1Update notification preferences", + "tags": ["oauth"], + "summary": "Token", + "description": "OAuth 2.0 Token Endpoint\n\nExchanges authorization code or refresh token for access token.\n\nGrant Types:\n1. authorization_code: Exchange authorization code for tokens\n - Required: grant_type, code, redirect_uri, client_id, client_secret\n - Optional: code_verifier (required if PKCE was used)\n\n2. refresh_token: Exchange refresh token for new access token\n - Required: grant_type, refresh_token, client_id, client_secret\n\nReturns:\n- access_token: Bearer token for API access (1 hour TTL)\n- token_type: \"Bearer\"\n- expires_in: Seconds until access token expires\n- refresh_token: Token for refreshing access (30 days TTL)\n- scopes: List of scopes", + "operationId": "postOauthToken", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationPreferenceDTO" + "anyOf": [ + { "$ref": "#/components/schemas/TokenRequestByCode" }, + { "$ref": "#/components/schemas/TokenRequestByRefreshToken" } + ], + "title": "Request" } } }, @@ -803,9 +4316,7 @@ "description": "Successful Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationPreference" - } + "schema": { "$ref": "#/components/schemas/TokenResponse" } } } }, @@ -816,12 +4327,8 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } - }, - "security": [{ "HTTPBearerJWT": [] }] + } } }, "/api/onboarding": { @@ -865,6 +4372,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -872,61 +4382,11 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } }, "security": [{ "HTTPBearerJWT": [] }] } }, - "/api/onboarding/step": { - "post": { - "tags": ["v1", "onboarding"], - "summary": "Complete onboarding step", - "operationId": "postV1Complete onboarding step", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "step", - "in": "query", - "required": true, - "schema": { - "enum": [ - "WELCOME", - "USAGE_REASON", - "INTEGRATIONS", - "AGENT_CHOICE", - "AGENT_NEW_RUN", - "AGENT_INPUT", - "CONGRATS", - "MARKETPLACE_VISIT", - "BUILDER_OPEN" - ], - "type": "string", - "title": "Step" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, "/api/onboarding/agents": { "get": { "tags": ["v1", "onboarding"], @@ -997,413 +4457,41 @@ "security": [{ "HTTPBearerJWT": [] }] } }, - "/api/blocks": { - "get": { - "tags": ["v1", "blocks"], - "summary": "List available blocks", - "operationId": "getV1List available blocks", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { "additionalProperties": true, "type": "object" }, - "type": "array", - "title": "Response Getv1List Available Blocks" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/blocks/{block_id}/execute": { + "/api/onboarding/step": { "post": { - "tags": ["v1", "blocks"], - "summary": "Execute graph block", - "operationId": "postV1Execute graph block", + "tags": ["v1", "onboarding"], + "summary": "Complete onboarding step", + "operationId": "postV1Complete onboarding step", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "block_id", - "in": "path", + "name": "step", + "in": "query", "required": true, - "schema": { "type": "string", "title": "Block Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true, - "title": "Data" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { "type": "array", "items": {} }, - "title": "Response Postv1Execute Graph Block" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/files/upload": { - "post": { - "tags": ["v1", "files"], - "summary": "Upload file to cloud storage", - "description": "Upload a file to cloud storage and return a storage key that can be used\nwith FileStoreBlock and AgentFileInputBlock.\n\nArgs:\n file: The file to upload\n user_id: The user ID\n provider: Cloud storage provider (\"gcs\", \"s3\", \"azure\")\n expiration_hours: Hours until file expires (1-48)\n\nReturns:\n Dict containing the cloud storage path and signed URL", - "operationId": "postV1Upload file to cloud storage", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "provider", - "in": "query", - "required": false, "schema": { - "type": "string", - "default": "gcs", - "title": "Provider" - } - }, - { - "name": "expiration_hours", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 24, - "title": "Expiration Hours" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_postV1Upload_file_to_cloud_storage" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/UploadFileResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/credits": { - "get": { - "tags": ["v1", "credits"], - "summary": "Get user credits", - "operationId": "getV1Get user credits", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": { "type": "integer" }, - "type": "object", - "title": "Response Getv1Get User Credits" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v1", "credits"], - "summary": "Request credit top up", - "operationId": "postV1Request credit top up", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/RequestTopUp" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "patch": { - "tags": ["v1", "credits"], - "summary": "Fulfill checkout session", - "operationId": "patchV1Fulfill checkout session", - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/credits/{transaction_key}/refund": { - "post": { - "tags": ["v1", "credits"], - "summary": "Refund credit transaction", - "operationId": "postV1Refund credit transaction", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "transaction_key", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Transaction Key" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { "type": "string" }, - "title": "Metadata" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "integer", - "title": "Response Postv1Refund Credit Transaction" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/credits/auto-top-up": { - "get": { - "tags": ["v1", "credits"], - "summary": "Get auto top up", - "operationId": "getV1Get auto top up", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/AutoTopUpConfig" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v1", "credits"], - "summary": "Configure auto top up", - "operationId": "postV1Configure auto top up", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/AutoTopUpConfig" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "string", - "title": "Response Postv1Configure Auto Top Up" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/credits/stripe_webhook": { - "post": { - "tags": ["v1", "credits"], - "summary": "Handle Stripe webhooks", - "operationId": "postV1Handle stripe webhooks", - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - } - } - } - }, - "/api/credits/manage": { - "get": { - "tags": ["v1", "credits"], - "summary": "Manage payment methods", - "operationId": "getV1Manage payment methods", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": { "type": "string" }, - "type": "object", - "title": "Response Getv1Manage Payment Methods" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/credits/transactions": { - "get": { - "tags": ["v1", "credits"], - "summary": "Get credit history", - "operationId": "getV1Get credit history", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "transaction_time", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { "type": "string", "format": "date-time" }, - { "type": "null" } + "enum": [ + "WELCOME", + "USAGE_REASON", + "INTEGRATIONS", + "AGENT_CHOICE", + "AGENT_NEW_RUN", + "AGENT_INPUT", + "CONGRATS", + "MARKETPLACE_VISIT", + "BUILDER_OPEN" ], - "title": "Transaction Time" - } - }, - { - "name": "transaction_type", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Transaction Type" - } - }, - { - "name": "transaction_count_limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 100, - "title": "Transaction Count Limit" + "type": "string", + "title": "Step" } } ], "responses": { "200": { "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TransactionHistory" } - } - } + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" }, "422": { "description": "Validation Error", @@ -1412,70 +4500,20 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/credits/refunds": { - "get": { - "tags": ["v1", "credits"], - "summary": "Get refund requests", - "operationId": "getV1Get refund requests", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { "$ref": "#/components/schemas/RefundRequest" }, - "type": "array", - "title": "Response Getv1Get Refund Requests" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/graphs": { - "get": { - "tags": ["v1", "graphs"], - "summary": "List user graphs", - "operationId": "getV1List user graphs", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { "$ref": "#/components/schemas/GraphMeta" }, - "type": "array", - "title": "Response Getv1List User Graphs" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, + "/api/otto/ask": { "post": { - "tags": ["v1", "graphs"], - "summary": "Create new graph", - "operationId": "postV1Create new graph", + "tags": ["v2", "otto"], + "summary": "Proxy Otto Chat Request", + "description": "Proxy requests to Otto API while adding necessary security headers and logging.\nRequires an authenticated user.", + "operationId": "postV2Proxy otto chat request", "requestBody": { "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/CreateGraph" } + "schema": { "$ref": "#/components/schemas/ChatRequest" } } }, "required": true @@ -1485,10 +4523,13 @@ "description": "Successful Response", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/GraphModel" } + "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -1496,704 +4537,9 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/graphs/{graph_id}/versions/{version}": { - "get": { - "tags": ["v1", "graphs"], - "summary": "Get graph version", - "operationId": "getV1Get graph version", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "version", - "in": "path", - "required": true, - "schema": { - "anyOf": [{ "type": "integer" }, { "type": "null" }], - "title": "Version" - } - }, - { - "name": "for_export", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "For Export" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphModel" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}": { - "get": { - "tags": ["v1", "graphs"], - "summary": "Get specific graph", - "operationId": "getV1Get specific graph", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "version", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "integer" }, { "type": "null" }], - "title": "Version" - } - }, - { - "name": "for_export", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "For Export" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphModel" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "delete": { - "tags": ["v1", "graphs"], - "summary": "Delete graph permanently", - "operationId": "deleteV1Delete graph permanently", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/DeleteGraphResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "put": { - "tags": ["v1", "graphs"], - "summary": "Update graph version", - "operationId": "putV1Update graph version", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/Graph" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphModel" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/versions": { - "get": { - "tags": ["v1", "graphs"], - "summary": "Get all graph versions", - "operationId": "getV1Get all graph versions", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { "$ref": "#/components/schemas/GraphModel" }, - "title": "Response Getv1Get All Graph Versions" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/versions/active": { - "put": { - "tags": ["v1", "graphs"], - "summary": "Set active graph version", - "operationId": "putV1Set active graph version", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/SetGraphActiveVersion" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/settings": { - "patch": { - "tags": ["v1", "graphs"], - "summary": "Update graph settings", - "description": "Update graph settings for the user's library agent.", - "operationId": "patchV1Update graph settings", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphSettings" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphSettings" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/execute/{graph_version}": { - "post": { - "tags": ["v1", "graphs"], - "summary": "Execute graph agent", - "operationId": "postV1Execute graph agent", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "graph_version", - "in": "path", - "required": true, - "schema": { - "anyOf": [{ "type": "integer" }, { "type": "null" }], - "title": "Graph Version" - } - }, - { - "name": "preset_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Preset Id" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_postV1Execute_graph_agent" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphExecutionMeta" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/executions/{graph_exec_id}/stop": { - "post": { - "tags": ["v1", "graphs"], - "summary": "Stop graph execution", - "operationId": "postV1Stop graph execution", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/GraphExecutionMeta" }, - { "type": "null" } - ], - "title": "Response Postv1Stop Graph Execution" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/executions": { - "get": { - "tags": ["v1", "graphs"], - "summary": "List all executions", - "operationId": "getV1List all executions", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/GraphExecutionMeta" - }, - "type": "array", - "title": "Response Getv1List All Executions" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/graphs/{graph_id}/executions": { - "get": { - "tags": ["v1", "graphs"], - "summary": "List graph executions", - "operationId": "getV1List graph executions", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Page number (1-indexed)", - "default": 1, - "title": "Page" - }, - "description": "Page number (1-indexed)" - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 100, - "minimum": 1, - "description": "Number of executions per page", - "default": 25, - "title": "Page Size" - }, - "description": "Number of executions per page" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GraphExecutionsPaginated" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/executions/{graph_exec_id}": { - "get": { - "tags": ["v1", "graphs"], - "summary": "Get execution details", - "operationId": "getV1Get execution details", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/GraphExecution" }, - { "$ref": "#/components/schemas/GraphExecutionWithNodes" } - ], - "title": "Response Getv1Get Execution Details" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/executions/{graph_exec_id}": { - "delete": { - "tags": ["v1", "graphs"], - "summary": "Delete graph execution", - "operationId": "deleteV1Delete graph execution", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "responses": { - "204": { "description": "Successful Response" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/graphs/{graph_id}/executions/{graph_exec_id}/share": { - "post": { - "tags": ["v1"], - "summary": "Enable Execution Sharing", - "description": "Enable sharing for a graph execution.", - "operationId": "postV1EnableExecutionSharing", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ShareRequest", - "default": {} - } - } } }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ShareResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "delete": { - "tags": ["v1"], - "summary": "Disable Execution Sharing", - "description": "Disable sharing for a graph execution.", - "operationId": "deleteV1DisableExecutionSharing", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "responses": { - "204": { "description": "Successful Response" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } + "security": [{ "HTTPBearerJWT": [] }] } }, "/api/public/shared/{share_token}": { @@ -2236,46 +4582,32 @@ } } }, - "/api/graphs/{graph_id}/schedules": { + "/api/review/action": { "post": { - "tags": ["v1", "schedules"], - "summary": "Create execution schedule", - "operationId": "postV1Create execution schedule", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "ID of the graph to schedule", - "title": "Graph Id" - }, - "description": "ID of the graph to schedule" - } - ], + "tags": ["v2", "executions", "review", "v2", "executions", "review"], + "summary": "Process Review Action", + "description": "Process reviews with approve or reject actions.", + "operationId": "postV2ProcessReviewAction", "requestBody": { - "required": true, "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/ScheduleCreationRequest" - } + "schema": { "$ref": "#/components/schemas/ReviewRequest" } } - } + }, + "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GraphExecutionJobInfo" - } + "schema": { "$ref": "#/components/schemas/ReviewResponse" } } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -2283,40 +4615,115 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } - } - }, + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, + "/api/review/execution/{graph_exec_id}": { "get": { - "tags": ["v1", "schedules"], - "summary": "List execution schedules for a graph", - "operationId": "getV1List execution schedules for a graph", + "tags": ["v2", "executions", "review", "v2", "executions", "review"], + "summary": "Get Pending Reviews for Execution", + "description": "Get all pending reviews for a specific graph execution.\n\nRetrieves all reviews with status \"WAITING\" for the specified graph execution\nthat belong to the authenticated user. Results are ordered by creation time\n(oldest first) to preserve review order within the execution.\n\nArgs:\n graph_exec_id: ID of the graph execution to get reviews for\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects for the specified execution\n\nRaises:\n HTTPException:\n - 403: If user doesn't own the graph execution\n - 500: If authentication fails or database error occurs\n\nNote:\n Only returns reviews owned by the authenticated user for security.\n Reviews with invalid status are excluded with warning logs.", + "operationId": "getV2Get pending reviews for execution", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "graph_id", + "name": "graph_exec_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Graph Id" } + "schema": { "type": "string", "title": "Graph Exec Id" } } ], "responses": { "200": { - "description": "Successful Response", + "description": "List of pending reviews for the execution", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/GraphExecutionJobInfo" + "$ref": "#/components/schemas/PendingHumanReviewModel" }, - "title": "Response Getv1List Execution Schedules For A Graph" + "title": "Response Getv2Get Pending Reviews For Execution" } } } }, + "400": { "description": "Invalid graph execution ID" }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "403": { "description": "Access denied to graph execution" }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + }, + "500": { + "description": "Server error", + "content": { "application/json": {} } + } + } + } + }, + "/api/review/pending": { + "get": { + "tags": ["v2", "executions", "review", "v2", "executions", "review"], + "summary": "Get Pending Reviews", + "description": "Get all pending reviews for the current user.\n\nRetrieves all reviews with status \"WAITING\" that belong to the authenticated user.\nResults are ordered by creation time (newest first).\n\nArgs:\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects with status converted to typed literals\n\nRaises:\n HTTPException: If authentication fails or database error occurs\n\nNote:\n Reviews with invalid status values are logged as warnings but excluded\n from results rather than failing the entire request.", + "operationId": "getV2Get pending reviews", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "description": "Page number (1-indexed)", + "default": 1, + "title": "Page" + }, + "description": "Page number (1-indexed)" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1, + "description": "Number of reviews per page", + "default": 25, + "title": "Page Size" + }, + "description": "Number of reviews per page" + } + ], + "responses": { + "200": { + "description": "List of pending reviews", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PendingHumanReviewModel" + }, + "title": "Response Getv2Get Pending Reviews" + } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -2325,8 +4732,9 @@ } } }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + "500": { + "description": "Server error", + "content": { "application/json": {} } } } } @@ -2390,6 +4798,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -2397,61 +4808,65 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/api-keys": { + "/api/store/admin/listings": { "get": { - "tags": ["v1", "api-keys"], - "summary": "List user API keys", - "description": "List all API keys for the user", - "operationId": "getV1List user api keys", + "tags": ["v2", "admin", "store", "admin"], + "summary": "Get Admin Listings History", + "description": "Get store listings with their version history for admins.\n\nThis provides a consolidated view of listings with their versions,\nallowing for an expandable UI in the admin dashboard.\n\nArgs:\n status: Filter by submission status (PENDING, APPROVED, REJECTED)\n search: Search by name, description, or user email\n page: Page number for pagination\n page_size: Number of items per page\n\nReturns:\n StoreListingsWithVersionsResponse with listings and their versions", + "operationId": "getV2Get admin listings history", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { "$ref": "#/components/schemas/SubmissionStatus" }, + { "type": "null" } + ], + "title": "Status" + } + }, + { + "name": "search", + "in": "query", + "required": false, + "schema": { + "anyOf": [{ "type": "string" }, { "type": "null" }], + "title": "Search" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 1, "title": "Page" } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "schema": { "type": "integer", "default": 20, "title": "Page Size" } + } + ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { - "items": { "$ref": "#/components/schemas/APIKeyInfo" }, - "type": "array", - "title": "Response Getv1List User Api Keys" + "$ref": "#/components/schemas/StoreListingsWithVersionsResponse" } } } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v1", "api-keys"], - "summary": "Create new API key", - "description": "Create a new API key", - "operationId": "postV1Create new api key", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/CreateAPIKeyRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateAPIKeyResponse" - } - } - } }, "422": { "description": "Validation Error", @@ -2460,37 +4875,37 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } - }, - "security": [{ "HTTPBearerJWT": [] }] + } } }, - "/api/api-keys/{key_id}": { + "/api/store/admin/submissions/download/{store_listing_version_id}": { "get": { - "tags": ["v1", "api-keys"], - "summary": "Get specific API key", - "description": "Get a specific API key", - "operationId": "getV1Get specific api key", + "tags": ["v2", "admin", "store", "admin", "store", "admin"], + "summary": "Admin Download Agent File", + "description": "Download the agent file by streaming its content.\n\nArgs:\n store_listing_version_id (str): The ID of the agent to download\n\nReturns:\n StreamingResponse: A streaming response containing the agent's graph data.\n\nRaises:\n HTTPException: If the agent is not found or an unexpected error occurs.", + "operationId": "getV2Admin download agent file", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "key_id", + "name": "store_listing_version_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Key Id" } + "schema": { + "type": "string", + "description": "The ID of the agent to download", + "title": "Store Listing Version Id" + }, + "description": "The ID of the agent to download" } ], "responses": { "200": { "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/APIKeyInfo" } - } - } + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" }, "422": { "description": "Validation Error", @@ -2499,100 +4914,23 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "delete": { - "tags": ["v1", "api-keys"], - "summary": "Revoke API key", - "description": "Revoke an API key", - "operationId": "deleteV1Revoke api key", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "key_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Key Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/APIKeyInfo" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/api-keys/{key_id}/suspend": { + "/api/store/admin/submissions/{store_listing_version_id}/review": { "post": { - "tags": ["v1", "api-keys"], - "summary": "Suspend API key", - "description": "Suspend an API key", - "operationId": "postV1Suspend api key", + "tags": ["v2", "admin", "store", "admin"], + "summary": "Review Store Submission", + "description": "Review a store listing submission.\n\nArgs:\n store_listing_version_id: ID of the submission to review\n request: Review details including approval status and comments\n user_id: Authenticated admin user performing the review\n\nReturns:\n StoreSubmission with updated review information", + "operationId": "postV2Review store submission", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "key_id", + "name": "store_listing_version_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Key Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/APIKeyInfo" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/api-keys/{key_id}/permissions": { - "put": { - "tags": ["v1", "api-keys"], - "summary": "Update key permissions", - "description": "Update API key permissions", - "operationId": "putV1Update key permissions", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "key_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Key Id" } + "schema": { "type": "string", "title": "Store Listing Version Id" } } ], "requestBody": { @@ -2600,7 +4938,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdatePermissionsRequest" + "$ref": "#/components/schemas/ReviewSubmissionRequest" } } } @@ -2610,10 +4948,13 @@ "description": "Successful Response", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/APIKeyInfo" } + "schema": { "$ref": "#/components/schemas/StoreSubmission" } } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -2621,71 +4962,10 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/store/profile": { - "get": { - "tags": ["v2", "store", "private"], - "summary": "Get user profile", - "description": "Get the profile details for the authenticated user.\nCached for 1 hour per user.", - "operationId": "getV2Get user profile", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ProfileDetails" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - }, - "post": { - "tags": ["v2", "store", "private"], - "summary": "Update user profile", - "description": "Update the store profile for the authenticated user.\n\nArgs:\n profile (Profile): The updated profile details\n user_id (str): ID of the authenticated user\n\nReturns:\n CreatorDetails: The updated profile\n\nRaises:\n HTTPException: If there is an error updating the profile", - "operationId": "postV2Update user profile", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/Profile" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/CreatorDetails" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, "/api/store/agents": { "get": { "tags": ["v2", "store", "public"], @@ -2778,6 +5058,44 @@ } } }, + "/api/store/agents/{store_listing_version_id}": { + "get": { + "tags": ["v2", "store"], + "summary": "Get agent by version", + "description": "Get Store Agent Details from Store Listing Version ID.", + "operationId": "getV2Get agent by version", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "store_listing_version_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Store Listing Version Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/StoreAgentDetails" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, "/api/store/agents/{username}/{agent_name}": { "get": { "tags": ["v2", "store", "public"], @@ -2818,78 +5136,6 @@ } } }, - "/api/store/graph/{store_listing_version_id}": { - "get": { - "tags": ["v2", "store"], - "summary": "Get agent graph", - "description": "Get Agent Graph from Store Listing Version ID.", - "operationId": "getV2Get agent graph", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Store Listing Version Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/store/agents/{store_listing_version_id}": { - "get": { - "tags": ["v2", "store"], - "summary": "Get agent by version", - "description": "Get Store Agent Details from Store Listing Version ID.", - "operationId": "getV2Get agent by version", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Store Listing Version Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/StoreAgentDetails" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, "/api/store/agents/{username}/{agent_name}/review": { "post": { "tags": ["v2", "store"], @@ -2928,6 +5174,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -2935,9 +5184,40 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } + } + } + } + }, + "/api/store/creator/{username}": { + "get": { + "tags": ["v2", "store", "public"], + "summary": "Get creator details", + "description": "Get the details of a creator.\n- Creator Details Page", + "operationId": "getV2Get creator details", + "parameters": [ + { + "name": "username", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Username" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreatorDetails" } + } + } }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } } } } @@ -3016,28 +5296,29 @@ } } }, - "/api/store/creator/{username}": { + "/api/store/download/agents/{store_listing_version_id}": { "get": { "tags": ["v2", "store", "public"], - "summary": "Get creator details", - "description": "Get the details of a creator.\n- Creator Details Page", - "operationId": "getV2Get creator details", + "summary": "Download agent file", + "description": "Download the agent file by streaming its content.\n\nArgs:\n store_listing_version_id (str): The ID of the agent to download\n\nReturns:\n StreamingResponse: A streaming response containing the agent's graph data.\n\nRaises:\n HTTPException: If the agent is not found or an unexpected error occurs.", + "operationId": "getV2Download agent file", "parameters": [ { - "name": "username", + "name": "store_listing_version_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Username" } + "schema": { + "type": "string", + "description": "The ID of the agent to download", + "title": "Store Listing Version Id" + }, + "description": "The ID of the agent to download" } ], "responses": { "200": { "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/CreatorDetails" } - } - } + "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", @@ -3050,6 +5331,54 @@ } } }, + "/api/store/graph/{store_listing_version_id}": { + "get": { + "tags": ["v2", "store"], + "summary": "Get agent graph", + "description": "Get Agent Graph from Store Listing Version ID.", + "operationId": "getV2Get agent graph", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "store_listing_version_id", + "in": "path", + "required": true, + "schema": { "type": "string", "title": "Store Listing Version Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + } + } + }, + "/api/store/metrics/cache": { + "get": { + "tags": ["v2", "store", "metrics"], + "summary": "Get cache metrics in Prometheus format", + "description": "Get cache metrics in Prometheus text format.\n\nReturns Prometheus-compatible metrics for monitoring cache performance.\nMetrics include size, maxsize, TTL, and hit rate for each cache.\n\nReturns:\n str: Prometheus-formatted metrics text", + "operationId": "getV2Get cache metrics in prometheus format", + "responses": { + "200": { + "description": "Successful Response", + "content": { "text/plain": { "schema": { "type": "string" } } } + } + } + } + }, "/api/store/myagents": { "get": { "tags": ["v2", "store", "private"], @@ -3090,6 +5419,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -3097,40 +5429,56 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } }, - "/api/store/submissions/{submission_id}": { - "delete": { + "/api/store/profile": { + "get": { "tags": ["v2", "store", "private"], - "summary": "Delete store submission", - "description": "Delete a store listing submission.\n\nArgs:\n user_id (str): ID of the authenticated user\n submission_id (str): ID of the submission to be deleted\n\nReturns:\n bool: True if the submission was successfully deleted, False otherwise", - "operationId": "deleteV2Delete store submission", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "submission_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Submission Id" } - } - ], + "summary": "Get user profile", + "description": "Get the profile details for the authenticated user.\nCached for 1 hour per user.", + "operationId": "getV2Get user profile", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { - "schema": { - "type": "boolean", - "title": "Response Deletev2Delete Store Submission" - } + "schema": { "$ref": "#/components/schemas/ProfileDetails" } } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + } + }, + "security": [{ "HTTPBearerJWT": [] }] + }, + "post": { + "tags": ["v2", "store", "private"], + "summary": "Update user profile", + "description": "Update the store profile for the authenticated user.\n\nArgs:\n profile (Profile): The updated profile details\n user_id (str): ID of the authenticated user\n\nReturns:\n CreatorDetails: The updated profile\n\nRaises:\n HTTPException: If there is an error updating the profile", + "operationId": "postV2Update user profile", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Profile" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreatorDetails" } + } + } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -3138,11 +5486,9 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } - } + }, + "security": [{ "HTTPBearerJWT": [] }] } }, "/api/store/submissions": { @@ -3177,6 +5523,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -3184,9 +5533,6 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } }, @@ -3215,6 +5561,9 @@ } } }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, "422": { "description": "Validation Error", "content": { @@ -3222,13 +5571,80 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } + } + } + } + }, + "/api/store/submissions/generate_image": { + "post": { + "tags": ["v2", "store", "private"], + "summary": "Generate submission image", + "description": "Generate an image for a store listing submission.\n\nArgs:\n agent_id (str): ID of the agent to generate an image for\n user_id (str): ID of the authenticated user\n\nReturns:\n JSONResponse: JSON containing the URL of the generated image", + "operationId": "postV2Generate submission image", + "security": [{ "HTTPBearerJWT": [] }], + "parameters": [ + { + "name": "agent_id", + "in": "query", + "required": true, + "schema": { "type": "string", "title": "Agent Id" } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } } } } }, + "/api/store/submissions/media": { + "post": { + "tags": ["v2", "store", "private"], + "summary": "Upload submission media", + "description": "Upload media (images/videos) for a store listing submission.\n\nArgs:\n file (UploadFile): The media file to upload\n user_id (str): ID of the authenticated user uploading the media\n\nReturns:\n str: URL of the uploaded media file\n\nRaises:\n HTTPException: If there is an error uploading the media", + "operationId": "postV2Upload submission media", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_postV2Upload_submission_media" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { "application/json": { "schema": {} } } + }, + "401": { + "$ref": "#/components/responses/HTTP401NotAuthenticatedError" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HTTPValidationError" } + } + } + } + }, + "security": [{ "HTTPBearerJWT": [] }] + } + }, "/api/store/submissions/{store_listing_version_id}": { "put": { "tags": ["v2", "store", "private"], @@ -3263,113 +5679,8 @@ } } }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/store/submissions/media": { - "post": { - "tags": ["v2", "store", "private"], - "summary": "Upload submission media", - "description": "Upload media (images/videos) for a store listing submission.\n\nArgs:\n file (UploadFile): The media file to upload\n user_id (str): ID of the authenticated user uploading the media\n\nReturns:\n str: URL of the uploaded media file\n\nRaises:\n HTTPException: If there is an error uploading the media", - "operationId": "postV2Upload submission media", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_postV2Upload_submission_media" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/store/submissions/generate_image": { - "post": { - "tags": ["v2", "store", "private"], - "summary": "Generate submission image", - "description": "Generate an image for a store listing submission.\n\nArgs:\n agent_id (str): ID of the agent to generate an image for\n user_id (str): ID of the authenticated user\n\nReturns:\n JSONResponse: JSON containing the URL of the generated image", - "operationId": "postV2Generate submission image", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "agent_id", - "in": "query", - "required": true, - "schema": { "type": "string", "title": "Agent Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/store/download/agents/{store_listing_version_id}": { - "get": { - "tags": ["v2", "store", "public"], - "summary": "Download agent file", - "description": "Download the agent file by streaming its content.\n\nArgs:\n store_listing_version_id (str): The ID of the agent to download\n\nReturns:\n StreamingResponse: A streaming response containing the agent's graph data.\n\nRaises:\n HTTPException: If the agent is not found or an unexpected error occurs.", - "operationId": "getV2Download agent file", - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "The ID of the agent to download", - "title": "Store Listing Version Id" - }, - "description": "The ID of the agent to download" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", @@ -3382,1411 +5693,19 @@ } } }, - "/api/store/metrics/cache": { - "get": { - "tags": ["v2", "store", "metrics"], - "summary": "Get cache metrics in Prometheus format", - "description": "Get cache metrics in Prometheus text format.\n\nReturns Prometheus-compatible metrics for monitoring cache performance.\nMetrics include size, maxsize, TTL, and hit rate for each cache.\n\nReturns:\n str: Prometheus-formatted metrics text", - "operationId": "getV2Get cache metrics in prometheus format", - "responses": { - "200": { - "description": "Successful Response", - "content": { "text/plain": { "schema": { "type": "string" } } } - } - } - } - }, - "/api/builder/suggestions": { - "get": { - "tags": ["v2"], - "summary": "Get Builder suggestions", - "description": "Get all suggestions for the Blocks Menu.", - "operationId": "getV2Get builder suggestions", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/SuggestionsResponse" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/builder/categories": { - "get": { - "tags": ["v2"], - "summary": "Get Builder block categories", - "description": "Get all block categories with a specified number of blocks per category.", - "operationId": "getV2Get builder block categories", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "blocks_per_category", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 3, - "title": "Blocks Per Category" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BlockCategoryResponse" - }, - "title": "Response Getv2Get Builder Block Categories" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/builder/blocks": { - "get": { - "tags": ["v2"], - "summary": "Get Builder blocks", - "description": "Get blocks based on either category, type, or provider.", - "operationId": "getV2Get builder blocks", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "category", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Category" - } - }, - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "enum": ["all", "input", "action", "output"], - "type": "string" - }, - { "type": "null" } - ], - "title": "Type" - } - }, - { - "name": "provider", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "description": "Provider name for integrations. Can be any string value, including custom provider names." - }, - { "type": "null" } - ], - "title": "Provider" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 1, "title": "Page" } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 50, "title": "Page Size" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/BlockResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/builder/blocks/batch": { - "get": { - "tags": ["v2"], - "summary": "Get specific blocks", - "description": "Get specific blocks by their IDs.", - "operationId": "getV2Get specific blocks", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "block_ids", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": { "type": "string" }, - "title": "Block Ids" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { "$ref": "#/components/schemas/BlockInfo" }, - "title": "Response Getv2Get Specific Blocks" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/builder/providers": { - "get": { - "tags": ["v2"], - "summary": "Get Builder integration providers", - "description": "Get all integration providers with their block counts.", - "operationId": "getV2Get builder integration providers", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "page", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 1, "title": "Page" } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 50, "title": "Page Size" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ProviderResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/builder/search": { - "get": { - "tags": ["v2", "store", "private"], - "summary": "Builder search", - "description": "Search for blocks (including integrations), marketplace agents, and user library agents.", - "operationId": "getV2Builder search", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "search_query", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Search Query" - } - }, - { - "name": "filter", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "enum": [ - "blocks", - "integrations", - "marketplace_agents", - "my_agents" - ], - "type": "string" - } - }, - { "type": "null" } - ], - "title": "Filter" - } - }, - { - "name": "search_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Search Id" - } - }, - { - "name": "by_creator", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "null" } - ], - "title": "By Creator" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 1, "title": "Page" } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 50, "title": "Page Size" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/SearchResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/builder/counts": { - "get": { - "tags": ["v2"], - "summary": "Get Builder item counts", - "description": "Get item counts for the menu categories in the Blocks Menu.", - "operationId": "getV2Get builder item counts", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/CountResponse" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/store/admin/listings": { - "get": { - "tags": ["v2", "admin", "store", "admin"], - "summary": "Get Admin Listings History", - "description": "Get store listings with their version history for admins.\n\nThis provides a consolidated view of listings with their versions,\nallowing for an expandable UI in the admin dashboard.\n\nArgs:\n status: Filter by submission status (PENDING, APPROVED, REJECTED)\n search: Search by name, description, or user email\n page: Page number for pagination\n page_size: Number of items per page\n\nReturns:\n StoreListingsWithVersionsResponse with listings and their versions", - "operationId": "getV2Get admin listings history", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/SubmissionStatus" }, - { "type": "null" } - ], - "title": "Status" - } - }, - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Search" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 1, "title": "Page" } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 20, "title": "Page Size" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StoreListingsWithVersionsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/store/admin/submissions/{store_listing_version_id}/review": { - "post": { - "tags": ["v2", "admin", "store", "admin"], - "summary": "Review Store Submission", - "description": "Review a store listing submission.\n\nArgs:\n store_listing_version_id: ID of the submission to review\n request: Review details including approval status and comments\n user_id: Authenticated admin user performing the review\n\nReturns:\n StoreSubmission with updated review information", - "operationId": "postV2Review store submission", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Store Listing Version Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReviewSubmissionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/StoreSubmission" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/store/admin/submissions/download/{store_listing_version_id}": { - "get": { - "tags": ["v2", "admin", "store", "admin", "store", "admin"], - "summary": "Admin Download Agent File", - "description": "Download the agent file by streaming its content.\n\nArgs:\n store_listing_version_id (str): The ID of the agent to download\n\nReturns:\n StreamingResponse: A streaming response containing the agent's graph data.\n\nRaises:\n HTTPException: If the agent is not found or an unexpected error occurs.", - "operationId": "getV2Admin download agent file", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "The ID of the agent to download", - "title": "Store Listing Version Id" - }, - "description": "The ID of the agent to download" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/credits/admin/add_credits": { - "post": { - "tags": ["v2", "admin", "credits", "admin"], - "summary": "Add Credits to User", - "operationId": "postV2Add credits to user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_postV2Add_credits_to_user" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddUserCreditsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/credits/admin/users_history": { - "get": { - "tags": ["v2", "admin", "credits", "admin"], - "summary": "Get All Users History", - "operationId": "getV2Get all users history", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "Search" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 1, "title": "Page" } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 20, "title": "Page Size" } - }, - { - "name": "transaction_filter", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/CreditTransactionType" }, - { "type": "null" } - ], - "title": "Transaction Filter" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/UserHistoryResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/executions/admin/execution_analytics/config": { - "get": { - "tags": ["v2", "admin", "admin", "execution_analytics"], - "summary": "Get Execution Analytics Configuration", - "description": "Get the configuration for execution analytics including:\n- Available AI models with metadata\n- Default system and user prompts\n- Recommended model selection", - "operationId": "getV2Get execution analytics configuration", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExecutionAnalyticsConfig" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/executions/admin/execution_analytics": { - "post": { - "tags": ["v2", "admin", "admin", "execution_analytics"], - "summary": "Generate Execution Analytics", - "description": "Generate activity summaries and correctness scores for graph executions.\n\nThis endpoint:\n1. Fetches all completed executions matching the criteria\n2. Identifies executions missing activity_status or correctness_score\n3. Generates missing data using AI in batches\n4. Updates the database with new stats\n5. Returns a detailed report of the analytics operation", - "operationId": "postV2Generate execution analytics", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExecutionAnalyticsRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExecutionAnalyticsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/executions/admin/execution_accuracy_trends": { - "get": { - "tags": ["v2", "admin", "admin", "execution_analytics"], - "summary": "Get Execution Accuracy Trends and Alerts", - "description": "Get execution accuracy trends with moving averages and alert detection.\nSimple single-query approach.", - "operationId": "getV2Get execution accuracy trends and alerts", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "query", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "user_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "title": "User Id" - } - }, - { - "name": "days_back", - "in": "query", - "required": false, - "schema": { "type": "integer", "default": 30, "title": "Days Back" } - }, - { - "name": "drop_threshold", - "in": "query", - "required": false, - "schema": { - "type": "number", - "default": 10.0, - "title": "Drop Threshold" - } - }, - { - "name": "include_historical", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Include Historical" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccuracyTrendsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/review/pending": { - "get": { - "tags": ["v2", "executions", "review", "v2", "executions", "review"], - "summary": "Get Pending Reviews", - "description": "Get all pending reviews for the current user.\n\nRetrieves all reviews with status \"WAITING\" that belong to the authenticated user.\nResults are ordered by creation time (newest first).\n\nArgs:\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects with status converted to typed literals\n\nRaises:\n HTTPException: If authentication fails or database error occurs\n\nNote:\n Reviews with invalid status values are logged as warnings but excluded\n from results rather than failing the entire request.", - "operationId": "getV2Get pending reviews", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Page number (1-indexed)", - "default": 1, - "title": "Page" - }, - "description": "Page number (1-indexed)" - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 100, - "minimum": 1, - "description": "Number of reviews per page", - "default": 25, - "title": "Page Size" - }, - "description": "Number of reviews per page" - } - ], - "responses": { - "200": { - "description": "List of pending reviews", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PendingHumanReviewModel" - }, - "title": "Response Getv2Get Pending Reviews" - } - } - } - }, - "500": { - "description": "Server error", - "content": { "application/json": {} } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/review/execution/{graph_exec_id}": { - "get": { - "tags": ["v2", "executions", "review", "v2", "executions", "review"], - "summary": "Get Pending Reviews for Execution", - "description": "Get all pending reviews for a specific graph execution.\n\nRetrieves all reviews with status \"WAITING\" for the specified graph execution\nthat belong to the authenticated user. Results are ordered by creation time\n(oldest first) to preserve review order within the execution.\n\nArgs:\n graph_exec_id: ID of the graph execution to get reviews for\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects for the specified execution\n\nRaises:\n HTTPException:\n - 403: If user doesn't own the graph execution\n - 500: If authentication fails or database error occurs\n\nNote:\n Only returns reviews owned by the authenticated user for security.\n Reviews with invalid status are excluded with warning logs.", - "operationId": "getV2Get pending reviews for execution", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_exec_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Exec Id" } - } - ], - "responses": { - "200": { - "description": "List of pending reviews for the execution", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PendingHumanReviewModel" - }, - "title": "Response Getv2Get Pending Reviews For Execution" - } - } - } - }, - "400": { "description": "Invalid graph execution ID" }, - "403": { "description": "Access denied to graph execution" }, - "500": { - "description": "Server error", - "content": { "application/json": {} } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/review/action": { - "post": { - "tags": ["v2", "executions", "review", "v2", "executions", "review"], - "summary": "Process Review Action", - "description": "Process reviews with approve or reject actions.", - "operationId": "postV2ProcessReviewAction", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ReviewRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ReviewResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/library/presets": { - "get": { - "tags": ["v2", "presets"], - "summary": "List presets", - "description": "Retrieve a paginated list of presets for the current user.", - "operationId": "getV2List presets", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "default": 1, - "title": "Page" - } - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "default": 10, - "title": "Page Size" - } - }, - { - "name": "graph_id", - "in": "query", - "required": true, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "description": "Allows to filter presets by a specific agent graph", - "title": "Graph Id" - }, - "description": "Allows to filter presets by a specific agent graph" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryAgentPresetResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "post": { - "tags": ["v2", "presets"], - "summary": "Create a new preset", - "description": "Create a new preset for the current user.", - "operationId": "postV2Create a new preset", - "security": [{ "HTTPBearerJWT": [] }], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/LibraryAgentPresetCreatable" - }, - { - "$ref": "#/components/schemas/LibraryAgentPresetCreatableFromGraphExecution" - } - ], - "title": "Preset" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/presets/{preset_id}": { - "get": { - "tags": ["v2", "presets"], - "summary": "Get a specific preset", - "description": "Retrieve details for a specific preset by its ID.", - "operationId": "getV2Get a specific preset", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "preset_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Preset Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "patch": { - "tags": ["v2", "presets"], - "summary": "Update an existing preset", - "description": "Update an existing preset by its ID.", - "operationId": "patchV2Update an existing preset", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "preset_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Preset Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryAgentPresetUpdatable" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, + "/api/store/submissions/{submission_id}": { "delete": { - "tags": ["v2", "presets"], - "summary": "Delete a preset", - "description": "Delete an existing preset by its ID.", - "operationId": "deleteV2Delete a preset", + "tags": ["v2", "store", "private"], + "summary": "Delete store submission", + "description": "Delete a store listing submission.\n\nArgs:\n user_id (str): ID of the authenticated user\n submission_id (str): ID of the submission to be deleted\n\nReturns:\n bool: True if the submission was successfully deleted, False otherwise", + "operationId": "deleteV2Delete store submission", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ { - "name": "preset_id", + "name": "submission_id", "in": "path", "required": true, - "schema": { "type": "string", "title": "Preset Id" } - } - ], - "responses": { - "204": { "description": "Successful Response" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/presets/setup-trigger": { - "post": { - "tags": ["v2", "presets"], - "summary": "Setup Trigger", - "description": "Sets up a webhook-triggered `LibraryAgentPreset` for a `LibraryAgent`.\nReturns the correspondingly created `LibraryAgentPreset` with `webhook_id` set.", - "operationId": "postV2SetupTrigger", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TriggeredPresetSetupRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgentPreset" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/library/presets/{preset_id}/execute": { - "post": { - "tags": ["v2", "presets", "presets"], - "summary": "Execute a preset", - "description": "Execute a preset with the given graph and node input for the current user.", - "operationId": "postV2Execute a preset", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "preset_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Preset Id" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_postV2Execute_a_preset" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/GraphExecutionMeta" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents": { - "get": { - "tags": ["v2", "library", "private"], - "summary": "List Library Agents", - "description": "Get all agents in the user's library (both created and saved).\n\nArgs:\n user_id: ID of the authenticated user.\n search_term: Optional search term to filter agents by name/description.\n filter_by: List of filters to apply (favorites, created by user).\n sort_by: List of sorting criteria (created date, updated date).\n page: Page number to retrieve.\n page_size: Number of agents per page.\n\nReturns:\n A LibraryAgentResponse containing agents and pagination metadata.\n\nRaises:\n HTTPException: If a server/database error occurs.", - "operationId": "getV2List library agents", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "search_term", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "string" }, { "type": "null" }], - "description": "Search term to filter agents", - "title": "Search Term" - }, - "description": "Search term to filter agents" - }, - { - "name": "sort_by", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/LibraryAgentSort", - "description": "Criteria to sort results by", - "default": "updatedAt" - }, - "description": "Criteria to sort results by" - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Page number to retrieve (must be >= 1)", - "default": 1, - "title": "Page" - }, - "description": "Page number to retrieve (must be >= 1)" - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Number of agents per page (must be >= 1)", - "default": 15, - "title": "Page Size" - }, - "description": "Number of agents per page (must be >= 1)" - } - ], - "responses": { - "200": { - "description": "List of library agents", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryAgentResponse" - } - } - } - }, - "500": { - "description": "Server error", - "content": { "application/json": {} } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "post": { - "tags": ["v2", "library", "private"], - "summary": "Add Marketplace Agent", - "description": "Add an agent from the marketplace to the user's library.\n\nArgs:\n store_listing_version_id: ID of the store listing version to add.\n user_id: ID of the authenticated user.\n\nReturns:\n library_model.LibraryAgent: Agent added to the library\n\nRaises:\n HTTPException(404): If the listing version is not found.\n HTTPException(500): If a server/database error occurs.", - "operationId": "postV2Add marketplace agent", - "security": [{ "HTTPBearerJWT": [] }], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_postV2Add_marketplace_agent" - } - } - } - }, - "responses": { - "201": { - "description": "Agent added successfully", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgent" } - } - } - }, - "404": { "description": "Store listing version not found" }, - "500": { "description": "Server error" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents/favorites": { - "get": { - "tags": ["v2", "library", "private"], - "summary": "List Favorite Library Agents", - "description": "Get all favorite agents in the user's library.\n\nArgs:\n user_id: ID of the authenticated user.\n page: Page number to retrieve.\n page_size: Number of agents per page.\n\nReturns:\n A LibraryAgentResponse containing favorite agents and pagination metadata.\n\nRaises:\n HTTPException: If a server/database error occurs.", - "operationId": "getV2List favorite library agents", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Page number to retrieve (must be >= 1)", - "default": 1, - "title": "Page" - }, - "description": "Page number to retrieve (must be >= 1)" - }, - { - "name": "page_size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Number of agents per page (must be >= 1)", - "default": 15, - "title": "Page Size" - }, - "description": "Number of agents per page (must be >= 1)" + "schema": { "type": "string", "title": "Submission Id" } } ], "responses": { @@ -4795,447 +5714,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LibraryAgentResponse" - } - } - } - }, - "500": { - "description": "Server error", - "content": { "application/json": {} } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents/{library_agent_id}": { - "get": { - "tags": ["v2", "library", "private"], - "summary": "Get Library Agent", - "operationId": "getV2Get library agent", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "library_agent_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Library Agent Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgent" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "patch": { - "tags": ["v2", "library", "private"], - "summary": "Update Library Agent", - "description": "Update the library agent with the given fields.\n\nArgs:\n library_agent_id: ID of the library agent to update.\n payload: Fields to update (auto_update_version, is_favorite, etc.).\n user_id: ID of the authenticated user.\n\nRaises:\n HTTPException(500): If a server/database error occurs.", - "operationId": "patchV2Update library agent", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "library_agent_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Library Agent Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryAgentUpdateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Agent updated successfully", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgent" } - } - } - }, - "500": { "description": "Server error" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - }, - "delete": { - "tags": ["v2", "library", "private"], - "summary": "Delete Library Agent", - "description": "Soft-delete the specified library agent.\n\nArgs:\n library_agent_id: ID of the library agent to delete.\n user_id: ID of the authenticated user.\n\nReturns:\n 204 No Content if successful.\n\nRaises:\n HTTPException(404): If the agent does not exist.\n HTTPException(500): If a server/database error occurs.", - "operationId": "deleteV2Delete library agent", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "library_agent_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Library Agent Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "204": { "description": "Agent deleted successfully" }, - "404": { "description": "Agent not found" }, - "500": { "description": "Server error" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents/by-graph/{graph_id}": { - "get": { - "tags": ["v2", "library", "private"], - "summary": "Get Library Agent By Graph Id", - "operationId": "getV2GetLibraryAgentByGraphId", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "graph_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Graph Id" } - }, - { - "name": "version", - "in": "query", - "required": false, - "schema": { - "anyOf": [{ "type": "integer" }, { "type": "null" }], - "title": "Version" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgent" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents/marketplace/{store_listing_version_id}": { - "get": { - "tags": ["v2", "library", "private", "store", "library"], - "summary": "Get Agent By Store ID", - "description": "Get Library Agent from Store Listing Version ID.", - "operationId": "getV2Get agent by store id", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "store_listing_version_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Store Listing Version Id" } - } - ], - "responses": { - "200": { - "description": "Library agent found", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/LibraryAgent" }, - { "type": "null" } - ], - "title": "Response Getv2Get Agent By Store Id" - } - } - } - }, - "404": { "description": "Agent not found" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/library/agents/{library_agent_id}/fork": { - "post": { - "tags": ["v2", "library", "private"], - "summary": "Fork Library Agent", - "operationId": "postV2Fork library agent", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "library_agent_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Library Agent Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/LibraryAgent" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/otto/ask": { - "post": { - "tags": ["v2", "otto"], - "summary": "Proxy Otto Chat Request", - "description": "Proxy requests to Otto API while adding necessary security headers and logging.\nRequires an authenticated user.", - "operationId": "postV2Proxy otto chat request", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ChatRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ApiResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/email/unsubscribe": { - "post": { - "tags": ["v1", "email"], - "summary": "One Click Email Unsubscribe", - "operationId": "postV1One click email unsubscribe", - "parameters": [ - { - "name": "token", - "in": "query", - "required": true, - "schema": { "type": "string", "title": "Token" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - } - } - } - }, - "/api/email/": { - "post": { - "tags": ["v1", "email"], - "summary": "Handle Postmark Email Webhooks", - "operationId": "postV1Handle postmark email webhooks", - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { "$ref": "#/components/schemas/PostmarkDeliveryWebhook" }, - { "$ref": "#/components/schemas/PostmarkBounceWebhook" }, - { - "$ref": "#/components/schemas/PostmarkSpamComplaintWebhook" - }, - { "$ref": "#/components/schemas/PostmarkOpenWebhook" }, - { "$ref": "#/components/schemas/PostmarkClickWebhook" }, - { - "$ref": "#/components/schemas/PostmarkSubscriptionChangeWebhook" - } - ], - "title": "Webhook", - "discriminator": { - "propertyName": "RecordType", - "mapping": { - "Delivery": "#/components/schemas/PostmarkDeliveryWebhook", - "Bounce": "#/components/schemas/PostmarkBounceWebhook", - "SpamComplaint": "#/components/schemas/PostmarkSpamComplaintWebhook", - "Open": "#/components/schemas/PostmarkOpenWebhook", - "Click": "#/components/schemas/PostmarkClickWebhook", - "SubscriptionChange": "#/components/schemas/PostmarkSubscriptionChangeWebhook" - } - } - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - } - }, - "security": [{ "APIKeyAuthenticator-X-Postmark-Webhook-Token": [] }] - } - }, - "/api/chat/sessions": { - "post": { - "tags": ["v2", "chat", "chat"], - "summary": "Create Session", - "description": "Create a new chat session.\n\nInitiates a new chat session for either an authenticated or anonymous user.\n\nArgs:\n user_id: The optional authenticated user ID parsed from the JWT. If missing, creates an anonymous session.\n\nReturns:\n CreateSessionResponse: Details of the created session.", - "operationId": "postV2CreateSession", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateSessionResponse" + "type": "boolean", + "title": "Response Deletev2Delete Store Submission" } } } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/chat/sessions/{session_id}": { - "get": { - "tags": ["v2", "chat", "chat"], - "summary": "Get Session", - "description": "Retrieve the details of a specific chat session.\n\nLooks up a chat session by ID for the given user (if authenticated) and returns all session data including messages.\n\nArgs:\n session_id: The unique identifier for the desired chat session.\n user_id: The optional authenticated user ID, or None for anonymous access.\n\nReturns:\n SessionDetailResponse: Details for the requested session; raises NotFoundError if not found.", - "operationId": "getV2GetSession", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Session Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SessionDetailResponse" - } - } - } }, "422": { "description": "Validation Error", @@ -5244,491 +5730,6 @@ "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/chat/sessions/{session_id}/stream": { - "get": { - "tags": ["v2", "chat", "chat"], - "summary": "Stream Chat", - "description": "Stream chat responses for a session.\n\nStreams the AI/completion responses in real time over Server-Sent Events (SSE), including:\n - Text fragments as they are generated\n - Tool call UI elements (if invoked)\n - Tool execution results\n\nArgs:\n session_id: The chat session identifier to associate with the streamed messages.\n message: The user's new message to process.\n user_id: Optional authenticated user ID.\n is_user_message: Whether the message is a user message.\nReturns:\n StreamingResponse: SSE-formatted response chunks.", - "operationId": "getV2StreamChat", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Session Id" } - }, - { - "name": "message", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 10000, - "title": "Message" - } - }, - { - "name": "is_user_message", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Is User Message" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/chat/sessions/{session_id}/assign-user": { - "patch": { - "tags": ["v2", "chat", "chat"], - "summary": "Session Assign User", - "description": "Assign an authenticated user to a chat session.\n\nUsed (typically post-login) to claim an existing anonymous session as the current authenticated user.\n\nArgs:\n session_id: The identifier for the (previously anonymous) session.\n user_id: The authenticated user's ID to associate with the session.\n\nReturns:\n dict: Status of the assignment.", - "operationId": "patchV2SessionAssignUser", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Session Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true, - "title": "Response Patchv2Sessionassignuser" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/chat/health": { - "get": { - "tags": ["v2", "chat", "chat"], - "summary": "Health Check", - "description": "Health check endpoint for the chat service.\n\nPerforms a full cycle test of session creation, assignment, and retrieval. Should always return healthy\nif the service and data layer are operational.\n\nReturns:\n dict: A status dictionary indicating health, service name, and API version.", - "operationId": "getV2HealthCheck", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": true, - "type": "object", - "title": "Response Getv2Healthcheck" - } - } - } - } - } - } - }, - "/api/oauth/app/{client_id}": { - "get": { - "tags": ["oauth"], - "summary": "Get Oauth App Info", - "description": "Get public information about an OAuth application.\n\nThis endpoint is used by the consent screen to display application details\nto the user before they authorize access.\n\nReturns:\n- name: Application name\n- description: Application description (if provided)\n- scopes: List of scopes the application is allowed to request", - "operationId": "getOauthGetOauthAppInfo", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "client_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "Client Id" } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OAuthApplicationPublicInfo" - } - } - } - }, - "404": { "description": "Application not found or disabled" }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/oauth/authorize": { - "post": { - "tags": ["oauth"], - "summary": "Authorize", - "description": "OAuth 2.0 Authorization Endpoint\n\nUser must be logged in (authenticated with Supabase JWT).\nThis endpoint creates an authorization code and returns a redirect URL.\n\nPKCE (Proof Key for Code Exchange) is REQUIRED for all authorization requests.\n\nThe frontend consent screen should call this endpoint after the user approves,\nthen redirect the user to the returned `redirect_url`.\n\nRequest Body:\n- client_id: The OAuth application's client ID\n- redirect_uri: Where to redirect after authorization (must match registered URI)\n- scopes: List of permissions (e.g., \"EXECUTE_GRAPH READ_GRAPH\")\n- state: Anti-CSRF token provided by client (will be returned in redirect)\n- response_type: Must be \"code\" (for authorization code flow)\n- code_challenge: PKCE code challenge (required)\n- code_challenge_method: \"S256\" (recommended) or \"plain\"\n\nReturns:\n- redirect_url: The URL to redirect the user to (includes authorization code)\n\nError cases return a redirect_url with error parameters, or raise HTTPException\nfor critical errors (like invalid redirect_uri).", - "operationId": "postOauthAuthorize", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/AuthorizeRequest" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/AuthorizeResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/oauth/token": { - "post": { - "tags": ["oauth"], - "summary": "Token", - "description": "OAuth 2.0 Token Endpoint\n\nExchanges authorization code or refresh token for access token.\n\nGrant Types:\n1. authorization_code: Exchange authorization code for tokens\n - Required: grant_type, code, redirect_uri, client_id, client_secret\n - Optional: code_verifier (required if PKCE was used)\n\n2. refresh_token: Exchange refresh token for new access token\n - Required: grant_type, refresh_token, client_id, client_secret\n\nReturns:\n- access_token: Bearer token for API access (1 hour TTL)\n- token_type: \"Bearer\"\n- expires_in: Seconds until access token expires\n- refresh_token: Token for refreshing access (30 days TTL)\n- scopes: List of scopes", - "operationId": "postOauthToken", - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { "$ref": "#/components/schemas/TokenRequestByCode" }, - { "$ref": "#/components/schemas/TokenRequestByRefreshToken" } - ], - "title": "Request" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/TokenResponse" } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - } - } - } - }, - "/api/oauth/introspect": { - "post": { - "tags": ["oauth"], - "summary": "Introspect", - "description": "OAuth 2.0 Token Introspection Endpoint (RFC 7662)\n\nAllows clients to check if a token is valid and get its metadata.\n\nReturns:\n- active: Whether the token is currently active\n- scopes: List of authorized scopes (if active)\n- client_id: The client the token was issued to (if active)\n- user_id: The user the token represents (if active)\n- exp: Expiration timestamp (if active)\n- token_type: \"access_token\" or \"refresh_token\" (if active)", - "operationId": "postOauthIntrospect", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_postOauthIntrospect" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenIntrospectionResult" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - } - } - } - }, - "/api/oauth/revoke": { - "post": { - "tags": ["oauth"], - "summary": "Revoke", - "description": "OAuth 2.0 Token Revocation Endpoint (RFC 7009)\n\nAllows clients to revoke an access or refresh token.\n\nNote: Revoking a refresh token does NOT revoke associated access tokens.\nRevoking an access token does NOT revoke the associated refresh token.", - "operationId": "postOauthRevoke", - "requestBody": { - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/Body_postOauthRevoke" } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { "application/json": { "schema": {} } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - } - } - } - }, - "/api/oauth/apps/mine": { - "get": { - "tags": ["oauth"], - "summary": "List My Oauth Apps", - "description": "List all OAuth applications owned by the current user.\n\nReturns a list of OAuth applications with their details including:\n- id, name, description, logo_url\n- client_id (public identifier)\n- redirect_uris, grant_types, scopes\n- is_active status\n- created_at, updated_at timestamps\n\nNote: client_secret is never returned for security reasons.", - "operationId": "getOauthListMyOauthApps", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/OAuthApplicationInfo" - }, - "type": "array", - "title": "Response Getoauthlistmyoauthapps" - } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - }, - "security": [{ "HTTPBearerJWT": [] }] - } - }, - "/api/oauth/apps/{app_id}/status": { - "patch": { - "tags": ["oauth"], - "summary": "Update App Status", - "description": "Enable or disable an OAuth application.\n\nOnly the application owner can update the status.\nWhen disabled, the application cannot be used for new authorizations\nand existing access tokens will fail validation.\n\nReturns the updated application info.", - "operationId": "patchOauthUpdateAppStatus", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "app_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "App Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_patchOauthUpdateAppStatus" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OAuthApplicationInfo" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/oauth/apps/{app_id}/logo": { - "patch": { - "tags": ["oauth"], - "summary": "Update App Logo", - "description": "Update the logo URL for an OAuth application.\n\nOnly the application owner can update the logo.\nThe logo should be uploaded first using the media upload endpoint,\nthen this endpoint is called with the resulting URL.\n\nLogo requirements:\n- Must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n\nReturns the updated application info.", - "operationId": "patchOauthUpdateAppLogo", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "app_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "App Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/UpdateAppLogoRequest" } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OAuthApplicationInfo" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" - } - } - } - }, - "/api/oauth/apps/{app_id}/logo/upload": { - "post": { - "tags": ["oauth"], - "summary": "Upload App Logo", - "description": "Upload a logo image for an OAuth application.\n\nRequirements:\n- Image must be square (1:1 aspect ratio)\n- Minimum 512x512 pixels\n- Maximum 2048x2048 pixels\n- Allowed formats: JPEG, PNG, WebP\n- Maximum file size: 3MB\n\nThe image is uploaded to cloud storage and the app's logoUrl is updated.\nReturns the updated application info.", - "operationId": "postOauthUploadAppLogo", - "security": [{ "HTTPBearerJWT": [] }], - "parameters": [ - { - "name": "app_id", - "in": "path", - "required": true, - "schema": { "type": "string", "title": "App Id" } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_postOauthUploadAppLogo" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OAuthApplicationInfo" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/HTTPValidationError" } - } - } - }, - "401": { - "$ref": "#/components/responses/HTTP401NotAuthenticatedError" } } } @@ -6318,6 +6319,25 @@ "required": ["is_active"], "title": "Body_patchOauthUpdateAppStatus" }, + "Body_postAnalyticsLogRawAnalytics": { + "properties": { + "type": { "type": "string", "title": "Type" }, + "data": { + "additionalProperties": true, + "type": "object", + "title": "Data", + "description": "The data to log" + }, + "data_index": { + "type": "string", + "title": "Data Index", + "description": "Indexable field for any count based analytical measures like page order clicking, tutorial step completion, etc." + } + }, + "type": "object", + "required": ["type", "data", "data_index"], + "title": "Body_postAnalyticsLogRawAnalytics" + }, "Body_postOauthIntrospect": { "properties": { "token": { @@ -6426,25 +6446,6 @@ "type": "object", "title": "Body_postV1Execute graph agent" }, - "Body_postV1LogRawAnalytics": { - "properties": { - "type": { "type": "string", "title": "Type" }, - "data": { - "additionalProperties": true, - "type": "object", - "title": "Data", - "description": "The data to log" - }, - "data_index": { - "type": "string", - "title": "Data Index", - "description": "Indexable field for any count based analytical measures like page order clicking, tutorial step completion, etc." - } - }, - "type": "object", - "required": ["type", "data", "data_index"], - "title": "Body_postV1LogRawAnalytics" - }, "Body_postV1Upload_file_to_cloud_storage": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } @@ -11627,15 +11628,15 @@ } }, "securitySchemes": { - "HTTPBearerJWT": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "jwt" - }, "APIKeyAuthenticator-X-Postmark-Webhook-Token": { "type": "apiKey", "in": "header", "name": "X-Postmark-Webhook-Token" + }, + "HTTPBearerJWT": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "jwt" } }, "responses": { From 08a60dcb9b33dfe486d1be0cf6bfe1c792dbd63b Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sat, 20 Dec 2025 22:46:24 +0100 Subject: [PATCH 009/160] refactor(frontend): Clean up React Query-related code (#11604) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #11603 ### Changes 🏗️ Frontend: - Make `okData` infer the response data type instead of casting - Generalize infinite query utilities from `SidebarRunsList/helpers.ts` - Move to `@/app/api/helpers` and use wherever possible - Simplify/replace boilerplate checks and conditions with `okData` in many places - Add `useUserTimezone` hook to replace all the boilerplate timezone queries Backend: - Fix response type annotation of `GET /api/store/graph/{store_listing_version_id}` endpoint - Fix documentation and error behavior of `GET /api/review/execution/{graph_exec_id}` endpoint ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - CI passes - [x] Clicking around the app manually -> no obvious issues - [x] Test Onboarding step 5 (run) - [x] Library runs list loads normally --- .../executions/review/review_routes_test.py | 29 +++--- .../api/features/executions/review/routes.py | 9 +- .../backend/api/features/store/routes.py | 4 +- autogpt_platform/frontend/orval.config.ts | 6 ++ .../app/(no-navbar)/onboarding/5-run/page.tsx | 28 +++--- .../onboarding/5-run/useOnboardingRunStep.tsx | 66 ++++++------- .../app/(no-navbar)/share/[token]/page.tsx | 6 +- .../components/ExecutionAnalyticsForm.tsx | 21 ++--- .../auth/integrations/setup-wizard/page.tsx | 3 +- .../useCronSchedulerDialog.ts | 8 +- .../build/components/FlowEditor/Flow/Flow.tsx | 3 +- .../BlockMenuSearch/BlockMenuSearch.tsx | 6 +- .../BlockMenuSearch/useBlockMenuSearch.ts | 58 +++++------- .../IntegrationBlocks/useIntegrationBlocks.ts | 36 +++---- .../useMarketplaceAgentsContent.ts | 28 ++---- .../MyAgentsContent/useMyAgentsContent.ts | 26 ++--- .../usePaginatedBlocks.ts | 26 ++--- .../usePaginatedIntegrationList.ts | 26 ++--- .../src/app/(platform)/chat/useChatSession.ts | 7 +- .../TimezoneNotice/TimezoneNotice.tsx | 10 +- .../selected-views/AgentActionsDropdown.tsx | 6 +- .../useSelectedRunActions.ts | 13 +-- .../SelectedRunView/useSelectedRunView.ts | 25 ++--- .../SelectedScheduleView.tsx | 16 ++-- .../EditScheduleModal/useEditScheduleModal.ts | 5 +- .../useSelectedScheduleView.ts | 17 ++-- .../components/SelectedTemplateActions.tsx | 16 ++-- .../useSelectedTemplateView.ts | 11 +-- .../components/SelectedTriggerActions.tsx | 16 ++-- .../useSelectedTriggerView.ts | 3 +- .../components/TaskActionsDropdown.tsx | 6 +- .../sidebar/SidebarRunsList/helpers.ts | 44 --------- .../SidebarRunsList/useSidebarRunsList.ts | 24 +++-- .../useNewAgentLibraryView.ts | 9 +- .../agent-schedule-details-view.tsx | 8 +- .../components/cron-scheduler-dialog.tsx | 8 +- .../OldAgentLibraryView/use-agent-runs.ts | 38 +++----- .../LibraryAgentList/useLibraryAgentList.ts | 30 +++--- .../library/hooks/useFavoriteAgents.ts | 39 +++----- .../monitoring/components/SchedulesTable.tsx | 8 +- .../src/app/(platform)/monitoring/page.tsx | 4 +- .../components/APIKeySection/useAPISection.ts | 7 +- .../oauth-apps/components/useOAuthApps.ts | 3 +- .../profile/(user)/settings/page.tsx | 7 +- .../frontend/src/app/api/helpers.ts | 94 ++++++++++++++++++- .../frontend/src/app/api/openapi.json | 11 ++- .../GoogleDrivePicker/useGoogleDrivePicker.ts | 5 +- .../AgentSelectStep/AgentSelectStep.tsx | 6 +- .../AgentSelectStep/useAgentSelectStep.ts | 53 ++++++----- .../useAgentActivityDropdown.ts | 3 +- .../layout/Navbar/components/NavbarView.tsx | 3 +- .../FloatingReviewsPanel.tsx | 9 +- .../PendingReviewsList/PendingReviewsList.tsx | 12 +-- .../frontend/src/hooks/useAgentSafeMode.ts | 13 ++- .../frontend/src/hooks/usePendingReviews.ts | 5 +- .../frontend/src/lib/hooks/useUserTimezone.ts | 8 ++ .../src/lib/react-query/queryClient.ts | 4 + 57 files changed, 453 insertions(+), 542 deletions(-) delete mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/helpers.ts create mode 100644 autogpt_platform/frontend/src/lib/hooks/useUserTimezone.ts diff --git a/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py b/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py index 9d1df5f999..c4eba0befc 100644 --- a/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py +++ b/autogpt_platform/backend/backend/api/features/executions/review/review_routes_test.py @@ -55,7 +55,7 @@ def sample_pending_review(test_user_id: str) -> PendingHumanReviewModel: def test_get_pending_reviews_empty( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, snapshot: Snapshot, test_user_id: str, ) -> None: @@ -73,7 +73,7 @@ def test_get_pending_reviews_empty( def test_get_pending_reviews_with_data( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, snapshot: Snapshot, test_user_id: str, @@ -95,7 +95,7 @@ def test_get_pending_reviews_with_data( def test_get_pending_reviews_for_execution_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, snapshot: Snapshot, test_user_id: str, @@ -122,9 +122,8 @@ def test_get_pending_reviews_for_execution_success( assert data[0]["graph_exec_id"] == "test_graph_exec_456" -def test_get_pending_reviews_for_execution_access_denied( - mocker: pytest_mock.MockFixture, - test_user_id: str, +def test_get_pending_reviews_for_execution_not_available( + mocker: pytest_mock.MockerFixture, ) -> None: """Test access denied when user doesn't own the execution""" mock_get_graph_execution = mocker.patch( @@ -134,12 +133,12 @@ def test_get_pending_reviews_for_execution_access_denied( response = client.get("/api/review/execution/test_graph_exec_456") - assert response.status_code == 403 - assert "Access denied" in response.json()["detail"] + assert response.status_code == 404 + assert "not found" in response.json()["detail"] def test_process_review_action_approve_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, test_user_id: str, ) -> None: @@ -203,7 +202,7 @@ def test_process_review_action_approve_success( def test_process_review_action_reject_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, test_user_id: str, ) -> None: @@ -263,7 +262,7 @@ def test_process_review_action_reject_success( def test_process_review_action_mixed_success( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, test_user_id: str, ) -> None: @@ -370,7 +369,7 @@ def test_process_review_action_mixed_success( def test_process_review_action_empty_request( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, test_user_id: str, ) -> None: """Test error when no reviews provided""" @@ -387,7 +386,7 @@ def test_process_review_action_empty_request( def test_process_review_action_review_not_found( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, test_user_id: str, ) -> None: """Test error when review is not found""" @@ -423,7 +422,7 @@ def test_process_review_action_review_not_found( def test_process_review_action_partial_failure( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, test_user_id: str, ) -> None: @@ -457,7 +456,7 @@ def test_process_review_action_partial_failure( def test_process_review_action_invalid_node_exec_id( - mocker: pytest_mock.MockFixture, + mocker: pytest_mock.MockerFixture, sample_pending_review: PendingHumanReviewModel, test_user_id: str, ) -> None: diff --git a/autogpt_platform/backend/backend/api/features/executions/review/routes.py b/autogpt_platform/backend/backend/api/features/executions/review/routes.py index 4aa4fac49b..88646046da 100644 --- a/autogpt_platform/backend/backend/api/features/executions/review/routes.py +++ b/autogpt_platform/backend/backend/api/features/executions/review/routes.py @@ -67,8 +67,7 @@ async def list_pending_reviews( response_model=List[PendingHumanReviewModel], responses={ 200: {"description": "List of pending reviews for the execution"}, - 400: {"description": "Invalid graph execution ID"}, - 403: {"description": "Access denied to graph execution"}, + 404: {"description": "Graph execution not found"}, 500: {"description": "Server error", "content": {"application/json": {}}}, }, ) @@ -91,7 +90,7 @@ async def list_pending_reviews_for_execution( Raises: HTTPException: - - 403: If user doesn't own the graph execution + - 404: If the graph execution doesn't exist or isn't owned by this user - 500: If authentication fails or database error occurs Note: @@ -105,8 +104,8 @@ async def list_pending_reviews_for_execution( ) if not graph_exec: raise HTTPException( - status_code=status.HTTP_403_FORBIDDEN, - detail="Access denied to graph execution", + status_code=status.HTTP_404_NOT_FOUND, + detail=f"Graph execution #{graph_exec_id} not found", ) return await get_pending_reviews_for_execution(graph_exec_id, user_id) diff --git a/autogpt_platform/backend/backend/api/features/store/routes.py b/autogpt_platform/backend/backend/api/features/store/routes.py index 6a9bb05291..7d4db50d3f 100644 --- a/autogpt_platform/backend/backend/api/features/store/routes.py +++ b/autogpt_platform/backend/backend/api/features/store/routes.py @@ -173,7 +173,9 @@ async def get_agent(username: str, agent_name: str): tags=["store"], dependencies=[fastapi.Security(autogpt_libs.auth.requires_user)], ) -async def get_graph_meta_by_store_listing_version_id(store_listing_version_id: str): +async def get_graph_meta_by_store_listing_version_id( + store_listing_version_id: str, +) -> backend.data.graph.GraphMeta: """ Get Agent Graph from Store Listing Version ID. """ diff --git a/autogpt_platform/frontend/orval.config.ts b/autogpt_platform/frontend/orval.config.ts index de305c1acc..dff857e1b6 100644 --- a/autogpt_platform/frontend/orval.config.ts +++ b/autogpt_platform/frontend/orval.config.ts @@ -41,6 +41,12 @@ export default defineConfig({ useInfiniteQueryParam: "page", }, }, + "getV2List presets": { + query: { + useInfinite: true, + useInfiniteQueryParam: "page", + }, + }, "getV1List graph executions": { query: { useInfinite: true, diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx index 58960a0cf6..30e1b67090 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx @@ -25,7 +25,7 @@ export default function Page() { ready, error, showInput, - agent, + agentGraph, onboarding, storeAgent, runningAgent, @@ -76,19 +76,19 @@ export default function Page() { Input - {Object.entries(agent?.input_schema.properties || {}).map( - ([key, inputSubSchema]) => ( - handleSetAgentInput(key, value)} - /> - ), - )} + {Object.entries( + agentGraph?.input_schema.properties || {}, + ).map(([key, inputSubSchema]) => ( + handleSetAgentInput(key, value)} + /> + ))} ) || undefined @@ -104,7 +104,7 @@ export default function Page() { className="mt-8 w-[136px]" loading={runningAgent} disabled={isRunDisabled({ - agent, + agent: agentGraph, isRunning: runningAgent, agentInputs: (onboarding.state?.agentInput as unknown as InputValues) || diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/useOnboardingRunStep.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/useOnboardingRunStep.tsx index 37538a2191..f143c89d44 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/useOnboardingRunStep.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/useOnboardingRunStep.tsx @@ -1,6 +1,3 @@ -import { CredentialsMetaInput } from "@/app/api/__generated__/models/credentialsMetaInput"; -import { GraphMeta } from "@/app/api/__generated__/models/graphMeta"; -import { StoreAgentDetails } from "@/app/api/__generated__/models/storeAgentDetails"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; import { useOnboarding } from "@/providers/onboarding/onboarding-provider"; @@ -8,20 +5,19 @@ import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { computeInitialAgentInputs } from "./helpers"; import { InputValues } from "./types"; +import { okData, resolveResponse } from "@/app/api/helpers"; +import { postV2AddMarketplaceAgent } from "@/app/api/__generated__/endpoints/library/library"; import { useGetV2GetAgentByVersion, useGetV2GetAgentGraph, } from "@/app/api/__generated__/endpoints/store/store"; -import { resolveResponse } from "@/app/api/helpers"; -import { postV2AddMarketplaceAgent } from "@/app/api/__generated__/endpoints/library/library"; +import { CredentialsMetaInput } from "@/app/api/__generated__/models/credentialsMetaInput"; import { GraphID } from "@/lib/autogpt-server-api"; export function useOnboardingRunStep() { const onboarding = useOnboarding(undefined, "AGENT_CHOICE"); const [showInput, setShowInput] = useState(false); - const [agent, setAgent] = useState(null); - const [storeAgent, setStoreAgent] = useState(null); const [runningAgent, setRunningAgent] = useState(false); const [inputCredentials, setInputCredentials] = useState< @@ -38,12 +34,26 @@ export function useOnboardingRunStep() { const currentAgentVersion = onboarding.state?.selectedStoreListingVersionId ?? ""; - const storeAgentQuery = useGetV2GetAgentByVersion(currentAgentVersion, { - query: { enabled: !!currentAgentVersion }, + const { + data: storeAgent, + error: storeAgentQueryError, + isSuccess: storeAgentQueryIsSuccess, + } = useGetV2GetAgentByVersion(currentAgentVersion, { + query: { + enabled: !!currentAgentVersion, + select: okData, + }, }); - const graphMetaQuery = useGetV2GetAgentGraph(currentAgentVersion, { - query: { enabled: !!currentAgentVersion }, + const { + data: agentGraphMeta, + error: agentGraphQueryError, + isSuccess: agentGraphQueryIsSuccess, + } = useGetV2GetAgentGraph(currentAgentVersion, { + query: { + enabled: !!currentAgentVersion, + select: okData, + }, }); useEffect(() => { @@ -51,29 +61,15 @@ export function useOnboardingRunStep() { }, []); useEffect(() => { - if (storeAgentQuery.data && storeAgentQuery.data.status === 200) { - setStoreAgent(storeAgentQuery.data.data); - } - }, [storeAgentQuery.data]); - - useEffect(() => { - if ( - graphMetaQuery.data && - graphMetaQuery.data.status === 200 && - onboarding.state - ) { - const graphMeta = graphMetaQuery.data.data as GraphMeta; - - setAgent(graphMeta); - - const update = computeInitialAgentInputs( - graphMeta, + if (agentGraphMeta && onboarding.state) { + const initialAgentInputs = computeInitialAgentInputs( + agentGraphMeta, (onboarding.state.agentInput as unknown as InputValues) || null, ); - onboarding.updateState({ agentInput: update }); + onboarding.updateState({ agentInput: initialAgentInputs }); } - }, [graphMetaQuery.data]); + }, [agentGraphMeta]); function handleNewRun() { if (!onboarding.state) return; @@ -95,7 +91,7 @@ export function useOnboardingRunStep() { } async function handleRunAgent() { - if (!agent || !storeAgent || !onboarding.state) { + if (!agentGraphMeta || !storeAgent || !onboarding.state) { toast({ title: "Error getting agent", description: @@ -142,12 +138,12 @@ export function useOnboardingRunStep() { } return { - ready: graphMetaQuery.isSuccess && storeAgentQuery.isSuccess, - error: graphMetaQuery.error || storeAgentQuery.error, - agent, + ready: agentGraphQueryIsSuccess && storeAgentQueryIsSuccess, + error: agentGraphQueryError || storeAgentQueryError, + agentGraph: agentGraphMeta || null, onboarding, showInput, - storeAgent, + storeAgent: storeAgent || null, runningAgent, credentialsValid, credentialsLoaded, diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/share/[token]/page.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/share/[token]/page.tsx index c24f9e11a3..1c37c6c72f 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/share/[token]/page.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/share/[token]/page.tsx @@ -1,6 +1,7 @@ "use client"; import { RunOutputs } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunOutputs"; +import { okData } from "@/app/api/helpers"; import { useGetV1GetSharedExecution } from "@/app/api/__generated__/endpoints/default/default"; import { Card, @@ -17,12 +18,11 @@ export default function SharePage() { const token = params.token as string; const { - data: response, + data: executionData, isLoading: loading, error, - } = useGetV1GetSharedExecution(token); + } = useGetV1GetSharedExecution(token, { query: { select: okData } }); - const executionData = response?.status === 200 ? response.data : undefined; const is404 = !loading && !executionData; if (loading) { diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/execution-analytics/components/ExecutionAnalyticsForm.tsx b/autogpt_platform/frontend/src/app/(platform)/admin/execution-analytics/components/ExecutionAnalyticsForm.tsx index fd77628140..5aced56090 100644 --- a/autogpt_platform/frontend/src/app/(platform)/admin/execution-analytics/components/ExecutionAnalyticsForm.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/admin/execution-analytics/components/ExecutionAnalyticsForm.tsx @@ -41,6 +41,7 @@ interface FormData extends Omit { // All other fields use the generated types as-is } import { AnalyticsResultsTable } from "./AnalyticsResultsTable"; +import { okData } from "@/app/api/helpers"; export function ExecutionAnalyticsForm() { const [results, setResults] = useState( @@ -178,7 +179,7 @@ export function ExecutionAnalyticsForm() { data: config, isLoading: configLoading, error: configError, - } = useGetV2GetExecutionAnalyticsConfiguration(); + } = useGetV2GetExecutionAnalyticsConfiguration({ query: { select: okData } }); const generateAnalytics = usePostV2GenerateExecutionAnalytics({ mutation: { @@ -231,10 +232,10 @@ export function ExecutionAnalyticsForm() { // Update form defaults when config loads useEffect(() => { - if (config?.data && config.status === 200 && !formData.model_name) { + if (config && !formData.model_name) { setFormData((prev) => ({ ...prev, - model_name: config.data.recommended_model, + model_name: config.recommended_model, })); } }, [config, formData.model_name]); @@ -307,7 +308,7 @@ export function ExecutionAnalyticsForm() { } // Show error state if config fails to load - if (configError || !config?.data || config.status !== 200) { + if (configError || !config) { return (
Failed to load configuration
@@ -315,8 +316,6 @@ export function ExecutionAnalyticsForm() { ); } - const configData = config.data; - return (
@@ -382,7 +381,7 @@ export function ExecutionAnalyticsForm() { - {configData.available_models.map((model) => ( + {config.available_models.map((model) => ( {model.label} @@ -442,7 +441,7 @@ export function ExecutionAnalyticsForm() { onChange={(e) => handleInputChange("system_prompt", e.target.value) } - placeholder={configData.default_system_prompt} + placeholder={config.default_system_prompt} rows={6} className="resize-y" /> @@ -463,7 +462,7 @@ export function ExecutionAnalyticsForm() { onChange={(e) => handleInputChange("user_prompt", e.target.value) } - placeholder={configData.default_user_prompt} + placeholder={config.default_user_prompt} rows={8} className="resize-y" /> @@ -490,7 +489,7 @@ export function ExecutionAnalyticsForm() { onClick={() => { handleInputChange( "system_prompt", - configData.default_system_prompt, + config.default_system_prompt, ); }} > @@ -503,7 +502,7 @@ export function ExecutionAnalyticsForm() { onClick={() => { handleInputChange( "user_prompt", - configData.default_user_prompt, + config.default_user_prompt, ); }} > diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx index 5163c46d5b..3372772c89 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx @@ -17,7 +17,6 @@ import type { import { CheckIcon, CircleIcon } from "@phosphor-icons/react"; import { useGetOauthGetOauthAppInfo } from "@/app/api/__generated__/endpoints/oauth/oauth"; import { okData } from "@/app/api/helpers"; -import { OAuthApplicationPublicInfo } from "@/app/api/__generated__/models/oAuthApplicationPublicInfo"; // All credential types - we accept any type of credential const ALL_CREDENTIAL_TYPES: CredentialsType[] = [ @@ -107,7 +106,7 @@ export default function IntegrationSetupWizardPage() { const state = searchParams.get("state"); const { data: appInfo } = useGetOauthGetOauthAppInfo(clientID || "", { - query: { enabled: !!clientID, select: okData }, + query: { enabled: !!clientID, select: okData }, }); // Parse providers from base64-encoded JSON diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/CronSchedulerDialog/useCronSchedulerDialog.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/CronSchedulerDialog/useCronSchedulerDialog.ts index 4d5f8bf254..1abfabbdba 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/CronSchedulerDialog/useCronSchedulerDialog.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/CronSchedulerDialog/useCronSchedulerDialog.ts @@ -1,6 +1,6 @@ -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; import { usePostV1CreateExecutionSchedule } from "@/app/api/__generated__/endpoints/schedules/schedules"; import { useToast } from "@/components/molecules/Toast/use-toast"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { getTimezoneDisplayName } from "@/lib/timezone-utils"; import { parseAsInteger, parseAsString, useQueryStates } from "nuqs"; import { useEffect, useState } from "react"; @@ -28,11 +28,7 @@ export const useCronSchedulerDialog = ({ flowExecutionID: parseAsString, }); - const { data: userTimezone } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : undefined), - }, - }); + const userTimezone = useUserTimezone(); const timezoneDisplay = getTimezoneDisplayName(userTimezone || "UTC"); const { mutateAsync: createSchedule, isPending: isCreatingSchedule } = diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx index d312fd487d..c9cf5296c6 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx @@ -17,7 +17,6 @@ import { FloatingReviewsPanel } from "@/components/organisms/FloatingReviewsPane import { parseAsString, useQueryStates } from "nuqs"; import { CustomControls } from "./components/CustomControl"; import { useGetV1GetSpecificGraph } from "@/app/api/__generated__/endpoints/graphs/graphs"; -import { GraphModel } from "@/app/api/__generated__/models/graphModel"; import { okData } from "@/app/api/helpers"; import { TriggerAgentBanner } from "./components/TriggerAgentBanner"; import { resolveCollisions } from "./helpers/resolve-collision"; @@ -34,7 +33,7 @@ export const Flow = () => { {}, { query: { - select: okData, + select: okData, enabled: !!flowID, }, }, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/BlockMenuSearch.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/BlockMenuSearch.tsx index 71888b62ee..de339431e8 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/BlockMenuSearch.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/BlockMenuSearch.tsx @@ -14,7 +14,7 @@ import { NoSearchResult } from "../NoSearchResult"; export const BlockMenuSearch = () => { const { - allSearchData, + searchResults, isFetchingNextPage, fetchNextPage, hasNextPage, @@ -39,7 +39,7 @@ export const BlockMenuSearch = () => { ); } - if (allSearchData.length === 0) { + if (searchResults.length === 0) { return ; } @@ -53,7 +53,7 @@ export const BlockMenuSearch = () => { loader={} className="space-y-2.5" > - {allSearchData.map((item: SearchResponseItemsItem, index: number) => { + {searchResults.map((item: SearchResponseItemsItem, index: number) => { const { type, data } = getSearchItemType(item); // backend give support to these 3 types only [right now] - we need to give support to integration and ai agent types in follow up PRs switch (type) { diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/useBlockMenuSearch.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/useBlockMenuSearch.ts index 3eb14d3ca9..beff80a984 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/useBlockMenuSearch.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenuSearch/useBlockMenuSearch.ts @@ -1,19 +1,25 @@ -import { useBlockMenuStore } from "../../../../stores/blockMenuStore"; -import { useGetV2BuilderSearchInfinite } from "@/app/api/__generated__/endpoints/store/store"; -import { SearchResponse } from "@/app/api/__generated__/models/searchResponse"; import { useCallback, useEffect, useState } from "react"; +import { useBlockMenuStore } from "@/app/(platform)/build/stores/blockMenuStore"; import { useAddAgentToBuilder } from "../hooks/useAddAgentToBuilder"; -import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; -import { getV2GetSpecificAgent } from "@/app/api/__generated__/endpoints/store/store"; +import { + getPaginationNextPageNumber, + okData, + unpaginate, +} from "@/app/api/helpers"; +import { + getGetV2GetBuilderItemCountsQueryKey, + getGetV2GetBuilderSuggestionsQueryKey, +} from "@/app/api/__generated__/endpoints/default/default"; import { getGetV2ListLibraryAgentsQueryKey, getV2GetLibraryAgent, usePostV2AddMarketplaceAgent, } from "@/app/api/__generated__/endpoints/library/library"; import { - getGetV2GetBuilderItemCountsQueryKey, - getGetV2GetBuilderSuggestionsQueryKey, -} from "@/app/api/__generated__/endpoints/default/default"; + getV2GetSpecificAgent, + useGetV2BuilderSearchInfinite, +} from "@/app/api/__generated__/endpoints/store/store"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { getQueryClient } from "@/lib/react-query/queryClient"; import { useToast } from "@/components/molecules/Toast/use-toast"; import * as Sentry from "@sentry/nextjs"; @@ -40,7 +46,7 @@ export const useBlockMenuSearch = () => { >(null); const { - data: searchData, + data: searchQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -53,18 +59,7 @@ export const useBlockMenuSearch = () => { search_id: searchId, }, { - query: { - getNextPageParam: (lastPage) => { - const response = lastPage.data as SearchResponse; - const { pagination } = response; - if (!pagination) { - return undefined; - } - - const { current_page, total_pages } = pagination; - return current_page < total_pages ? current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); @@ -93,16 +88,15 @@ export const useBlockMenuSearch = () => { }); useEffect(() => { - if (!searchData?.pages?.length) { + if (!searchQueryData?.pages?.length) { return; } - const latestPage = searchData.pages[searchData.pages.length - 1]; - const response = latestPage?.data as SearchResponse; - if (response?.search_id && response.search_id !== searchId) { - setSearchId(response.search_id); + const lastPage = okData(searchQueryData.pages.at(-1)); + if (lastPage?.search_id && lastPage.search_id !== searchId) { + setSearchId(lastPage.search_id); } - }, [searchData, searchId, setSearchId]); + }, [searchQueryData, searchId, setSearchId]); useEffect(() => { if (searchId && !searchQuery) { @@ -110,11 +104,9 @@ export const useBlockMenuSearch = () => { } }, [resetSearchSession, searchId, searchQuery]); - const allSearchData = - searchData?.pages?.flatMap((page) => { - const response = page.data as SearchResponse; - return response.items; - }) ?? []; + const searchResults = searchQueryData + ? unpaginate(searchQueryData, "items") + : []; const handleAddLibraryAgent = async (agent: LibraryAgent) => { setAddingLibraryAgentId(agent.id); @@ -177,7 +169,7 @@ export const useBlockMenuSearch = () => { }; return { - allSearchData, + searchResults, isFetchingNextPage, fetchNextPage, hasNextPage, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/IntegrationBlocks/useIntegrationBlocks.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/IntegrationBlocks/useIntegrationBlocks.ts index 678f903936..c6dcd61e36 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/IntegrationBlocks/useIntegrationBlocks.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/IntegrationBlocks/useIntegrationBlocks.ts @@ -1,6 +1,10 @@ +import { + getPaginatedTotalCount, + getPaginationNextPageNumber, + unpaginate, +} from "@/app/api/helpers"; import { useGetV2GetBuilderBlocksInfinite } from "@/app/api/__generated__/endpoints/default/default"; -import { BlockResponse } from "@/app/api/__generated__/models/blockResponse"; -import { useBlockMenuStore } from "../../../../stores/blockMenuStore"; +import { useBlockMenuStore } from "@/app/(platform)/build/stores/blockMenuStore"; const PAGE_SIZE = 10; @@ -8,7 +12,7 @@ export const useIntegrationBlocks = () => { const { integration } = useBlockMenuStore(); const { - data: blocks, + data: blocksQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -22,30 +26,16 @@ export const useIntegrationBlocks = () => { provider: integration, }, { - query: { - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as BlockResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allBlocks = - blocks?.pages?.flatMap((page) => { - const response = page.data as BlockResponse; - return response.blocks; - }) ?? []; + const allBlocks = blocksQueryData + ? unpaginate(blocksQueryData, "blocks") + : []; + const totalBlocks = getPaginatedTotalCount(blocksQueryData); - const totalBlocks = blocks?.pages[0] - ? (blocks.pages[0].data as BlockResponse).pagination.total_items - : 0; - - const status = blocks?.pages[0]?.status; + const status = blocksQueryData?.pages[0]?.status; return { allBlocks, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MarketplaceAgentsContent/useMarketplaceAgentsContent.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MarketplaceAgentsContent/useMarketplaceAgentsContent.ts index ff9b70b79a..c45f36ae87 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MarketplaceAgentsContent/useMarketplaceAgentsContent.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MarketplaceAgentsContent/useMarketplaceAgentsContent.ts @@ -1,3 +1,4 @@ +import { getPaginationNextPageNumber, unpaginate } from "@/app/api/helpers"; import { getGetV2GetBuilderItemCountsQueryKey } from "@/app/api/__generated__/endpoints/default/default"; import { getGetV2ListLibraryAgentsQueryKey, @@ -8,13 +9,12 @@ import { getV2GetSpecificAgent, useGetV2ListStoreAgentsInfinite, } from "@/app/api/__generated__/endpoints/store/store"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { useToast } from "@/components/molecules/Toast/use-toast"; -import { StoreAgentsResponse } from "@/lib/autogpt-server-api"; import { getQueryClient } from "@/lib/react-query/queryClient"; import * as Sentry from "@sentry/nextjs"; import { useState } from "react"; import { useAddAgentToBuilder } from "../hooks/useAddAgentToBuilder"; -import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; export const useMarketplaceAgentsContent = () => { const { toast } = useToast(); @@ -22,7 +22,7 @@ export const useMarketplaceAgentsContent = () => { const { addAgentToBuilder } = useAddAgentToBuilder(); const { - data: listStoreAgents, + data: storeAgentsQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -36,26 +36,14 @@ export const useMarketplaceAgentsContent = () => { page_size: 10, }, { - query: { - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as StoreAgentsResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allAgents = - listStoreAgents?.pages?.flatMap((page) => { - const response = page.data as StoreAgentsResponse; - return response.agents; - }) ?? []; - - const status = listStoreAgents?.pages[0]?.status; + const allAgents = storeAgentsQueryData + ? unpaginate(storeAgentsQueryData, "agents") + : []; + const status = storeAgentsQueryData?.pages[0]?.status; const { mutateAsync: addMarketplaceAgent } = usePostV2AddMarketplaceAgent({ mutation: { diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MyAgentsContent/useMyAgentsContent.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MyAgentsContent/useMyAgentsContent.ts index 88645393d7..5ce19afe96 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MyAgentsContent/useMyAgentsContent.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/MyAgentsContent/useMyAgentsContent.ts @@ -1,5 +1,5 @@ +import { getPaginationNextPageNumber, unpaginate } from "@/app/api/helpers"; import { useGetV2ListLibraryAgentsInfinite } from "@/app/api/__generated__/endpoints/library/library"; -import { LibraryAgentResponse } from "@/app/api/__generated__/models/libraryAgentResponse"; import { useState } from "react"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { useAddAgentToBuilder } from "../hooks/useAddAgentToBuilder"; @@ -12,7 +12,7 @@ export const useMyAgentsContent = () => { const { toast } = useToast(); const { - data: agents, + data: agentsQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -26,26 +26,14 @@ export const useMyAgentsContent = () => { page_size: 10, }, { - query: { - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as LibraryAgentResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allAgents = - agents?.pages?.flatMap((page) => { - const response = page.data as LibraryAgentResponse; - return response.agents; - }) ?? []; - - const status = agents?.pages[0]?.status; + const allAgents = agentsQueryData + ? unpaginate(agentsQueryData, "agents") + : []; + const status = agentsQueryData?.pages[0]?.status; const handleAddBlock = async (agent: LibraryAgent) => { setSelectedAgentId(agent.id); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedBlocksContent/usePaginatedBlocks.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedBlocksContent/usePaginatedBlocks.ts index 5348998021..b44fb871f3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedBlocksContent/usePaginatedBlocks.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedBlocksContent/usePaginatedBlocks.ts @@ -1,5 +1,5 @@ +import { getPaginationNextPageNumber, unpaginate } from "@/app/api/helpers"; import { useGetV2GetBuilderBlocksInfinite } from "@/app/api/__generated__/endpoints/default/default"; -import { BlockResponse } from "@/app/api/__generated__/models/blockResponse"; interface UsePaginatedBlocksProps { type?: "all" | "input" | "action" | "output" | null; @@ -8,7 +8,7 @@ interface UsePaginatedBlocksProps { const PAGE_SIZE = 10; export const usePaginatedBlocks = ({ type }: UsePaginatedBlocksProps) => { const { - data: blocks, + data: blocksQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -22,26 +22,14 @@ export const usePaginatedBlocks = ({ type }: UsePaginatedBlocksProps) => { type, }, { - query: { - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as BlockResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allBlocks = - blocks?.pages?.flatMap((page) => { - const response = page.data as BlockResponse; - return response.blocks; - }) ?? []; - - const status = blocks?.pages[0]?.status; + const allBlocks = blocksQueryData + ? unpaginate(blocksQueryData, "blocks") + : []; + const status = blocksQueryData?.pages[0]?.status; return { allBlocks, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedIntegrationList/usePaginatedIntegrationList.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedIntegrationList/usePaginatedIntegrationList.ts index cf84ed94eb..3462b8f619 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedIntegrationList/usePaginatedIntegrationList.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/PaginatedIntegrationList/usePaginatedIntegrationList.ts @@ -1,11 +1,11 @@ +import { getPaginationNextPageNumber, unpaginate } from "@/app/api/helpers"; import { useGetV2GetBuilderIntegrationProvidersInfinite } from "@/app/api/__generated__/endpoints/default/default"; -import { ProviderResponse } from "@/app/api/__generated__/models/providerResponse"; const PAGE_SIZE = 10; export const usePaginatedIntegrationList = () => { const { - data: providers, + data: providersQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -18,26 +18,14 @@ export const usePaginatedIntegrationList = () => { page_size: PAGE_SIZE, }, { - query: { - getNextPageParam: (lastPage: any) => { - const pagination = (lastPage.data as ProviderResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allProviders = - providers?.pages?.flatMap((page: any) => { - const response = page.data as ProviderResponse; - return response.providers; - }) ?? []; - - const status = providers?.pages[0]?.status; + const allProviders = providersQueryData + ? unpaginate(providersQueryData, "providers") + : []; + const status = providersQueryData?.pages[0]?.status; return { allProviders, diff --git a/autogpt_platform/frontend/src/app/(platform)/chat/useChatSession.ts b/autogpt_platform/frontend/src/app/(platform)/chat/useChatSession.ts index 0a350f98bb..99f4efc093 100644 --- a/autogpt_platform/frontend/src/app/(platform)/chat/useChatSession.ts +++ b/autogpt_platform/frontend/src/app/(platform)/chat/useChatSession.ts @@ -11,6 +11,7 @@ import { import type { SessionDetailResponse } from "@/app/api/__generated__/models/sessionDetailResponse"; import { storage, Key } from "@/services/storage/local-storage"; import { isValidUUID } from "@/app/(platform)/chat/helpers"; +import { okData } from "@/app/api/helpers"; interface UseChatSessionArgs { urlSessionId?: string | null; @@ -70,6 +71,7 @@ export function useChatSession({ } = useGetV2GetSession(sessionId || "", { query: { enabled: !!sessionId, + select: okData, staleTime: Infinity, // Never mark as stale refetchOnMount: false, // Don't refetch on component mount refetchOnWindowFocus: false, // Don't refetch when window regains focus @@ -81,9 +83,8 @@ export function useChatSession({ const { mutateAsync: claimSessionMutation } = usePatchV2SessionAssignUser(); const session = useMemo(() => { - if (sessionData?.status === 200) { - return sessionData.data; - } + if (sessionData) return sessionData; + if (sessionId && justCreatedSessionIdRef.current === sessionId) { return { id: sessionId, diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/ScheduleAgentModal/components/TimezoneNotice/TimezoneNotice.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/ScheduleAgentModal/components/TimezoneNotice/TimezoneNotice.tsx index d5d7c011a6..97ee4605f2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/ScheduleAgentModal/components/TimezoneNotice/TimezoneNotice.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/ScheduleAgentModal/components/TimezoneNotice/TimezoneNotice.tsx @@ -1,15 +1,11 @@ -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { getTimezoneDisplayName } from "@/lib/timezone-utils"; import { InfoIcon } from "@phosphor-icons/react"; export function TimezoneNotice() { - const { data: userTimezone, isSuccess } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : undefined), - }, - }); + const userTimezone = useUserTimezone(); - if (!isSuccess) { + if (!userTimezone) { return null; } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AgentActionsDropdown.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AgentActionsDropdown.tsx index e94878f070..834173cba4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AgentActionsDropdown.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/AgentActionsDropdown.tsx @@ -1,7 +1,7 @@ "use client"; import { - getGetV1ListGraphExecutionsInfiniteQueryOptions, + getGetV1ListGraphExecutionsQueryKey, getV1GetGraphVersion, useDeleteV1DeleteGraphExecution, } from "@/app/api/__generated__/endpoints/graphs/graphs"; @@ -127,9 +127,7 @@ export function AgentActionsDropdown({ toast({ title: "Task deleted" }); await queryClient.refetchQueries({ - queryKey: - getGetV1ListGraphExecutionsInfiniteQueryOptions(agentGraphId) - .queryKey, + queryKey: getGetV1ListGraphExecutionsQueryKey(agentGraphId), }); if (onClearSelectedRun) onClearSelectedRun(); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/useSelectedRunActions.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/useSelectedRunActions.ts index 03fc0b4ae8..9bcfd9d964 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/useSelectedRunActions.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/useSelectedRunActions.ts @@ -1,7 +1,7 @@ "use client"; import { - getGetV1ListGraphExecutionsInfiniteQueryOptions, + getGetV1ListGraphExecutionsQueryKey, usePostV1ExecuteGraphAgent, usePostV1StopGraphExecution, } from "@/app/api/__generated__/endpoints/graphs/graphs"; @@ -11,6 +11,7 @@ import { } from "@/app/api/__generated__/endpoints/presets/presets"; import type { GraphExecution } from "@/app/api/__generated__/models/graphExecution"; import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { okData } from "@/app/api/helpers"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { useQueryClient } from "@tanstack/react-query"; import { useState } from "react"; @@ -58,9 +59,7 @@ export function useSelectedRunActions({ toast({ title: "Run stopped" }); await queryClient.invalidateQueries({ - queryKey: - getGetV1ListGraphExecutionsInfiniteQueryOptions(agentGraphId) - .queryKey, + queryKey: getGetV1ListGraphExecutionsQueryKey(agentGraphId), }); } catch (error: unknown) { toast({ @@ -97,12 +96,10 @@ export function useSelectedRunActions({ }, }); - const newRunId = res?.status === 200 ? (res?.data?.id ?? "") : ""; + const newRunId = okData(res)?.id; await queryClient.invalidateQueries({ - queryKey: - getGetV1ListGraphExecutionsInfiniteQueryOptions(agentGraphId) - .queryKey, + queryKey: getGetV1ListGraphExecutionsQueryKey(agentGraphId), }); if (newRunId && onSelectRun) onSelectRun(newRunId); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/useSelectedRunView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/useSelectedRunView.ts index 342241ef89..e3e035cea0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/useSelectedRunView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/useSelectedRunView.ts @@ -3,14 +3,12 @@ import { useGetV1GetExecutionDetails } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { useGetV2GetASpecificPreset } from "@/app/api/__generated__/endpoints/presets/presets"; import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecutionStatus"; -import type { GetV1GetExecutionDetails200 } from "@/app/api/__generated__/models/getV1GetExecutionDetails200"; -import type { LibraryAgentPreset } from "@/app/api/__generated__/models/libraryAgentPreset"; import { okData } from "@/app/api/helpers"; export function useSelectedRunView(graphId: string, runId: string) { - const query = useGetV1GetExecutionDetails(graphId, runId, { + const executionQuery = useGetV1GetExecutionDetails(graphId, runId, { query: { - refetchInterval: (q: any) => { + refetchInterval: (q) => { const isSuccess = q.state.data?.status === 200; if (!isSuccess) return false; @@ -33,22 +31,15 @@ export function useSelectedRunView(graphId: string, runId: string) { }, }); - const status = query.data?.status; + const run = okData(executionQuery.data); + const status = executionQuery.data?.status; - const run: GetV1GetExecutionDetails200 | undefined = - status === 200 - ? (query.data?.data as GetV1GetExecutionDetails200) - : undefined; - - const presetId = - run && "preset_id" in run && run.preset_id - ? (run.preset_id as string) - : undefined; + const presetId = run?.preset_id || undefined; const presetQuery = useGetV2GetASpecificPreset(presetId || "", { query: { enabled: !!presetId, - select: (res) => okData(res), + select: okData, }, }); @@ -60,8 +51,8 @@ export function useSelectedRunView(graphId: string, runId: string) { return { run, preset: presetQuery.data, - isLoading: query.isLoading || presetQuery.isLoading, - responseError: query.error || presetQuery.error, + isLoading: executionQuery.isLoading || presetQuery.isLoading, + responseError: executionQuery.error || presetQuery.error, httpError, } as const; } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/SelectedScheduleView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/SelectedScheduleView.tsx index 0672ddc033..678f711097 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/SelectedScheduleView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/SelectedScheduleView.tsx @@ -1,12 +1,12 @@ "use client"; -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; import { Text } from "@/components/atoms/Text/Text"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; import { humanizeCronExpression } from "@/lib/cron-expression-utils"; import { isLargeScreen, useBreakpoint } from "@/lib/hooks/useBreakpoint"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { formatInTimezone, getTimezoneDisplayName } from "@/lib/timezone-utils"; import { AgentInputsReadOnly } from "../../modals/AgentInputsReadOnly/AgentInputsReadOnly"; import { LoadingSelectedContent } from "../LoadingSelectedContent"; @@ -36,11 +36,7 @@ export function SelectedScheduleView({ scheduleId, ); - const { data: userTzRes } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : undefined), - }, - }); + const userTimezone = useUserTimezone(); const breakpoint = useBreakpoint(); const isLgScreenUp = isLargeScreen(breakpoint); @@ -90,7 +86,7 @@ export function SelectedScheduleView({ run={undefined} scheduleRecurrence={ schedule - ? `${humanizeCronExpression(schedule.cron || "")} · ${getTimezoneDisplayName(schedule.timezone || userTzRes || "UTC")}` + ? `${humanizeCronExpression(schedule.cron || "")} · ${getTimezoneDisplayName(schedule.timezone || userTimezone || "UTC")}` : undefined } /> @@ -125,7 +121,7 @@ export function SelectedScheduleView({ {" "} {getTimezoneDisplayName( - schedule.timezone || userTzRes || "UTC", + schedule.timezone || userTimezone || "UTC", )} @@ -135,7 +131,7 @@ export function SelectedScheduleView({ {formatInTimezone( schedule.next_run_time, - userTzRes || "UTC", + userTimezone || "UTC", { year: "numeric", month: "long", @@ -148,7 +144,7 @@ export function SelectedScheduleView({ {" "} {getTimezoneDisplayName( - schedule.timezone || userTzRes || "UTC", + schedule.timezone || userTimezone || "UTC", )} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/components/EditScheduleModal/useEditScheduleModal.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/components/EditScheduleModal/useEditScheduleModal.ts index b006e775f9..427340a427 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/components/EditScheduleModal/useEditScheduleModal.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/components/EditScheduleModal/useEditScheduleModal.ts @@ -1,7 +1,7 @@ "use client"; -import { getGetV1ListGraphExecutionsInfiniteQueryOptions } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { getGetV1ListExecutionSchedulesForAGraphQueryKey } from "@/app/api/__generated__/endpoints/schedules/schedules"; +import { getGetV1ListGraphExecutionsQueryKey } from "@/app/api/__generated__/endpoints/graphs/graphs"; import type { GraphExecutionJobInfo } from "@/app/api/__generated__/models/graphExecutionJobInfo"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { useMutation, useQueryClient } from "@tanstack/react-query"; @@ -94,8 +94,7 @@ export function useEditScheduleModal( await queryClient.invalidateQueries({ queryKey: getGetV1ListExecutionSchedulesForAGraphQueryKey(graphId), }); - const runsKey = getGetV1ListGraphExecutionsInfiniteQueryOptions(graphId) - .queryKey as any; + const runsKey = getGetV1ListGraphExecutionsQueryKey(graphId); await queryClient.invalidateQueries({ queryKey: runsKey }); setIsOpen(false); }, diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/useSelectedScheduleView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/useSelectedScheduleView.ts index 01905eb296..66263e2dcc 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/useSelectedScheduleView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedScheduleView/useSelectedScheduleView.ts @@ -2,30 +2,29 @@ import { useMemo } from "react"; import { useGetV1ListExecutionSchedulesForAGraph } from "@/app/api/__generated__/endpoints/schedules/schedules"; -import type { GraphExecutionJobInfo } from "@/app/api/__generated__/models/graphExecutionJobInfo"; +import { okData } from "@/app/api/helpers"; export function useSelectedScheduleView(graphId: string, scheduleId: string) { - const query = useGetV1ListExecutionSchedulesForAGraph(graphId, { + const schedulesQuery = useGetV1ListExecutionSchedulesForAGraph(graphId, { query: { enabled: !!graphId, - select: (res) => - res.status === 200 ? (res.data as GraphExecutionJobInfo[]) : [], + select: okData, }, }); const schedule = useMemo( - () => query.data?.find((s) => s.id === scheduleId), - [query.data, scheduleId], + () => schedulesQuery.data?.find((s) => s.id === scheduleId), + [schedulesQuery.data, scheduleId], ); const httpError = - query.isSuccess && !schedule + schedulesQuery.isSuccess && !schedule ? { status: 404, statusText: "Not found" } : undefined; return { schedule, - isLoading: query.isLoading, - error: query.error || httpError, + isLoading: schedulesQuery.isLoading, + error: schedulesQuery.error || httpError, } as const; } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/components/SelectedTemplateActions.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/components/SelectedTemplateActions.tsx index 1d50ec7c85..008d2cc379 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/components/SelectedTemplateActions.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/components/SelectedTemplateActions.tsx @@ -2,10 +2,10 @@ import { getGetV2ListPresetsQueryKey, + getV2ListPresets, useDeleteV2DeleteAPreset, } from "@/app/api/__generated__/endpoints/presets/presets"; import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; -import type { LibraryAgentPresetResponse } from "@/app/api/__generated__/models/libraryAgentPresetResponse"; import { okData } from "@/app/api/helpers"; import { Button } from "@/components/atoms/Button/Button"; import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; @@ -56,15 +56,13 @@ export function SelectedTemplateActions({ queryKey, }); - const queryData = queryClient.getQueryData<{ - data: LibraryAgentPresetResponse; - }>(queryKey); + const queryData = + queryClient.getQueryData< + Awaited> + >(queryKey); - const presets = - okData(queryData)?.presets ?? []; - const templates = presets.filter( - (preset) => !preset.webhook_id || !preset.webhook, - ); + const presets = okData(queryData)?.presets ?? []; + const templates = presets.filter((preset) => !preset.webhook_id); setShowDeleteDialog(false); onDeleted?.(); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/useSelectedTemplateView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/useSelectedTemplateView.ts index a0f34f54a2..66dd26f488 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/useSelectedTemplateView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/useSelectedTemplateView.ts @@ -1,6 +1,6 @@ "use client"; -import { getGetV1ListGraphExecutionsInfiniteQueryOptions } from "@/app/api/__generated__/endpoints/graphs/graphs"; +import { getGetV1ListGraphExecutionsQueryKey } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { getGetV2GetASpecificPresetQueryKey, getGetV2ListPresetsQueryKey, @@ -9,7 +9,6 @@ import { usePostV2ExecuteAPreset, } from "@/app/api/__generated__/endpoints/presets/presets"; import type { GraphExecutionMeta } from "@/app/api/__generated__/models/graphExecutionMeta"; -import type { LibraryAgentPreset } from "@/app/api/__generated__/models/libraryAgentPreset"; import type { LibraryAgentPresetUpdatable } from "@/app/api/__generated__/models/libraryAgentPresetUpdatable"; import { okData } from "@/app/api/helpers"; import { useToast } from "@/components/molecules/Toast/use-toast"; @@ -34,7 +33,7 @@ export function useSelectedTemplateView({ const query = useGetV2GetASpecificPreset(templateId, { query: { enabled: !!templateId, - select: (res) => okData(res), + select: okData, }, }); @@ -83,15 +82,13 @@ export function useSelectedTemplateView({ mutation: { onSuccess: (response) => { if (response.status === 200) { - const execution = okData(response); + const execution = okData(response); if (execution) { toast({ title: "Task started", }); queryClient.invalidateQueries({ - queryKey: - getGetV1ListGraphExecutionsInfiniteQueryOptions(graphId) - .queryKey, + queryKey: getGetV1ListGraphExecutionsQueryKey(graphId), }); onRunCreated?.(execution); } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/components/SelectedTriggerActions.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/components/SelectedTriggerActions.tsx index 0746027f37..a5b895c3fa 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/components/SelectedTriggerActions.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/components/SelectedTriggerActions.tsx @@ -2,10 +2,10 @@ import { getGetV2ListPresetsQueryKey, + getV2ListPresets, useDeleteV2DeleteAPreset, } from "@/app/api/__generated__/endpoints/presets/presets"; import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; -import type { LibraryAgentPresetResponse } from "@/app/api/__generated__/models/libraryAgentPresetResponse"; import { okData } from "@/app/api/helpers"; import { Button } from "@/components/atoms/Button/Button"; import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; @@ -52,15 +52,13 @@ export function SelectedTriggerActions({ queryKey, }); - const queryData = queryClient.getQueryData<{ - data: LibraryAgentPresetResponse; - }>(queryKey); + const queryData = + queryClient.getQueryData< + Awaited> + >(queryKey); - const presets = - okData(queryData)?.presets ?? []; - const triggers = presets.filter( - (preset) => preset.webhook_id && preset.webhook, - ); + const presets = okData(queryData)?.presets ?? []; + const triggers = presets.filter((preset) => preset.webhook_id); setShowDeleteDialog(false); onDeleted?.(); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/useSelectedTriggerView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/useSelectedTriggerView.ts index 4669d850b2..235c653134 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/useSelectedTriggerView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/useSelectedTriggerView.ts @@ -6,7 +6,6 @@ import { useGetV2GetASpecificPreset, usePatchV2UpdateAnExistingPreset, } from "@/app/api/__generated__/endpoints/presets/presets"; -import type { LibraryAgentPreset } from "@/app/api/__generated__/models/libraryAgentPreset"; import type { LibraryAgentPresetUpdatable } from "@/app/api/__generated__/models/libraryAgentPresetUpdatable"; import { okData } from "@/app/api/helpers"; import { useToast } from "@/components/molecules/Toast/use-toast"; @@ -26,7 +25,7 @@ export function useSelectedTriggerView({ triggerId, graphId }: Args) { const query = useGetV2GetASpecificPreset(triggerId, { query: { enabled: !!triggerId, - select: (res) => okData(res), + select: okData, }, }); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskActionsDropdown.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskActionsDropdown.tsx index 95cc7740f8..ba923bca68 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskActionsDropdown.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/components/TaskActionsDropdown.tsx @@ -1,7 +1,7 @@ "use client"; import { - getGetV1ListGraphExecutionsInfiniteQueryOptions, + getGetV1ListGraphExecutionsQueryKey, useDeleteV1DeleteGraphExecution, } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { @@ -51,9 +51,7 @@ export function TaskActionsDropdown({ agent, run, onDeleted }: Props) { toast({ title: "Task deleted" }); await queryClient.refetchQueries({ - queryKey: getGetV1ListGraphExecutionsInfiniteQueryOptions( - agent.graph_id, - ).queryKey, + queryKey: getGetV1ListGraphExecutionsQueryKey(agent.graph_id), }); setShowDeleteDialog(false); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/helpers.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/helpers.ts deleted file mode 100644 index 096e40239b..0000000000 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/helpers.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { GraphExecutionsPaginated } from "@/app/api/__generated__/models/graphExecutionsPaginated"; -import type { InfiniteData } from "@tanstack/react-query"; - -function hasValidExecutionsData( - page: unknown, -): page is { data: GraphExecutionsPaginated } { - return ( - typeof page === "object" && - page !== null && - "data" in page && - typeof (page as { data: unknown }).data === "object" && - (page as { data: unknown }).data !== null && - "executions" in (page as { data: GraphExecutionsPaginated }).data - ); -} - -export function computeRunsCount( - infiniteData: InfiniteData | undefined, - runsLength: number, -): number { - const lastPage = infiniteData?.pages.at(-1); - if (!hasValidExecutionsData(lastPage)) return runsLength; - return lastPage.data.pagination?.total_items || runsLength; -} - -export function getNextRunsPageParam(lastPage: unknown): number | undefined { - if (!hasValidExecutionsData(lastPage)) return undefined; - - const { pagination } = lastPage.data; - const hasMore = - pagination.current_page * pagination.page_size < pagination.total_items; - return hasMore ? pagination.current_page + 1 : undefined; -} - -export function extractRunsFromPages( - infiniteData: InfiniteData | undefined, -) { - return ( - infiniteData?.pages.flatMap((page) => { - if (!hasValidExecutionsData(page)) return []; - return page.data.executions || []; - }) || [] - ); -} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/useSidebarRunsList.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/useSidebarRunsList.ts index 7f7155bbdf..971b90c2e3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/useSidebarRunsList.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/sidebar/SidebarRunsList/useSidebarRunsList.ts @@ -2,20 +2,18 @@ import { useEffect, useMemo } from "react"; +import { + okData, + getPaginationNextPageNumber, + getPaginatedTotalCount, + unpaginate, +} from "@/app/api/helpers"; import { useGetV1ListGraphExecutionsInfinite } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { useGetV2ListPresets } from "@/app/api/__generated__/endpoints/presets/presets"; import { useGetV1ListExecutionSchedulesForAGraph } from "@/app/api/__generated__/endpoints/schedules/schedules"; -import type { GraphExecutionJobInfo } from "@/app/api/__generated__/models/graphExecutionJobInfo"; -import type { LibraryAgentPresetResponse } from "@/app/api/__generated__/models/libraryAgentPresetResponse"; -import { okData } from "@/app/api/helpers"; import { useExecutionEvents } from "@/hooks/useExecutionEvents"; import { useQueryClient } from "@tanstack/react-query"; import { parseAsString, useQueryStates } from "nuqs"; -import { - computeRunsCount, - extractRunsFromPages, - getNextRunsPageParam, -} from "./helpers"; function parseTab( value: string | null, @@ -66,7 +64,7 @@ export function useSidebarRunsList({ query: { enabled: !!graphId, refetchOnWindowFocus: false, - getNextPageParam: getNextRunsPageParam, + getNextPageParam: getPaginationNextPageNumber, }, }, ); @@ -74,7 +72,7 @@ export function useSidebarRunsList({ const schedulesQuery = useGetV1ListExecutionSchedulesForAGraph(graphId, { query: { enabled: !!graphId, - select: (r) => okData(r), + select: okData, }, }); @@ -83,13 +81,13 @@ export function useSidebarRunsList({ { query: { enabled: !!graphId, - select: (r) => okData(r)?.presets, + select: (r) => okData(r)?.presets, }, }, ); const runs = useMemo( - () => extractRunsFromPages(runsQuery.data), + () => (runsQuery.data ? unpaginate(runsQuery.data, "executions") : []), [runsQuery.data], ); @@ -104,7 +102,7 @@ export function useSidebarRunsList({ [allPresets], ); - const runsCount = computeRunsCount(runsQuery.data, runs.length); + const runsCount = getPaginatedTotalCount(runsQuery.data, runs.length); const schedulesCount = schedules.length; const templatesCount = templates.length; const triggersCount = triggers.length; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts index 394edb1a6d..b4cc2baca8 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/useNewAgentLibraryView.ts @@ -2,7 +2,6 @@ import { useGetV2GetLibraryAgent } from "@/app/api/__generated__/endpoints/libra import { useGetV2GetASpecificPreset } from "@/app/api/__generated__/endpoints/presets/presets"; import { GraphExecutionJobInfo } from "@/app/api/__generated__/models/graphExecutionJobInfo"; import { GraphExecutionMeta } from "@/app/api/__generated__/models/graphExecutionMeta"; -import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { LibraryAgentPreset } from "@/app/api/__generated__/models/libraryAgentPreset"; import { okData } from "@/app/api/helpers"; import { useParams } from "next/navigation"; @@ -31,11 +30,7 @@ export function useNewAgentLibraryView() { data: agent, isSuccess, error, - } = useGetV2GetLibraryAgent(agentId, { - query: { - select: okData, - }, - }); + } = useGetV2GetLibraryAgent(agentId, { query: { select: okData } }); const [{ activeItem, activeTab: activeTabRaw }, setQueryStates] = useQueryStates({ @@ -53,7 +48,7 @@ export function useNewAgentLibraryView() { } = useGetV2GetASpecificPreset(activeItem ?? "", { query: { enabled: Boolean(activeTab === "templates" && activeItem), - select: okData, + select: okData, }, }); const activeTemplate = diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-schedule-details-view.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-schedule-details-view.tsx index 414aa3863b..61161088fc 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-schedule-details-view.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-schedule-details-view.tsx @@ -23,7 +23,7 @@ import LoadingBox from "@/components/__legacy__/ui/loading"; import { useToastOnFail } from "@/components/molecules/Toast/use-toast"; import { humanizeCronExpression } from "@/lib/cron-expression-utils"; import { formatScheduleTime } from "@/lib/timezone-utils"; -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { PlayIcon } from "lucide-react"; import { AgentRunStatus } from "./agent-run-status-chip"; @@ -48,11 +48,7 @@ export function AgentScheduleDetailsView({ const toastOnFail = useToastOnFail(); // Get user's timezone for displaying schedule times - const { data: userTimezone } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : undefined), - }, - }); + const userTimezone = useUserTimezone(); const infoStats: { label: string; value: React.ReactNode }[] = useMemo(() => { return [ diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler-dialog.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler-dialog.tsx index e998823a89..30c3e7d777 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler-dialog.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler-dialog.tsx @@ -4,8 +4,8 @@ import { Button } from "@/components/__legacy__/ui/button"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { CronScheduler } from "@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler"; import { Dialog } from "@/components/molecules/Dialog/Dialog"; -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; import { getTimezoneDisplayName } from "@/lib/timezone-utils"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { InfoIcon } from "lucide-react"; // Base type for cron expression only @@ -50,11 +50,7 @@ export function CronSchedulerDialog(props: CronSchedulerDialogProps) { ); // Get user's timezone - const { data: userTimezone } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : undefined), - }, - }); + const userTimezone = useUserTimezone(); const timezoneDisplay = getTimezoneDisplayName(userTimezone || "UTC"); // Reset state when dialog opens diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/use-agent-runs.ts b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/use-agent-runs.ts index f997726e21..c74a37e6d0 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/use-agent-runs.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/use-agent-runs.ts @@ -1,15 +1,20 @@ +import { + GraphExecutionMeta as LegacyGraphExecutionMeta, + GraphID, + GraphExecutionID, +} from "@/lib/autogpt-server-api"; +import { getQueryClient } from "@/lib/react-query/queryClient"; +import { + getPaginatedTotalCount, + getPaginationNextPageNumber, + unpaginate, +} from "@/app/api/helpers"; import { getV1ListGraphExecutionsResponse, getV1ListGraphExecutionsResponse200, useGetV1ListGraphExecutionsInfinite, } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { GraphExecutionsPaginated } from "@/app/api/__generated__/models/graphExecutionsPaginated"; -import { getQueryClient } from "@/lib/react-query/queryClient"; -import { - GraphExecutionMeta as LegacyGraphExecutionMeta, - GraphID, - GraphExecutionID, -} from "@/lib/autogpt-server-api"; import { GraphExecutionMeta as RawGraphExecutionMeta } from "@/app/api/__generated__/models/graphExecutionMeta"; export type GraphExecutionMeta = Omit< @@ -44,15 +49,7 @@ export const useAgentRunsInfinite = (graphID?: GraphID) => { { page: 1, page_size: 20 }, { query: { - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as GraphExecutionsPaginated) - .pagination; - const hasMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return hasMore ? pagination.current_page + 1 : undefined; - }, + getNextPageParam: getPaginationNextPageNumber, // Prevent query from running if graphID is not available (yet) ...(!graphID @@ -80,15 +77,8 @@ export const useAgentRunsInfinite = (graphID?: GraphID) => { queryClient, ); - const agentRuns = - queryResults?.pages.flatMap((page) => { - const response = page.data as GraphExecutionsPaginated; - return response.executions; - }) ?? []; - - const agentRunCount = ( - queryResults?.pages.at(-1)?.data as GraphExecutionsPaginated | undefined - )?.pagination.total_items; + const agentRuns = queryResults ? unpaginate(queryResults, "executions") : []; + const agentRunCount = getPaginatedTotalCount(queryResults); const upsertAgentRun = (newAgentRun: GraphExecutionMeta) => { queryClient.setQueryData( diff --git a/autogpt_platform/frontend/src/app/(platform)/library/components/LibraryAgentList/useLibraryAgentList.ts b/autogpt_platform/frontend/src/app/(platform)/library/components/LibraryAgentList/useLibraryAgentList.ts index 8ae2c659a6..e9db9a02da 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/components/LibraryAgentList/useLibraryAgentList.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/components/LibraryAgentList/useLibraryAgentList.ts @@ -1,7 +1,11 @@ "use client"; +import { + getPaginatedTotalCount, + getPaginationNextPageNumber, + unpaginate, +} from "@/app/api/helpers"; import { useGetV2ListLibraryAgentsInfinite } from "@/app/api/__generated__/endpoints/library/library"; -import { LibraryAgentResponse } from "@/app/api/__generated__/models/libraryAgentResponse"; import { useLibraryPageContext } from "../state-provider"; import { useLibraryAgentsStore } from "@/hooks/useLibraryAgents/store"; import { getInitialData } from "./helpers"; @@ -11,7 +15,7 @@ export const useLibraryAgentList = () => { const { agents: cachedAgents } = useLibraryAgentsStore(); const { - data: agents, + data: agentsQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -26,27 +30,15 @@ export const useLibraryAgentList = () => { { query: { initialData: getInitialData(cachedAgents, searchTerm, 8), - getNextPageParam: (lastPage) => { - const pagination = (lastPage.data as LibraryAgentResponse).pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, + getNextPageParam: getPaginationNextPageNumber, }, }, ); - const allAgents = - agents?.pages?.flatMap((page) => { - const response = page.data as LibraryAgentResponse; - return response.agents; - }) ?? []; - - const agentCount = agents?.pages?.[0] - ? (agents.pages[0].data as LibraryAgentResponse).pagination.total_items - : 0; + const allAgents = agentsQueryData + ? unpaginate(agentsQueryData, "agents") + : []; + const agentCount = getPaginatedTotalCount(agentsQueryData); return { allAgents, diff --git a/autogpt_platform/frontend/src/app/(platform)/library/hooks/useFavoriteAgents.ts b/autogpt_platform/frontend/src/app/(platform)/library/hooks/useFavoriteAgents.ts index 633ad72712..933670ca80 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/hooks/useFavoriteAgents.ts +++ b/autogpt_platform/frontend/src/app/(platform)/library/hooks/useFavoriteAgents.ts @@ -1,10 +1,15 @@ "use client"; +import { + getPaginatedTotalCount, + getPaginationNextPageNumber, + unpaginate, +} from "@/app/api/helpers"; import { useGetV2ListFavoriteLibraryAgentsInfinite } from "@/app/api/__generated__/endpoints/library/library"; export function useFavoriteAgents() { const { - data: agents, + data: agentsQueryData, fetchNextPage, hasNextPage, isFetchingNextPage, @@ -15,36 +20,14 @@ export function useFavoriteAgents() { page_size: 10, }, { - query: { - getNextPageParam: (lastPage) => { - // Only paginate on successful responses - if (!lastPage || lastPage.status !== 200) return undefined; - - const pagination = lastPage.data.pagination; - const isMore = - pagination.current_page * pagination.page_size < - pagination.total_items; - - return isMore ? pagination.current_page + 1 : undefined; - }, - }, + query: { getNextPageParam: getPaginationNextPageNumber }, }, ); - const allAgents = - agents?.pages?.flatMap((page) => { - // Only process successful responses - if (!page || page.status !== 200) return []; - const response = page.data; - return response?.agents || []; - }) ?? []; - - const agentCount = (() => { - const firstPage = agents?.pages?.[0]; - // Only count from successful responses - if (!firstPage || firstPage.status !== 200) return 0; - return firstPage.data?.pagination?.total_items || 0; - })(); + const allAgents = agentsQueryData + ? unpaginate(agentsQueryData, "agents") + : []; + const agentCount = getPaginatedTotalCount(agentsQueryData); return { allAgents, diff --git a/autogpt_platform/frontend/src/app/(platform)/monitoring/components/SchedulesTable.tsx b/autogpt_platform/frontend/src/app/(platform)/monitoring/components/SchedulesTable.tsx index f069510b01..ad35db11b1 100644 --- a/autogpt_platform/frontend/src/app/(platform)/monitoring/components/SchedulesTable.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/monitoring/components/SchedulesTable.tsx @@ -15,11 +15,11 @@ import { ScrollArea } from "@/components/__legacy__/ui/scroll-area"; import { ClockIcon, Loader2 } from "lucide-react"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { humanizeCronExpression } from "@/lib/cron-expression-utils"; +import { useUserTimezone } from "@/lib/hooks/useUserTimezone"; import { formatScheduleTime, getTimezoneAbbreviation, } from "@/lib/timezone-utils"; -import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; import { Select, SelectContent, @@ -66,11 +66,7 @@ export const SchedulesTable = ({ const [selectedFilter, setSelectedFilter] = useState(""); // Graph ID // Get user's timezone for displaying schedule times - const { data: userTimezone } = useGetV1GetUserTimezone({ - query: { - select: (res) => (res.status === 200 ? res.data.timezone : "UTC"), - }, - }); + const userTimezone = useUserTimezone() ?? "UTC"; const filteredAndSortedSchedules = [...schedules] .filter( diff --git a/autogpt_platform/frontend/src/app/(platform)/monitoring/page.tsx b/autogpt_platform/frontend/src/app/(platform)/monitoring/page.tsx index 5e70245ac9..3b5aa46839 100644 --- a/autogpt_platform/frontend/src/app/(platform)/monitoring/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/monitoring/page.tsx @@ -7,6 +7,7 @@ import { useGetV1ListExecutionSchedulesForAUser, useDeleteV1DeleteExecutionSchedule, } from "@/app/api/__generated__/endpoints/schedules/schedules"; +import { okData } from "@/app/api/helpers"; import { Card } from "@/components/__legacy__/ui/card"; import { SchedulesTable } from "@/app/(platform)/monitoring/components/SchedulesTable"; @@ -34,8 +35,7 @@ const Monitor = () => { useGetV1ListExecutionSchedulesForAUser(); const deleteScheduleMutation = useDeleteV1DeleteExecutionSchedule(); - const schedules = - schedulesResponse?.status === 200 ? schedulesResponse.data : []; + const schedules = okData(schedulesResponse) ?? []; const removeSchedule = useCallback( async (scheduleId: string) => { diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts index 5fe691f025..d4ad54162e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/api-keys/components/APIKeySection/useAPISection.ts @@ -4,6 +4,7 @@ import { useDeleteV1RevokeApiKey, useGetV1ListUserApiKeys, } from "@/app/api/__generated__/endpoints/api-keys/api-keys"; +import { okData } from "@/app/api/helpers"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { getQueryClient } from "@/lib/react-query/queryClient"; @@ -13,11 +14,7 @@ export const useAPISection = () => { const { data: apiKeys, isLoading } = useGetV1ListUserApiKeys({ query: { - select: (res) => { - if (res.status !== 200) return undefined; - - return res.data.filter((key) => key.status === "ACTIVE"); - }, + select: (res) => okData(res)?.filter((key) => key.status === "ACTIVE"), }, }); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts index 5b5afc5783..cf9749c53a 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/oauth-apps/components/useOAuthApps.ts @@ -7,7 +7,6 @@ import { usePostOauthUploadAppLogo, getGetOauthListMyOauthAppsQueryKey, } from "@/app/api/__generated__/endpoints/oauth/oauth"; -import { OAuthApplicationInfo } from "@/app/api/__generated__/models/oAuthApplicationInfo"; import { okData } from "@/app/api/helpers"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { getQueryClient } from "@/lib/react-query/queryClient"; @@ -19,7 +18,7 @@ export const useOAuthApps = () => { const [uploadingAppId, setUploadingAppId] = useState(null); const { data: oauthAppsResponse, isLoading } = useGetOauthListMyOauthApps({ - query: { select: okData }, + query: { select: okData }, }); const { mutateAsync: updateStatus } = usePatchOauthUpdateAppStatus({ diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx index f0eb8a6b8c..8b4d48de83 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/settings/page.tsx @@ -6,6 +6,7 @@ import { useGetV1GetNotificationPreferences, useGetV1GetUserTimezone, } from "@/app/api/__generated__/endpoints/auth/auth"; +import { okData } from "@/app/api/helpers"; import { Text } from "@/components/atoms/Text/Text"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; @@ -24,7 +25,7 @@ export default function SettingsPage() { } = useGetV1GetNotificationPreferences({ query: { enabled: !!user, - select: (res) => (res.status === 200 ? res.data : null), + select: okData, }, }); @@ -32,9 +33,7 @@ export default function SettingsPage() { useGetV1GetUserTimezone({ query: { enabled: !!user, - select: (res) => { - return res.status === 200 ? String(res.data.timezone) : "not-set"; - }, + select: (res) => okData(res)?.timezone ?? "not-set", }, }); diff --git a/autogpt_platform/frontend/src/app/api/helpers.ts b/autogpt_platform/frontend/src/app/api/helpers.ts index 2ed45c9517..e9a708ba4c 100644 --- a/autogpt_platform/frontend/src/app/api/helpers.ts +++ b/autogpt_platform/frontend/src/app/api/helpers.ts @@ -1,7 +1,12 @@ +import type { InfiniteData } from "@tanstack/react-query"; import { getV1IsOnboardingEnabled, getV1OnboardingState, } from "./__generated__/endpoints/onboarding/onboarding"; +import { Pagination } from "./__generated__/models/pagination"; + +export type OKData = + (TResponse & { status: 200 })["data"]; /** * Narrow an orval response to its success payload if and only if it is a `200` status with OK shape. @@ -9,13 +14,15 @@ import { * Usage with React Query select: * ```ts * const { data: agent } = useGetV2GetLibraryAgent(agentId, { - * query: { select: okData }, + * query: { select: okData }, * }); * * data // is now properly typed as LibraryAgent | undefined * ``` */ -export function okData(res: unknown): T | undefined { +export function okData( + res: TResponse | undefined, +): OKData | undefined { if (!res || typeof res !== "object") return undefined; // status must exist and be exactly 200 @@ -26,7 +33,88 @@ export function okData(res: unknown): T | undefined { // check presence to safely return it as T; the generic T is enforced at call sites. if (!("data" in (res as Record))) return undefined; - return (res as { data: T }).data; + return res.data; +} + +export function getPaginatedTotalCount( + infiniteData: InfiniteData | undefined, + fallbackCount?: number, +): number { + const lastPage = infiniteData?.pages.at(-1); + if (!hasValidPaginationInfo(lastPage)) return fallbackCount ?? 0; + return lastPage.data.pagination.total_items ?? fallbackCount ?? 0; +} + +export function getPaginationNextPageNumber( + lastPage: + | { data: { pagination?: Pagination; [key: string]: any } } + | undefined, +): number | undefined { + if (!hasValidPaginationInfo(lastPage)) return undefined; + + const { pagination } = lastPage.data; + const hasMore = + pagination.current_page * pagination.page_size < pagination.total_items; + return hasMore ? pagination.current_page + 1 : undefined; +} + +/** Make one list from a paginated infinite query result. */ +export function unpaginate< + TResponse extends { status: number; data: any }, + TPageDataKey extends { + // Only allow keys for which the value is an array: + [K in keyof OKData]: OKData[K] extends any[] + ? K + : never; + }[keyof OKData] & + string, + TItemData extends OKData[TPageDataKey][number], +>( + infiniteData: InfiniteData, + pageListKey: TPageDataKey, +): TItemData[] { + return ( + infiniteData?.pages.flatMap((page) => { + if (!hasValidListPage(page, pageListKey)) return []; + return page.data[pageListKey] || []; + }) || [] + ); +} + +function hasValidListPage( + page: unknown, + pageListKey: TKey, +): page is { status: 200; data: { [key in TKey]: any[] } } { + return ( + typeof page === "object" && + page !== null && + "status" in page && + page.status === 200 && + "data" in page && + typeof page.data === "object" && + page.data !== null && + pageListKey in page.data && + Array.isArray((page.data as Record)[pageListKey]) + ); +} + +function hasValidPaginationInfo( + page: unknown, +): page is { data: { pagination: Pagination; [key: string]: any } } { + return ( + typeof page === "object" && + page !== null && + "data" in page && + typeof page.data === "object" && + page.data !== null && + "pagination" in page.data && + typeof page.data.pagination === "object" && + page.data.pagination !== null && + "total_items" in page.data.pagination && + "total_pages" in page.data.pagination && + "current_page" in page.data.pagination && + "page_size" in page.data.pagination + ); } type ResponseWithData = { status: number; data: unknown }; diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index 61a3600892..2ead2189ed 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -4624,7 +4624,7 @@ "get": { "tags": ["v2", "executions", "review", "v2", "executions", "review"], "summary": "Get Pending Reviews for Execution", - "description": "Get all pending reviews for a specific graph execution.\n\nRetrieves all reviews with status \"WAITING\" for the specified graph execution\nthat belong to the authenticated user. Results are ordered by creation time\n(oldest first) to preserve review order within the execution.\n\nArgs:\n graph_exec_id: ID of the graph execution to get reviews for\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects for the specified execution\n\nRaises:\n HTTPException:\n - 403: If user doesn't own the graph execution\n - 500: If authentication fails or database error occurs\n\nNote:\n Only returns reviews owned by the authenticated user for security.\n Reviews with invalid status are excluded with warning logs.", + "description": "Get all pending reviews for a specific graph execution.\n\nRetrieves all reviews with status \"WAITING\" for the specified graph execution\nthat belong to the authenticated user. Results are ordered by creation time\n(oldest first) to preserve review order within the execution.\n\nArgs:\n graph_exec_id: ID of the graph execution to get reviews for\n user_id: Authenticated user ID from security dependency\n\nReturns:\n List of pending review objects for the specified execution\n\nRaises:\n HTTPException:\n - 404: If the graph execution doesn't exist or isn't owned by this user\n - 500: If authentication fails or database error occurs\n\nNote:\n Only returns reviews owned by the authenticated user for security.\n Reviews with invalid status are excluded with warning logs.", "operationId": "getV2Get pending reviews for execution", "security": [{ "HTTPBearerJWT": [] }], "parameters": [ @@ -4650,11 +4650,10 @@ } } }, - "400": { "description": "Invalid graph execution ID" }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" }, - "403": { "description": "Access denied to graph execution" }, + "404": { "description": "Graph execution not found" }, "422": { "description": "Validation Error", "content": { @@ -5349,7 +5348,11 @@ "responses": { "200": { "description": "Successful Response", - "content": { "application/json": { "schema": {} } } + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GraphMeta" } + } + } }, "401": { "$ref": "#/components/responses/HTTP401NotAuthenticatedError" diff --git a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/useGoogleDrivePicker.ts b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/useGoogleDrivePicker.ts index 66386882c6..f6478f6c2b 100644 --- a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/useGoogleDrivePicker.ts +++ b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/useGoogleDrivePicker.ts @@ -15,6 +15,7 @@ import { normalizePickerResponse, scopesIncludeDrive, } from "./helpers"; +import { okData } from "@/app/api/helpers"; const defaultScopes = ["https://www.googleapis.com/auth/drive.file"]; @@ -126,9 +127,9 @@ export function useGoogleDrivePicker(options: Props) { ); const response = await queryClient.fetchQuery(queryOptions); + const cred = okData(response); - if (response.status === 200 && response.data) { - const cred = response.data; + if (cred) { if (cred.type === "oauth2") { const oauthCred = cred as OAuth2Credentials; if (oauthCred.access_token) { diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentSelectStep/AgentSelectStep.tsx b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentSelectStep/AgentSelectStep.tsx index 2766f2d477..896840ba08 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentSelectStep/AgentSelectStep.tsx +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentSelectStep/AgentSelectStep.tsx @@ -34,7 +34,7 @@ export function AgentSelectStep({ }: Props) { const { // Data - agents, + myAgents, isLoading, error, // State @@ -99,7 +99,7 @@ export function AgentSelectStep({ description="Select your project that you'd like to publish" /> - {agents.length === 0 ? ( + {myAgents.length === 0 ? (
Uh-oh.. It seems like you don't have any agents in your @@ -130,7 +130,7 @@ export function AgentSelectStep({
- {agents.map((agent) => ( + {myAgents.map((agent) => (
(null); - const { data: myAgents, isLoading, error } = useGetV2GetMyAgents(); - - const agents: Agent[] = - (myAgents?.status === 200 && - myAgents.data.agents - .map( - (agent): Agent => ({ - name: agent.agent_name, - id: agent.agent_id, - version: agent.agent_version, - lastEdited: agent.last_edited.toLocaleDateString(), - imageSrc: agent.agent_image || "https://picsum.photos/300/200", - description: agent.description || "", - recommendedScheduleCron: agent.recommended_schedule_cron ?? null, - }), - ) - .sort( - (a: Agent, b: Agent) => - new Date(b.lastEdited).getTime() - new Date(a.lastEdited).getTime(), - )) || - []; + const { + data: _myAgents, + isLoading, + error, + } = useGetV2GetMyAgents(undefined, { + query: { + select: (res) => + okData(res) + ?.agents.map( + (agent): Agent => ({ + name: agent.agent_name, + id: agent.agent_id, + version: agent.agent_version, + lastEdited: agent.last_edited.toLocaleDateString(), + imageSrc: agent.agent_image || "https://picsum.photos/300/200", + description: agent.description || "", + recommendedScheduleCron: agent.recommended_schedule_cron ?? null, + }), + ) + .sort( + (a: Agent, b: Agent) => + new Date(b.lastEdited).getTime() - + new Date(a.lastEdited).getTime(), + ), + }, + }); + const myAgents = _myAgents ?? []; const handleAgentClick = ( _: string, @@ -70,7 +77,7 @@ export function useAgentSelectStep({ const handleNext = () => { if (selectedAgentId && selectedAgentVersion) { - const selectedAgent = agents.find( + const selectedAgent = myAgents.find( (agent) => agent.id === selectedAgentId, ); if (selectedAgent) { @@ -86,7 +93,7 @@ export function useAgentSelectStep({ return { // Data - agents, + myAgents, isLoading, error, // State diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/useAgentActivityDropdown.ts b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/useAgentActivityDropdown.ts index df8402906b..9dbd8aaf7e 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/useAgentActivityDropdown.ts +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/AgentActivityDropdown/useAgentActivityDropdown.ts @@ -4,6 +4,7 @@ import { useExecutionEvents } from "@/hooks/useExecutionEvents"; import { useLibraryAgents } from "@/hooks/useLibraryAgents/useLibraryAgents"; import type { GraphExecution } from "@/lib/autogpt-server-api/types"; import { useCallback, useEffect, useMemo, useState } from "react"; +import { okData } from "@/app/api/helpers"; import { NotificationState, categorizeExecutions, @@ -26,7 +27,7 @@ export function useAgentActivityDropdown() { isSuccess: executionsSuccess, error: executionsError, } = useGetV1ListAllExecutions({ - query: { select: (res) => (res.status === 200 ? res.data : null) }, + query: { select: okData }, }); // Get all graph IDs from agentInfoMap diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx index 49790547e4..863b9f601f 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx @@ -7,6 +7,7 @@ import { useBreakpoint } from "@/lib/hooks/useBreakpoint"; import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { useMemo } from "react"; +import { okData } from "@/app/api/helpers"; import { getAccountMenuItems, loggedInLinks, loggedOutLinks } from "../helpers"; import { AccountMenu } from "./AccountMenu/AccountMenu"; import { AgentActivityDropdown } from "./AgentActivityDropdown/AgentActivityDropdown"; @@ -29,7 +30,7 @@ export function NavbarView({ isLoggedIn, previewBranchName }: NavbarViewProps) { const { data: profile, isLoading: isProfileLoading } = useGetV2GetUserProfile( { query: { - select: (res) => (res.status === 200 ? res.data : null), + select: okData, enabled: isLoggedIn && !!user, // Include user ID in query key to ensure cache invalidation when user changes queryKey: ["/api/store/profile", user?.id], diff --git a/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx b/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx index 12014e50fe..2b04c0ed9a 100644 --- a/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx +++ b/autogpt_platform/frontend/src/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel.tsx @@ -7,6 +7,7 @@ import { cn } from "@/lib/utils"; import { Text } from "@/components/atoms/Text/Text"; import { useGetV1GetExecutionDetails } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecutionStatus"; +import { okData } from "@/app/api/helpers"; import { useGraphStore } from "@/app/(platform)/build/stores/graphStore"; import { useShallow } from "zustand/react/shallow"; @@ -29,13 +30,11 @@ export function FloatingReviewsPanel({ { query: { enabled: !!(graphId && executionId), + select: okData, }, }, ); - const executionStatus = - executionDetails?.status === 200 ? executionDetails.data.status : undefined; - // Get graph execution status from the store (updated via WebSocket) const graphExecutionStatus = useGraphStore( useShallow((state) => state.graphExecutionStatus), @@ -49,7 +48,7 @@ export function FloatingReviewsPanel({ if (executionId) { refetch(); } - }, [executionStatus, executionId, refetch]); + }, [executionDetails?.status, executionId, refetch]); // Refetch when graph execution status changes to REVIEW useEffect(() => { @@ -62,7 +61,7 @@ export function FloatingReviewsPanel({ !executionId || (!isLoading && pendingReviews.length === 0 && - executionStatus !== AgentExecutionStatus.REVIEW) + executionDetails?.status !== AgentExecutionStatus.REVIEW) ) { return null; } diff --git a/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx b/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx index ddc9bab972..3253b0ee6d 100644 --- a/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx +++ b/autogpt_platform/frontend/src/components/organisms/PendingReviewsList/PendingReviewsList.tsx @@ -44,8 +44,8 @@ export function PendingReviewsList({ const reviewActionMutation = usePostV2ProcessReviewAction({ mutation: { - onSuccess: (data: any) => { - if (data.status !== 200) { + onSuccess: (res) => { + if (res.status !== 200) { toast({ title: "Failed to process reviews", description: "Unexpected response from server", @@ -54,18 +54,18 @@ export function PendingReviewsList({ return; } - const response = data.data; + const result = res.data; - if (response.failed_count > 0) { + if (result.failed_count > 0) { toast({ title: "Reviews partially processed", - description: `${response.approved_count + response.rejected_count} succeeded, ${response.failed_count} failed. ${response.error || "Some reviews could not be processed."}`, + description: `${result.approved_count + result.rejected_count} succeeded, ${result.failed_count} failed. ${result.error || "Some reviews could not be processed."}`, variant: "destructive", }); } else { toast({ title: "Reviews processed successfully", - description: `${response.approved_count} approved, ${response.rejected_count} rejected`, + description: `${result.approved_count} approved, ${result.rejected_count} rejected`, variant: "default", }); } diff --git a/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts b/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts index 654ef858b6..07a2b33674 100644 --- a/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts +++ b/autogpt_platform/frontend/src/hooks/useAgentSafeMode.ts @@ -7,6 +7,7 @@ import { import { useToast } from "@/components/molecules/Toast/use-toast"; import { GraphModel } from "@/app/api/__generated__/models/graphModel"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { okData } from "@/app/api/helpers"; import { useQueryClient } from "@tanstack/react-query"; import { Graph } from "@/lib/autogpt-server-api/types"; @@ -47,15 +48,19 @@ export function useAgentSafeMode(graph: GraphModel | LibraryAgent | Graph) { const { data: libraryAgent, isLoading } = useGetV2GetLibraryAgentByGraphId( graphId, {}, - { query: { enabled: !isAgent && shouldShowToggle } }, + { + query: { + enabled: !isAgent && shouldShowToggle, + select: okData, + }, + }, ); const [localSafeMode, setLocalSafeMode] = useState(null); useEffect(() => { - if (!isAgent && libraryAgent?.status === 200) { - const backendValue = - libraryAgent.data?.settings?.human_in_the_loop_safe_mode; + if (!isAgent && libraryAgent) { + const backendValue = libraryAgent.settings?.human_in_the_loop_safe_mode; if (backendValue !== undefined) { setLocalSafeMode(backendValue); } diff --git a/autogpt_platform/frontend/src/hooks/usePendingReviews.ts b/autogpt_platform/frontend/src/hooks/usePendingReviews.ts index 111b50a491..8257814fcf 100644 --- a/autogpt_platform/frontend/src/hooks/usePendingReviews.ts +++ b/autogpt_platform/frontend/src/hooks/usePendingReviews.ts @@ -2,12 +2,13 @@ import { useGetV2GetPendingReviews, useGetV2GetPendingReviewsForExecution, } from "@/app/api/__generated__/endpoints/executions/executions"; +import { okData } from "@/app/api/helpers"; export function usePendingReviews() { const query = useGetV2GetPendingReviews(); return { - pendingReviews: (query.data?.status === 200 ? query.data.data : []) || [], + pendingReviews: okData(query.data) || [], isLoading: query.isLoading, error: query.error, refetch: query.refetch, @@ -18,7 +19,7 @@ export function usePendingReviewsForExecution(graphExecId: string) { const query = useGetV2GetPendingReviewsForExecution(graphExecId); return { - pendingReviews: (query.data?.status === 200 ? query.data.data : []) || [], + pendingReviews: okData(query.data) || [], isLoading: query.isLoading, error: query.error, refetch: query.refetch, diff --git a/autogpt_platform/frontend/src/lib/hooks/useUserTimezone.ts b/autogpt_platform/frontend/src/lib/hooks/useUserTimezone.ts new file mode 100644 index 0000000000..7d5cef3a04 --- /dev/null +++ b/autogpt_platform/frontend/src/lib/hooks/useUserTimezone.ts @@ -0,0 +1,8 @@ +import { okData } from "@/app/api/helpers"; +import { useGetV1GetUserTimezone } from "@/app/api/__generated__/endpoints/auth/auth"; + +export function useUserTimezone(): "not-set" | string | undefined { + return useGetV1GetUserTimezone({ + query: { select: (res) => okData(res)?.timezone }, + }).data; +} diff --git a/autogpt_platform/frontend/src/lib/react-query/queryClient.ts b/autogpt_platform/frontend/src/lib/react-query/queryClient.ts index 836c505c2f..512629e65b 100644 --- a/autogpt_platform/frontend/src/lib/react-query/queryClient.ts +++ b/autogpt_platform/frontend/src/lib/react-query/queryClient.ts @@ -21,6 +21,10 @@ function makeQueryClient() { let browserQueryClient: QueryClient | undefined = undefined; +/** Only for use *outside client component context* + * (so in server components, API helpers, etc.). + * + * In the context of client components, you should always use `useQueryClient()`. */ export function getQueryClient() { if (isServer) { // Server: create new client every time (so one user's data doesn't leak to another) From c3e407ef09a42f1c6c122363f96c0ce2a39527ef Mon Sep 17 00:00:00 2001 From: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Date: Mon, 22 Dec 2025 07:00:58 +0530 Subject: [PATCH 010/160] feat(frontend): add hover state to edge delete button in FlowEditor (#11601) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The delete button on flow editor edges is always visible, which creates visual clutter. This change makes the button only appear on hover, improving the UI while keeping it accessible. ### Changes 🏗️ - Added hover state management using `useState` to track when the edge delete button is hovered - Applied opacity transition to the delete button (fades in on hover, fades out when not hovered) - Added `onMouseEnter` and `onMouseLeave` handlers to the button to control hover state - Used `cn` utility for conditional className management - Button remains interactive even when `opacity-0` (still clickable for better UX) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Hover over an edge in the flow editor and verify the delete button fades in smoothly - [x] Move mouse away from edge and verify the delete button fades out smoothly - [x] Click the delete button while hovered to verify it still removes the edge connection - [x] Test with multiple edges to ensure hover state is independent per edge --- .../build/components/FlowEditor/edges/CustomEdge.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/CustomEdge.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/CustomEdge.tsx index b49fd11602..ff80fdc8ac 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/CustomEdge.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/CustomEdge.tsx @@ -1,3 +1,4 @@ +import { memo, useState } from "react"; import { Button } from "@/components/atoms/Button/Button"; import { BaseEdge, @@ -20,7 +21,6 @@ export type CustomEdgeData = { }; export type CustomEdge = XYEdge; -import { memo } from "react"; const CustomEdge = ({ id, @@ -35,6 +35,8 @@ const CustomEdge = ({ selected, }: EdgeProps) => { const removeConnection = useEdgeStore((state) => state.removeEdge); + const [isHovered, setIsHovered] = useState(false); + const [edgePath, labelX, labelY] = getBezierPath({ sourceX, sourceY, @@ -69,12 +71,17 @@ const CustomEdge = ({ From 88731b1f76a6ad0887f16f1159d5b682f8db101c Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Mon, 22 Dec 2025 12:13:06 +0100 Subject: [PATCH 011/160] feat(platform): marketplace update notifications with enhanced publishing workflow (#11630) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This PR implements a comprehensive marketplace update notification system that allows users to discover and update to newer agent versions, along with enhanced publishing workflows and UI improvements. image image image image ## Core Features ### 🔔 Marketplace Update Notifications - **Update detection**: Automatically detects when marketplace has newer agent versions than user's local copy - **Creator notifications**: Shows banners for creators with unpublished changes ready to publish - **Non-creator support**: Enables regular users to discover and update to newer marketplace versions - **Version comparison**: Intelligent logic comparing `graph_version` vs marketplace listing versions ### 📋 Enhanced Publishing Workflow - **Builder integration**: Added "Publish to Marketplace" button directly in the builder actions - **Unified banner system**: Consistent `MarketplaceBanners` component across library and marketplace pages - **Streamlined UX**: Fixed layout issues, improved button placement and styling - **Modal improvements**: Fixed thumbnail loading race conditions and infinite loop bugs ### 📚 Version History & Changelog - **Inline version history**: Added version changelog directly to marketplace agent pages - **Version comparison**: Clear display of available versions with current version highlighting - **Update mechanism**: Direct updates using `graph_version` parameter for accuracy ## Technical Implementation ### Backend Changes - **Database schema**: Added `agentGraphVersions` and `agentGraphId` fields to `StoreAgent` model - **API enhancement**: Updated store endpoints to expose graph version data for version comparison - **Data migration**: Fixed agent version field naming from `version` to `agentGraphVersions` - **Model updates**: Enhanced `LibraryAgentUpdateRequest` with `graph_version` field ### Frontend Architecture - **`useMarketplaceUpdate` hook**: Centralized marketplace update detection and creator identification - **`MarketplaceBanners` component**: Unified banner system with proper vertical layout and styling - **`AgentVersionChangelog` component**: Version history display for marketplace pages - **`PublishToMarketplace` component**: Builder integration with modal workflow ### Key Bug Fixes - **Thumbnail loading**: Fixed race condition where images wouldn't load on first modal open - **Infinite loops**: Used refs to prevent circular dependencies in `useThumbnailImages` hook - **Layout issues**: Fixed banner placement, removed duplicate breadcrumbs, corrected vertical layout - **Field naming**: Fixed `agent_version` vs `version` field inconsistencies across APIs ## Files Changed ### Backend - `autogpt_platform/backend/backend/server/v2/store/` - Enhanced store API with graph version data - `autogpt_platform/backend/backend/server/v2/library/` - Updated library API models - `autogpt_platform/backend/migrations/` - Database migrations for version fields - `autogpt_platform/backend/schema.prisma` - Schema updates for graph versions ### Frontend - `src/app/(platform)/components/MarketplaceBanners/` - New unified banner component - `src/app/(platform)/library/agents/[id]/components/` - Enhanced library views with banners - `src/app/(platform)/build/components/BuilderActions/` - Added marketplace publish button - `src/app/(platform)/marketplace/components/AgentInfo/` - Added inline version history - `src/components/contextual/PublishAgentModal/` - Fixed thumbnail loading and modal workflow ## User Experience Impact - **Better discovery**: Users automatically notified of newer agent versions - **Streamlined publishing**: Direct publish access from builder interface - **Reduced friction**: Fixed UI bugs, improved loading states, consistent design - **Enhanced transparency**: Inline version history on marketplace pages - **Creator workflow**: Better notifications for creators with unpublished changes ## Testing - ✅ Update banners appear correctly when marketplace has newer versions - ✅ Creator banners show for users with unpublished changes - ✅ Version comparison logic works with graph_version vs marketplace versions - ✅ Publish button in builder opens modal correctly with pre-populated data - ✅ Thumbnail images load properly on first modal open without infinite loops - ✅ Database migrations completed successfully with version field fixes - ✅ All existing tests updated and passing with new schema changes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --------- Co-authored-by: Claude Co-authored-by: Lluis Agusti Co-authored-by: Ubbe Co-authored-by: Reinier van der Leer --- .../backend/api/features/library/db.py | 23 +- .../backend/api/features/library/model.py | 3 + .../api/features/library/routes/agents.py | 1 + .../backend/api/features/store/cache.py | 6 +- .../backend/backend/api/features/store/db.py | 28 +- .../backend/api/features/store/db_test.py | 6 + .../backend/api/features/store/model.py | 11 + .../backend/api/features/store/model_test.py | 2 + .../backend/api/features/store/routes.py | 8 +- .../backend/api/features/store/routes_test.py | 6 +- .../backend/backend/data/onboarding.py | 2 + .../migration.sql | 45 +++ .../migration.sql | 81 +++++ autogpt_platform/backend/schema.prisma | 12 +- .../backend/snapshots/agt_details | 8 +- .../marketplace/components/ExpandleRow.tsx | 6 +- .../BuilderActions/BuilderActions.tsx | 2 + .../PublishToMarketplace.tsx | 36 ++ .../usePublishToMarketplace.ts | 48 +++ .../NewAgentLibraryView.tsx | 332 +++++++++++------- .../components/AgentVersionChangelog.tsx | 137 ++++++++ .../components/other/AgentSettingsButton.tsx | 14 +- .../SelectedRunView/SelectedRunView.tsx | 42 ++- .../SelectedRunActions/SelectedRunActions.tsx | 2 - .../SelectedScheduleView.tsx | 3 + .../SelectedTemplateView.tsx | 4 +- .../SelectedTriggerView.tsx | 4 +- .../selected-views/SelectedViewLayout.tsx | 7 + .../hooks/useMarketplaceUpdate.ts | 163 +++++++++ .../useNewAgentLibraryView.ts | 7 +- .../components/AgentInfo/AgentInfo.tsx | 143 +++++++- .../MainAgentPage/MainAgentPage.tsx | 97 ++--- .../MainAgentPage/useMainAgentPage.ts | 14 +- .../AgentTableRow/AgentTableRow.tsx | 3 + .../AgentTableRow/useAgentTableRow.ts | 4 +- .../MainDashboardPage/MainDashboardPage.tsx | 1 + .../frontend/src/app/api/openapi.json | 43 +++ .../MarketplaceBanners/MarketplaceBanners.tsx | 102 ++++++ .../PublishAgentModal/PublishAgentModal.tsx | 10 +- .../AgentInfoStep/AgentInfoStep.tsx | 37 ++ .../components/useThumbnailImages.ts | 11 + .../components/AgentInfoStep/helpers.ts | 145 ++++++-- .../AgentInfoStep/useAgentInfoStep.ts | 11 +- .../components/AgentReviewStep.tsx | 4 +- .../contextual/PublishAgentModal/helpers.ts | 4 + .../PublishAgentModal/usePublishAgentModal.ts | 151 +++++++- .../contextual/marketplaceHelpers.ts | 57 +++ 47 files changed, 1600 insertions(+), 286 deletions(-) create mode 100644 autogpt_platform/backend/migrations/20251216182139_fix_store_submission_agent_version/migration.sql create mode 100644 autogpt_platform/backend/migrations/20251217174500_fix_store_agent_versions_to_graph_versions/migration.sql create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/usePublishToMarketplace.ts create mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/AgentVersionChangelog.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/hooks/useMarketplaceUpdate.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/MarketplaceBanners/MarketplaceBanners.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/marketplaceHelpers.ts diff --git a/autogpt_platform/backend/backend/api/features/library/db.py b/autogpt_platform/backend/backend/api/features/library/db.py index ad34326700..69ed0d2730 100644 --- a/autogpt_platform/backend/backend/api/features/library/db.py +++ b/autogpt_platform/backend/backend/api/features/library/db.py @@ -538,6 +538,7 @@ async def update_library_agent( library_agent_id: str, user_id: str, auto_update_version: Optional[bool] = None, + graph_version: Optional[int] = None, is_favorite: Optional[bool] = None, is_archived: Optional[bool] = None, is_deleted: Optional[Literal[False]] = None, @@ -550,6 +551,7 @@ async def update_library_agent( library_agent_id: The ID of the LibraryAgent to update. user_id: The owner of this LibraryAgent. auto_update_version: Whether the agent should auto-update to active version. + graph_version: Specific graph version to update to. is_favorite: Whether this agent is marked as a favorite. is_archived: Whether this agent is archived. settings: User-specific settings for this library agent. @@ -563,8 +565,8 @@ async def update_library_agent( """ logger.debug( f"Updating library agent {library_agent_id} for user {user_id} with " - f"auto_update_version={auto_update_version}, is_favorite={is_favorite}, " - f"is_archived={is_archived}, settings={settings}" + f"auto_update_version={auto_update_version}, graph_version={graph_version}, " + f"is_favorite={is_favorite}, is_archived={is_archived}, settings={settings}" ) update_fields: prisma.types.LibraryAgentUpdateManyMutationInput = {} if auto_update_version is not None: @@ -581,10 +583,23 @@ async def update_library_agent( update_fields["isDeleted"] = is_deleted if settings is not None: update_fields["settings"] = SafeJson(settings.model_dump()) - if not update_fields: - raise ValueError("No values were passed to update") try: + # If graph_version is provided, update to that specific version + if graph_version is not None: + # Get the current agent to find its graph_id + agent = await get_library_agent(id=library_agent_id, user_id=user_id) + # Update to the specified version using existing function + return await update_agent_version_in_library( + user_id=user_id, + agent_graph_id=agent.graph_id, + agent_graph_version=graph_version, + ) + + # Otherwise, just update the simple fields + if not update_fields: + raise ValueError("No values were passed to update") + n_updated = await prisma.models.LibraryAgent.prisma().update_many( where={"id": library_agent_id, "userId": user_id}, data=update_fields, diff --git a/autogpt_platform/backend/backend/api/features/library/model.py b/autogpt_platform/backend/backend/api/features/library/model.py index ab4bec586e..c20f82afae 100644 --- a/autogpt_platform/backend/backend/api/features/library/model.py +++ b/autogpt_platform/backend/backend/api/features/library/model.py @@ -385,6 +385,9 @@ class LibraryAgentUpdateRequest(pydantic.BaseModel): auto_update_version: Optional[bool] = pydantic.Field( default=None, description="Auto-update the agent version" ) + graph_version: Optional[int] = pydantic.Field( + default=None, description="Specific graph version to update to" + ) is_favorite: Optional[bool] = pydantic.Field( default=None, description="Mark the agent as a favorite" ) diff --git a/autogpt_platform/backend/backend/api/features/library/routes/agents.py b/autogpt_platform/backend/backend/api/features/library/routes/agents.py index 5a043009fc..38c34dd3b8 100644 --- a/autogpt_platform/backend/backend/api/features/library/routes/agents.py +++ b/autogpt_platform/backend/backend/api/features/library/routes/agents.py @@ -285,6 +285,7 @@ async def update_library_agent( library_agent_id=library_agent_id, user_id=user_id, auto_update_version=payload.auto_update_version, + graph_version=payload.graph_version, is_favorite=payload.is_favorite, is_archived=payload.is_archived, settings=payload.settings, diff --git a/autogpt_platform/backend/backend/api/features/store/cache.py b/autogpt_platform/backend/backend/api/features/store/cache.py index 7832069d49..5d9bc24e5d 100644 --- a/autogpt_platform/backend/backend/api/features/store/cache.py +++ b/autogpt_platform/backend/backend/api/features/store/cache.py @@ -43,10 +43,12 @@ async def _get_cached_store_agents( # Cache individual agent details for 15 minutes @cached(maxsize=200, ttl_seconds=300, shared_cache=True) -async def _get_cached_agent_details(username: str, agent_name: str): +async def _get_cached_agent_details( + username: str, agent_name: str, include_changelog: bool = False +): """Cached helper to get agent details.""" return await store_db.get_store_agent_details( - username=username, agent_name=agent_name + username=username, agent_name=agent_name, include_changelog=include_changelog ) diff --git a/autogpt_platform/backend/backend/api/features/store/db.py b/autogpt_platform/backend/backend/api/features/store/db.py index 12f1783468..8e5a39df89 100644 --- a/autogpt_platform/backend/backend/api/features/store/db.py +++ b/autogpt_platform/backend/backend/api/features/store/db.py @@ -257,7 +257,7 @@ async def log_search_term(search_query: str): async def get_store_agent_details( - username: str, agent_name: str + username: str, agent_name: str, include_changelog: bool = False ) -> store_model.StoreAgentDetails: """Get PUBLIC store agent details from the StoreAgent view""" logger.debug(f"Getting store agent details for {username}/{agent_name}") @@ -322,6 +322,27 @@ async def get_store_agent_details( else: recommended_schedule_cron = None + # Fetch changelog data if requested + changelog_data = None + if include_changelog and store_listing: + changelog_versions = ( + await prisma.models.StoreListingVersion.prisma().find_many( + where={ + "storeListingId": store_listing.id, + "submissionStatus": prisma.enums.SubmissionStatus.APPROVED, + }, + order=[{"version": "desc"}], + ) + ) + changelog_data = [ + store_model.ChangelogEntry( + version=str(version.version), + changes_summary=version.changesSummary or "No changes recorded", + date=version.createdAt, + ) + for version in changelog_versions + ] + logger.debug(f"Found agent details for {username}/{agent_name}") return store_model.StoreAgentDetails( store_listing_version_id=agent.storeListingVersionId, @@ -338,10 +359,13 @@ async def get_store_agent_details( runs=agent.runs, rating=agent.rating, versions=agent.versions, + agentGraphVersions=agent.agentGraphVersions, + agentGraphId=agent.agentGraphId, last_updated=agent.updated_at, active_version_id=active_version_id, has_approved_version=has_approved_version, recommended_schedule_cron=recommended_schedule_cron, + changelog=changelog_data, ) except store_exceptions.AgentNotFoundError: raise @@ -409,6 +433,8 @@ async def get_store_agent_by_version_id( runs=agent.runs, rating=agent.rating, versions=agent.versions, + agentGraphVersions=agent.agentGraphVersions, + agentGraphId=agent.agentGraphId, last_updated=agent.updated_at, ) except store_exceptions.AgentNotFoundError: diff --git a/autogpt_platform/backend/backend/api/features/store/db_test.py b/autogpt_platform/backend/backend/api/features/store/db_test.py index 641f392d86..b48ce5db95 100644 --- a/autogpt_platform/backend/backend/api/features/store/db_test.py +++ b/autogpt_platform/backend/backend/api/features/store/db_test.py @@ -40,6 +40,8 @@ async def test_get_store_agents(mocker): runs=10, rating=4.5, versions=["1.0"], + agentGraphVersions=["1"], + agentGraphId="test-graph-id", updated_at=datetime.now(), is_available=False, useForOnboarding=False, @@ -83,6 +85,8 @@ async def test_get_store_agent_details(mocker): runs=10, rating=4.5, versions=["1.0"], + agentGraphVersions=["1"], + agentGraphId="test-graph-id", updated_at=datetime.now(), is_available=False, useForOnboarding=False, @@ -105,6 +109,8 @@ async def test_get_store_agent_details(mocker): runs=15, rating=4.8, versions=["1.0", "2.0"], + agentGraphVersions=["1", "2"], + agentGraphId="test-graph-id-active", updated_at=datetime.now(), is_available=True, useForOnboarding=False, diff --git a/autogpt_platform/backend/backend/api/features/store/model.py b/autogpt_platform/backend/backend/api/features/store/model.py index 745c969ae6..972898b296 100644 --- a/autogpt_platform/backend/backend/api/features/store/model.py +++ b/autogpt_platform/backend/backend/api/features/store/model.py @@ -7,6 +7,12 @@ import pydantic from backend.util.models import Pagination +class ChangelogEntry(pydantic.BaseModel): + version: str + changes_summary: str + date: datetime.datetime + + class MyAgent(pydantic.BaseModel): agent_id: str agent_version: int @@ -55,12 +61,17 @@ class StoreAgentDetails(pydantic.BaseModel): runs: int rating: float versions: list[str] + agentGraphVersions: list[str] + agentGraphId: str last_updated: datetime.datetime recommended_schedule_cron: str | None = None active_version_id: str | None = None has_approved_version: bool = False + # Optional changelog data when include_changelog=True + changelog: list[ChangelogEntry] | None = None + class Creator(pydantic.BaseModel): name: str diff --git a/autogpt_platform/backend/backend/api/features/store/model_test.py b/autogpt_platform/backend/backend/api/features/store/model_test.py index 3633e6549e..a37966601b 100644 --- a/autogpt_platform/backend/backend/api/features/store/model_test.py +++ b/autogpt_platform/backend/backend/api/features/store/model_test.py @@ -72,6 +72,8 @@ def test_store_agent_details(): runs=50, rating=4.5, versions=["1.0", "2.0"], + agentGraphVersions=["1", "2"], + agentGraphId="test-graph-id", last_updated=datetime.datetime.now(), ) assert details.slug == "test-agent" diff --git a/autogpt_platform/backend/backend/api/features/store/routes.py b/autogpt_platform/backend/backend/api/features/store/routes.py index 7d4db50d3f..7816b25d5a 100644 --- a/autogpt_platform/backend/backend/api/features/store/routes.py +++ b/autogpt_platform/backend/backend/api/features/store/routes.py @@ -152,7 +152,11 @@ async def get_agents( tags=["store", "public"], response_model=store_model.StoreAgentDetails, ) -async def get_agent(username: str, agent_name: str): +async def get_agent( + username: str, + agent_name: str, + include_changelog: bool = fastapi.Query(default=False), +): """ This is only used on the AgentDetails Page. @@ -162,7 +166,7 @@ async def get_agent(username: str, agent_name: str): # URL decode the agent name since it comes from the URL path agent_name = urllib.parse.unquote(agent_name).lower() agent = await store_cache._get_cached_agent_details( - username=username, agent_name=agent_name + username=username, agent_name=agent_name, include_changelog=include_changelog ) return agent diff --git a/autogpt_platform/backend/backend/api/features/store/routes_test.py b/autogpt_platform/backend/backend/api/features/store/routes_test.py index b9c040c149..7fdc0b9ebb 100644 --- a/autogpt_platform/backend/backend/api/features/store/routes_test.py +++ b/autogpt_platform/backend/backend/api/features/store/routes_test.py @@ -374,6 +374,8 @@ def test_get_agent_details( runs=100, rating=4.5, versions=["1.0.0", "1.1.0"], + agentGraphVersions=["1", "2"], + agentGraphId="test-graph-id", last_updated=FIXED_NOW, ) mock_db_call = mocker.patch("backend.api.features.store.db.get_store_agent_details") @@ -387,7 +389,9 @@ def test_get_agent_details( assert data.creator == "creator1" snapshot.snapshot_dir = "snapshots" snapshot.assert_match(json.dumps(response.json(), indent=2), "agt_details") - mock_db_call.assert_called_once_with(username="creator1", agent_name="test-agent") + mock_db_call.assert_called_once_with( + username="creator1", agent_name="test-agent", include_changelog=False + ) def test_get_creators_defaults( diff --git a/autogpt_platform/backend/backend/data/onboarding.py b/autogpt_platform/backend/backend/data/onboarding.py index d9977e9535..cc63b89afd 100644 --- a/autogpt_platform/backend/backend/data/onboarding.py +++ b/autogpt_platform/backend/backend/data/onboarding.py @@ -442,6 +442,8 @@ async def get_recommended_agents(user_id: str) -> list[StoreAgentDetails]: runs=agent.runs, rating=agent.rating, versions=agent.versions, + agentGraphVersions=agent.agentGraphVersions, + agentGraphId=agent.agentGraphId, last_updated=agent.updated_at, ) for agent in recommended_agents diff --git a/autogpt_platform/backend/migrations/20251216182139_fix_store_submission_agent_version/migration.sql b/autogpt_platform/backend/migrations/20251216182139_fix_store_submission_agent_version/migration.sql new file mode 100644 index 0000000000..676fe641b6 --- /dev/null +++ b/autogpt_platform/backend/migrations/20251216182139_fix_store_submission_agent_version/migration.sql @@ -0,0 +1,45 @@ +-- Fix StoreSubmission view to use agentGraphVersion instead of version for agent_version field +-- This ensures that submission.agent_version returns the actual agent graph version, not the store listing version number + +BEGIN; + +-- Recreate the view with the corrected agent_version field (using agentGraphVersion instead of version) +CREATE OR REPLACE VIEW "StoreSubmission" AS +SELECT + sl.id AS listing_id, + sl."owningUserId" AS user_id, + slv."agentGraphId" AS agent_id, + slv."agentGraphVersion" AS agent_version, + sl.slug, + COALESCE(slv.name, '') AS name, + slv."subHeading" AS sub_heading, + slv.description, + slv.instructions, + slv."imageUrls" AS image_urls, + slv."submittedAt" AS date_submitted, + slv."submissionStatus" AS status, + COALESCE(ar.run_count, 0::bigint) AS runs, + COALESCE(avg(sr.score::numeric), 0.0)::double precision AS rating, + slv.id AS store_listing_version_id, + slv."reviewerId" AS reviewer_id, + slv."reviewComments" AS review_comments, + slv."internalComments" AS internal_comments, + slv."reviewedAt" AS reviewed_at, + slv."changesSummary" AS changes_summary, + slv."videoUrl" AS video_url, + slv.categories +FROM "StoreListing" sl + JOIN "StoreListingVersion" slv ON slv."storeListingId" = sl.id + LEFT JOIN "StoreListingReview" sr ON sr."storeListingVersionId" = slv.id + LEFT JOIN ( + SELECT "AgentGraphExecution"."agentGraphId", count(*) AS run_count + FROM "AgentGraphExecution" + GROUP BY "AgentGraphExecution"."agentGraphId" + ) ar ON ar."agentGraphId" = slv."agentGraphId" +WHERE sl."isDeleted" = false +GROUP BY sl.id, sl."owningUserId", slv.id, slv."agentGraphId", slv."agentGraphVersion", sl.slug, slv.name, + slv."subHeading", slv.description, slv.instructions, slv."imageUrls", slv."submittedAt", + slv."submissionStatus", slv."reviewerId", slv."reviewComments", slv."internalComments", + slv."reviewedAt", slv."changesSummary", slv."videoUrl", slv.categories, ar.run_count; + +COMMIT; \ No newline at end of file diff --git a/autogpt_platform/backend/migrations/20251217174500_fix_store_agent_versions_to_graph_versions/migration.sql b/autogpt_platform/backend/migrations/20251217174500_fix_store_agent_versions_to_graph_versions/migration.sql new file mode 100644 index 0000000000..495ac113b4 --- /dev/null +++ b/autogpt_platform/backend/migrations/20251217174500_fix_store_agent_versions_to_graph_versions/migration.sql @@ -0,0 +1,81 @@ +-- Add agentGraphVersions field to StoreAgent view for consistent version comparison +-- This keeps the existing versions field unchanged and adds a new field with graph versions +-- This makes it safe for version comparison with LibraryAgent.graph_version + +BEGIN; + +-- Drop and recreate the StoreAgent view with new agentGraphVersions field +DROP VIEW IF EXISTS "StoreAgent"; + +CREATE OR REPLACE VIEW "StoreAgent" AS +WITH latest_versions AS ( + SELECT + "storeListingId", + MAX(version) AS max_version + FROM "StoreListingVersion" + WHERE "submissionStatus" = 'APPROVED' + GROUP BY "storeListingId" +), +agent_versions AS ( + SELECT + "storeListingId", + array_agg(DISTINCT version::text ORDER BY version::text) AS versions + FROM "StoreListingVersion" + WHERE "submissionStatus" = 'APPROVED' + GROUP BY "storeListingId" +), +agent_graph_versions AS ( + SELECT + "storeListingId", + array_agg(DISTINCT "agentGraphVersion"::text ORDER BY "agentGraphVersion"::text) AS graph_versions + FROM "StoreListingVersion" + WHERE "submissionStatus" = 'APPROVED' + GROUP BY "storeListingId" +) +SELECT + sl.id AS listing_id, + slv.id AS "storeListingVersionId", + slv."createdAt" AS updated_at, + sl.slug, + COALESCE(slv.name, '') AS agent_name, + slv."videoUrl" AS agent_video, + slv."agentOutputDemoUrl" AS agent_output_demo, + COALESCE(slv."imageUrls", ARRAY[]::text[]) AS agent_image, + slv."isFeatured" AS featured, + p.username AS creator_username, -- Allow NULL for malformed sub-agents + p."avatarUrl" AS creator_avatar, -- Allow NULL for malformed sub-agents + slv."subHeading" AS sub_heading, + slv.description, + slv.categories, + slv.search, + COALESCE(ar.run_count, 0::bigint) AS runs, + COALESCE(rs.avg_rating, 0.0)::double precision AS rating, + COALESCE(av.versions, ARRAY[slv.version::text]) AS versions, + COALESCE(agv.graph_versions, ARRAY[slv."agentGraphVersion"::text]) AS "agentGraphVersions", + slv."agentGraphId", + slv."isAvailable" AS is_available, + COALESCE(sl."useForOnboarding", false) AS "useForOnboarding" +FROM "StoreListing" sl +JOIN latest_versions lv + ON sl.id = lv."storeListingId" +JOIN "StoreListingVersion" slv + ON slv."storeListingId" = lv."storeListingId" + AND slv.version = lv.max_version + AND slv."submissionStatus" = 'APPROVED' +JOIN "AgentGraph" a + ON slv."agentGraphId" = a.id + AND slv."agentGraphVersion" = a.version +LEFT JOIN "Profile" p + ON sl."owningUserId" = p."userId" +LEFT JOIN "mv_review_stats" rs + ON sl.id = rs."storeListingId" +LEFT JOIN "mv_agent_run_counts" ar + ON a.id = ar."agentGraphId" +LEFT JOIN agent_versions av + ON sl.id = av."storeListingId" +LEFT JOIN agent_graph_versions agv + ON sl.id = agv."storeListingId" +WHERE sl."isDeleted" = false + AND sl."hasApprovedVersion" = true; + +COMMIT; \ No newline at end of file diff --git a/autogpt_platform/backend/schema.prisma b/autogpt_platform/backend/schema.prisma index d81cd4d1b1..2f6c109c03 100644 --- a/autogpt_platform/backend/schema.prisma +++ b/autogpt_platform/backend/schema.prisma @@ -734,11 +734,13 @@ view StoreAgent { description String categories String[] search Unsupported("tsvector")? @default(dbgenerated("''::tsvector")) - runs Int - rating Float - versions String[] - is_available Boolean @default(true) - useForOnboarding Boolean @default(false) + runs Int + rating Float + versions String[] + agentGraphVersions String[] + agentGraphId String + is_available Boolean @default(true) + useForOnboarding Boolean @default(false) // Materialized views used (refreshed every 15 minutes via pg_cron): // - mv_agent_run_counts - Pre-aggregated agent execution counts by agentGraphId diff --git a/autogpt_platform/backend/snapshots/agt_details b/autogpt_platform/backend/snapshots/agt_details index 649b5ed644..0d69f1c23a 100644 --- a/autogpt_platform/backend/snapshots/agt_details +++ b/autogpt_platform/backend/snapshots/agt_details @@ -23,8 +23,14 @@ "1.0.0", "1.1.0" ], + "agentGraphVersions": [ + "1", + "2" + ], + "agentGraphId": "test-graph-id", "last_updated": "2023-01-01T00:00:00", "recommended_schedule_cron": null, "active_version_id": null, - "has_approved_version": false + "has_approved_version": false, + "changelog": null } \ No newline at end of file diff --git a/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/components/ExpandleRow.tsx b/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/components/ExpandleRow.tsx index cf0f2389aa..e13a5eeed3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/components/ExpandleRow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/admin/marketplace/components/ExpandleRow.tsx @@ -102,7 +102,7 @@ export function ExpandableRow({ Version Status - {/* Changes */} + Changes Submitted Reviewed External Comments @@ -127,9 +127,9 @@ export function ExpandableRow({ )} {getStatusBadge(version.status)} - {/* + {version.changes_summary || "No summary"} - */} + {version.date_submitted ? formatDistanceToNow( diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/BuilderActions.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/BuilderActions.tsx index afe70bd434..64eb624621 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/BuilderActions.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/BuilderActions.tsx @@ -2,6 +2,7 @@ import { parseAsString, useQueryStates } from "nuqs"; import { AgentOutputs } from "./components/AgentOutputs/AgentOutputs"; import { RunGraph } from "./components/RunGraph/RunGraph"; import { ScheduleGraph } from "./components/ScheduleGraph/ScheduleGraph"; +import { PublishToMarketplace } from "./components/PublishToMarketplace/PublishToMarketplace"; import { memo } from "react"; export const BuilderActions = memo(() => { @@ -13,6 +14,7 @@ export const BuilderActions = memo(() => { +
); }); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx new file mode 100644 index 0000000000..1e6545dfbd --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx @@ -0,0 +1,36 @@ +import { ShareIcon } from "@phosphor-icons/react"; +import { BuilderActionButton } from "../BuilderActionButton"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/atoms/Tooltip/BaseTooltip"; +import { usePublishToMarketplace } from "./usePublishToMarketplace"; +import { PublishAgentModal } from "@/components/contextual/PublishAgentModal/PublishAgentModal"; + +export const PublishToMarketplace = ({ flowID }: { flowID: string | null }) => { + const { handlePublishToMarketplace, publishState, handleStateChange } = + usePublishToMarketplace({ flowID }); + + return ( + <> + + + + + + + Publish to Marketplace + + + + + ); +}; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/usePublishToMarketplace.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/usePublishToMarketplace.ts new file mode 100644 index 0000000000..ceaa4de905 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/usePublishToMarketplace.ts @@ -0,0 +1,48 @@ +import { useState, useCallback } from "react"; +import type { StoreSubmission } from "@/app/api/__generated__/models/storeSubmission"; + +export type PublishStep = "select" | "info" | "review"; + +export type PublishState = { + isOpen: boolean; + step: PublishStep; + submissionData: StoreSubmission | null; +}; + +const defaultPublishState: PublishState = { + isOpen: false, + step: "select", + submissionData: null, +}; + +interface UsePublishToMarketplaceProps { + flowID: string | null; +} + +export function usePublishToMarketplace({ + flowID, +}: UsePublishToMarketplaceProps) { + const [publishState, setPublishState] = + useState(defaultPublishState); + + const handlePublishToMarketplace = () => { + if (!flowID) return; + + // Open the publish modal starting with the select step + setPublishState({ + isOpen: true, + step: "select", + submissionData: null, + }); + }; + + const handleStateChange = useCallback((newState: PublishState) => { + setPublishState(newState); + }, []); + + return { + handlePublishToMarketplace, + publishState, + handleStateChange, + }; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx index 2d7a1b30f4..3768a0d150 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/NewAgentLibraryView.tsx @@ -5,8 +5,13 @@ import { Breadcrumbs } from "@/components/molecules/Breadcrumbs/Breadcrumbs"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; import { cn } from "@/lib/utils"; import { PlusIcon } from "@phosphor-icons/react"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { RunAgentModal } from "./components/modals/RunAgentModal/RunAgentModal"; +import { useMarketplaceUpdate } from "./hooks/useMarketplaceUpdate"; +import { AgentVersionChangelog } from "./components/AgentVersionChangelog"; +import { MarketplaceBanners } from "@/components/contextual/MarketplaceBanners/MarketplaceBanners"; +import { PublishAgentModal } from "@/components/contextual/PublishAgentModal/PublishAgentModal"; +import { AgentSettingsButton } from "./components/other/AgentSettingsButton"; import { AgentRunsLoading } from "./components/other/AgentRunsLoading"; import { EmptySchedules } from "./components/other/EmptySchedules"; import { EmptyTasks } from "./components/other/EmptyTasks"; @@ -16,9 +21,9 @@ import { SectionWrap } from "./components/other/SectionWrap"; import { LoadingSelectedContent } from "./components/selected-views/LoadingSelectedContent"; import { SelectedRunView } from "./components/selected-views/SelectedRunView/SelectedRunView"; import { SelectedScheduleView } from "./components/selected-views/SelectedScheduleView/SelectedScheduleView"; +import { SelectedSettingsView } from "./components/selected-views/SelectedSettingsView/SelectedSettingsView"; import { SelectedTemplateView } from "./components/selected-views/SelectedTemplateView/SelectedTemplateView"; import { SelectedTriggerView } from "./components/selected-views/SelectedTriggerView/SelectedTriggerView"; -import { SelectedSettingsView } from "./components/selected-views/SelectedSettingsView/SelectedSettingsView"; import { SelectedViewLayout } from "./components/selected-views/SelectedViewLayout"; import { SidebarRunsList } from "./components/sidebar/SidebarRunsList/SidebarRunsList"; import { AGENT_LIBRARY_SECTION_PADDING_X } from "./helpers"; @@ -26,6 +31,7 @@ import { useNewAgentLibraryView } from "./useNewAgentLibraryView"; export function NewAgentLibraryView() { const { + agentId, agent, ready, activeTemplate, @@ -39,18 +45,79 @@ export function NewAgentLibraryView() { handleSelectRun, handleCountsChange, handleClearSelectedRun, - onRunInitiated, handleSelectSettings, + onRunInitiated, onTriggerSetup, onScheduleCreated, } = useNewAgentLibraryView(); + const { + hasAgentMarketplaceUpdate, + hasMarketplaceUpdate, + latestMarketplaceVersion, + isUpdating, + modalOpen, + setModalOpen, + handlePublishUpdate, + handleUpdateToLatest, + } = useMarketplaceUpdate({ agent }); + + const [changelogOpen, setChangelogOpen] = useState(false); + useEffect(() => { if (agent) { document.title = `${agent.name} - Library - AutoGPT Platform`; } }, [agent]); + function renderMarketplaceUpdateBanner() { + return ( + setChangelogOpen(true)} + /> + ); + } + + function renderPublishAgentModal() { + if (!modalOpen || !agent) return null; + + return ( + { + if (!state.isOpen) { + setModalOpen(false); + } + }} + /> + ); + } + + function renderVersionChangelog() { + if (!agent) return null; + + return ( + setChangelogOpen(false)} + /> + ); + } + if (error) { return ( -
-
+ <> +
+
+
+ +
-
- -
-
+ {renderPublishAgentModal()} + {renderVersionChangelog()} + ); } return ( -
- -
- - New task - - } - agent={agent} - onRunCreated={onRunInitiated} - onScheduleCreated={onScheduleCreated} - onTriggerSetup={onTriggerSetup} - initialInputValues={activeTemplate?.inputs} - initialInputCredentials={activeTemplate?.credentials} - /> -
+ <> +
+ +
+
+ + New task + + } + agent={agent} + onRunCreated={onRunInitiated} + onScheduleCreated={onScheduleCreated} + onTriggerSetup={onTriggerSetup} + initialInputValues={activeTemplate?.inputs} + initialInputCredentials={activeTemplate?.credentials} + /> + +
+
- -
- - {activeItem ? ( - activeItem === "settings" ? ( - - ) : activeTab === "scheduled" ? ( - - ) : activeTab === "templates" ? ( - handleSelectRun(execution.id, "runs")} - onSwitchToRunsTab={() => setActiveTab("runs")} - /> - ) : activeTab === "triggers" ? ( - setActiveTab("runs")} - /> - ) : ( - - ) - ) : sidebarLoading ? ( - - ) : activeTab === "scheduled" ? ( - - - - ) : activeTab === "templates" ? ( - - - - ) : activeTab === "triggers" ? ( - - - - ) : ( - - + + {activeItem ? ( + activeItem === "settings" ? ( + + ) : activeTab === "scheduled" ? ( + + ) : activeTab === "templates" ? ( + + handleSelectRun(execution.id, "runs") + } + onSwitchToRunsTab={() => setActiveTab("runs")} + banner={renderMarketplaceUpdateBanner()} + /> + ) : activeTab === "triggers" ? ( + setActiveTab("runs")} + banner={renderMarketplaceUpdateBanner()} + /> + ) : ( + + ) + ) : sidebarLoading ? ( + + ) : activeTab === "scheduled" ? ( + - - )} -
+ banner={renderMarketplaceUpdateBanner()} + > + + + ) : activeTab === "templates" ? ( + + + + ) : activeTab === "triggers" ? ( + + + + ) : ( + + + + )} +
+ {renderPublishAgentModal()} + {renderVersionChangelog()} + ); } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/AgentVersionChangelog.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/AgentVersionChangelog.tsx new file mode 100644 index 0000000000..8781376b17 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/AgentVersionChangelog.tsx @@ -0,0 +1,137 @@ +"use client"; + +import { Text } from "@/components/atoms/Text/Text"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; +import { Skeleton } from "@/components/__legacy__/ui/skeleton"; +import { useGetV2GetSpecificAgent } from "@/app/api/__generated__/endpoints/store/store"; +import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { okData } from "@/app/api/helpers"; +import type { StoreAgentDetails } from "@/app/api/__generated__/models/storeAgentDetails"; +import React from "react"; + +interface AgentVersionChangelogProps { + agent: LibraryAgent; + isOpen: boolean; + onClose: () => void; +} + +interface VersionInfo { + version: number; + isCurrentVersion: boolean; +} + +export function AgentVersionChangelog({ + agent, + isOpen, + onClose, +}: AgentVersionChangelogProps) { + // Get marketplace data if agent has marketplace listing + const { data: storeAgentData, isLoading } = useGetV2GetSpecificAgent( + agent?.marketplace_listing?.creator.slug || "", + agent?.marketplace_listing?.slug || "", + {}, + { + query: { + enabled: !!( + agent?.marketplace_listing?.creator.slug && + agent?.marketplace_listing?.slug + ), + }, + }, + ); + + // Create version info from available graph versions + const storeData = okData(storeAgentData) as StoreAgentDetails | undefined; + const agentVersions: VersionInfo[] = storeData?.agentGraphVersions + ? storeData.agentGraphVersions + .map((versionStr: string) => parseInt(versionStr, 10)) + .sort((a: number, b: number) => b - a) // Sort descending (newest first) + .map((version: number) => ({ + version, + isCurrentVersion: version === agent.graph_version, + })) + : []; + + const renderVersionItem = (versionInfo: VersionInfo) => { + return ( +
+
+
+ + v{versionInfo.version} + + {versionInfo.isCurrentVersion && ( + + Current + + )} +
+
+ + + Available marketplace version + +
+ ); + }; + + return ( + { + if (!isOpen) { + onClose(); + } + }, + }} + > + +
+ {isLoading ? ( +
+ + + + +
+ ) : agentVersions.length > 0 ? ( +
+ + View changes and updates across different versions of this + agent. + + {agentVersions.map(renderVersionItem)} +
+ ) : ( +
+ + No version history available for this agent. + +
+ )} +
+
+
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx index bc710ebc4e..11dcbd943f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/other/AgentSettingsButton.tsx @@ -6,9 +6,14 @@ import { useAgentSafeMode } from "@/hooks/useAgentSafeMode"; interface Props { agent: LibraryAgent; onSelectSettings: () => void; + selected?: boolean; } -export function AgentSettingsButton({ agent, onSelectSettings }: Props) { +export function AgentSettingsButton({ + agent, + onSelectSettings, + selected, +}: Props) { const { hasHITLBlocks } = useAgentSafeMode(agent); if (!hasHITLBlocks) { @@ -17,13 +22,16 @@ export function AgentSettingsButton({ agent, onSelectSettings }: Props) { return ( ); } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx index 9e470139ff..c66f0e9245 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/SelectedRunView.tsx @@ -32,6 +32,7 @@ interface Props { runId: string; onSelectRun?: (id: string) => void; onClearSelectedRun?: () => void; + banner?: React.ReactNode; onSelectSettings?: () => void; selectedSettings?: boolean; } @@ -41,7 +42,9 @@ export function SelectedRunView({ runId, onSelectRun, onClearSelectedRun, + banner, onSelectSettings, + selectedSettings, }: Props) { const { run, preset, isLoading, responseError, httpError } = useSelectedRunView(agent.graph_id, runId); @@ -81,7 +84,12 @@ export function SelectedRunView({ return (
- +
@@ -105,7 +113,7 @@ export function SelectedRunView({ )} @@ -130,20 +138,22 @@ export function SelectedRunView({ {/* Human-in-the-Loop Reviews Section */} {withReviews && ( -
- {reviewsLoading ? ( - - ) : pendingReviews.length > 0 ? ( - - ) : ( - - No pending reviews for this execution - - )} +
+ + {reviewsLoading ? ( + + ) : pendingReviews.length > 0 ? ( + + ) : ( + + No pending reviews for this execution + + )} +
)} diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx index cb821b2ecd..83c836def4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/SelectedRunActions/SelectedRunActions.tsx @@ -15,7 +15,6 @@ import { SelectedActionsWrap } from "../../../SelectedActionsWrap"; import { ShareRunButton } from "../../../ShareRunButton/ShareRunButton"; import { CreateTemplateModal } from "../CreateTemplateModal/CreateTemplateModal"; import { useSelectedRunActions } from "./useSelectedRunActions"; -import { SafeModeToggle } from "../SafeModeToggle"; type Props = { agent: LibraryAgent; @@ -113,7 +112,6 @@ export function SelectedRunActions({ shareToken={run.share_token} /> )} - {canRunManually && ( <> + )} +
+ ) : ( +
+ Version {version} +
+ )}
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/MainAgentPage.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/MainAgentPage.tsx index 5eb3984cbc..4e5b9de6c4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/MainAgentPage.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/MainAgentPage.tsx @@ -2,6 +2,7 @@ import { Separator } from "@/components/__legacy__/ui/separator"; import { Breadcrumbs } from "@/components/molecules/Breadcrumbs/Breadcrumbs"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { okData } from "@/app/api/helpers"; import { MarketplaceAgentPageParams } from "../../agent/[creator]/[slug]/page"; import { AgentImages } from "../AgentImages/AgentImage"; import { AgentInfo } from "../AgentInfo/AgentInfo"; @@ -10,24 +11,33 @@ import { AgentsSection } from "../AgentsSection/AgentsSection"; import { BecomeACreator } from "../BecomeACreator/BecomeACreator"; import { useMainAgentPage } from "./useMainAgentPage"; -type MainAgentPageProps = { +interface Props { params: MarketplaceAgentPageParams; -}; +} -export const MainAgentPage = ({ params }: MainAgentPageProps) => { +export function MainAgentPage({ params }: Props) { const { agent, - otherAgents, - similarAgents, - libraryAgent, + user, isLoading, hasError, - user, + similarAgents, + otherAgents, + libraryAgent, } = useMainAgentPage({ params }); if (isLoading) { - return ; + return ( +
+
+
+ +
+
+
+ ); } + if (hasError) { return (
@@ -46,7 +56,8 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => { ); } - if (!agent) { + const agentData = okData(agent); + if (!agentData) { return (
@@ -55,8 +66,6 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => { isSuccess={false} responseError={{ message: "Agent not found" }} context="agent page" - onRetry={() => window.location.reload()} - className="w-full max-w-md" />
@@ -67,10 +76,10 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => { const breadcrumbs = [ { name: "Marketplace", link: "/marketplace" }, { - name: agent.creator, - link: `/marketplace/creator/${encodeURIComponent(agent.creator)}`, + name: agentData.creator ?? "", + link: `/marketplace/creator/${encodeURIComponent(agentData.creator ?? "")}`, }, - { name: agent.agent_name, link: "#" }, + { name: agentData.agent_name ?? "", link: "#" }, ]; return ( @@ -82,18 +91,29 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => {
parseInt(v, 10)), + ).toString() + : "1" + } + storeListingVersionId={agentData.store_listing_version_id ?? ""} isAgentAddedToLibrary={Boolean(libraryAgent)} + creatorSlug={params.creator} + agentSlug={params.slug} />
{ const orderedImages: string[] = []; // 1. YouTube/Overview video (if it exists) - if (agent.agent_video) { - orderedImages.push(agent.agent_video); + if (agentData.agent_video) { + orderedImages.push(agentData.agent_video); } // 2. First image (hero) - if (agent.agent_image.length > 0) { - orderedImages.push(agent.agent_image[0]); + if (agentData.agent_image?.length > 0) { + orderedImages.push(agentData.agent_image[0]); } // 3. Agent Output Demo (if it exists) - if ((agent as any).agent_output_demo) { - orderedImages.push((agent as any).agent_output_demo); + if (agentData.agent_output_demo) { + orderedImages.push(agentData.agent_output_demo); } // 4. Additional images - if (agent.agent_image.length > 1) { - orderedImages.push(...agent.agent_image.slice(1)); + if (agentData.agent_image && agentData.agent_image.length > 1) { + orderedImages.push(...agentData.agent_image.slice(1)); } return orderedImages; @@ -129,7 +149,7 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => { )} @@ -140,13 +160,8 @@ export const MainAgentPage = ({ params }: MainAgentPageProps) => { sectionTitle="Similar agents" /> )} - - +
); -}; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/useMainAgentPage.ts b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/useMainAgentPage.ts index ef38f336d0..674955545e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/useMainAgentPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainAgentPage/useMainAgentPage.ts @@ -5,8 +5,8 @@ import { import { MarketplaceAgentPageParams } from "../../agent/[creator]/[slug]/page"; import { useGetV2GetAgentByStoreId } from "@/app/api/__generated__/endpoints/library/library"; import { StoreAgentsResponse } from "@/app/api/__generated__/models/storeAgentsResponse"; -import { StoreAgentDetails } from "@/app/api/__generated__/models/storeAgentDetails"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; +import { okData } from "@/app/api/helpers"; import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; export const useMainAgentPage = ({ @@ -20,13 +20,7 @@ export const useMainAgentPage = ({ data: agent, isLoading: isAgentLoading, isError: isAgentError, - } = useGetV2GetSpecificAgent(creator_lower, params.slug, { - query: { - select: (x) => { - return x.data as StoreAgentDetails; - }, - }, - }); + } = useGetV2GetSpecificAgent(creator_lower, params.slug); const { data: otherAgents, isLoading: isOtherAgentsLoading, @@ -59,12 +53,12 @@ export const useMainAgentPage = ({ data: libraryAgent, isLoading: isLibraryAgentLoading, isError: isLibraryAgentError, - } = useGetV2GetAgentByStoreId(agent?.active_version_id ?? "", { + } = useGetV2GetAgentByStoreId(okData(agent)?.active_version_id ?? "", { query: { select: (x) => { return x.data as LibraryAgent; }, - enabled: !!user && !!agent?.active_version_id, + enabled: !!user && !!okData(agent)?.active_version_id, }, }); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/AgentTableRow.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/AgentTableRow.tsx index bdc735ea80..5b85ade1ae 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/AgentTableRow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/AgentTableRow.tsx @@ -33,6 +33,7 @@ export interface AgentTableRowProps { video_url?: string; categories?: string[]; store_listing_version_id?: string; + changes_summary?: string; onViewSubmission: (submission: StoreSubmission) => void; onDeleteSubmission: (submission_id: string) => void; onEditSubmission: ( @@ -58,6 +59,7 @@ export const AgentTableRow = ({ video_url, categories, store_listing_version_id, + changes_summary, onViewSubmission, onDeleteSubmission, onEditSubmission, @@ -80,6 +82,7 @@ export const AgentTableRow = ({ video_url, categories, store_listing_version_id, + changes_summary, }); // Determine if we should show Edit or View button diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/useAgentTableRow.ts b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/useAgentTableRow.ts index 7014eec198..14fbac4336 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/useAgentTableRow.ts +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/AgentTableRow/useAgentTableRow.ts @@ -25,6 +25,7 @@ interface useAgentTableRowProps { video_url?: string; categories?: string[]; store_listing_version_id?: string; + changes_summary?: string; } export const useAgentTableRow = ({ @@ -44,6 +45,7 @@ export const useAgentTableRow = ({ video_url, categories, store_listing_version_id, + changes_summary, }: useAgentTableRowProps) => { const handleView = () => { onViewSubmission({ @@ -72,7 +74,7 @@ export const useAgentTableRow = ({ image_urls: imageSrc, video_url, categories, - changes_summary: "Update Submission", + changes_summary: changes_summary || "Update Submission", store_listing_version_id, agent_id, }); diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/MainDashboardPage/MainDashboardPage.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/MainDashboardPage/MainDashboardPage.tsx index 71968d08c9..e53244db77 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/MainDashboardPage/MainDashboardPage.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/dashboard/components/MainDashboardPage/MainDashboardPage.tsx @@ -98,6 +98,7 @@ export const MainDashboardPage = () => { slug: submission.slug, store_listing_version_id: submission.store_listing_version_id || undefined, + changes_summary: submission.changes_summary || undefined, }))} onViewSubmission={onViewSubmission} onDeleteSubmission={onDeleteSubmission} diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index 2ead2189ed..ea3bbcc5d8 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -5113,6 +5113,16 @@ "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Name" } + }, + { + "name": "include_changelog", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "Include Changelog" + } } ], "responses": { @@ -6510,6 +6520,16 @@ "required": ["file"], "title": "Body_postV2Upload submission media" }, + "ChangelogEntry": { + "properties": { + "version": { "type": "string", "title": "Version" }, + "changes_summary": { "type": "string", "title": "Changes Summary" }, + "date": { "type": "string", "format": "date-time", "title": "Date" } + }, + "type": "object", + "required": ["version", "changes_summary", "date"], + "title": "ChangelogEntry" + }, "ChatRequest": { "properties": { "query": { "type": "string", "title": "Query" }, @@ -7953,6 +7973,11 @@ "title": "Auto Update Version", "description": "Auto-update the agent version" }, + "graph_version": { + "anyOf": [{ "type": "integer" }, { "type": "null" }], + "title": "Graph Version", + "description": "Specific graph version to update to" + }, "is_favorite": { "anyOf": [{ "type": "boolean" }, { "type": "null" }], "title": "Is Favorite", @@ -9508,6 +9533,12 @@ "type": "array", "title": "Versions" }, + "agentGraphVersions": { + "items": { "type": "string" }, + "type": "array", + "title": "Agentgraphversions" + }, + "agentGraphId": { "type": "string", "title": "Agentgraphid" }, "last_updated": { "type": "string", "format": "date-time", @@ -9525,6 +9556,16 @@ "type": "boolean", "title": "Has Approved Version", "default": false + }, + "changelog": { + "anyOf": [ + { + "items": { "$ref": "#/components/schemas/ChangelogEntry" }, + "type": "array" + }, + { "type": "null" } + ], + "title": "Changelog" } }, "type": "object", @@ -9543,6 +9584,8 @@ "runs", "rating", "versions", + "agentGraphVersions", + "agentGraphId", "last_updated" ], "title": "StoreAgentDetails" diff --git a/autogpt_platform/frontend/src/components/contextual/MarketplaceBanners/MarketplaceBanners.tsx b/autogpt_platform/frontend/src/components/contextual/MarketplaceBanners/MarketplaceBanners.tsx new file mode 100644 index 0000000000..4f826f6e85 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/MarketplaceBanners/MarketplaceBanners.tsx @@ -0,0 +1,102 @@ +"use client"; + +import { Button } from "@/components/atoms/Button/Button"; +import { Text } from "@/components/atoms/Text/Text"; + +interface MarketplaceBannersProps { + hasUpdate?: boolean; + latestVersion?: number; + hasUnpublishedChanges?: boolean; + currentVersion?: number; + isUpdating?: boolean; + onUpdate?: () => void; + onPublish?: () => void; + onViewChanges?: () => void; +} + +export function MarketplaceBanners({ + hasUpdate, + latestVersion, + hasUnpublishedChanges, + isUpdating, + onUpdate, + onPublish, +}: MarketplaceBannersProps) { + const renderUpdateBanner = () => { + if (hasUpdate && latestVersion) { + return ( +
+
+
+ + Update available + + + You should update your agent in order to get the latest / best + results + +
+ {onUpdate && ( +
+ +
+ )} +
+
+ ); + } + return null; + }; + + const renderUnpublishedChangesBanner = () => { + if (hasUnpublishedChanges) { + return ( +
+
+
+ + Unpublished changes + + + You've made changes to this agent that aren't + published yet. Would you like to publish the latest version? + +
+ {onPublish && ( +
+ +
+ )} +
+
+ ); + } + return null; + }; + + return ( + <> + {renderUpdateBanner()} + {renderUnpublishedChangesBanner()} + + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx index 2f5f9aeacf..dd91094f9c 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx @@ -18,6 +18,8 @@ export function PublishAgentModal({ trigger, targetState, onStateChange, + preSelectedAgentId, + preSelectedAgentVersion, }: Props) { const { // State @@ -34,7 +36,12 @@ export function PublishAgentModal({ handleGoToBuilder, handleSuccessFromInfo, handleBack, - } = usePublishAgentModal({ targetState, onStateChange }); + } = usePublishAgentModal({ + targetState, + onStateChange, + preSelectedAgentId, + preSelectedAgentVersion, + }); const { user, isUserLoading } = useSupabase(); @@ -65,6 +72,7 @@ export function PublishAgentModal({ selectedAgentId={selectedAgentId} selectedAgentVersion={selectedAgentVersion} initialData={initialData} + isMarketplaceUpdate={!!currentState.submissionData} /> ); case "review": diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/AgentInfoStep.tsx b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/AgentInfoStep.tsx index 3ec680ca95..7cd6b25d91 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/AgentInfoStep.tsx +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/AgentInfoStep.tsx @@ -19,6 +19,7 @@ export function AgentInfoStep({ selectedAgentId, selectedAgentVersion, initialData, + isMarketplaceUpdate, }: Props) { const { form, @@ -34,6 +35,7 @@ export function AgentInfoStep({ selectedAgentId, selectedAgentVersion, initialData, + isMarketplaceUpdate, }); const [cronScheduleDialogOpen, setCronScheduleDialogOpen] = @@ -65,6 +67,41 @@ export function AgentInfoStep({ + {/* Changes summary field - only shown for updates */} + {isMarketplaceUpdate && ( + ( +
+ + + This is required to help users understand what's + different in this update. + +
+ )} + /> + )} + + {/* Optional section label for updates */} + {isMarketplaceUpdate && ( +
+ + Optional: Update any of the following details (or leave them + as-is) + +
+ )} + (null); const { toast } = useToast(); + // Memoize the stringified version to detect actual changes + const initialImagesKey = JSON.stringify(initialImages); + + // Update images when initialImages prop changes (by value, not reference) + useEffect(() => { + if (initialImages.length > 0) { + setImages(initialImages); + setSelectedImage(initialSelectedImage || initialImages[0]); + } + }, [initialImagesKey, initialSelectedImage]); // Use stringified key instead of array reference + // Notify parent when images change useEffect(() => { onImagesChange(images); diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/helpers.ts b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/helpers.ts index bf7ed17219..86e6c0ce30 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/helpers.ts +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/helpers.ts @@ -1,45 +1,113 @@ import z from "zod"; import { validateYouTubeUrl } from "@/lib/utils"; -export const publishAgentSchema = z.object({ - title: z - .string() - .min(1, "Title is required") - .max(100, "Title must be less than 100 characters"), - subheader: z - .string() - .min(1, "Subheader is required") - .max(200, "Subheader must be less than 200 characters"), - slug: z - .string() - .min(1, "Slug is required") - .max(50, "Slug must be less than 50 characters") - .regex( - /^[a-z0-9-]+$/, - "Slug can only contain lowercase letters, numbers, and hyphens", - ), - youtubeLink: z - .string() - .refine(validateYouTubeUrl, "Please enter a valid YouTube URL"), - category: z.string().min(1, "Category is required"), - description: z - .string() - .min(1, "Description is required") - .max(1000, "Description must be less than 1000 characters"), - recommendedScheduleCron: z.string().optional(), - instructions: z - .string() - .optional() - .refine( - (val) => !val || val.length <= 2000, - "Instructions must be less than 2000 characters", - ), - agentOutputDemo: z - .string() - .refine(validateYouTubeUrl, "Please enter a valid YouTube URL"), -}); +// Create conditional schema that changes based on whether it's a marketplace update +export const publishAgentSchemaFactory = ( + isMarketplaceUpdate: boolean = false, +) => { + const baseSchema = { + changesSummary: isMarketplaceUpdate + ? z + .string() + .min(1, "Changes summary is required for updates") + .max(500, "Changes summary must be less than 500 characters") + : z.string().optional(), + title: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || val.length <= 100, + "Title must be less than 100 characters", + ) + : z + .string() + .min(1, "Title is required") + .max(100, "Title must be less than 100 characters"), + subheader: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || val.length <= 200, + "Subheader must be less than 200 characters", + ) + : z + .string() + .min(1, "Subheader is required") + .max(200, "Subheader must be less than 200 characters"), + slug: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || (val.length <= 50 && /^[a-z0-9-]+$/.test(val)), + "Slug can only contain lowercase letters, numbers, and hyphens", + ) + : z + .string() + .min(1, "Slug is required") + .max(50, "Slug must be less than 50 characters") + .regex( + /^[a-z0-9-]+$/, + "Slug can only contain lowercase letters, numbers, and hyphens", + ), + youtubeLink: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || validateYouTubeUrl(val), + "Please enter a valid YouTube URL", + ) + : z + .string() + .refine(validateYouTubeUrl, "Please enter a valid YouTube URL"), + category: isMarketplaceUpdate + ? z.string().optional() + : z.string().min(1, "Category is required"), + description: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || val.length <= 1000, + "Description must be less than 1000 characters", + ) + : z + .string() + .min(1, "Description is required") + .max(1000, "Description must be less than 1000 characters"), + recommendedScheduleCron: z.string().optional(), + instructions: z + .string() + .optional() + .refine( + (val) => !val || val.length <= 2000, + "Instructions must be less than 2000 characters", + ), + agentOutputDemo: isMarketplaceUpdate + ? z + .string() + .optional() + .refine( + (val) => !val || validateYouTubeUrl(val), + "Please enter a valid YouTube URL", + ) + : z + .string() + .refine(validateYouTubeUrl, "Please enter a valid YouTube URL"), + }; -export type PublishAgentFormData = z.infer; + return z.object(baseSchema); +}; + +// Default schema for backwards compatibility +export const publishAgentSchema = publishAgentSchemaFactory(false); + +export type PublishAgentFormData = z.infer< + ReturnType +>; export interface PublishAgentInfoInitialData { agent_id: string; @@ -54,4 +122,5 @@ export interface PublishAgentInfoInitialData { recommendedScheduleCron?: string; instructions?: string; agentOutputDemo?: string; + changesSummary?: string; } diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/useAgentInfoStep.ts b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/useAgentInfoStep.ts index 6bec8dd355..f3dcfa1f21 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/useAgentInfoStep.ts +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentInfoStep/useAgentInfoStep.ts @@ -9,7 +9,7 @@ import * as Sentry from "@sentry/nextjs"; import { PublishAgentFormData, PublishAgentInfoInitialData, - publishAgentSchema, + publishAgentSchemaFactory, } from "./helpers"; export interface Props { @@ -18,6 +18,7 @@ export interface Props { selectedAgentId: string | null; selectedAgentVersion: number | null; initialData?: PublishAgentInfoInitialData; + isMarketplaceUpdate?: boolean; } export function useAgentInfoStep({ @@ -26,6 +27,7 @@ export function useAgentInfoStep({ selectedAgentId, selectedAgentVersion, initialData, + isMarketplaceUpdate = false, }: Props) { const [agentId, setAgentId] = useState(null); const [images, setImages] = useState([]); @@ -36,8 +38,9 @@ export function useAgentInfoStep({ const api = useBackendAPI(); const form = useForm({ - resolver: zodResolver(publishAgentSchema), + resolver: zodResolver(publishAgentSchemaFactory(isMarketplaceUpdate)), defaultValues: { + changesSummary: "", title: "", subheader: "", slug: "", @@ -61,6 +64,7 @@ export function useAgentInfoStep({ // Update form with initial data form.reset({ + changesSummary: initialData.changesSummary || "", title: initialData.title, subheader: initialData.subheader, slug: initialData.slug.toLocaleLowerCase().trim(), @@ -104,9 +108,10 @@ export function useAgentInfoStep({ agent_output_demo_url: data.agentOutputDemo || "", agent_id: selectedAgentId || "", agent_version: selectedAgentVersion || 0, - slug: data.slug.replace(/\s+/g, "-"), + slug: (data.slug || "").replace(/\s+/g, "-"), categories: filteredCategories, recommended_schedule_cron: data.recommendedScheduleCron || null, + changes_summary: data.changesSummary || null, } as any); await queryClient.invalidateQueries({ diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentReviewStep.tsx b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentReviewStep.tsx index ba7456aa0d..58caa334dd 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentReviewStep.tsx +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/components/AgentReviewStep.tsx @@ -52,7 +52,7 @@ export function AgentReviewStep({ {subheader} @@ -80,7 +80,7 @@ export function AgentReviewStep({ {description ? ( {description} diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/helpers.ts b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/helpers.ts index a7175736b4..358c4da260 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/helpers.ts +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/helpers.ts @@ -8,4 +8,8 @@ export const emptyModalState = { category: "", description: "", recommendedScheduleCron: "", + instructions: "", + agentOutputDemo: "", + changesSummary: "", + additionalImages: [], }; diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts index 8face2c6b8..f83698d8e7 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts @@ -3,6 +3,12 @@ import { useCallback, useEffect, useState } from "react"; import { PublishAgentInfoInitialData } from "./components/AgentInfoStep/helpers"; import { useRouter } from "next/navigation"; import { emptyModalState } from "./helpers"; +import { + useGetV2GetMyAgents, + useGetV2ListMySubmissions, +} from "@/app/api/__generated__/endpoints/store/store"; +import { okData } from "@/app/api/helpers"; +import type { MyAgent } from "@/app/api/__generated__/models/myAgent"; const defaultTargetState: PublishState = { isOpen: false, @@ -22,9 +28,16 @@ export interface Props { trigger?: React.ReactNode; targetState?: PublishState; onStateChange?: (state: PublishState) => void; + preSelectedAgentId?: string; + preSelectedAgentVersion?: number; } -export function usePublishAgentModal({ targetState, onStateChange }: Props) { +export function usePublishAgentModal({ + targetState, + onStateChange, + preSelectedAgentId, + preSelectedAgentVersion, +}: Props) { const [currentState, setCurrentState] = useState( targetState || defaultTargetState, ); @@ -42,14 +55,20 @@ export function usePublishAgentModal({ targetState, onStateChange }: Props) { const [_, setSelectedAgent] = useState(null); - const [selectedAgentId, setSelectedAgentId] = useState(null); + const [selectedAgentId, setSelectedAgentId] = useState( + preSelectedAgentId || null, + ); const [selectedAgentVersion, setSelectedAgentVersion] = useState< number | null - >(null); + >(preSelectedAgentVersion || null); const router = useRouter(); + // Fetch agent data for pre-populating form when agent is pre-selected + const { data: myAgents } = useGetV2GetMyAgents(); + const { data: mySubmissions } = useGetV2ListMySubmissions(); + // Sync currentState with targetState when it changes from outside useEffect(() => { if (targetState) { @@ -60,13 +79,90 @@ export function usePublishAgentModal({ targetState, onStateChange }: Props) { // Reset internal state when modal opens useEffect(() => { if (!targetState) return; - if (targetState.isOpen && targetState.step === "select") { + if (targetState.isOpen) { setSelectedAgent(null); - setSelectedAgentId(null); - setSelectedAgentVersion(null); + setSelectedAgentId(preSelectedAgentId || null); + setSelectedAgentVersion(preSelectedAgentVersion || null); setInitialData(emptyModalState); } - }, [targetState]); + }, [targetState, preSelectedAgentId, preSelectedAgentVersion]); + + // Pre-populate form data when modal opens with info step and pre-selected agent + useEffect(() => { + if ( + !targetState?.isOpen || + targetState.step !== "info" || + !preSelectedAgentId || + !preSelectedAgentVersion + ) + return; + const agentsData = okData(myAgents) as any; + const submissionsData = okData(mySubmissions) as any; + + if (!agentsData || !submissionsData) return; + + // Find the agent data + const agent = agentsData.agents?.find( + (a: MyAgent) => a.agent_id === preSelectedAgentId, + ); + if (!agent) return; + + // Find published submission data for this agent (for updates) + const publishedSubmissionData = submissionsData.submissions + ?.filter( + (s: StoreSubmission) => + s.status === "APPROVED" && s.agent_id === preSelectedAgentId, + ) + .sort( + (a: StoreSubmission, b: StoreSubmission) => + b.agent_version - a.agent_version, + )[0]; + + // Populate initial data (same logic as handleNextFromSelect) + const initialFormData: PublishAgentInfoInitialData = publishedSubmissionData + ? { + agent_id: preSelectedAgentId, + title: publishedSubmissionData.name, + subheader: publishedSubmissionData.sub_heading || "", + description: publishedSubmissionData.description, + instructions: publishedSubmissionData.instructions || "", + youtubeLink: publishedSubmissionData.video_url || "", + agentOutputDemo: publishedSubmissionData.agent_output_demo_url || "", + additionalImages: [ + ...new Set(publishedSubmissionData.image_urls || []), + ].filter(Boolean) as string[], + category: publishedSubmissionData.categories?.[0] || "", + thumbnailSrc: agent.agent_image || "https://picsum.photos/300/200", + slug: publishedSubmissionData.slug, + recommendedScheduleCron: agent.recommended_schedule_cron || "", + changesSummary: publishedSubmissionData.changes_summary || "", + } + : { + ...emptyModalState, + agent_id: preSelectedAgentId, + title: agent.agent_name, + description: agent.description || "", + thumbnailSrc: agent.agent_image || "https://picsum.photos/300/200", + slug: agent.agent_name.replace(/ /g, "-"), + recommendedScheduleCron: agent.recommended_schedule_cron || "", + }; + + setInitialData(initialFormData); + + // Update the state with the submission data if this is an update + if (publishedSubmissionData) { + setCurrentState((prevState) => ({ + ...prevState, + submissionData: publishedSubmissionData, + })); + } + }, [ + targetState, + preSelectedAgentId, + preSelectedAgentVersion, + myAgents, + mySubmissions, + ]); function handleClose() { // Reset all internal state @@ -97,20 +193,43 @@ export function usePublishAgentModal({ targetState, onStateChange }: Props) { imageSrc: string; recommendedScheduleCron: string | null; }, + publishedSubmissionData?: StoreSubmission | null, ) { - setInitialData({ - ...emptyModalState, - agent_id: agentId, - title: agentData.name, - description: agentData.description, - thumbnailSrc: agentData.imageSrc, - slug: agentData.name.replace(/ /g, "-"), - recommendedScheduleCron: agentData.recommendedScheduleCron || "", - }); + // Pre-populate with published data if this is an update, otherwise use agent data + const initialFormData: PublishAgentInfoInitialData = publishedSubmissionData + ? { + agent_id: agentId, + title: publishedSubmissionData.name, + subheader: publishedSubmissionData.sub_heading || "", + description: publishedSubmissionData.description, + instructions: publishedSubmissionData.instructions || "", + youtubeLink: publishedSubmissionData.video_url || "", + agentOutputDemo: publishedSubmissionData.agent_output_demo_url || "", + additionalImages: [ + ...new Set(publishedSubmissionData.image_urls || []), + ].filter(Boolean) as string[], + category: publishedSubmissionData.categories?.[0] || "", // Take first category + thumbnailSrc: agentData.imageSrc, // Use current agent image + slug: publishedSubmissionData.slug, + recommendedScheduleCron: agentData.recommendedScheduleCron || "", + changesSummary: publishedSubmissionData.changes_summary || "", // Pre-populate with existing changes summary + } + : { + ...emptyModalState, + agent_id: agentId, + title: agentData.name, + description: agentData.description, + thumbnailSrc: agentData.imageSrc, + slug: agentData.name.replace(/ /g, "-"), + recommendedScheduleCron: agentData.recommendedScheduleCron || "", + }; + + setInitialData(initialFormData); updateState({ ...currentState, step: "info", + submissionData: publishedSubmissionData || null, }); setSelectedAgentId(agentId); diff --git a/autogpt_platform/frontend/src/components/contextual/marketplaceHelpers.ts b/autogpt_platform/frontend/src/components/contextual/marketplaceHelpers.ts new file mode 100644 index 0000000000..a080eca57f --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/marketplaceHelpers.ts @@ -0,0 +1,57 @@ +/** + * Marketplace-specific helper functions that can be reused across different marketplace screens + */ + +/** + * Calculate the latest marketplace version from agent graph versions + */ +export function getLatestMarketplaceVersion( + agentGraphVersions?: string[], +): number | undefined { + if (!agentGraphVersions?.length) return undefined; + + return Math.max(...agentGraphVersions.map((v: string) => parseInt(v, 10))); +} + +/** + * Check if the current user is the creator of the agent + * Uses ID-based comparison for accurate matching + */ +export function isUserCreator( + creatorId: string | undefined, + currentUserId: string | undefined, +): boolean { + if (!creatorId || !currentUserId) return false; + return creatorId === currentUserId; +} + +/** + * Calculate update status for an agent + */ +export function calculateUpdateStatus({ + latestMarketplaceVersion, + currentVersion, + isUserCreator, + isAgentAddedToLibrary, +}: { + latestMarketplaceVersion?: number; + currentVersion: number; + isUserCreator: boolean; + isAgentAddedToLibrary: boolean; +}) { + if (!latestMarketplaceVersion) { + return { hasUpdate: false, hasUnpublishedChanges: false }; + } + + const hasUnpublishedChanges = + isUserCreator && + isAgentAddedToLibrary && + currentVersion > latestMarketplaceVersion; + + const hasUpdate = + isAgentAddedToLibrary && + !isUserCreator && + latestMarketplaceVersion > currentVersion; + + return { hasUpdate, hasUnpublishedChanges }; +} From e26822998ff03c7a5e6b960d780619656759af6f Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Fri, 26 Dec 2025 16:17:24 +0000 Subject: [PATCH 012/160] fix: Handle missing or null 'items' key in DataForSEO Related Keywords block (#10989) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ - Modified the DataForSEO Related Keywords block to handle cases where the 'items' key is missing or has a null value in the API response. - Ensures that the code gracefully handles these scenarios by defaulting to an empty list, preventing potential errors. Fixes [AUTOGPT-SERVER-66D](https://sentry.io/organizations/significant-gravitas/issues/6902944636/). ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] The DataForSEO API now returns an empty list when there are no results, preventing the code from attempting to iterate on a null value. --- > [!NOTE] > Strengthens parsing of DataForSEO Labs response to avoid errors when `items` is missing or null. > > - In `backend/blocks/dataforseo/related_keywords.py` `run()`, sets `items = first_result.get("items") or []` when `first_result` is a `dict`, otherwise `[]`, ensuring safe iteration > - Prevents exceptions and yields empty results when no items are returned > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit cc465ddbf21489f51e81df8bc6e82f0ca7827d3b. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com> Co-authored-by: Toran Bruce Richards Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle Co-authored-by: Nicholas Tindle --- .../backend/blocks/dataforseo/related_keywords.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/dataforseo/related_keywords.py b/autogpt_platform/backend/backend/blocks/dataforseo/related_keywords.py index 7a7fbdd11a..0757cb6507 100644 --- a/autogpt_platform/backend/backend/blocks/dataforseo/related_keywords.py +++ b/autogpt_platform/backend/backend/blocks/dataforseo/related_keywords.py @@ -182,13 +182,10 @@ class DataForSeoRelatedKeywordsBlock(Block): if results and len(results) > 0: # results is a list, get the first element first_result = results[0] if isinstance(results, list) else results - items = ( - first_result.get("items", []) - if isinstance(first_result, dict) - else [] - ) - # Ensure items is never None - if items is None: + # Handle missing key, null value, or valid list value + if isinstance(first_result, dict): + items = first_result.get("items") or [] + else: items = [] for item in items: # Extract keyword_data from the item From dff8efa35d31d88001294b69c52f05085f98ef28 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 30 Dec 2025 20:22:32 +0700 Subject: [PATCH 013/160] fix(frontend): favico colour override issue (#11681) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Sometimes, on Dev, when navigating between pages, the Favico colour would revert from Green 🟢 (Dev) to Purple 🟣(Default). That's because the `/marketplace` page had custom code overriding it that I didn't notice earlier... I also made it use the Next.js metadata API, so it handles the favicon correctly across navigations. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally and test the above --- .../src/app/(platform)/marketplace/page.tsx | 9 ++----- autogpt_platform/frontend/src/app/layout.tsx | 24 +++++++++---------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx index e95e230377..9b7e6ae93b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/page.tsx @@ -1,11 +1,11 @@ -import { Metadata } from "next"; -import { Suspense } from "react"; import { prefetchGetV2ListStoreAgentsQuery, prefetchGetV2ListStoreCreatorsQuery, } from "@/app/api/__generated__/endpoints/store/store"; import { getQueryClient } from "@/lib/react-query/queryClient"; import { dehydrate, HydrationBoundary } from "@tanstack/react-query"; +import { Metadata } from "next"; +import { Suspense } from "react"; import { MainMarkeplacePage } from "./components/MainMarketplacePage/MainMarketplacePage"; import { MainMarketplacePageLoading } from "./components/MainMarketplacePageLoading"; @@ -48,11 +48,6 @@ export const metadata: Metadata = { description: "Find and use AI Agents created by our community", images: ["/images/store-twitter.png"], }, - icons: { - icon: "/favicon.ico", - shortcut: "/favicon-16x16.png", - apple: "/apple-touch-icon.png", - }, }; export default async function MarketplacePage(): Promise { diff --git a/autogpt_platform/frontend/src/app/layout.tsx b/autogpt_platform/frontend/src/app/layout.tsx index ff2590dc61..453f816dee 100644 --- a/autogpt_platform/frontend/src/app/layout.tsx +++ b/autogpt_platform/frontend/src/app/layout.tsx @@ -15,9 +15,21 @@ import { environment } from "@/services/environment"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { headers } from "next/headers"; +const isDev = environment.isDev(); +const isLocal = environment.isLocal(); + +const faviconPath = isDev + ? "/favicon-dev.ico" + : isLocal + ? "/favicon-local.ico" + : "/favicon.ico"; + export const metadata: Metadata = { title: "AutoGPT Platform", description: "Your one stop shop to creating AI Agents", + icons: { + icon: faviconPath, + }, }; export default async function RootLayout({ @@ -27,8 +39,6 @@ export default async function RootLayout({ }>) { const headersList = await headers(); const host = headersList.get("host") || ""; - const isDev = environment.isDev(); - const isLocal = environment.isLocal(); return ( - Date: Tue, 30 Dec 2025 20:22:57 +0700 Subject: [PATCH 014/160] fix(frontend): use DS Dialog on old builder (#11643) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Use the Design System `` on the old builder, which supports long content scrolling ( the current one does not, causing issues in graphs with many run inputs )... ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally and test the above ## Summary by CodeRabbit * **New Features** * Added Enhanced Rendering toggle for improved output handling and display (controlled via feature flag) * **Improvements** * Refined dialog layouts and user interactions * Enhanced copy-to-clipboard functionality with toast notifications upon copying ✏️ Tip: You can customize this high-level summary in your review settings. --- .../legacy-builder/ExpandableOutputDialog.tsx | 276 +++++++++--------- .../legacy-builder/RunnerInputUI.tsx | 54 ++-- 2 files changed, 173 insertions(+), 157 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx index 0050c6cf64..98edbca2fb 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx @@ -4,19 +4,12 @@ import { OutputActions, OutputItem, } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; import { beautifyString } from "@/lib/utils"; import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { Clipboard, Maximize2 } from "lucide-react"; import React, { FC, useMemo, useState } from "react"; import { Button } from "../../../../../components/__legacy__/ui/button"; -import { - Dialog, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, -} from "../../../../../components/__legacy__/ui/dialog"; import { ContentRenderer } from "../../../../../components/__legacy__/ui/render"; import { ScrollArea } from "../../../../../components/__legacy__/ui/scroll-area"; import { Separator } from "../../../../../components/__legacy__/ui/separator"; @@ -120,138 +113,155 @@ const ExpandableOutputDialog: FC = ({ }; return ( - - - - -
- - Full Output Preview -
- {enableEnhancedOutputHandling && ( -
- - -
- )} -
- - Execution ID: {execId} -
- Pin:{" "} - {beautifyString(pinName)} -
-
- -
- {useEnhancedRenderer && outputItems.length > 0 && ( -
- ({ - value: item.value, - metadata: item.metadata, - renderer: item.renderer, - }))} + +
+ + Full Output Preview +
+ {enableEnhancedOutputHandling && ( +
+ +
)} - -
- {data.length > 0 ? ( - useEnhancedRenderer ? ( -
- {outputItems.map((item) => ( - - ))} -
- ) : ( -
- {data.map((item, index) => ( -
-
- - Item {index + 1} of {data.length} - - -
- -
- -
-
- ))} -
- ) - ) : ( -
- No data available -
- )} -
-
+ } + controlled={{ + isOpen, + set: (open) => { + if (!open) onClose(); + }, + }} + onClose={onClose} + styling={{ + maxWidth: "56rem", + width: "90vw", + height: "90vh", + }} + > + +
+
+

+ Execution ID: {execId} +
+ Pin:{" "} + {beautifyString(pinName)} +

+
- -
- {data.length} item{data.length !== 1 ? "s" : ""} total -
-
- {!useEnhancedRenderer && ( - +
+ {useEnhancedRenderer && outputItems.length > 0 && ( +
+ ({ + value: item.value, + metadata: item.metadata, + renderer: item.renderer, + }))} + /> +
)} - + +
+ {data.length > 0 ? ( + useEnhancedRenderer ? ( +
+ {outputItems.map((item) => ( + + ))} +
+ ) : ( +
+ {data.map((item, index) => ( +
+
+ + Item {index + 1} of {data.length} + + +
+ +
+ +
+
+ ))} +
+ ) + ) : ( +
+ No data available +
+ )} +
+
- - + + +
+ {data.length} item{data.length !== 1 ? "s" : ""} total +
+
+ {!useEnhancedRenderer && ( + + )} + +
+
+
+
); }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/RunnerInputUI.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/RunnerInputUI.tsx index bff21c46f2..15983be9f5 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/RunnerInputUI.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/RunnerInputUI.tsx @@ -1,17 +1,11 @@ -import React, { useCallback } from "react"; +import { useCallback } from "react"; +import { AgentRunDraftView } from "@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; import type { CredentialsMetaInput, GraphMeta, } from "@/lib/autogpt-server-api/types"; -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, - DialogDescription, -} from "@/components/__legacy__/ui/dialog"; -import { AgentRunDraftView } from "@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view"; interface RunInputDialogProps { isOpen: boolean; @@ -70,21 +64,33 @@ export function RunnerInputDialog({ ); return ( - - - - Run your agent - {graph.name} - - - + { + if (!open) doClose(); + }, + }} + onClose={doClose} + styling={{ + maxWidth: "56rem", + width: "90vw", + }} + > + +
+

{graph.name}

+ +
+
); } From 66f0d97ca2de0578f029a0a1cf6fe685ba17f695 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Tue, 30 Dec 2025 20:21:53 +0700 Subject: [PATCH 015/160] fix(frontend): hide better chat link if not enabled (#11648) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ - Make `` a client component so its rendering is more predictable - Remove the `useMemo()` for the chat link to prevent the flash... - Make sure chat is added to the navbar links only after checking the flag is enabled - Improve logout with `useTransition` - Simplify feature flags setup ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally and test the above --- > [!NOTE] > Ensures the `Chat` nav item is hidden when the feature flag is off across desktop and mobile nav. > > - Inline-filters `loggedInLinks` to skip `Chat` when `Flag.CHAT` is false for both `NavbarLink` rendering and `MobileNavBar` menu items > - Removes `useMemo`/`linksWithChat` helper; maps directly over `loggedInLinks` and filters nulls in mobile, keeping icon mapping intact > - Cleans up unused `useMemo` import > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 79c42d87b4adb05155be684e1d0576073e872680. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --- autogpt_platform/frontend/pnpm-lock.yaml | 2 +- .../src/components/layout/Navbar/Navbar.tsx | 156 +++++++++++++++++- .../components/AccountLogoutOption.tsx | 41 +++-- .../Navbar/components/NavbarLoading.tsx | 9 +- .../layout/Navbar/components/NavbarView.tsx | 144 ---------------- .../src/components/layout/Navbar/data.ts | 25 --- .../services/feature-flags/use-get-flag.ts | 14 +- 7 files changed, 182 insertions(+), 209 deletions(-) delete mode 100644 autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx delete mode 100644 autogpt_platform/frontend/src/components/layout/Navbar/data.ts diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 54843fc589..7d39b68468 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -13011,7 +13011,7 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.2 + semver: 7.7.3 tapable: 2.2.3 typescript: 5.9.3 webpack: 5.101.3(esbuild@0.25.9) diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/Navbar.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/Navbar.tsx index 1441cbfb65..c5e9cabd63 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/Navbar.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/Navbar.tsx @@ -1,13 +1,157 @@ +"use client"; + +import { useGetV2GetUserProfile } from "@/app/api/__generated__/endpoints/store/store"; +import { okData } from "@/app/api/helpers"; +import { IconAutoGPTLogo, IconType } from "@/components/__legacy__/ui/icons"; +import { PreviewBanner } from "@/components/layout/Navbar/components/PreviewBanner/PreviewBanner"; +import { useBreakpoint } from "@/lib/hooks/useBreakpoint"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { environment } from "@/services/environment"; +import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; +import { AccountMenu } from "./components/AccountMenu/AccountMenu"; +import { AgentActivityDropdown } from "./components/AgentActivityDropdown/AgentActivityDropdown"; +import { LoginButton } from "./components/LoginButton"; +import { MobileNavBar } from "./components/MobileNavbar/MobileNavBar"; +import { NavbarLink } from "./components/NavbarLink"; +import { NavbarLoading } from "./components/NavbarLoading"; +import { Wallet } from "./components/Wallet/Wallet"; +import { getAccountMenuItems, loggedInLinks, loggedOutLinks } from "./helpers"; -import { NavbarView } from "./components/NavbarView"; -import { getNavbarAccountData } from "./data"; - -export async function Navbar() { - const { isLoggedIn } = await getNavbarAccountData(); +export function Navbar() { + const { user, isLoggedIn, isUserLoading } = useSupabase(); + const breakpoint = useBreakpoint(); + const isSmallScreen = breakpoint === "sm" || breakpoint === "base"; + const dynamicMenuItems = getAccountMenuItems(user?.role); + const isChatEnabled = useGetFlag(Flag.CHAT); const previewBranchName = environment.getPreviewStealingDev(); + const { data: profile, isLoading: isProfileLoading } = useGetV2GetUserProfile( + { + query: { + select: okData, + enabled: isLoggedIn && !!user, + // Include user ID in query key to ensure cache invalidation when user changes + queryKey: ["/api/store/profile", user?.id], + }, + }, + ); + + const isLoadingProfile = isProfileLoading || isUserLoading; + + const shouldShowPreviewBanner = Boolean(isLoggedIn && previewBranchName); + + const actualLoggedInLinks = + isChatEnabled === true + ? loggedInLinks.concat([{ name: "Chat", href: "/chat" }]) + : loggedInLinks; + + if (isUserLoading) { + return ; + } + return ( - + <> +
+ {shouldShowPreviewBanner && previewBranchName ? ( + + ) : null} + +
+ {/* Mobile Navbar - Adjust positioning */} + <> + {isLoggedIn && isSmallScreen ? ( +
+ + { + if (link.name === "Chat" && !isChatEnabled) { + return null; + } + + return { + icon: + link.name === "Marketplace" + ? IconType.Marketplace + : link.name === "Library" + ? IconType.Library + : link.name === "Build" + ? IconType.Builder + : link.name === "Chat" + ? IconType.Chat + : link.name === "Monitor" + ? IconType.Library + : IconType.LayoutDashboard, + text: link.name, + href: link.href, + }; + }) + .filter((item) => item !== null) as Array<{ + icon: IconType; + text: string; + href: string; + }>, + }, + ...dynamicMenuItems, + ]} + userEmail={profile?.name} + avatarSrc={profile?.avatar_url ?? ""} + /> +
+ ) : null} + + ); } diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/AccountMenu/components/AccountLogoutOption.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/AccountMenu/components/AccountLogoutOption.tsx index b0061ec2c9..570f05ca89 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/AccountMenu/components/AccountLogoutOption.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/AccountMenu/components/AccountLogoutOption.tsx @@ -6,45 +6,42 @@ import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { cn } from "@/lib/utils"; import * as Sentry from "@sentry/nextjs"; import { useRouter } from "next/navigation"; -import { useState } from "react"; +import { useTransition } from "react"; export function AccountLogoutOption() { - const [isLoggingOut, setIsLoggingOut] = useState(false); + const [isPending, startTransition] = useTransition(); const supabase = useSupabase(); const router = useRouter(); const { toast } = useToast(); - async function handleLogout() { - setIsLoggingOut(true); - try { - await supabase.logOut(); - router.push("/login"); - } catch (e) { - Sentry.captureException(e); - toast({ - title: "Error logging out", - description: - "Something went wrong when logging out. Please try again. If the problem persists, please contact support.", - variant: "destructive", - }); - } finally { - setTimeout(() => { - setIsLoggingOut(false); - }, 3000); - } + function handleLogout() { + startTransition(async () => { + try { + await supabase.logOut(); + router.replace("/login"); + } catch (e) { + Sentry.captureException(e); + toast({ + title: "Error logging out", + description: + "Something went wrong when logging out. Please try again. If the problem persists, please contact support.", + variant: "destructive", + }); + } + }); } return (
- {isLoggingOut ? ( + {isPending ? ( ) : ( <> diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarLoading.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarLoading.tsx index 42362d24d4..322574fdb0 100644 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarLoading.tsx +++ b/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarLoading.tsx @@ -5,16 +5,15 @@ export function NavbarLoading() { return ( ); diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx b/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx deleted file mode 100644 index 863b9f601f..0000000000 --- a/autogpt_platform/frontend/src/components/layout/Navbar/components/NavbarView.tsx +++ /dev/null @@ -1,144 +0,0 @@ -"use client"; - -import { useGetV2GetUserProfile } from "@/app/api/__generated__/endpoints/store/store"; -import { IconAutoGPTLogo, IconType } from "@/components/__legacy__/ui/icons"; -import { PreviewBanner } from "@/components/layout/Navbar/components/PreviewBanner/PreviewBanner"; -import { useBreakpoint } from "@/lib/hooks/useBreakpoint"; -import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; -import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; -import { useMemo } from "react"; -import { okData } from "@/app/api/helpers"; -import { getAccountMenuItems, loggedInLinks, loggedOutLinks } from "../helpers"; -import { AccountMenu } from "./AccountMenu/AccountMenu"; -import { AgentActivityDropdown } from "./AgentActivityDropdown/AgentActivityDropdown"; -import { LoginButton } from "./LoginButton"; -import { MobileNavBar } from "./MobileNavbar/MobileNavBar"; -import { NavbarLink } from "./NavbarLink"; -import { Wallet } from "./Wallet/Wallet"; -interface NavbarViewProps { - isLoggedIn: boolean; - previewBranchName?: string | null; -} - -export function NavbarView({ isLoggedIn, previewBranchName }: NavbarViewProps) { - const { user } = useSupabase(); - const breakpoint = useBreakpoint(); - const isSmallScreen = breakpoint === "sm" || breakpoint === "base"; - const dynamicMenuItems = getAccountMenuItems(user?.role); - const isChatEnabled = useGetFlag(Flag.CHAT); - - const { data: profile, isLoading: isProfileLoading } = useGetV2GetUserProfile( - { - query: { - select: okData, - enabled: isLoggedIn && !!user, - // Include user ID in query key to ensure cache invalidation when user changes - queryKey: ["/api/store/profile", user?.id], - }, - }, - ); - - const { isUserLoading } = useSupabase(); - const isLoadingProfile = isProfileLoading || isUserLoading; - - const linksWithChat = useMemo(() => { - const chatLink = { name: "Chat", href: "/chat" }; - return isChatEnabled ? [...loggedInLinks, chatLink] : loggedInLinks; - }, [isChatEnabled]); - - const shouldShowPreviewBanner = Boolean(isLoggedIn && previewBranchName); - - return ( - <> -
- {shouldShowPreviewBanner && previewBranchName ? ( - - ) : null} - -
- {/* Mobile Navbar - Adjust positioning */} - <> - {isLoggedIn && isSmallScreen ? ( -
- - ({ - icon: - link.name === "Marketplace" - ? IconType.Marketplace - : link.name === "Library" - ? IconType.Library - : link.name === "Build" - ? IconType.Builder - : link.name === "Chat" - ? IconType.Chat - : link.name === "Monitor" - ? IconType.Library - : IconType.LayoutDashboard, - text: link.name, - href: link.href, - })), - }, - ...dynamicMenuItems, - ]} - userEmail={profile?.name} - avatarSrc={profile?.avatar_url ?? ""} - /> -
- ) : null} - - - ); -} diff --git a/autogpt_platform/frontend/src/components/layout/Navbar/data.ts b/autogpt_platform/frontend/src/components/layout/Navbar/data.ts deleted file mode 100644 index 0d07cef78b..0000000000 --- a/autogpt_platform/frontend/src/components/layout/Navbar/data.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { prefetchGetV2GetUserProfileQuery } from "@/app/api/__generated__/endpoints/store/store"; -import { getQueryClient } from "@/lib/react-query/queryClient"; -import { getServerUser } from "@/lib/supabase/server/getServerUser"; - -export async function getNavbarAccountData() { - const { user } = await getServerUser(); - const isLoggedIn = Boolean(user); - const queryClient = getQueryClient(); - - if (!isLoggedIn) { - return { - profile: null, - isLoggedIn, - }; - } - try { - await prefetchGetV2GetUserProfileQuery(queryClient); - } catch (error) { - console.error("Error fetching profile:", error); - } - - return { - isLoggedIn, - }; -} diff --git a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts index e80adeb7b5..f05d7c68a4 100644 --- a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts +++ b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts @@ -2,7 +2,6 @@ import { DEFAULT_SEARCH_TERMS } from "@/app/(platform)/marketplace/components/HeroSection/helpers"; import { useFlags } from "launchdarkly-react-client-sdk"; -import { environment } from "../environment"; export enum Flag { BETA_BLOCKS = "beta-blocks", @@ -40,7 +39,7 @@ const mockFlags = { [Flag.BETA_BLOCKS]: [], [Flag.NEW_BLOCK_MENU]: false, [Flag.NEW_AGENT_RUNS]: false, - [Flag.GRAPH_SEARCH]: true, + [Flag.GRAPH_SEARCH]: false, [Flag.ENABLE_ENHANCED_OUTPUT_HANDLING]: false, [Flag.NEW_FLOW_EDITOR]: false, [Flag.BUILDER_VIEW_SWITCH]: false, @@ -48,17 +47,20 @@ const mockFlags = { [Flag.AGENT_FAVORITING]: false, [Flag.MARKETPLACE_SEARCH_TERMS]: DEFAULT_SEARCH_TERMS, [Flag.ENABLE_PLATFORM_PAYMENT]: false, - [Flag.CHAT]: true, + [Flag.CHAT]: false, }; export function useGetFlag(flag: T): FlagValues[T] | null { const currentFlags = useFlags(); const flagValue = currentFlags[flag]; - const isCloud = environment.isCloud(); - if ((isPwMockEnabled && !isCloud) || flagValue === undefined) { + const envEnabled = process.env.NEXT_PUBLIC_LAUNCHDARKLY_ENABLED === "true"; + const clientId = process.env.NEXT_PUBLIC_LAUNCHDARKLY_CLIENT_ID; + const isLaunchDarklyConfigured = envEnabled && clientId; + + if (!isLaunchDarklyConfigured || isPwMockEnabled) { return mockFlags[flag]; } - return flagValue; + return flagValue ?? mockFlags[flag]; } From 79d45a15d09f13f695082ef6b180ee589228b6fb Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Tue, 30 Dec 2025 12:10:30 -0600 Subject: [PATCH 016/160] feat(platform): Deduplicate insufficient funds Discord + email notifications (#11672) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Redis-based deduplication for insufficient funds notifications (both Discord alerts and user emails) when users run out of credits. This prevents spamming users and the PRODUCT Discord channel with repeated alerts for the same user+agent combination. ### Changes 🏗️ - **Redis-based deduplication** (`backend/executor/manager.py`): - Add `INSUFFICIENT_FUNDS_NOTIFIED_PREFIX` constant for Redis key prefix - Add `INSUFFICIENT_FUNDS_NOTIFIED_TTL_SECONDS` (30 days) as fallback cleanup - Implement deduplication in `_handle_insufficient_funds_notif` using Redis `SET NX` - Skip both email (`ZERO_BALANCE`) and Discord notifications for duplicate alerts per user+agent - Add `clear_insufficient_funds_notifications(user_id)` function to remove all notification flags for a user - **Clear flags on credit top-up** (`backend/data/credit.py`): - Call `clear_insufficient_funds_notifications` in `_top_up_credits` after successful auto-charge - Call `clear_insufficient_funds_notifications` in `fulfill_checkout` after successful manual top-up - This allows users to receive notifications again if they run out of funds in the future - **Comprehensive test coverage** (`backend/executor/manager_insufficient_funds_test.py`): - Test first-time notification sends both email and Discord alert - Test duplicate notifications are skipped for same user+agent - Test different agents for same user get separate alerts - Test clearing notifications removes all keys for a user - Test handling when no notification keys exist - Test notifications still sent when Redis fails (graceful degradation) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] First insufficient funds alert sends both email and Discord notification - [x] Duplicate alerts for same user+agent are skipped - [x] Different agents for same user each get their own notification - [x] Topping up credits clears notification flags - [x] Redis failure gracefully falls back to sending notifications - [x] 30-day TTL provides automatic cleanup as fallback - [x] Manually test this works with scheduled agents --- > [!NOTE] > Introduces Redis-backed deduplication for insufficient-funds alerts and resets flags on successful credit additions. > > - **Dedup insufficient-funds alerts** in `executor/manager.py` using Redis `SET NX` with `INSUFFICIENT_FUNDS_NOTIFIED_PREFIX` and 30‑day TTL; skips duplicate ZERO_BALANCE email + Discord alerts per `user_id`+`graph_id`, with graceful fallback if Redis fails. > - **Reset notification flags on credit increases** by adding `clear_insufficient_funds_notifications(user_id)` and invoking it when enabling/adding positive `GRANT`/`TOP_UP` transactions in `data/credit.py`. > - **Tests** (`executor/manager_insufficient_funds_test.py`): first-time vs duplicate behavior, per-agent separation, clearing keys (including no-key and Redis-error cases), and clearing on `_add_transaction`/`_enable_transaction`. > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1a4413b3a1d3951d875b6fc4566619cbe511f15f. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --------- Co-authored-by: Ubbe Co-authored-by: Claude --- .../backend/backend/data/credit.py | 29 + .../backend/backend/executor/manager.py | 63 ++ .../manager_insufficient_funds_test.py | 560 ++++++++++++++++++ 3 files changed, 652 insertions(+) create mode 100644 autogpt_platform/backend/backend/executor/manager_insufficient_funds_test.py diff --git a/autogpt_platform/backend/backend/data/credit.py b/autogpt_platform/backend/backend/data/credit.py index 95f0b158e1..f3c5365446 100644 --- a/autogpt_platform/backend/backend/data/credit.py +++ b/autogpt_platform/backend/backend/data/credit.py @@ -341,6 +341,19 @@ class UserCreditBase(ABC): if result: # UserBalance is already updated by the CTE + + # Clear insufficient funds notification flags when credits are added + # so user can receive alerts again if they run out in the future. + if transaction.amount > 0 and transaction.type in [ + CreditTransactionType.GRANT, + CreditTransactionType.TOP_UP, + ]: + from backend.executor.manager import ( + clear_insufficient_funds_notifications, + ) + + await clear_insufficient_funds_notifications(user_id) + return result[0]["balance"] async def _add_transaction( @@ -530,6 +543,22 @@ class UserCreditBase(ABC): if result: new_balance, tx_key = result[0]["balance"], result[0]["transactionKey"] # UserBalance is already updated by the CTE + + # Clear insufficient funds notification flags when credits are added + # so user can receive alerts again if they run out in the future. + if ( + amount > 0 + and is_active + and transaction_type + in [CreditTransactionType.GRANT, CreditTransactionType.TOP_UP] + ): + # Lazy import to avoid circular dependency with executor.manager + from backend.executor.manager import ( + clear_insufficient_funds_notifications, + ) + + await clear_insufficient_funds_notifications(user_id) + return new_balance, tx_key # If no result, either user doesn't exist or insufficient balance diff --git a/autogpt_platform/backend/backend/executor/manager.py b/autogpt_platform/backend/backend/executor/manager.py index 161e68b0d6..75459c5a2a 100644 --- a/autogpt_platform/backend/backend/executor/manager.py +++ b/autogpt_platform/backend/backend/executor/manager.py @@ -114,6 +114,40 @@ utilization_gauge = Gauge( "Ratio of active graph runs to max graph workers", ) +# Redis key prefix for tracking insufficient funds Discord notifications. +# We only send one notification per user per agent until they top up credits. +INSUFFICIENT_FUNDS_NOTIFIED_PREFIX = "insufficient_funds_discord_notified" +# TTL for the notification flag (30 days) - acts as a fallback cleanup +INSUFFICIENT_FUNDS_NOTIFIED_TTL_SECONDS = 30 * 24 * 60 * 60 + + +async def clear_insufficient_funds_notifications(user_id: str) -> int: + """ + Clear all insufficient funds notification flags for a user. + + This should be called when a user tops up their credits, allowing + Discord notifications to be sent again if they run out of funds. + + Args: + user_id: The user ID to clear notifications for. + + Returns: + The number of keys that were deleted. + """ + try: + redis_client = await redis.get_redis_async() + pattern = f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:*" + keys = [key async for key in redis_client.scan_iter(match=pattern)] + if keys: + return await redis_client.delete(*keys) + return 0 + except Exception as e: + logger.warning( + f"Failed to clear insufficient funds notification flags for user " + f"{user_id}: {e}" + ) + return 0 + # Thread-local storage for ExecutionProcessor instances _tls = threading.local() @@ -1261,12 +1295,40 @@ class ExecutionProcessor: graph_id: str, e: InsufficientBalanceError, ): + # Check if we've already sent a notification for this user+agent combo. + # We only send one notification per user per agent until they top up credits. + redis_key = f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:{graph_id}" + try: + redis_client = redis.get_redis() + # SET NX returns True only if the key was newly set (didn't exist) + is_new_notification = redis_client.set( + redis_key, + "1", + nx=True, + ex=INSUFFICIENT_FUNDS_NOTIFIED_TTL_SECONDS, + ) + if not is_new_notification: + # Already notified for this user+agent, skip all notifications + logger.debug( + f"Skipping duplicate insufficient funds notification for " + f"user={user_id}, graph={graph_id}" + ) + return + except Exception as redis_error: + # If Redis fails, log and continue to send the notification + # (better to occasionally duplicate than to never notify) + logger.warning( + f"Failed to check/set insufficient funds notification flag in Redis: " + f"{redis_error}" + ) + shortfall = abs(e.amount) - e.balance metadata = db_client.get_graph_metadata(graph_id) base_url = ( settings.config.frontend_base_url or settings.config.platform_base_url ) + # Queue user email notification queue_notification( NotificationEventModel( user_id=user_id, @@ -1280,6 +1342,7 @@ class ExecutionProcessor: ) ) + # Send Discord system alert try: user_email = db_client.get_user_email_by_id(user_id) diff --git a/autogpt_platform/backend/backend/executor/manager_insufficient_funds_test.py b/autogpt_platform/backend/backend/executor/manager_insufficient_funds_test.py new file mode 100644 index 0000000000..276c9f4f7a --- /dev/null +++ b/autogpt_platform/backend/backend/executor/manager_insufficient_funds_test.py @@ -0,0 +1,560 @@ +from unittest.mock import AsyncMock, MagicMock, patch + +import pytest +from prisma.enums import NotificationType + +from backend.data.notifications import ZeroBalanceData +from backend.executor.manager import ( + INSUFFICIENT_FUNDS_NOTIFIED_PREFIX, + ExecutionProcessor, + clear_insufficient_funds_notifications, +) +from backend.util.exceptions import InsufficientBalanceError +from backend.util.test import SpinTestServer + + +async def async_iter(items): + """Helper to create an async iterator from a list.""" + for item in items: + yield item + + +@pytest.mark.asyncio(loop_scope="session") +async def test_handle_insufficient_funds_sends_discord_alert_first_time( + server: SpinTestServer, +): + """Test that the first insufficient funds notification sends a Discord alert.""" + + execution_processor = ExecutionProcessor() + user_id = "test-user-123" + graph_id = "test-graph-456" + error = InsufficientBalanceError( + message="Insufficient balance", + user_id=user_id, + balance=72, # $0.72 + amount=-714, # Attempting to spend $7.14 + ) + + with patch( + "backend.executor.manager.queue_notification" + ) as mock_queue_notif, patch( + "backend.executor.manager.get_notification_manager_client" + ) as mock_get_client, patch( + "backend.executor.manager.settings" + ) as mock_settings, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Setup mocks + mock_client = MagicMock() + mock_get_client.return_value = mock_client + mock_settings.config.frontend_base_url = "https://test.com" + + # Mock Redis to simulate first-time notification (set returns True) + mock_redis_client = MagicMock() + mock_redis_module.get_redis.return_value = mock_redis_client + mock_redis_client.set.return_value = True # Key was newly set + + # Create mock database client + mock_db_client = MagicMock() + mock_graph_metadata = MagicMock() + mock_graph_metadata.name = "Test Agent" + mock_db_client.get_graph_metadata.return_value = mock_graph_metadata + mock_db_client.get_user_email_by_id.return_value = "test@example.com" + + # Test the insufficient funds handler + execution_processor._handle_insufficient_funds_notif( + db_client=mock_db_client, + user_id=user_id, + graph_id=graph_id, + e=error, + ) + + # Verify notification was queued + mock_queue_notif.assert_called_once() + notification_call = mock_queue_notif.call_args[0][0] + assert notification_call.type == NotificationType.ZERO_BALANCE + assert notification_call.user_id == user_id + assert isinstance(notification_call.data, ZeroBalanceData) + assert notification_call.data.current_balance == 72 + + # Verify Redis was checked with correct key pattern + expected_key = f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:{graph_id}" + mock_redis_client.set.assert_called_once() + call_args = mock_redis_client.set.call_args + assert call_args[0][0] == expected_key + assert call_args[1]["nx"] is True + + # Verify Discord alert was sent + mock_client.discord_system_alert.assert_called_once() + discord_message = mock_client.discord_system_alert.call_args[0][0] + assert "Insufficient Funds Alert" in discord_message + assert "test@example.com" in discord_message + assert "Test Agent" in discord_message + + +@pytest.mark.asyncio(loop_scope="session") +async def test_handle_insufficient_funds_skips_duplicate_notifications( + server: SpinTestServer, +): + """Test that duplicate insufficient funds notifications skip both email and Discord.""" + + execution_processor = ExecutionProcessor() + user_id = "test-user-123" + graph_id = "test-graph-456" + error = InsufficientBalanceError( + message="Insufficient balance", + user_id=user_id, + balance=72, + amount=-714, + ) + + with patch( + "backend.executor.manager.queue_notification" + ) as mock_queue_notif, patch( + "backend.executor.manager.get_notification_manager_client" + ) as mock_get_client, patch( + "backend.executor.manager.settings" + ) as mock_settings, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Setup mocks + mock_client = MagicMock() + mock_get_client.return_value = mock_client + mock_settings.config.frontend_base_url = "https://test.com" + + # Mock Redis to simulate duplicate notification (set returns False/None) + mock_redis_client = MagicMock() + mock_redis_module.get_redis.return_value = mock_redis_client + mock_redis_client.set.return_value = None # Key already existed + + # Create mock database client + mock_db_client = MagicMock() + mock_db_client.get_graph_metadata.return_value = MagicMock(name="Test Agent") + + # Test the insufficient funds handler + execution_processor._handle_insufficient_funds_notif( + db_client=mock_db_client, + user_id=user_id, + graph_id=graph_id, + e=error, + ) + + # Verify email notification was NOT queued (deduplication worked) + mock_queue_notif.assert_not_called() + + # Verify Discord alert was NOT sent (deduplication worked) + mock_client.discord_system_alert.assert_not_called() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_handle_insufficient_funds_different_agents_get_separate_alerts( + server: SpinTestServer, +): + """Test that different agents for the same user get separate Discord alerts.""" + + execution_processor = ExecutionProcessor() + user_id = "test-user-123" + graph_id_1 = "test-graph-111" + graph_id_2 = "test-graph-222" + + error = InsufficientBalanceError( + message="Insufficient balance", + user_id=user_id, + balance=72, + amount=-714, + ) + + with patch("backend.executor.manager.queue_notification"), patch( + "backend.executor.manager.get_notification_manager_client" + ) as mock_get_client, patch( + "backend.executor.manager.settings" + ) as mock_settings, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + mock_client = MagicMock() + mock_get_client.return_value = mock_client + mock_settings.config.frontend_base_url = "https://test.com" + + mock_redis_client = MagicMock() + mock_redis_module.get_redis.return_value = mock_redis_client + # Both calls return True (first time for each agent) + mock_redis_client.set.return_value = True + + mock_db_client = MagicMock() + mock_graph_metadata = MagicMock() + mock_graph_metadata.name = "Test Agent" + mock_db_client.get_graph_metadata.return_value = mock_graph_metadata + mock_db_client.get_user_email_by_id.return_value = "test@example.com" + + # First agent notification + execution_processor._handle_insufficient_funds_notif( + db_client=mock_db_client, + user_id=user_id, + graph_id=graph_id_1, + e=error, + ) + + # Second agent notification + execution_processor._handle_insufficient_funds_notif( + db_client=mock_db_client, + user_id=user_id, + graph_id=graph_id_2, + e=error, + ) + + # Verify Discord alerts were sent for both agents + assert mock_client.discord_system_alert.call_count == 2 + + # Verify Redis was called with different keys + assert mock_redis_client.set.call_count == 2 + calls = mock_redis_client.set.call_args_list + assert ( + calls[0][0][0] + == f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:{graph_id_1}" + ) + assert ( + calls[1][0][0] + == f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:{graph_id_2}" + ) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_clear_insufficient_funds_notifications(server: SpinTestServer): + """Test that clearing notifications removes all keys for a user.""" + + user_id = "test-user-123" + + with patch("backend.executor.manager.redis") as mock_redis_module: + + mock_redis_client = MagicMock() + # get_redis_async is an async function, so we need AsyncMock for it + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + + # Mock scan_iter to return some keys as an async iterator + mock_keys = [ + f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:graph-1", + f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:graph-2", + f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:graph-3", + ] + mock_redis_client.scan_iter.return_value = async_iter(mock_keys) + # delete is awaited, so use AsyncMock + mock_redis_client.delete = AsyncMock(return_value=3) + + # Clear notifications + result = await clear_insufficient_funds_notifications(user_id) + + # Verify correct pattern was used + expected_pattern = f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:*" + mock_redis_client.scan_iter.assert_called_once_with(match=expected_pattern) + + # Verify delete was called with all keys + mock_redis_client.delete.assert_called_once_with(*mock_keys) + + # Verify return value + assert result == 3 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_clear_insufficient_funds_notifications_no_keys(server: SpinTestServer): + """Test clearing notifications when there are no keys to clear.""" + + user_id = "test-user-no-notifications" + + with patch("backend.executor.manager.redis") as mock_redis_module: + + mock_redis_client = MagicMock() + # get_redis_async is an async function, so we need AsyncMock for it + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + + # Mock scan_iter to return no keys as an async iterator + mock_redis_client.scan_iter.return_value = async_iter([]) + + # Clear notifications + result = await clear_insufficient_funds_notifications(user_id) + + # Verify delete was not called + mock_redis_client.delete.assert_not_called() + + # Verify return value + assert result == 0 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_clear_insufficient_funds_notifications_handles_redis_error( + server: SpinTestServer, +): + """Test that clearing notifications handles Redis errors gracefully.""" + + user_id = "test-user-redis-error" + + with patch("backend.executor.manager.redis") as mock_redis_module: + + # Mock get_redis_async to raise an error + mock_redis_module.get_redis_async = AsyncMock( + side_effect=Exception("Redis connection failed") + ) + + # Clear notifications should not raise, just return 0 + result = await clear_insufficient_funds_notifications(user_id) + + # Verify it returned 0 (graceful failure) + assert result == 0 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_handle_insufficient_funds_continues_on_redis_error( + server: SpinTestServer, +): + """Test that both email and Discord notifications are still sent when Redis fails.""" + + execution_processor = ExecutionProcessor() + user_id = "test-user-123" + graph_id = "test-graph-456" + error = InsufficientBalanceError( + message="Insufficient balance", + user_id=user_id, + balance=72, + amount=-714, + ) + + with patch( + "backend.executor.manager.queue_notification" + ) as mock_queue_notif, patch( + "backend.executor.manager.get_notification_manager_client" + ) as mock_get_client, patch( + "backend.executor.manager.settings" + ) as mock_settings, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + mock_client = MagicMock() + mock_get_client.return_value = mock_client + mock_settings.config.frontend_base_url = "https://test.com" + + # Mock Redis to raise an error + mock_redis_client = MagicMock() + mock_redis_module.get_redis.return_value = mock_redis_client + mock_redis_client.set.side_effect = Exception("Redis connection error") + + mock_db_client = MagicMock() + mock_graph_metadata = MagicMock() + mock_graph_metadata.name = "Test Agent" + mock_db_client.get_graph_metadata.return_value = mock_graph_metadata + mock_db_client.get_user_email_by_id.return_value = "test@example.com" + + # Test the insufficient funds handler + execution_processor._handle_insufficient_funds_notif( + db_client=mock_db_client, + user_id=user_id, + graph_id=graph_id, + e=error, + ) + + # Verify email notification was still queued despite Redis error + mock_queue_notif.assert_called_once() + + # Verify Discord alert was still sent despite Redis error + mock_client.discord_system_alert.assert_called_once() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_add_transaction_clears_notifications_on_grant(server: SpinTestServer): + """Test that _add_transaction clears notification flags when adding GRANT credits.""" + from prisma.enums import CreditTransactionType + + from backend.data.credit import UserCredit + + user_id = "test-user-grant-clear" + + with patch("backend.data.credit.query_raw_with_schema") as mock_query, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Mock the query to return a successful transaction + mock_query.return_value = [{"balance": 1000, "transactionKey": "test-tx-key"}] + + # Mock async Redis for notification clearing + mock_redis_client = MagicMock() + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + mock_redis_client.scan_iter.return_value = async_iter( + [f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:graph-1"] + ) + mock_redis_client.delete = AsyncMock(return_value=1) + + # Create a concrete instance + credit_model = UserCredit() + + # Call _add_transaction with GRANT type (should clear notifications) + await credit_model._add_transaction( + user_id=user_id, + amount=500, # Positive amount + transaction_type=CreditTransactionType.GRANT, + is_active=True, # Active transaction + ) + + # Verify notification clearing was called + mock_redis_module.get_redis_async.assert_called_once() + mock_redis_client.scan_iter.assert_called_once_with( + match=f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:*" + ) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_add_transaction_clears_notifications_on_top_up(server: SpinTestServer): + """Test that _add_transaction clears notification flags when adding TOP_UP credits.""" + from prisma.enums import CreditTransactionType + + from backend.data.credit import UserCredit + + user_id = "test-user-topup-clear" + + with patch("backend.data.credit.query_raw_with_schema") as mock_query, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Mock the query to return a successful transaction + mock_query.return_value = [{"balance": 2000, "transactionKey": "test-tx-key-2"}] + + # Mock async Redis for notification clearing + mock_redis_client = MagicMock() + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + mock_redis_client.scan_iter.return_value = async_iter([]) + mock_redis_client.delete = AsyncMock(return_value=0) + + credit_model = UserCredit() + + # Call _add_transaction with TOP_UP type (should clear notifications) + await credit_model._add_transaction( + user_id=user_id, + amount=1000, # Positive amount + transaction_type=CreditTransactionType.TOP_UP, + is_active=True, + ) + + # Verify notification clearing was attempted + mock_redis_module.get_redis_async.assert_called_once() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_add_transaction_skips_clearing_for_inactive_transaction( + server: SpinTestServer, +): + """Test that _add_transaction does NOT clear notifications for inactive transactions.""" + from prisma.enums import CreditTransactionType + + from backend.data.credit import UserCredit + + user_id = "test-user-inactive" + + with patch("backend.data.credit.query_raw_with_schema") as mock_query, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Mock the query to return a successful transaction + mock_query.return_value = [{"balance": 500, "transactionKey": "test-tx-key-3"}] + + # Mock async Redis + mock_redis_client = MagicMock() + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + + credit_model = UserCredit() + + # Call _add_transaction with is_active=False (should NOT clear notifications) + await credit_model._add_transaction( + user_id=user_id, + amount=500, + transaction_type=CreditTransactionType.TOP_UP, + is_active=False, # Inactive - pending Stripe payment + ) + + # Verify notification clearing was NOT called + mock_redis_module.get_redis_async.assert_not_called() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_add_transaction_skips_clearing_for_usage_transaction( + server: SpinTestServer, +): + """Test that _add_transaction does NOT clear notifications for USAGE transactions.""" + from prisma.enums import CreditTransactionType + + from backend.data.credit import UserCredit + + user_id = "test-user-usage" + + with patch("backend.data.credit.query_raw_with_schema") as mock_query, patch( + "backend.executor.manager.redis" + ) as mock_redis_module: + + # Mock the query to return a successful transaction + mock_query.return_value = [{"balance": 400, "transactionKey": "test-tx-key-4"}] + + # Mock async Redis + mock_redis_client = MagicMock() + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + + credit_model = UserCredit() + + # Call _add_transaction with USAGE type (spending, should NOT clear) + await credit_model._add_transaction( + user_id=user_id, + amount=-100, # Negative - spending credits + transaction_type=CreditTransactionType.USAGE, + is_active=True, + ) + + # Verify notification clearing was NOT called + mock_redis_module.get_redis_async.assert_not_called() + + +@pytest.mark.asyncio(loop_scope="session") +async def test_enable_transaction_clears_notifications(server: SpinTestServer): + """Test that _enable_transaction clears notification flags when enabling a TOP_UP.""" + from prisma.enums import CreditTransactionType + + from backend.data.credit import UserCredit + + user_id = "test-user-enable" + + with patch("backend.data.credit.CreditTransaction") as mock_credit_tx, patch( + "backend.data.credit.query_raw_with_schema" + ) as mock_query, patch("backend.executor.manager.redis") as mock_redis_module: + + # Mock finding the pending transaction + mock_transaction = MagicMock() + mock_transaction.amount = 1000 + mock_transaction.type = CreditTransactionType.TOP_UP + mock_credit_tx.prisma.return_value.find_first = AsyncMock( + return_value=mock_transaction + ) + + # Mock the query to return updated balance + mock_query.return_value = [{"balance": 1500}] + + # Mock async Redis for notification clearing + mock_redis_client = MagicMock() + mock_redis_module.get_redis_async = AsyncMock(return_value=mock_redis_client) + mock_redis_client.scan_iter.return_value = async_iter( + [f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:graph-1"] + ) + mock_redis_client.delete = AsyncMock(return_value=1) + + credit_model = UserCredit() + + # Call _enable_transaction (simulates Stripe checkout completion) + from backend.util.json import SafeJson + + await credit_model._enable_transaction( + transaction_key="cs_test_123", + user_id=user_id, + metadata=SafeJson({"payment": "completed"}), + ) + + # Verify notification clearing was called + mock_redis_module.get_redis_async.assert_called_once() + mock_redis_client.scan_iter.assert_called_once_with( + match=f"{INSUFFICIENT_FUNDS_NOTIFIED_PREFIX}:{user_id}:*" + ) From fba61c72ed64bc5dc527392ffbd667e8e278cea2 Mon Sep 17 00:00:00 2001 From: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Date: Wed, 31 Dec 2025 15:16:12 +0530 Subject: [PATCH 017/160] feat(frontend): fix duplicate publish button and improve BuilderActionButton styling (#11669) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes duplicate "Publish to Marketplace" buttons in the builder by adding a `showTrigger` prop to control modal trigger visibility. Screenshot 2025-12-23 at 8 18 58 AM ### Changes 🏗️ **BuilderActionButton.tsx** - Removed borders on hover and active states for a cleaner visual appearance - Added `hover:border-none` and `active:border-none` to maintain consistent styling during interactions **PublishToMarketplace.tsx** - Pass `showTrigger={false}` to `PublishAgentModal` to hide the default trigger button - This prevents duplicate buttons when a custom trigger is already rendered **PublishAgentModal.tsx** - Added `showTrigger` prop (defaults to `true`) to conditionally render the modal trigger - Allows parent components to control whether the built-in trigger button should be displayed - Maintains backward compatibility with existing usage ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Verify only one "Publish to Marketplace" button appears in the builder - [x] Confirm button hover/active states display correctly without border artifacts - [x] Verify modal can still be triggered programmatically without the trigger button --- .../BuilderActions/components/BuilderActionButton.tsx | 4 ++-- .../PublishToMarketplace/PublishToMarketplace.tsx | 1 + .../contextual/PublishAgentModal/PublishAgentModal.tsx | 9 ++++++--- .../contextual/PublishAgentModal/usePublishAgentModal.ts | 1 + 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx index f8b3f1051e..549b432a38 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx @@ -19,8 +19,8 @@ export const BuilderActionButton = ({ "border border-zinc-200", "shadow-[inset_0_3px_0_0_rgba(255,255,255,0.5),0_2px_4px_0_rgba(0,0,0,0.2)]", "dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1),0_2px_4px_0_rgba(0,0,0,0.4)]", - "hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.5),0_1px_2px_0_rgba(0,0,0,0.2)]", - "active:shadow-[inset_0_2px_4px_0_rgba(0,0,0,0.2)]", + "hover:border-none hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.5),0_1px_2px_0_rgba(0,0,0,0.2)]", + "active:border-none active:shadow-[inset_0_2px_4px_0_rgba(0,0,0,0.2)]", "transition-all duration-150", "disabled:cursor-not-allowed disabled:opacity-50", className, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx index 1e6545dfbd..500b8f0b47 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx @@ -30,6 +30,7 @@ export const PublishToMarketplace = ({ flowID }: { flowID: string | null }) => { targetState={publishState} onStateChange={handleStateChange} preSelectedAgentId={flowID || undefined} + showTrigger={false} /> ); diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx index dd91094f9c..da3324f600 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/PublishAgentModal.tsx @@ -20,6 +20,7 @@ export function PublishAgentModal({ onStateChange, preSelectedAgentId, preSelectedAgentVersion, + showTrigger = true, }: Props) { const { // State @@ -121,9 +122,11 @@ export function PublishAgentModal({ }, }} > - - {trigger || } - + {showTrigger && ( + + {trigger || } + + )}
{renderContent()}
diff --git a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts index f83698d8e7..0f8a819c6e 100644 --- a/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts +++ b/autogpt_platform/frontend/src/components/contextual/PublishAgentModal/usePublishAgentModal.ts @@ -30,6 +30,7 @@ export interface Props { onStateChange?: (state: PublishState) => void; preSelectedAgentId?: string; preSelectedAgentVersion?: number; + showTrigger?: boolean; } export function usePublishAgentModal({ From 290d0d9a9beaccb74221540bd32363bf73743172 Mon Sep 17 00:00:00 2001 From: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Date: Wed, 31 Dec 2025 20:19:53 +0530 Subject: [PATCH 018/160] feat(frontend): add auto-save Draft Recovery feature with IndexedDB persistence (#11658) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Implements an auto-save draft recovery system that persists unsaved flow builder state across browser sessions, tab closures, and refreshes. When users return to a flow with unsaved changes, they can choose to restore or discard the draft via an intuitive recovery popup. https://github.com/user-attachments/assets/0f77173b-7834-48d2-b7aa-73c6cd2eaff6 ## Changes 🏗️ ### Core Features - **Draft Recovery Popup** (`DraftRecoveryPopup.tsx`) - Displays amber-themed notification with unsaved changes metadata - Shows node count, edge count, and relative time since last save - Provides restore and discard actions with tooltips - Auto-dismisses on click outside or ESC key - **Auto-Save System** (`useDraftManager.ts`) - Automatically saves draft state every 15 seconds - Saves on browser tab close/refresh via `beforeunload` - Tracks nodes, edges, graph schemas, node counter, and flow version - Smart dirty checking - only saves when actual changes detected - Cleans up expired drafts (24-hour TTL) - **IndexedDB Persistence** (`db.ts`, `draft-service.ts`) - Uses Dexie library for reliable client-side storage - Handles both existing flows (by flowID) and new flows (via temp session IDs) - Compares draft state with current state to determine if recovery needed - Automatically clears drafts after successful save ### Integration Changes - **Flow Editor** (`Flow.tsx`) - Integrated `DraftRecoveryPopup` component - Passes `isInitialLoadComplete` state for proper timing - **useFlow Hook** (`useFlow.ts`) - Added `isInitialLoadComplete` state to track when flow is ready - Ensures draft check happens after initial graph load - Resets state on flow/version changes - **useCopyPaste Hook** (`useCopyPaste.ts`) - Refactored to manage keyboard event listeners internally - Simplified integration by removing external event handler setup - **useSaveGraph Hook** (`useSaveGraph.ts`) - Clears draft after successful save (both create and update) - Removes temp flow ID from session storage on first save ### Dependencies - Added `dexie@4.2.1` - Modern IndexedDB wrapper for reliable client-side storage ## Technical Details **Auto-Save Flow:** 1. User makes changes to nodes/edges 2. Change triggers 15-second debounced save 3. Draft saved to IndexedDB with timestamp 4. On save, current state compared with last saved state 5. Only saves if meaningful changes detected **Recovery Flow:** 1. User loads flow/refreshes page 2. After initial load completes, check for existing draft 3. Compare draft with current state 4. If different and non-empty, show recovery popup 5. User chooses to restore or discard 6. Draft cleared after either action **Session Management:** - Existing flows: Use actual flowID for draft key ### Test Plan 🧪 - [x] Create a new flow with 3+ blocks and connections, wait 15+ seconds, then refresh the page - verify recovery popup appears with correct counts and restoring works - [x] Create a flow with blocks, refresh, then click "Discard" button on recovery popup - verify popup disappears and draft is deleted - [x] Add blocks to a flow, save successfully - verify draft is cleared from IndexedDB (check DevTools > Application > IndexedDB) - [x] Make changes to an existing flow, refresh page - verify recovery popup shows and restoring preserves all changes correctly - [x] Verify empty flows (0 nodes) don't trigger recovery popup or save drafts --- autogpt_platform/frontend/package.json | 1 + autogpt_platform/frontend/pnpm-lock.yaml | 8 + .../DraftRecoveryPopup.tsx | 118 +++++++ .../useDraftRecoveryPopup.tsx | 61 ++++ .../build/components/FlowEditor/Flow/Flow.tsx | 28 +- .../FlowEditor/Flow/useCopyPaste.ts | 13 +- .../FlowEditor/Flow/useDraftManager.ts | 300 ++++++++++++++++++ .../components/FlowEditor/Flow/useFlow.ts | 15 + .../(platform)/build/hooks/useSaveGraph.ts | 22 +- autogpt_platform/frontend/src/lib/dexie/db.ts | 46 +++ .../frontend/src/lib/dexie/draft-utils.ts | 33 ++ .../services/builder-draft/draft-service.ts | 118 +++++++ 12 files changed, 745 insertions(+), 18 deletions(-) create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx create mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts create mode 100644 autogpt_platform/frontend/src/lib/dexie/db.ts create mode 100644 autogpt_platform/frontend/src/lib/dexie/draft-utils.ts create mode 100644 autogpt_platform/frontend/src/services/builder-draft/draft-service.ts diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 4cbd867cd8..1708ac9053 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -69,6 +69,7 @@ "cmdk": "1.1.1", "cookie": "1.0.2", "date-fns": "4.1.0", + "dexie": "4.2.1", "dotenv": "17.2.3", "elliptic": "6.6.1", "embla-carousel-react": "8.6.0", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 7d39b68468..355ffff129 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -131,6 +131,9 @@ importers: date-fns: specifier: 4.1.0 version: 4.1.0 + dexie: + specifier: 4.2.1 + version: 4.2.1 dotenv: specifier: 17.2.3 version: 17.2.3 @@ -4428,6 +4431,9 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dexie@4.2.1: + resolution: {integrity: sha512-Ckej0NS6jxQ4Po3OrSQBFddayRhTCic2DoCAG5zacOfOVB9P2Q5Xc5uL/nVa7ZVs+HdMnvUPzLFCB/JwpB6Csg==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -12323,6 +12329,8 @@ snapshots: dependencies: dequal: 2.0.3 + dexie@4.2.1: {} + didyoumean@1.2.2: {} diffie-hellman@5.0.3: diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx new file mode 100644 index 0000000000..520addd50f --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx @@ -0,0 +1,118 @@ +"use client"; + +import { Button } from "@/components/atoms/Button/Button"; +import { ClockCounterClockwiseIcon, XIcon } from "@phosphor-icons/react"; +import { cn } from "@/lib/utils"; +import { formatTimeAgo } from "@/lib/utils/time"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/atoms/Tooltip/BaseTooltip"; +import { useDraftRecoveryPopup } from "./useDraftRecoveryPopup"; +import { Text } from "@/components/atoms/Text/Text"; +import { AnimatePresence, motion } from "framer-motion"; + +interface DraftRecoveryPopupProps { + isInitialLoadComplete: boolean; +} + +export function DraftRecoveryPopup({ + isInitialLoadComplete, +}: DraftRecoveryPopupProps) { + const { isOpen, popupRef, nodeCount, edgeCount, savedAt, onLoad, onDiscard } = + useDraftRecoveryPopup(isInitialLoadComplete); + + return ( + + {isOpen && ( + +
+
+ +
+ +
+ + Unsaved changes found + + + {nodeCount} block{nodeCount !== 1 ? "s" : ""}, {edgeCount}{" "} + connection + {edgeCount !== 1 ? "s" : ""} •{" "} + {formatTimeAgo(new Date(savedAt).toISOString())} + +
+ +
+ + + + + Restore changes + + + + + + Discard changes + +
+
+
+ )} +
+ ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx new file mode 100644 index 0000000000..0914b04952 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx @@ -0,0 +1,61 @@ +import { useEffect, useRef } from "react"; +import { useDraftManager } from "../FlowEditor/Flow/useDraftManager"; + +export const useDraftRecoveryPopup = (isInitialLoadComplete: boolean) => { + const popupRef = useRef(null); + + const { + isRecoveryOpen: isOpen, + savedAt, + nodeCount, + edgeCount, + loadDraft: onLoad, + discardDraft: onDiscard, + } = useDraftManager(isInitialLoadComplete); + + useEffect(() => { + if (!isOpen) return; + + const handleClickOutside = (event: MouseEvent) => { + if ( + popupRef.current && + !popupRef.current.contains(event.target as Node) + ) { + onDiscard(); + } + }; + + const timeoutId = setTimeout(() => { + document.addEventListener("mousedown", handleClickOutside); + }, 100); + + return () => { + clearTimeout(timeoutId); + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [isOpen, onDiscard]); + + useEffect(() => { + if (!isOpen) return; + + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === "Escape") { + onDiscard(); + } + }; + + document.addEventListener("keydown", handleKeyDown); + return () => { + document.removeEventListener("keydown", handleKeyDown); + }; + }, [isOpen, onDiscard]); + return { + popupRef, + isOpen, + nodeCount, + edgeCount, + savedAt, + onLoad, + onDiscard, + }; +}; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx index c9cf5296c6..4c6796d746 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx @@ -4,7 +4,7 @@ import CustomEdge from "../edges/CustomEdge"; import { useFlow } from "./useFlow"; import { useShallow } from "zustand/react/shallow"; import { useNodeStore } from "../../../stores/nodeStore"; -import { useMemo, useEffect, useCallback } from "react"; +import { useMemo, useCallback } from "react"; import { CustomNode } from "../nodes/CustomNode/CustomNode"; import { useCustomEdge } from "../edges/useCustomEdge"; import { useFlowRealtime } from "./useFlowRealtime"; @@ -21,6 +21,7 @@ import { okData } from "@/app/api/helpers"; import { TriggerAgentBanner } from "./components/TriggerAgentBanner"; import { resolveCollisions } from "./helpers/resolve-collision"; import { FloatingSafeModeToggle } from "../../FloatingSafeModeToogle"; +import { DraftRecoveryPopup } from "../../DraftRecoveryDialog/DraftRecoveryPopup"; export const Flow = () => { const [{ flowID, flowExecutionID }] = useQueryStates({ @@ -60,26 +61,22 @@ export const Flow = () => { }, [setNodes, nodes]); const { edges, onConnect, onEdgesChange } = useCustomEdge(); - // We use this hook to load the graph and convert them into custom nodes and edges. - const { onDragOver, onDrop, isFlowContentLoading, isLocked, setIsLocked } = - useFlow(); + // for loading purpose + const { + onDragOver, + onDrop, + isFlowContentLoading, + isInitialLoadComplete, + isLocked, + setIsLocked, + } = useFlow(); // This hook is used for websocket realtime updates. useFlowRealtime(); // Copy/paste functionality - const handleCopyPaste = useCopyPaste(); + useCopyPaste(); - useEffect(() => { - const handleKeyDown = (event: KeyboardEvent) => { - handleCopyPaste(event); - }; - - window.addEventListener("keydown", handleKeyDown); - return () => { - window.removeEventListener("keydown", handleKeyDown); - }; - }, [handleCopyPaste]); const isGraphRunning = useGraphStore( useShallow((state) => state.isGraphRunning), ); @@ -115,6 +112,7 @@ export const Flow = () => { className="right-2 top-32 p-2" /> )} +
{/* TODO: Need to update it in future - also do not send executionId as prop - rather use useQueryState inside the component */} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useCopyPaste.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useCopyPaste.ts index 7a8213da22..c6c54006d4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useCopyPaste.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useCopyPaste.ts @@ -1,4 +1,4 @@ -import { useCallback } from "react"; +import { useCallback, useEffect } from "react"; import { useReactFlow } from "@xyflow/react"; import { v4 as uuidv4 } from "uuid"; import { useNodeStore } from "../../../stores/nodeStore"; @@ -151,5 +151,16 @@ export function useCopyPaste() { [getViewport, toast], ); + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + handleCopyPaste(event); + }; + + window.addEventListener("keydown", handleKeyDown); + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, [handleCopyPaste]); + return handleCopyPaste; } diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts new file mode 100644 index 0000000000..f6d03923bd --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts @@ -0,0 +1,300 @@ +import { useState, useCallback, useEffect, useRef } from "react"; +import { parseAsString, parseAsInteger, useQueryStates } from "nuqs"; +import { + draftService, + getTempFlowId, + getOrCreateTempFlowId, + DraftData, +} from "@/services/builder-draft/draft-service"; +import { BuilderDraft } from "@/lib/dexie/db"; +import { cleanNodes, cleanEdges } from "@/lib/dexie/draft-utils"; +import { useNodeStore } from "../../../stores/nodeStore"; +import { useEdgeStore } from "../../../stores/edgeStore"; +import { useGraphStore } from "../../../stores/graphStore"; +import { useHistoryStore } from "../../../stores/historyStore"; +import isEqual from "lodash/isEqual"; + +const AUTO_SAVE_INTERVAL_MS = 15000; // 15 seconds + +interface DraftRecoveryState { + isOpen: boolean; + draft: BuilderDraft | null; +} + +/** + * Consolidated hook for draft persistence and recovery + * - Auto-saves builder state every 15 seconds + * - Saves on beforeunload event + * - Checks for and manages unsaved drafts on load + */ +export function useDraftManager(isInitialLoadComplete: boolean) { + const [state, setState] = useState({ + isOpen: false, + draft: null, + }); + + const [{ flowID, flowVersion }] = useQueryStates({ + flowID: parseAsString, + flowVersion: parseAsInteger, + }); + + const lastSavedStateRef = useRef(null); + const saveTimeoutRef = useRef(null); + const isDirtyRef = useRef(false); + const hasCheckedForDraft = useRef(false); + + const getEffectiveFlowId = useCallback((): string => { + return flowID || getOrCreateTempFlowId(); + }, [flowID]); + + const getCurrentState = useCallback((): DraftData => { + const nodes = useNodeStore.getState().nodes; + const edges = useEdgeStore.getState().edges; + const nodeCounter = useNodeStore.getState().nodeCounter; + const graphStore = useGraphStore.getState(); + + return { + nodes, + edges, + graphSchemas: { + input: graphStore.inputSchema, + credentials: graphStore.credentialsInputSchema, + output: graphStore.outputSchema, + }, + nodeCounter, + flowVersion: flowVersion ?? undefined, + }; + }, [flowVersion]); + + const cleanStateForComparison = useCallback((stateData: DraftData) => { + return { + nodes: cleanNodes(stateData.nodes), + edges: cleanEdges(stateData.edges), + }; + }, []); + + const hasChanges = useCallback((): boolean => { + const currentState = getCurrentState(); + + if (!lastSavedStateRef.current) { + return currentState.nodes.length > 0; + } + + const currentClean = cleanStateForComparison(currentState); + const lastClean = cleanStateForComparison(lastSavedStateRef.current); + + return !isEqual(currentClean, lastClean); + }, [getCurrentState, cleanStateForComparison]); + + const saveDraft = useCallback(async () => { + const effectiveFlowId = getEffectiveFlowId(); + const currentState = getCurrentState(); + + if (currentState.nodes.length === 0 && currentState.edges.length === 0) { + return; + } + + if (!hasChanges()) { + return; + } + + try { + await draftService.saveDraft(effectiveFlowId, currentState); + lastSavedStateRef.current = currentState; + isDirtyRef.current = false; + } catch (error) { + console.error("[DraftPersistence] Failed to save draft:", error); + } + }, [getEffectiveFlowId, getCurrentState, hasChanges]); + + const scheduleSave = useCallback(() => { + isDirtyRef.current = true; + + if (saveTimeoutRef.current) { + clearTimeout(saveTimeoutRef.current); + } + + saveTimeoutRef.current = setTimeout(() => { + saveDraft(); + }, AUTO_SAVE_INTERVAL_MS); + }, [saveDraft]); + + useEffect(() => { + const unsubscribeNodes = useNodeStore.subscribe((storeState, prevState) => { + if (storeState.nodes !== prevState.nodes) { + scheduleSave(); + } + }); + + const unsubscribeEdges = useEdgeStore.subscribe((storeState, prevState) => { + if (storeState.edges !== prevState.edges) { + scheduleSave(); + } + }); + + return () => { + unsubscribeNodes(); + unsubscribeEdges(); + }; + }, [scheduleSave]); + + useEffect(() => { + const handleBeforeUnload = () => { + if (isDirtyRef.current) { + const effectiveFlowId = getEffectiveFlowId(); + const currentState = getCurrentState(); + + if ( + currentState.nodes.length === 0 && + currentState.edges.length === 0 + ) { + return; + } + + draftService.saveDraft(effectiveFlowId, currentState).catch(() => { + // Ignore errors on unload + }); + } + }; + + window.addEventListener("beforeunload", handleBeforeUnload); + return () => { + window.removeEventListener("beforeunload", handleBeforeUnload); + }; + }, [getEffectiveFlowId, getCurrentState]); + + useEffect(() => { + return () => { + if (saveTimeoutRef.current) { + clearTimeout(saveTimeoutRef.current); + } + if (isDirtyRef.current) { + saveDraft(); + } + }; + }, [saveDraft]); + + useEffect(() => { + draftService.cleanupExpired().catch((error) => { + console.error( + "[DraftPersistence] Failed to cleanup expired drafts:", + error, + ); + }); + }, []); + + const checkForDraft = useCallback(async () => { + const effectiveFlowId = flowID || getTempFlowId(); + + if (!effectiveFlowId) { + return; + } + + try { + const draft = await draftService.loadDraft(effectiveFlowId); + + if (!draft) { + return; + } + + const currentNodes = useNodeStore.getState().nodes; + const currentEdges = useEdgeStore.getState().edges; + + const isDifferent = draftService.isDraftDifferent( + draft, + currentNodes, + currentEdges, + ); + + if (isDifferent && (draft.nodes.length > 0 || draft.edges.length > 0)) { + setState({ + isOpen: true, + draft, + }); + } else { + await draftService.deleteDraft(effectiveFlowId); + } + } catch (error) { + console.error("[DraftRecovery] Failed to check for draft:", error); + } + }, [flowID]); + + useEffect(() => { + if (isInitialLoadComplete && !hasCheckedForDraft.current) { + hasCheckedForDraft.current = true; + checkForDraft(); + } + }, [isInitialLoadComplete, checkForDraft]); + + useEffect(() => { + hasCheckedForDraft.current = false; + setState({ + isOpen: false, + draft: null, + }); + }, [flowID]); + + const loadDraft = useCallback(async () => { + if (!state.draft) return; + + const { draft } = state; + + try { + useNodeStore.getState().setNodes(draft.nodes); + useEdgeStore.getState().setEdges(draft.edges); + + // Restore nodeCounter to prevent ID conflicts when adding new nodes + if (draft.nodeCounter !== undefined) { + useNodeStore.setState({ nodeCounter: draft.nodeCounter }); + } + + if (draft.graphSchemas) { + useGraphStore + .getState() + .setGraphSchemas( + draft.graphSchemas.input as Record | null, + draft.graphSchemas.credentials as Record | null, + draft.graphSchemas.output as Record | null, + ); + } + + setTimeout(() => { + useHistoryStore.getState().initializeHistory(); + }, 100); + + await draftService.deleteDraft(draft.id); + + setState({ + isOpen: false, + draft: null, + }); + } catch (error) { + console.error("[DraftRecovery] Failed to load draft:", error); + } + }, [state.draft]); + + const discardDraft = useCallback(async () => { + if (!state.draft) { + setState({ isOpen: false, draft: null }); + return; + } + + try { + await draftService.deleteDraft(state.draft.id); + } catch (error) { + console.error("[DraftRecovery] Failed to discard draft:", error); + } + + setState({ isOpen: false, draft: null }); + }, [state.draft]); + + return { + // Recovery popup props + isRecoveryOpen: state.isOpen, + savedAt: state.draft?.savedAt ?? 0, + nodeCount: state.draft?.nodes.length ?? 0, + edgeCount: state.draft?.edges.length ?? 0, + loadDraft, + discardDraft, + }; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts index be76c4ec2b..7514611f08 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts @@ -21,6 +21,7 @@ import { AgentExecutionStatus } from "@/app/api/__generated__/models/agentExecut export const useFlow = () => { const [isLocked, setIsLocked] = useState(false); const [hasAutoFramed, setHasAutoFramed] = useState(false); + const [isInitialLoadComplete, setIsInitialLoadComplete] = useState(false); const addNodes = useNodeStore(useShallow((state) => state.addNodes)); const addLinks = useEdgeStore(useShallow((state) => state.addLinks)); const updateNodeStatus = useNodeStore( @@ -174,11 +175,23 @@ export const useFlow = () => { if (customNodes.length > 0 && graph?.links) { const timer = setTimeout(() => { useHistoryStore.getState().initializeHistory(); + // Mark initial load as complete after history is initialized + setIsInitialLoadComplete(true); }, 100); return () => clearTimeout(timer); } }, [customNodes, graph?.links]); + // Also mark as complete for new flows (no flowID) after a short delay + useEffect(() => { + if (!flowID && !isGraphLoading && !isBlocksLoading) { + const timer = setTimeout(() => { + setIsInitialLoadComplete(true); + }, 200); + return () => clearTimeout(timer); + } + }, [flowID, isGraphLoading, isBlocksLoading]); + useEffect(() => { return () => { useNodeStore.getState().setNodes([]); @@ -217,6 +230,7 @@ export const useFlow = () => { useEffect(() => { setHasAutoFramed(false); + setIsInitialLoadComplete(false); }, [flowID, flowVersion]); // Drag and drop block from block menu @@ -253,6 +267,7 @@ export const useFlow = () => { return { isFlowContentLoading: isGraphLoading || isBlocksLoading, + isInitialLoadComplete, onDragOver, onDrop, isLocked, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/hooks/useSaveGraph.ts b/autogpt_platform/frontend/src/app/(platform)/build/hooks/useSaveGraph.ts index d0b488f26c..505303cc1e 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/hooks/useSaveGraph.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/hooks/useSaveGraph.ts @@ -15,6 +15,11 @@ import { useEdgeStore } from "../stores/edgeStore"; import { graphsEquivalent } from "../components/NewControlPanel/NewSaveControl/helpers"; import { useGraphStore } from "../stores/graphStore"; import { useShallow } from "zustand/react/shallow"; +import { + draftService, + clearTempFlowId, + getTempFlowId, +} from "@/services/builder-draft/draft-service"; export type SaveGraphOptions = { showToast?: boolean; @@ -52,12 +57,19 @@ export const useSaveGraph = ({ const { mutateAsync: createNewGraph, isPending: isCreating } = usePostV1CreateNewGraph({ mutation: { - onSuccess: (response) => { + onSuccess: async (response) => { const data = response.data as GraphModel; setQueryStates({ flowID: data.id, flowVersion: data.version, }); + + const tempFlowId = getTempFlowId(); + if (tempFlowId) { + await draftService.deleteDraft(tempFlowId); + clearTempFlowId(); + } + onSuccess?.(data); if (showToast) { toast({ @@ -82,12 +94,18 @@ export const useSaveGraph = ({ const { mutateAsync: updateGraph, isPending: isUpdating } = usePutV1UpdateGraphVersion({ mutation: { - onSuccess: (response) => { + onSuccess: async (response) => { const data = response.data as GraphModel; setQueryStates({ flowID: data.id, flowVersion: data.version, }); + + // Clear the draft for this flow after successful save + if (data.id) { + await draftService.deleteDraft(data.id); + } + onSuccess?.(data); if (showToast) { toast({ diff --git a/autogpt_platform/frontend/src/lib/dexie/db.ts b/autogpt_platform/frontend/src/lib/dexie/db.ts new file mode 100644 index 0000000000..05e749ca4b --- /dev/null +++ b/autogpt_platform/frontend/src/lib/dexie/db.ts @@ -0,0 +1,46 @@ +import Dexie, { type EntityTable } from "dexie"; +import type { CustomNode } from "@/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode"; +import type { CustomEdge } from "@/app/(platform)/build/components/FlowEditor/edges/CustomEdge"; + +// 24 hrs expiry +export const DRAFT_EXPIRY_MS = 24 * 60 * 60 * 1000; + +export interface BuilderDraft { + id: string; + nodes: CustomNode[]; + edges: CustomEdge[]; + graphSchemas: { + input: Record | null; + credentials: Record | null; + output: Record | null; + }; + nodeCounter: number; + savedAt: number; + flowVersion?: number; +} + +class BuilderDatabase extends Dexie { + drafts!: EntityTable; + + constructor() { + super("AutoGPTBuilderDB"); + + this.version(1).stores({ + drafts: "id, savedAt", + }); + } +} + +// Singleton database instance +export const db = new BuilderDatabase(); + +export async function cleanupExpiredDrafts(): Promise { + const expiryThreshold = Date.now() - DRAFT_EXPIRY_MS; + + const deletedCount = await db.drafts + .where("savedAt") + .below(expiryThreshold) + .delete(); + + return deletedCount; +} diff --git a/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts b/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts new file mode 100644 index 0000000000..185ebf92b4 --- /dev/null +++ b/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts @@ -0,0 +1,33 @@ +import type { CustomNode } from "@/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode"; +import type { CustomEdge } from "@/app/(platform)/build/components/FlowEditor/edges/CustomEdge"; + +export function cleanNode(node: CustomNode) { + return { + id: node.id, + position: node.position, + data: { + hardcodedValues: node.data.hardcodedValues, + title: node.data.title, + block_id: node.data.block_id, + metadata: node.data.metadata, + }, + }; +} + +export function cleanEdge(edge: CustomEdge) { + return { + id: edge.id, + source: edge.source, + target: edge.target, + sourceHandle: edge.sourceHandle, + targetHandle: edge.targetHandle, + }; +} + +export function cleanNodes(nodes: CustomNode[]) { + return nodes.map(cleanNode); +} + +export function cleanEdges(edges: CustomEdge[]) { + return edges.map(cleanEdge); +} diff --git a/autogpt_platform/frontend/src/services/builder-draft/draft-service.ts b/autogpt_platform/frontend/src/services/builder-draft/draft-service.ts new file mode 100644 index 0000000000..6d35d23bf4 --- /dev/null +++ b/autogpt_platform/frontend/src/services/builder-draft/draft-service.ts @@ -0,0 +1,118 @@ +import { + db, + BuilderDraft, + DRAFT_EXPIRY_MS, + cleanupExpiredDrafts, +} from "../../lib/dexie/db"; +import type { CustomNode } from "@/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode"; +import type { CustomEdge } from "@/app/(platform)/build/components/FlowEditor/edges/CustomEdge"; +import { cleanNodes, cleanEdges } from "../../lib/dexie/draft-utils"; +import isEqual from "lodash/isEqual"; +import { environment } from "@/services/environment"; + +const SESSION_TEMP_ID_KEY = "builder_temp_flow_id"; + +export function getOrCreateTempFlowId(): string { + if (environment.isServerSide()) { + return `temp_${crypto.randomUUID()}`; + } + + let tempId = sessionStorage.getItem(SESSION_TEMP_ID_KEY); + if (!tempId) { + tempId = `temp_${crypto.randomUUID()}`; + sessionStorage.setItem(SESSION_TEMP_ID_KEY, tempId); + } + return tempId; +} + +export function clearTempFlowId(): void { + if (environment.isClientSide()) { + sessionStorage.removeItem(SESSION_TEMP_ID_KEY); + } +} + +export function getTempFlowId(): string | null { + if (environment.isServerSide()) { + return null; + } + return sessionStorage.getItem(SESSION_TEMP_ID_KEY); +} + +export interface DraftData { + nodes: CustomNode[]; + edges: CustomEdge[]; + graphSchemas: { + input: Record | null; + credentials: Record | null; + output: Record | null; + }; + nodeCounter: number; + flowVersion?: number; +} + +export const draftService = { + async saveDraft(flowId: string, data: DraftData): Promise { + const draft: BuilderDraft = { + id: flowId, + nodes: data.nodes, + edges: data.edges, + graphSchemas: data.graphSchemas, + nodeCounter: data.nodeCounter, + savedAt: Date.now(), + flowVersion: data.flowVersion, + }; + + await db.drafts.put(draft); + }, + + async loadDraft(flowId: string): Promise { + const draft = await db.drafts.get(flowId); + + if (!draft) { + return null; + } + const age = Date.now() - draft.savedAt; + if (age > DRAFT_EXPIRY_MS) { + await this.deleteDraft(flowId); + return null; + } + + return draft; + }, + + async deleteDraft(flowId: string): Promise { + await db.drafts.delete(flowId); + }, + + async hasDraft(flowId: string): Promise { + const draft = await db.drafts.get(flowId); + if (!draft) return false; + + // Check expiry + const age = Date.now() - draft.savedAt; + if (age > DRAFT_EXPIRY_MS) { + await this.deleteDraft(flowId); + return false; + } + + return true; + }, + + isDraftDifferent( + draft: BuilderDraft, + currentNodes: CustomNode[], + currentEdges: CustomEdge[], + ): boolean { + const draftNodesClean = cleanNodes(draft.nodes); + const currentNodesClean = cleanNodes(currentNodes); + const draftEdgesClean = cleanEdges(draft.edges); + const currentEdgesClean = cleanEdges(currentEdges); + + const nodesDifferent = !isEqual(draftNodesClean, currentNodesClean); + const edgesDifferent = !isEqual(draftEdgesClean, currentEdgesClean); + + return nodesDifferent || edgesDifferent; + }, + + cleanupExpired: cleanupExpiredDrafts, +}; From 003affca43a2fdfb16f7abadc009c7ea08bcdc86 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Mon, 5 Jan 2026 16:09:47 +0700 Subject: [PATCH 019/160] refactor(frontend): fix new builder buttons (#11696) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Screenshot 2026-01-05 at 15 26 21 - Adjust the new builder to use the Design System components - Re-structure imports to match formatting rules - Small improvement on `use-get-flag` - Move file which is the main hook ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run locally and check the new buttons look good --- .../components/AgentOutputs/AgentOutputs.tsx | 12 ++++-- .../components/BuilderActionButton.tsx | 37 ------------------- .../PublishToMarketplace.tsx | 14 ++++--- .../components/RunGraph/RunGraph.tsx | 27 ++++++-------- .../ScheduleGraph/ScheduleGraph.tsx | 16 ++++---- .../NewControlPanel/ControlPanelButton.tsx | 2 +- .../NewBlockMenu/BlockMenu/BlockMenu.tsx | 11 +++--- .../NewControlPanel/NewControlPanel.tsx | 6 +-- .../NewSaveControl/NewSaveControl.tsx | 17 ++++----- .../NewSearchGraph/GraphMenu/GraphMenu.tsx | 8 ++-- .../NewControlPanel/UndoRedoButtons.tsx | 8 ++-- .../src/app/(platform)/build/page.tsx | 2 +- ...seBuilderViewTabs.ts => useBuilderView.ts} | 2 +- .../services/feature-flags/use-get-flag.ts | 2 +- 14 files changed, 65 insertions(+), 99 deletions(-) delete mode 100644 autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx rename autogpt_platform/frontend/src/app/(platform)/build/{components/BuilderViewTabs/useBuilderViewTabs.ts => useBuilderView.ts} (95%) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx index 237bea2ab0..de56bb46b8 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx @@ -16,6 +16,7 @@ import { SheetTitle, SheetTrigger, } from "@/components/__legacy__/ui/sheet"; +import { Button } from "@/components/atoms/Button/Button"; import { Tooltip, TooltipContent, @@ -25,7 +26,6 @@ import { import { BookOpenIcon } from "@phosphor-icons/react"; import { useMemo } from "react"; import { useShallow } from "zustand/react/shallow"; -import { BuilderActionButton } from "../BuilderActionButton"; export const AgentOutputs = ({ flowID }: { flowID: string | null }) => { const hasOutputs = useGraphStore(useShallow((state) => state.hasOutputs)); @@ -76,9 +76,13 @@ export const AgentOutputs = ({ flowID }: { flowID: string | null }) => { - - - + diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx deleted file mode 100644 index 549b432a38..0000000000 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/BuilderActionButton.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Button } from "@/components/atoms/Button/Button"; -import { ButtonProps } from "@/components/atoms/Button/helpers"; -import { cn } from "@/lib/utils"; -import { CircleNotchIcon } from "@phosphor-icons/react"; - -export const BuilderActionButton = ({ - children, - className, - isLoading, - ...props -}: ButtonProps & { isLoading?: boolean }) => { - return ( - - ); -}; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx index 500b8f0b47..e7381b7d52 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/PublishToMarketplace/PublishToMarketplace.tsx @@ -1,12 +1,12 @@ -import { ShareIcon } from "@phosphor-icons/react"; -import { BuilderActionButton } from "../BuilderActionButton"; +import { Button } from "@/components/atoms/Button/Button"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; -import { usePublishToMarketplace } from "./usePublishToMarketplace"; import { PublishAgentModal } from "@/components/contextual/PublishAgentModal/PublishAgentModal"; +import { ShareIcon } from "@phosphor-icons/react"; +import { usePublishToMarketplace } from "./usePublishToMarketplace"; export const PublishToMarketplace = ({ flowID }: { flowID: string | null }) => { const { handlePublishToMarketplace, publishState, handleStateChange } = @@ -16,12 +16,14 @@ export const PublishToMarketplace = ({ flowID }: { flowID: string | null }) => { <> - - - + + Publish to Marketplace diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunGraph/RunGraph.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunGraph/RunGraph.tsx index f4c1a7331f..7ee00ec285 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunGraph/RunGraph.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunGraph/RunGraph.tsx @@ -1,15 +1,14 @@ -import { useRunGraph } from "./useRunGraph"; import { useGraphStore } from "@/app/(platform)/build/stores/graphStore"; -import { useShallow } from "zustand/react/shallow"; -import { PlayIcon, StopIcon } from "@phosphor-icons/react"; -import { cn } from "@/lib/utils"; -import { RunInputDialog } from "../RunInputDialog/RunInputDialog"; +import { Button } from "@/components/atoms/Button/Button"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; -import { BuilderActionButton } from "../BuilderActionButton"; +import { PlayIcon, StopIcon } from "@phosphor-icons/react"; +import { useShallow } from "zustand/react/shallow"; +import { RunInputDialog } from "../RunInputDialog/RunInputDialog"; +import { useRunGraph } from "./useRunGraph"; export const RunGraph = ({ flowID }: { flowID: string | null }) => { const { @@ -29,21 +28,19 @@ export const RunGraph = ({ flowID }: { flowID: string | null }) => { <> - {!isGraphRunning ? ( - + ) : ( - + )} - + {isGraphRunning ? "Stop agent" : "Run agent"} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/ScheduleGraph/ScheduleGraph.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/ScheduleGraph/ScheduleGraph.tsx index be588fa9e7..5cc8538de1 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/ScheduleGraph/ScheduleGraph.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/ScheduleGraph/ScheduleGraph.tsx @@ -1,14 +1,14 @@ -import { ClockIcon } from "@phosphor-icons/react"; -import { RunInputDialog } from "../RunInputDialog/RunInputDialog"; -import { useScheduleGraph } from "./useScheduleGraph"; +import { Button } from "@/components/atoms/Button/Button"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; +import { ClockIcon } from "@phosphor-icons/react"; import { CronSchedulerDialog } from "../CronSchedulerDialog/CronSchedulerDialog"; -import { BuilderActionButton } from "../BuilderActionButton"; +import { RunInputDialog } from "../RunInputDialog/RunInputDialog"; +import { useScheduleGraph } from "./useScheduleGraph"; export const ScheduleGraph = ({ flowID }: { flowID: string | null }) => { const { @@ -23,12 +23,14 @@ export const ScheduleGraph = ({ flowID }: { flowID: string | null }) => { - - - + +

Schedule Graph

diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/ControlPanelButton.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/ControlPanelButton.tsx index b176a002a7..36834becf6 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/ControlPanelButton.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/ControlPanelButton.tsx @@ -24,7 +24,7 @@ export const ControlPanelButton: React.FC = ({ role={as === "div" ? "button" : undefined} disabled={as === "button" ? disabled : undefined} className={cn( - "flex h-[4.25rem] w-[4.25rem] items-center justify-center whitespace-normal bg-white p-[1.38rem] text-zinc-800 shadow-none hover:cursor-pointer hover:bg-zinc-100 hover:text-zinc-950 focus:ring-0", + "flex w-auto items-center justify-center whitespace-normal bg-white px-4 py-4 text-zinc-800 shadow-none hover:cursor-pointer hover:bg-zinc-100 hover:text-zinc-950 focus:ring-0", selected && "bg-violet-50 text-violet-700 hover:cursor-default hover:bg-violet-50 hover:text-violet-700 active:bg-violet-50 active:text-violet-700", disabled && "cursor-not-allowed opacity-50 hover:cursor-not-allowed", diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenu/BlockMenu.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenu/BlockMenu.tsx index bbaf410296..7533f501df 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenu/BlockMenu.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewBlockMenu/BlockMenu/BlockMenu.tsx @@ -1,18 +1,17 @@ -import React from "react"; +import { useControlPanelStore } from "@/app/(platform)/build/stores/controlPanelStore"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/__legacy__/ui/popover"; -import { BlockMenuContent } from "../BlockMenuContent/BlockMenuContent"; -import { ControlPanelButton } from "../../ControlPanelButton"; -import { LegoIcon } from "@phosphor-icons/react"; -import { useControlPanelStore } from "@/app/(platform)/build/stores/controlPanelStore"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; +import { LegoIcon } from "@phosphor-icons/react"; +import { ControlPanelButton } from "../../ControlPanelButton"; +import { BlockMenuContent } from "../BlockMenuContent/BlockMenuContent"; export const BlockMenu = () => { const { blockMenuOpen, setBlockMenuOpen } = useControlPanelStore(); @@ -28,7 +27,7 @@ export const BlockMenu = () => { selected={blockMenuOpen} className="rounded-none" > - + diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewControlPanel.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewControlPanel.tsx index 4828a73af4..8c8bbf1842 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewControlPanel.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewControlPanel.tsx @@ -7,10 +7,10 @@ import { useNewControlPanel } from "./useNewControlPanel"; import { GraphExecutionID } from "@/lib/autogpt-server-api"; // import { ControlPanelButton } from "../ControlPanelButton"; // import { GraphSearchMenu } from "../GraphMenu/GraphMenu"; -import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { Separator } from "@/components/__legacy__/ui/separator"; -import { NewSaveControl } from "./NewSaveControl/NewSaveControl"; +import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { CustomNode } from "../FlowEditor/nodes/CustomNode/CustomNode"; +import { NewSaveControl } from "./NewSaveControl/NewSaveControl"; import { UndoRedoButtons } from "./UndoRedoButtons"; export type Control = { @@ -56,7 +56,7 @@ export const NewControlPanel = memo( return (
diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSaveControl/NewSaveControl.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSaveControl/NewSaveControl.tsx index beae5c1705..cbf06af1c6 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSaveControl/NewSaveControl.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSaveControl/NewSaveControl.tsx @@ -1,22 +1,21 @@ -import React from "react"; +import { Card, CardContent, CardFooter } from "@/components/__legacy__/ui/card"; +import { Form, FormField } from "@/components/__legacy__/ui/form"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/__legacy__/ui/popover"; -import { Card, CardContent, CardFooter } from "@/components/__legacy__/ui/card"; +import { Button } from "@/components/atoms/Button/Button"; +import { Input } from "@/components/atoms/Input/Input"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; -import { useNewSaveControl } from "./useNewSaveControl"; -import { Form, FormField } from "@/components/__legacy__/ui/form"; -import { ControlPanelButton } from "../ControlPanelButton"; -import { useControlPanelStore } from "../../../stores/controlPanelStore"; import { FloppyDiskIcon } from "@phosphor-icons/react"; -import { Input } from "@/components/atoms/Input/Input"; -import { Button } from "@/components/atoms/Button/Button"; +import { useControlPanelStore } from "../../../stores/controlPanelStore"; +import { ControlPanelButton } from "../ControlPanelButton"; +import { useNewSaveControl } from "./useNewSaveControl"; export const NewSaveControl = () => { const { form, isSaving, graphVersion, handleSave } = useNewSaveControl(); @@ -33,7 +32,7 @@ export const NewSaveControl = () => { selected={saveControlOpen} className="rounded-none" > - + diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSearchGraph/GraphMenu/GraphMenu.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSearchGraph/GraphMenu/GraphMenu.tsx index c886919642..8ff96a598b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSearchGraph/GraphMenu/GraphMenu.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/NewSearchGraph/GraphMenu/GraphMenu.tsx @@ -1,13 +1,13 @@ -import React from "react"; +import { CustomNode } from "@/app/(platform)/build/components/legacy-builder/CustomNode/CustomNode"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/__legacy__/ui/popover"; import { MagnifyingGlassIcon } from "@phosphor-icons/react"; -import { GraphSearchContent } from "../GraphMenuContent/GraphContent"; +import React from "react"; import { ControlPanelButton } from "../../ControlPanelButton"; -import { CustomNode } from "@/app/(platform)/build/components/legacy-builder/CustomNode/CustomNode"; +import { GraphSearchContent } from "../GraphMenuContent/GraphContent"; import { useGraphMenu } from "./useGraphMenu"; interface GraphSearchMenuProps { @@ -50,7 +50,7 @@ export const GraphSearchMenu: React.FC = ({ selected={blockMenuSelected === "search"} className="rounded-none" > - + diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/UndoRedoButtons.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/UndoRedoButtons.tsx index 6f134056c8..5510335104 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/UndoRedoButtons.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/NewControlPanel/UndoRedoButtons.tsx @@ -1,12 +1,12 @@ import { Separator } from "@/components/__legacy__/ui/separator"; -import { ControlPanelButton } from "./ControlPanelButton"; -import { ArrowUUpLeftIcon, ArrowUUpRightIcon } from "@phosphor-icons/react"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; +import { ArrowUUpLeftIcon, ArrowUUpRightIcon } from "@phosphor-icons/react"; import { useHistoryStore } from "../../stores/historyStore"; +import { ControlPanelButton } from "./ControlPanelButton"; import { useEffect } from "react"; @@ -43,7 +43,7 @@ export const UndoRedoButtons = () => { - + Undo @@ -52,7 +52,7 @@ export const UndoRedoButtons = () => { - + Redo diff --git a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx index f60c863657..f1d62ee5fb 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx @@ -8,8 +8,8 @@ import { ReactFlowProvider } from "@xyflow/react"; import { useSearchParams } from "next/navigation"; import { useEffect } from "react"; import { BuilderViewTabs } from "./components/BuilderViewTabs/BuilderViewTabs"; -import { useBuilderView } from "./components/BuilderViewTabs/useBuilderViewTabs"; import { Flow } from "./components/FlowEditor/Flow/Flow"; +import { useBuilderView } from "./useBuilderView"; function BuilderContent() { const query = useSearchParams(); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderViewTabs/useBuilderViewTabs.ts b/autogpt_platform/frontend/src/app/(platform)/build/useBuilderView.ts similarity index 95% rename from autogpt_platform/frontend/src/app/(platform)/build/components/BuilderViewTabs/useBuilderViewTabs.ts rename to autogpt_platform/frontend/src/app/(platform)/build/useBuilderView.ts index ac02becca5..e0e524ddf8 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderViewTabs/useBuilderViewTabs.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/useBuilderView.ts @@ -1,7 +1,7 @@ import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useMemo } from "react"; -import { BuilderView } from "./BuilderViewTabs"; +import { BuilderView } from "./components/BuilderViewTabs/BuilderViewTabs"; export function useBuilderView() { const isNewFlowEditorEnabled = useGetFlag(Flag.NEW_FLOW_EDITOR); diff --git a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts index f05d7c68a4..64b69895f3 100644 --- a/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts +++ b/autogpt_platform/frontend/src/services/feature-flags/use-get-flag.ts @@ -56,7 +56,7 @@ export function useGetFlag(flag: T): FlagValues[T] | null { const envEnabled = process.env.NEXT_PUBLIC_LAUNCHDARKLY_ENABLED === "true"; const clientId = process.env.NEXT_PUBLIC_LAUNCHDARKLY_CLIENT_ID; - const isLaunchDarklyConfigured = envEnabled && clientId; + const isLaunchDarklyConfigured = envEnabled && Boolean(clientId); if (!isLaunchDarklyConfigured || isPwMockEnabled) { return mockFlags[flag]; From b87c64ce38fbbb489376149c110ee8a3d5f13469 Mon Sep 17 00:00:00 2001 From: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:58:57 +0530 Subject: [PATCH 020/160] feat(frontend): Add delete key bindings to ReactFlow editor (#11693) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issues fixed by this PR - https://github.com/Significant-Gravitas/AutoGPT/issues/11688 - https://github.com/Significant-Gravitas/AutoGPT/issues/11687 ### **Changes 🏗️** Added keyboard delete functionality to the ReactFlow editor by enabling the `deleteKeyCode` prop with both "Backspace" and "Delete" keys. This allows users to delete selected nodes and edges using standard keyboard shortcuts, improving the editing experience. **Modified:** - `Flow.tsx`: Added `deleteKeyCode={["Backspace", "Delete"]}` prop to the ReactFlow component to enable deletion of selected elements via keyboard ### **Checklist 📋** #### **For code changes:** - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Select a node in the flow editor and press Delete key to confirm it deletes - [x] Select a node in the flow editor and press Backspace key to confirm it deletes - [x] Verify deletion works for multiple selected elements --- .../(platform)/build/components/FlowEditor/Flow/Flow.tsx | 1 + .../src/app/(platform)/build/stores/edgeStore.ts | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx index 4c6796d746..cf6dd1885c 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx @@ -99,6 +99,7 @@ export const Flow = () => { nodesDraggable={!isLocked} nodesConnectable={!isLocked} elementsSelectable={!isLocked} + deleteKeyCode={["Backspace", "Delete"]} > diff --git a/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts b/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts index 0d0e4202fb..cae1d995da 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts @@ -115,10 +115,11 @@ export const useEdgeStore = create((set, get) => ({ edge.data?.beadData ?? new Map(); - if ( - edge.targetHandle && - edge.targetHandle in executionResult.input_data - ) { + const inputValue = edge.targetHandle + ? executionResult.input_data[edge.targetHandle] + : undefined; + + if (inputValue !== undefined && inputValue !== null) { beadData.set(executionResult.node_exec_id, executionResult.status); } From bdba0033de6c09a3e8c7dcc16501d0963d76b383 Mon Sep 17 00:00:00 2001 From: Ubbe Date: Mon, 5 Jan 2026 17:29:12 +0700 Subject: [PATCH 021/160] refactor(frontend): move NodeInput files (#11695) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Changes 🏗️ Move the `` component next to the old builder code where it is used. ## Checklist 📋 ### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Run app locally and click around, E2E is fine --- .../build/components/FlowEditor/Flow/Flow.tsx | 45 ++++++++++--------- .../components/legacy-builder/NodeInputs.tsx | 2 +- .../legacy-builder/NodeTableInput.tsx} | 12 ++--- .../agent/[creator]/[slug]/page.tsx | 8 ++-- .../marketplace/creator/[creator]/page.tsx | 8 ++-- .../frontend/src/app/global-error.tsx | 11 +++-- 6 files changed, 45 insertions(+), 41 deletions(-) rename autogpt_platform/frontend/src/{components/node-table-input.tsx => app/(platform)/build/components/legacy-builder/NodeTableInput.tsx} (96%) diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx index cf6dd1885c..faaebb6b35 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/Flow.tsx @@ -1,27 +1,27 @@ -import { ReactFlow, Background } from "@xyflow/react"; -import NewControlPanel from "../../NewControlPanel/NewControlPanel"; -import CustomEdge from "../edges/CustomEdge"; -import { useFlow } from "./useFlow"; -import { useShallow } from "zustand/react/shallow"; -import { useNodeStore } from "../../../stores/nodeStore"; -import { useMemo, useCallback } from "react"; -import { CustomNode } from "../nodes/CustomNode/CustomNode"; -import { useCustomEdge } from "../edges/useCustomEdge"; -import { useFlowRealtime } from "./useFlowRealtime"; -import { GraphLoadingBox } from "./components/GraphLoadingBox"; -import { BuilderActions } from "../../BuilderActions/BuilderActions"; -import { RunningBackground } from "./components/RunningBackground"; -import { useGraphStore } from "../../../stores/graphStore"; -import { useCopyPaste } from "./useCopyPaste"; -import { FloatingReviewsPanel } from "@/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel"; -import { parseAsString, useQueryStates } from "nuqs"; -import { CustomControls } from "./components/CustomControl"; import { useGetV1GetSpecificGraph } from "@/app/api/__generated__/endpoints/graphs/graphs"; import { okData } from "@/app/api/helpers"; +import { FloatingReviewsPanel } from "@/components/organisms/FloatingReviewsPanel/FloatingReviewsPanel"; +import { Background, ReactFlow } from "@xyflow/react"; +import { parseAsString, useQueryStates } from "nuqs"; +import { useCallback, useMemo } from "react"; +import { useShallow } from "zustand/react/shallow"; +import { useGraphStore } from "../../../stores/graphStore"; +import { useNodeStore } from "../../../stores/nodeStore"; +import { BuilderActions } from "../../BuilderActions/BuilderActions"; +import { DraftRecoveryPopup } from "../../DraftRecoveryDialog/DraftRecoveryPopup"; +import { FloatingSafeModeToggle } from "../../FloatingSafeModeToogle"; +import NewControlPanel from "../../NewControlPanel/NewControlPanel"; +import CustomEdge from "../edges/CustomEdge"; +import { useCustomEdge } from "../edges/useCustomEdge"; +import { CustomNode } from "../nodes/CustomNode/CustomNode"; +import { CustomControls } from "./components/CustomControl"; +import { GraphLoadingBox } from "./components/GraphLoadingBox"; +import { RunningBackground } from "./components/RunningBackground"; import { TriggerAgentBanner } from "./components/TriggerAgentBanner"; import { resolveCollisions } from "./helpers/resolve-collision"; -import { FloatingSafeModeToggle } from "../../FloatingSafeModeToogle"; -import { DraftRecoveryPopup } from "../../DraftRecoveryDialog/DraftRecoveryPopup"; +import { useCopyPaste } from "./useCopyPaste"; +import { useFlow } from "./useFlow"; +import { useFlowRealtime } from "./useFlowRealtime"; export const Flow = () => { const [{ flowID, flowExecutionID }] = useQueryStates({ @@ -42,14 +42,18 @@ export const Flow = () => { const nodes = useNodeStore(useShallow((state) => state.nodes)); const setNodes = useNodeStore(useShallow((state) => state.setNodes)); + const onNodesChange = useNodeStore( useShallow((state) => state.onNodesChange), ); + const hasWebhookNodes = useNodeStore( useShallow((state) => state.hasWebhookNodes()), ); + const nodeTypes = useMemo(() => ({ custom: CustomNode }), []); const edgeTypes = useMemo(() => ({ custom: CustomEdge }), []); + const onNodeDragStop = useCallback(() => { setNodes( resolveCollisions(nodes, { @@ -80,6 +84,7 @@ export const Flow = () => { const isGraphRunning = useGraphStore( useShallow((state) => state.isGraphRunning), ); + return (
diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx index 683a854c21..e9d077bde1 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx @@ -2,6 +2,7 @@ import { ConnectionData, CustomNodeData, } from "@/app/(platform)/build/components/legacy-builder/CustomNode/CustomNode"; +import { NodeTableInput } from "@/app/(platform)/build/components/legacy-builder/NodeTableInput"; import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; import { Button } from "@/components/__legacy__/ui/button"; import { Calendar } from "@/components/__legacy__/ui/calendar"; @@ -28,7 +29,6 @@ import { } from "@/components/__legacy__/ui/select"; import { Switch } from "@/components/atoms/Switch/Switch"; import { GoogleDrivePickerInput } from "@/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput"; -import { NodeTableInput } from "@/components/node-table-input"; import { BlockIOArraySubSchema, BlockIOBooleanSubSchema, diff --git a/autogpt_platform/frontend/src/components/node-table-input.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeTableInput.tsx similarity index 96% rename from autogpt_platform/frontend/src/components/node-table-input.tsx rename to autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeTableInput.tsx index 9c1a8003ee..0e27d98ba2 100644 --- a/autogpt_platform/frontend/src/components/node-table-input.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeTableInput.tsx @@ -1,15 +1,15 @@ -import React, { FC, useCallback, useEffect, useState } from "react"; +import { FC, useCallback, useEffect, useState } from "react"; -import { PlusIcon, XIcon } from "@phosphor-icons/react"; -import { cn } from "@/lib/utils"; import NodeHandle from "@/app/(platform)/build/components/legacy-builder/NodeHandle"; import { BlockIOTableSubSchema, - TableRow, TableCellValue, + TableRow, } from "@/lib/autogpt-server-api/types"; -import { Input } from "./atoms/Input/Input"; -import { Button } from "./atoms/Button/Button"; +import { cn } from "@/lib/utils"; +import { PlusIcon, XIcon } from "@phosphor-icons/react"; +import { Button } from "../../../../../components/atoms/Button/Button"; +import { Input } from "../../../../../components/atoms/Input/Input"; interface NodeTableInputProps { /** Unique identifier for the node in the builder graph */ diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx index 124db89385..8106694fe7 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/agent/[creator]/[slug]/page.tsx @@ -1,15 +1,15 @@ -import { Metadata } from "next"; -import { getServerUser } from "@/lib/supabase/server/getServerUser"; +import { prefetchGetV2GetAgentByStoreIdQuery } from "@/app/api/__generated__/endpoints/library/library"; import { getV2GetSpecificAgent, prefetchGetV2GetSpecificAgentQuery, prefetchGetV2ListStoreAgentsQuery, } from "@/app/api/__generated__/endpoints/store/store"; import { StoreAgentDetails } from "@/app/api/__generated__/models/storeAgentDetails"; -import { MainAgentPage } from "../../../components/MainAgentPage/MainAgentPage"; import { getQueryClient } from "@/lib/react-query/queryClient"; -import { prefetchGetV2GetAgentByStoreIdQuery } from "@/app/api/__generated__/endpoints/library/library"; +import { getServerUser } from "@/lib/supabase/server/getServerUser"; import { dehydrate, HydrationBoundary } from "@tanstack/react-query"; +import { Metadata } from "next"; +import { MainAgentPage } from "../../../components/MainAgentPage/MainAgentPage"; export const dynamic = "force-dynamic"; diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx index 7d8158b123..e2c9f2ee01 100644 --- a/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/creator/[creator]/page.tsx @@ -1,13 +1,13 @@ -import { getQueryClient } from "@/lib/react-query/queryClient"; import { getV2GetCreatorDetails, prefetchGetV2GetCreatorDetailsQuery, prefetchGetV2ListStoreAgentsQuery, } from "@/app/api/__generated__/endpoints/store/store"; -import { dehydrate, HydrationBoundary } from "@tanstack/react-query"; -import { MainCreatorPage } from "../../components/MainCreatorPage/MainCreatorPage"; -import { Metadata } from "next"; import { CreatorDetails } from "@/app/api/__generated__/models/creatorDetails"; +import { getQueryClient } from "@/lib/react-query/queryClient"; +import { dehydrate, HydrationBoundary } from "@tanstack/react-query"; +import { Metadata } from "next"; +import { MainCreatorPage } from "../../components/MainCreatorPage/MainCreatorPage"; export const dynamic = "force-dynamic"; diff --git a/autogpt_platform/frontend/src/app/global-error.tsx b/autogpt_platform/frontend/src/app/global-error.tsx index 07b22f1c15..5391c2e433 100644 --- a/autogpt_platform/frontend/src/app/global-error.tsx +++ b/autogpt_platform/frontend/src/app/global-error.tsx @@ -1,16 +1,15 @@ "use client"; -import * as Sentry from "@sentry/nextjs"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import * as Sentry from "@sentry/nextjs"; import { useEffect } from "react"; -export default function GlobalError({ - error, - reset, -}: { +interface Props { error: Error & { digest?: string }; reset: () => void; -}) { +} + +export default function GlobalError({ error, reset }: Props) { useEffect(() => { Sentry.captureException(error); }, [error]); From 01f443190e415e0203e10182772abb7cc4c4867e Mon Sep 17 00:00:00 2001 From: lif <1835304752@qq.com> Date: Tue, 6 Jan 2026 00:10:47 +0800 Subject: [PATCH 022/160] fix(frontend): allow empty values in number inputs and fix AnyOfField toggle (#11661) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This PR fixes two related issues with number/integer inputs in the frontend: 1. **HTMLType typo fix**: INTEGER input type was incorrectly mapped to `htmlType: 'account'` (which is not a valid HTML input type) instead of `htmlType: 'number'`. 2. **AnyOfField toggle fix**: When a user cleared a number input field, the input would disappear because `useAnyOfField` checked for both `null` AND `undefined` in `isEnabled`. This PR changes it to only check for explicit `null` (set by toggle off), allowing `undefined` (empty input) to keep the field visible. ### Root cause analysis When a user cleared a number input: 1. `handleChange` returned `undefined` (because `v === "" ? undefined : Number(v)`) 2. In `useAnyOfField`, `isEnabled = formData !== null && formData !== undefined` became `false` 3. The input field disappeared ### Fix Changed `useAnyOfField.tsx` line 67: ```diff - const isEnabled = formData !== null && formData !== undefined; + const isEnabled = formData !== null; ``` This way: - When toggle is OFF → `formData` is `null` → `isEnabled` is `false` (input hidden) ✓ - When toggle is ON but input is cleared → `formData` is `undefined` → `isEnabled` is `true` (input visible) ✓ ## Test plan - [x] Verified INTEGER inputs now render correctly with `type="number"` - [x] Verified clearing a number input keeps the field visible - [x] Verified toggling the nullable switch still works correctly Fixes #11594 🤖 AI-assisted development disclaimer: This PR was developed with assistance from Claude Code. --------- Signed-off-by: majiayu000 <1835304752@qq.com> Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> --- .../fields/AnyOfField/useAnyOfField.tsx | 12 ++++++++++-- .../widgets/TextInputWidget/TextInputWidget.tsx | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/useAnyOfField.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/useAnyOfField.tsx index 7b35776476..073ed1f8e5 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/useAnyOfField.tsx +++ b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/useAnyOfField.tsx @@ -64,7 +64,9 @@ export const useAnyOfField = ( const [selectedType, setSelectedType] = useState(initialSelectedType); - const isEnabled = formData !== null && formData !== undefined; + // Only check for explicit null (set by toggle off), not undefined (empty input) + // This allows users to clear number inputs without the field disappearing + const isEnabled = formData !== null; const handleTypeChange = (t: string) => { setSelectedType(t); @@ -79,7 +81,13 @@ export const useAnyOfField = ( } }; - const handleValueChange = (value: any) => onChange(value); + const handleValueChange = (value: any) => { + if (isNullableType && value === null) { + onChange(undefined); + return; + } + onChange(value); + }; const currentTypeOption = typeOptions.find((o) => o.type === selectedType); diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx index d9fea28a8d..83fe826223 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx @@ -51,7 +51,7 @@ export const TextInputWidget = (props: WidgetProps) => { handleChange: (v: string) => (v === "" ? undefined : Number(v)), }, [InputType.INTEGER]: { - htmlType: "account", + htmlType: "number", placeholder: "Enter integer value...", handleChange: (v: string) => (v === "" ? undefined : Number(v)), }, From 266e0d79d424ed0f5cfab269a7c97e8df7dafbac Mon Sep 17 00:00:00 2001 From: lif <1835304752@qq.com> Date: Tue, 6 Jan 2026 00:11:45 +0800 Subject: [PATCH 023/160] fix(blocks): add YouTube Shorts URL support (#11659) ## Summary Added support for parsing YouTube Shorts URLs (`youtube.com/shorts/...`) in the TranscribeYoutubeVideoBlock to extract video IDs correctly. ## Changes - Modified `_extract_video_id` method in `youtube.py` to handle Shorts URL format - Added test cases for YouTube Shorts URL extraction ## Related Issue Fixes #11500 ## Test Plan - [x] Added unit tests for YouTube Shorts URL extraction - [x] Verified existing YouTube URL formats still work - [x] CI should pass all existing tests --------- Co-authored-by: Ubbe --- autogpt_platform/backend/backend/blocks/youtube.py | 2 ++ autogpt_platform/backend/test/blocks/test_youtube.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/autogpt_platform/backend/backend/blocks/youtube.py b/autogpt_platform/backend/backend/blocks/youtube.py index 322cac35a8..e79be3e99b 100644 --- a/autogpt_platform/backend/backend/blocks/youtube.py +++ b/autogpt_platform/backend/backend/blocks/youtube.py @@ -111,6 +111,8 @@ class TranscribeYoutubeVideoBlock(Block): return parsed_url.path.split("/")[2] if parsed_url.path[:3] == "/v/": return parsed_url.path.split("/")[2] + if parsed_url.path.startswith("/shorts/"): + return parsed_url.path.split("/")[2] raise ValueError(f"Invalid YouTube URL: {url}") def get_transcript( diff --git a/autogpt_platform/backend/test/blocks/test_youtube.py b/autogpt_platform/backend/test/blocks/test_youtube.py index 1af7c31b9b..4d3bd9d800 100644 --- a/autogpt_platform/backend/test/blocks/test_youtube.py +++ b/autogpt_platform/backend/test/blocks/test_youtube.py @@ -37,6 +37,18 @@ class TestTranscribeYoutubeVideoBlock: video_id = self.youtube_block.extract_video_id(url) assert video_id == "dQw4w9WgXcQ" + def test_extract_video_id_shorts_url(self): + """Test extracting video ID from YouTube Shorts URL.""" + url = "https://www.youtube.com/shorts/dtUqwMu3e-g" + video_id = self.youtube_block.extract_video_id(url) + assert video_id == "dtUqwMu3e-g" + + def test_extract_video_id_shorts_url_with_params(self): + """Test extracting video ID from YouTube Shorts URL with query parameters.""" + url = "https://www.youtube.com/shorts/dtUqwMu3e-g?feature=share" + video_id = self.youtube_block.extract_video_id(url) + assert video_id == "dtUqwMu3e-g" + @patch("backend.blocks.youtube.YouTubeTranscriptApi") def test_get_transcript_english_available(self, mock_api_class): """Test getting transcript when English is available.""" From ac2daee5f8679d7d4c90c29cd968fd635296129b Mon Sep 17 00:00:00 2001 From: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com> Date: Tue, 6 Jan 2026 01:13:35 +0900 Subject: [PATCH 024/160] feat(backend): Add `GPT-5.2` and update default models (#11652) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes 🏗️ - Add OpenAI `GPT-5.2` with metadata&cost - Add const `DEFAULT_LLM_MODEL` (set to GPT-5.2) and use it instead of hardcoded model across llm blocks and tests ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] GPT-5.2 is set as default and works on llm blocks --- .../backend/backend/api/rest_api.py | 4 +-- .../backend/backend/blocks/ai_condition.py | 5 ++-- .../backend/backend/blocks/llm.py | 24 +++++++++------- .../backend/blocks/smart_decision_maker.py | 2 +- .../backend/backend/blocks/test/test_llm.py | 28 +++++++++---------- .../blocks/test/test_smart_decision_maker.py | 20 ++++++------- ...est_smart_decision_maker_dynamic_fields.py | 4 +-- .../backend/backend/data/block_cost_config.py | 9 +++--- 8 files changed, 51 insertions(+), 45 deletions(-) diff --git a/autogpt_platform/backend/backend/api/rest_api.py b/autogpt_platform/backend/backend/api/rest_api.py index 147f62e781..e9556e992f 100644 --- a/autogpt_platform/backend/backend/api/rest_api.py +++ b/autogpt_platform/backend/backend/api/rest_api.py @@ -39,7 +39,7 @@ import backend.data.user import backend.integrations.webhooks.utils import backend.util.service import backend.util.settings -from backend.blocks.llm import LlmModel +from backend.blocks.llm import DEFAULT_LLM_MODEL from backend.data.model import Credentials from backend.integrations.providers import ProviderName from backend.monitoring.instrumentation import instrument_fastapi @@ -113,7 +113,7 @@ async def lifespan_context(app: fastapi.FastAPI): await backend.data.user.migrate_and_encrypt_user_integrations() await backend.data.graph.fix_llm_provider_credentials() - await backend.data.graph.migrate_llm_models(LlmModel.GPT4O) + await backend.data.graph.migrate_llm_models(DEFAULT_LLM_MODEL) await backend.integrations.webhooks.utils.migrate_legacy_triggered_graphs() with launch_darkly_context(): diff --git a/autogpt_platform/backend/backend/blocks/ai_condition.py b/autogpt_platform/backend/backend/blocks/ai_condition.py index de43c29a90..2a5cdcdeec 100644 --- a/autogpt_platform/backend/backend/blocks/ai_condition.py +++ b/autogpt_platform/backend/backend/blocks/ai_condition.py @@ -1,6 +1,7 @@ from typing import Any from backend.blocks.llm import ( + DEFAULT_LLM_MODEL, TEST_CREDENTIALS, TEST_CREDENTIALS_INPUT, AIBlockBase, @@ -49,7 +50,7 @@ class AIConditionBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for evaluating the condition.", advanced=False, ) @@ -81,7 +82,7 @@ class AIConditionBlock(AIBlockBase): "condition": "the input is an email address", "yes_value": "Valid email", "no_value": "Not an email", - "model": LlmModel.GPT4O, + "model": DEFAULT_LLM_MODEL, "credentials": TEST_CREDENTIALS_INPUT, }, test_credentials=TEST_CREDENTIALS, diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index 447c28783f..7fc1a69038 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -92,8 +92,9 @@ class LlmModel(str, Enum, metaclass=LlmModelMeta): O1 = "o1" O1_MINI = "o1-mini" # GPT-5 models - GPT5 = "gpt-5-2025-08-07" + GPT5_2 = "gpt-5.2-2025-12-11" GPT5_1 = "gpt-5.1-2025-11-13" + GPT5 = "gpt-5-2025-08-07" GPT5_MINI = "gpt-5-mini-2025-08-07" GPT5_NANO = "gpt-5-nano-2025-08-07" GPT5_CHAT = "gpt-5-chat-latest" @@ -194,8 +195,9 @@ MODEL_METADATA = { LlmModel.O1: ModelMetadata("openai", 200000, 100000), # o1-2024-12-17 LlmModel.O1_MINI: ModelMetadata("openai", 128000, 65536), # o1-mini-2024-09-12 # GPT-5 models - LlmModel.GPT5: ModelMetadata("openai", 400000, 128000), + LlmModel.GPT5_2: ModelMetadata("openai", 400000, 128000), LlmModel.GPT5_1: ModelMetadata("openai", 400000, 128000), + LlmModel.GPT5: ModelMetadata("openai", 400000, 128000), LlmModel.GPT5_MINI: ModelMetadata("openai", 400000, 128000), LlmModel.GPT5_NANO: ModelMetadata("openai", 400000, 128000), LlmModel.GPT5_CHAT: ModelMetadata("openai", 400000, 16384), @@ -303,6 +305,8 @@ MODEL_METADATA = { LlmModel.V0_1_0_MD: ModelMetadata("v0", 128000, 64000), } +DEFAULT_LLM_MODEL = LlmModel.GPT5_2 + for model in LlmModel: if model not in MODEL_METADATA: raise ValueError(f"Missing MODEL_METADATA metadata for model: {model}") @@ -790,7 +794,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for answering the prompt.", advanced=False, ) @@ -855,7 +859,7 @@ class AIStructuredResponseGeneratorBlock(AIBlockBase): input_schema=AIStructuredResponseGeneratorBlock.Input, output_schema=AIStructuredResponseGeneratorBlock.Output, test_input={ - "model": LlmModel.GPT4O, + "model": DEFAULT_LLM_MODEL, "credentials": TEST_CREDENTIALS_INPUT, "expected_format": { "key1": "value1", @@ -1221,7 +1225,7 @@ class AITextGeneratorBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for answering the prompt.", advanced=False, ) @@ -1317,7 +1321,7 @@ class AITextSummarizerBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for summarizing the text.", ) focus: str = SchemaField( @@ -1534,7 +1538,7 @@ class AIConversationBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for the conversation.", ) credentials: AICredentials = AICredentialsField() @@ -1572,7 +1576,7 @@ class AIConversationBlock(AIBlockBase): }, {"role": "user", "content": "Where was it played?"}, ], - "model": LlmModel.GPT4O, + "model": DEFAULT_LLM_MODEL, "credentials": TEST_CREDENTIALS_INPUT, }, test_credentials=TEST_CREDENTIALS, @@ -1635,7 +1639,7 @@ class AIListGeneratorBlock(AIBlockBase): ) model: LlmModel = SchemaField( title="LLM Model", - default=LlmModel.GPT4O, + default=DEFAULT_LLM_MODEL, description="The language model to use for generating the list.", advanced=True, ) @@ -1692,7 +1696,7 @@ class AIListGeneratorBlock(AIBlockBase): "drawing explorers to uncover its mysteries. Each planet showcases the limitless possibilities of " "fictional worlds." ), - "model": LlmModel.GPT4O, + "model": DEFAULT_LLM_MODEL, "credentials": TEST_CREDENTIALS_INPUT, "max_retries": 3, "force_json_output": False, diff --git a/autogpt_platform/backend/backend/blocks/smart_decision_maker.py b/autogpt_platform/backend/backend/blocks/smart_decision_maker.py index e2e5cfa3e4..751f6af37f 100644 --- a/autogpt_platform/backend/backend/blocks/smart_decision_maker.py +++ b/autogpt_platform/backend/backend/blocks/smart_decision_maker.py @@ -226,7 +226,7 @@ class SmartDecisionMakerBlock(Block): ) model: llm.LlmModel = SchemaField( title="LLM Model", - default=llm.LlmModel.GPT4O, + default=llm.DEFAULT_LLM_MODEL, description="The language model to use for answering the prompt.", advanced=False, ) diff --git a/autogpt_platform/backend/backend/blocks/test/test_llm.py b/autogpt_platform/backend/backend/blocks/test/test_llm.py index 090587767a..ea8760d313 100644 --- a/autogpt_platform/backend/backend/blocks/test/test_llm.py +++ b/autogpt_platform/backend/backend/blocks/test/test_llm.py @@ -28,7 +28,7 @@ class TestLLMStatsTracking: response = await llm.llm_call( credentials=llm.TEST_CREDENTIALS, - llm_model=llm.LlmModel.GPT4O, + llm_model=llm.DEFAULT_LLM_MODEL, prompt=[{"role": "user", "content": "Hello"}], max_tokens=100, ) @@ -65,7 +65,7 @@ class TestLLMStatsTracking: input_data = llm.AIStructuredResponseGeneratorBlock.Input( prompt="Test prompt", expected_format={"key1": "desc1", "key2": "desc2"}, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore # type: ignore ) @@ -109,7 +109,7 @@ class TestLLMStatsTracking: # Run the block input_data = llm.AITextGeneratorBlock.Input( prompt="Generate text", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore ) @@ -170,7 +170,7 @@ class TestLLMStatsTracking: input_data = llm.AIStructuredResponseGeneratorBlock.Input( prompt="Test prompt", expected_format={"key1": "desc1", "key2": "desc2"}, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore retry=2, ) @@ -228,7 +228,7 @@ class TestLLMStatsTracking: input_data = llm.AITextSummarizerBlock.Input( text=long_text, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore max_tokens=100, # Small chunks chunk_overlap=10, @@ -299,7 +299,7 @@ class TestLLMStatsTracking: # Test with very short text (should only need 1 chunk + 1 final summary) input_data = llm.AITextSummarizerBlock.Input( text="This is a short text.", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore max_tokens=1000, # Large enough to avoid chunking ) @@ -346,7 +346,7 @@ class TestLLMStatsTracking: {"role": "assistant", "content": "Hi there!"}, {"role": "user", "content": "How are you?"}, ], - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore ) @@ -387,7 +387,7 @@ class TestLLMStatsTracking: # Run the block input_data = llm.AIListGeneratorBlock.Input( focus="test items", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore max_retries=3, ) @@ -469,7 +469,7 @@ class TestLLMStatsTracking: input_data = llm.AIStructuredResponseGeneratorBlock.Input( prompt="Test", expected_format={"result": "desc"}, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore ) @@ -513,7 +513,7 @@ class TestAITextSummarizerValidation: # Create input data input_data = llm.AITextSummarizerBlock.Input( text="Some text to summarize", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore style=llm.SummaryStyle.BULLET_POINTS, ) @@ -558,7 +558,7 @@ class TestAITextSummarizerValidation: # Create input data input_data = llm.AITextSummarizerBlock.Input( text="Some text to summarize", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore style=llm.SummaryStyle.BULLET_POINTS, max_tokens=1000, @@ -593,7 +593,7 @@ class TestAITextSummarizerValidation: # Create input data input_data = llm.AITextSummarizerBlock.Input( text="Some text to summarize", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore ) @@ -623,7 +623,7 @@ class TestAITextSummarizerValidation: # Create input data input_data = llm.AITextSummarizerBlock.Input( text="Some text to summarize", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore max_tokens=1000, ) @@ -654,7 +654,7 @@ class TestAITextSummarizerValidation: # Create input data input_data = llm.AITextSummarizerBlock.Input( text="Some text to summarize", - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, credentials=llm.TEST_CREDENTIALS_INPUT, # type: ignore ) diff --git a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py index deff4278f9..c930fab37e 100644 --- a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py +++ b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker.py @@ -233,7 +233,7 @@ async def test_smart_decision_maker_tracks_llm_stats(): # Create test input input_data = SmartDecisionMakerBlock.Input( prompt="Should I continue with this task?", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -335,7 +335,7 @@ async def test_smart_decision_maker_parameter_validation(): input_data = SmartDecisionMakerBlock.Input( prompt="Search for keywords", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore retry=2, # Set retry to 2 for testing agent_mode_max_iterations=0, @@ -402,7 +402,7 @@ async def test_smart_decision_maker_parameter_validation(): input_data = SmartDecisionMakerBlock.Input( prompt="Search for keywords", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -462,7 +462,7 @@ async def test_smart_decision_maker_parameter_validation(): input_data = SmartDecisionMakerBlock.Input( prompt="Search for keywords", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -526,7 +526,7 @@ async def test_smart_decision_maker_parameter_validation(): input_data = SmartDecisionMakerBlock.Input( prompt="Search for keywords", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -648,7 +648,7 @@ async def test_smart_decision_maker_raw_response_conversion(): input_data = SmartDecisionMakerBlock.Input( prompt="Test prompt", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore retry=2, agent_mode_max_iterations=0, @@ -722,7 +722,7 @@ async def test_smart_decision_maker_raw_response_conversion(): ): input_data = SmartDecisionMakerBlock.Input( prompt="Simple prompt", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -778,7 +778,7 @@ async def test_smart_decision_maker_raw_response_conversion(): ): input_data = SmartDecisionMakerBlock.Input( prompt="Another test", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, ) @@ -931,7 +931,7 @@ async def test_smart_decision_maker_agent_mode(): # Test agent mode with max_iterations = 3 input_data = SmartDecisionMakerBlock.Input( prompt="Complete this task using tools", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=3, # Enable agent mode with 3 max iterations ) @@ -1020,7 +1020,7 @@ async def test_smart_decision_maker_traditional_mode_default(): # Test default behavior (traditional mode) input_data = SmartDecisionMakerBlock.Input( prompt="Test prompt", - model=llm_module.LlmModel.GPT4O, + model=llm_module.DEFAULT_LLM_MODEL, credentials=llm_module.TEST_CREDENTIALS_INPUT, # type: ignore agent_mode_max_iterations=0, # Traditional mode ) diff --git a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker_dynamic_fields.py b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker_dynamic_fields.py index d6a0c0fe39..6ed830e517 100644 --- a/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker_dynamic_fields.py +++ b/autogpt_platform/backend/backend/blocks/test/test_smart_decision_maker_dynamic_fields.py @@ -373,7 +373,7 @@ async def test_output_yielding_with_dynamic_fields(): input_data = block.input_schema( prompt="Create a user dictionary", credentials=llm.TEST_CREDENTIALS_INPUT, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, agent_mode_max_iterations=0, # Use traditional mode to test output yielding ) @@ -594,7 +594,7 @@ async def test_validation_errors_dont_pollute_conversation(): input_data = block.input_schema( prompt="Test prompt", credentials=llm.TEST_CREDENTIALS_INPUT, - model=llm.LlmModel.GPT4O, + model=llm.DEFAULT_LLM_MODEL, retry=3, # Allow retries agent_mode_max_iterations=1, ) diff --git a/autogpt_platform/backend/backend/data/block_cost_config.py b/autogpt_platform/backend/backend/data/block_cost_config.py index 6bb32d3a47..7f8ee97d52 100644 --- a/autogpt_platform/backend/backend/data/block_cost_config.py +++ b/autogpt_platform/backend/backend/data/block_cost_config.py @@ -59,12 +59,13 @@ from backend.integrations.credentials_store import ( MODEL_COST: dict[LlmModel, int] = { LlmModel.O3: 4, - LlmModel.O3_MINI: 2, # $1.10 / $4.40 - LlmModel.O1: 16, # $15 / $60 + LlmModel.O3_MINI: 2, + LlmModel.O1: 16, LlmModel.O1_MINI: 4, # GPT-5 models - LlmModel.GPT5: 2, + LlmModel.GPT5_2: 6, LlmModel.GPT5_1: 5, + LlmModel.GPT5: 2, LlmModel.GPT5_MINI: 1, LlmModel.GPT5_NANO: 1, LlmModel.GPT5_CHAT: 5, @@ -87,7 +88,7 @@ MODEL_COST: dict[LlmModel, int] = { LlmModel.AIML_API_LLAMA3_3_70B: 1, LlmModel.AIML_API_META_LLAMA_3_1_70B: 1, LlmModel.AIML_API_LLAMA_3_2_3B: 1, - LlmModel.LLAMA3_3_70B: 1, # $0.59 / $0.79 + LlmModel.LLAMA3_3_70B: 1, LlmModel.LLAMA3_1_8B: 1, LlmModel.OLLAMA_LLAMA3_3: 1, LlmModel.OLLAMA_LLAMA3_2: 1, From cb08def96cff8c4daf1cadcbb673e3e7c32b5169 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Mon, 5 Jan 2026 12:36:56 -0600 Subject: [PATCH 025/160] feat(blocks): Add Google Docs integration blocks (#11608) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces a new module with blocks for Google Docs operations, including reading, creating, appending, inserting, formatting, exporting, sharing, and managing public access for Google Docs. Updates dependencies in pyproject.toml and poetry.lock to support these features. https://github.com/user-attachments/assets/3597366b-a9eb-4f8e-8a0a-5a0bc8ebc09b ### Changes 🏗️ Adds lots of basic docs tools + a dependency to use them with markdown Block | Description | Key Features -- | -- | -- Read & Create |   |   GoogleDocsReadBlock | Read content from a Google Doc | Returns text content, title, revision ID GoogleDocsCreateBlock | Create a new Google Doc | Title, optional initial content GoogleDocsGetMetadataBlock | Get document metadata | Title, revision ID, locale, suggested modes GoogleDocsGetStructureBlock | Get document structure with indexes | Flat segments or detailed hierarchy; shows start/end indexes Plain Text Operations |   |   GoogleDocsAppendPlainTextBlock | Append plain text to end | No formatting applied GoogleDocsInsertPlainTextBlock | Insert plain text at position | Requires index; no formatting GoogleDocsFindReplacePlainTextBlock | Find and replace plain text | Case-sensitive option; no formatting on replacement Markdown Operations | (ideal for LLM/AI output) |   GoogleDocsAppendMarkdownBlock | Append Markdown to end | Full formatting via gravitas-md2gdocs GoogleDocsInsertMarkdownAtBlock | Insert Markdown at position | Requires index GoogleDocsReplaceAllWithMarkdownBlock | Replace entire doc with Markdown | Clears and rewrites GoogleDocsReplaceRangeWithMarkdownBlock | Replace index range with Markdown | Requires start/end index GoogleDocsReplaceContentWithMarkdownBlock | Find text and replace with Markdown | Text-based search; great for templates Structural Operations |   |   GoogleDocsInsertTableBlock | Insert a table | Rows/columns OR content array; optional Markdown in cells GoogleDocsInsertPageBreakBlock | Insert a page break | Position index (0 = end) GoogleDocsDeleteContentBlock | Delete content range | Requires start/end index GoogleDocsFormatTextBlock | Apply formatting to text range | Bold, italic, underline, font size/color, etc. Export & Sharing |   |   GoogleDocsExportBlock | Export to different formats | PDF, DOCX, TXT, HTML, RTF, ODT, EPUB GoogleDocsShareBlock | Share with specific users | Reader, commenter, writer, owner roles GoogleDocsSetPublicAccessBlock | Set public access level | Private, anyone with link (view/comment/edit) ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Build, run, verify, and upload a block super test - [x] [Google Docs Super Agent_v8.json](https://github.com/user-attachments/files/24134215/Google.Docs.Super.Agent_v8.json) works ## Summary by CodeRabbit * **Chores** * Updated backend dependencies. ✏️ Tip: You can customize this high-level summary in your review settings. --- > [!NOTE] > Adds end-to-end Google Docs capabilities under `backend/blocks/google/docs.py`, including rich Markdown support. > > - New blocks: read/create docs; plain-text `append`/`insert`/`find_replace`/`delete`; text `format`; `insert_table`; `insert_page_break`; `get_metadata`; `get_structure` > - Markdown-powered blocks (via `gravitas_md2gdocs.to_requests`): `append_markdown`, `insert_markdown_at`, `replace_all_with_markdown`, `replace_range_with_markdown`, `replace_content_with_markdown` > - Export and sharing: `export` (PDF/DOCX/TXT/HTML/RTF/ODT/EPUB), `share` (user roles), `set_public_access` > - Dependency updates: add `gravitas-md2gdocs` to `pyproject.toml` and update `poetry.lock` > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 73512a95b2e0ccae533ed2f973b2b1b76ab43436. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). --------- Co-authored-by: Cursor Agent Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle --- .../backend/backend/blocks/google/docs.py | 2896 +++++++++++++++++ autogpt_platform/backend/poetry.lock | 18 +- autogpt_platform/backend/pyproject.toml | 1 + .../test_google_docs_format_text_color.py | 113 + 4 files changed, 3027 insertions(+), 1 deletion(-) create mode 100644 autogpt_platform/backend/backend/blocks/google/docs.py create mode 100644 autogpt_platform/backend/test/blocks/test_google_docs_format_text_color.py diff --git a/autogpt_platform/backend/backend/blocks/google/docs.py b/autogpt_platform/backend/backend/blocks/google/docs.py new file mode 100644 index 0000000000..7840cbae73 --- /dev/null +++ b/autogpt_platform/backend/backend/blocks/google/docs.py @@ -0,0 +1,2896 @@ +import asyncio +import re +from enum import Enum +from typing import Any + +from google.oauth2.credentials import Credentials +from googleapiclient.discovery import build +from gravitas_md2gdocs import to_requests + +from backend.blocks.google._drive import GoogleDriveFile, GoogleDriveFileField +from backend.data.block import ( + Block, + BlockCategory, + BlockOutput, + BlockSchemaInput, + BlockSchemaOutput, +) +from backend.data.model import SchemaField +from backend.util.settings import Settings + +from ._auth import ( + GOOGLE_OAUTH_IS_CONFIGURED, + TEST_CREDENTIALS, + TEST_CREDENTIALS_INPUT, + GoogleCredentials, + GoogleCredentialsField, + GoogleCredentialsInput, +) + +settings = Settings() +GOOGLE_DOCS_DISABLED = not GOOGLE_OAUTH_IS_CONFIGURED + + +# ============ Enums ============ + + +class PublicAccessRole(str, Enum): + READER = "reader" + COMMENTER = "commenter" + + +class ShareRole(str, Enum): + READER = "reader" + WRITER = "writer" + COMMENTER = "commenter" + + +# ============ Helper Functions ============ + + +def _build_docs_service(credentials: GoogleCredentials): + """Build Google Docs API service.""" + creds = Credentials( + token=( + credentials.access_token.get_secret_value() + if credentials.access_token + else None + ), + refresh_token=( + credentials.refresh_token.get_secret_value() + if credentials.refresh_token + else None + ), + token_uri="https://oauth2.googleapis.com/token", + client_id=settings.secrets.google_client_id, + client_secret=settings.secrets.google_client_secret, + scopes=credentials.scopes, + ) + return build("docs", "v1", credentials=creds, cache_discovery=False) + + +def _build_drive_service(credentials: GoogleCredentials): + """Build Google Drive API service for file operations.""" + creds = Credentials( + token=( + credentials.access_token.get_secret_value() + if credentials.access_token + else None + ), + refresh_token=( + credentials.refresh_token.get_secret_value() + if credentials.refresh_token + else None + ), + token_uri="https://oauth2.googleapis.com/token", + client_id=settings.secrets.google_client_id, + client_secret=settings.secrets.google_client_secret, + scopes=credentials.scopes, + ) + return build("drive", "v3", credentials=creds, cache_discovery=False) + + +def _validate_document_file(file: GoogleDriveFile) -> str | None: + """Validate that a file is a Google Doc.""" + if not file.id: + return "No document ID provided" + if file.mime_type and file.mime_type != "application/vnd.google-apps.document": + return f"File is not a Google Doc (type: {file.mime_type})" + return None + + +def _parse_hex_color_to_rgb_floats(value: str) -> tuple[float, float, float] | None: + """ + Parse a CSS-like hex color string into normalized RGB floats. + + Supports: + - #RGB / RGB (shorthand) + - #RRGGBB / RRGGBB + + Returns None for malformed inputs. + """ + if not value: + return None + + raw = value.strip() + if raw.startswith("#"): + raw = raw[1:] + + if not re.fullmatch(r"[0-9a-fA-F]{3}([0-9a-fA-F]{3})?", raw): + return None + + if len(raw) == 3: + raw = "".join(ch * 2 for ch in raw) + + r = int(raw[0:2], 16) / 255.0 + g = int(raw[2:4], 16) / 255.0 + b = int(raw[4:6], 16) / 255.0 + return (r, g, b) + + +def _get_document_end_index(service, document_id: str) -> int: + """Get the index at the end of the document body.""" + doc = service.documents().get(documentId=document_id).execute() + body = doc.get("body", {}) + content = body.get("content", []) + if content: + last_element = content[-1] + return last_element.get("endIndex", 1) - 1 + return 1 + + +def _extract_text_from_content(content: list[dict]) -> str: + """Extract plain text from document content structure.""" + text_parts = [] + for element in content: + if "paragraph" in element: + for elem in element["paragraph"].get("elements", []): + if "textRun" in elem: + text_parts.append(elem["textRun"].get("content", "")) + elif "table" in element: + for row in element["table"].get("tableRows", []): + for cell in row.get("tableCells", []): + cell_content = cell.get("content", []) + text_parts.append(_extract_text_from_content(cell_content)) + return "".join(text_parts) + + +# ============ Document Output Helper ============ + + +def _make_document_output(file: GoogleDriveFile) -> GoogleDriveFile: + """Create standardized document output for chaining.""" + return GoogleDriveFile( + id=file.id, + name=file.name, + mimeType="application/vnd.google-apps.document", + url=f"https://docs.google.com/document/d/{file.id}/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=file.credentials_id, + ) + + +# ============ Blocks ============ + + +class GoogleDocsReadBlock(Block): + """Read content from a Google Doc.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to read", + allowed_views=["DOCUMENTS"], + ) + + class Output(BlockSchemaOutput): + text: str = SchemaField(description="Plain text content of the document") + title: str = SchemaField(description="Document title") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if read failed") + + def __init__(self): + super().__init__( + id="420a2b3c-5db2-4bda-82bc-a68a862a3d55", + description="Read text content from a Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsReadBlock.Input, + output_schema=GoogleDocsReadBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("text", "Hello World\nThis is a test document.\n"), + ("title", "Test Document"), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_read_document": lambda *args, **kwargs: { + "text": "Hello World\nThis is a test document.\n", + "title": "Test Document", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._read_document, + service, + input_data.document.id, + ) + yield "text", result["text"] + yield "title", result["title"] + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to read document: {str(e)}" + + def _read_document(self, service, document_id: str) -> dict: + doc = service.documents().get(documentId=document_id).execute() + title = doc.get("title", "") + body = doc.get("body", {}) + content = body.get("content", []) + text = _extract_text_from_content(content) + return {"text": text, "title": title} + + +class GoogleDocsCreateBlock(Block): + """Create a new Google Doc.""" + + class Input(BlockSchemaInput): + credentials: GoogleCredentialsInput = GoogleCredentialsField( + ["https://www.googleapis.com/auth/drive.file"] + ) + title: str = SchemaField(description="Title for the new document") + initial_content: str = SchemaField( + default="", + description="Optional initial text content", + ) + + class Output(BlockSchemaOutput): + document: GoogleDriveFile = SchemaField(description="The created document") + document_id: str = SchemaField(description="ID of the created document") + document_url: str = SchemaField(description="URL to open the document") + error: str = SchemaField(description="Error message if creation failed") + + def __init__(self): + super().__init__( + id="d430d941-cf81-4f84-8b19-2e3f670b2fca", + description="Create a new Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsCreateBlock.Input, + output_schema=GoogleDocsCreateBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "credentials": TEST_CREDENTIALS_INPUT, + "title": "My New Document", + "initial_content": "Hello, this is the initial content.", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ( + "document", + GoogleDriveFile( + id="new_doc_123", + name="My New Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/new_doc_123/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=TEST_CREDENTIALS_INPUT["id"], + ), + ), + ("document_id", "new_doc_123"), + ("document_url", "https://docs.google.com/document/d/new_doc_123/edit"), + ], + test_mock={ + "_create_document": lambda *args, **kwargs: { + "document_id": "new_doc_123", + "document_url": "https://docs.google.com/document/d/new_doc_123/edit", + "title": "My New Document", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.title: + yield "error", "Document title is required" + return + + try: + drive_service = _build_drive_service(credentials) + docs_service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._create_document, + drive_service, + docs_service, + input_data.title, + input_data.initial_content, + ) + doc_id = result["document_id"] + doc_url = result["document_url"] + yield "document", GoogleDriveFile( + id=doc_id, + name=input_data.title, + mimeType="application/vnd.google-apps.document", + url=doc_url, + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=input_data.credentials.id, + ) + yield "document_id", doc_id + yield "document_url", doc_url + except Exception as e: + yield "error", f"Failed to create document: {str(e)}" + + def _create_document( + self, drive_service, docs_service, title: str, initial_content: str + ) -> dict: + # Create the document + file_metadata = { + "name": title, + "mimeType": "application/vnd.google-apps.document", + } + result = drive_service.files().create(body=file_metadata).execute() + document_id = result.get("id") + document_url = f"https://docs.google.com/document/d/{document_id}/edit" + + # Add initial content if provided + if initial_content: + requests = [ + { + "insertText": { + "location": {"index": 1}, + "text": initial_content, + } + } + ] + docs_service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return { + "document_id": document_id, + "document_url": document_url, + "title": title, + } + + +class GoogleDocsAppendPlainTextBlock(Block): + """Append plain text to the end of a Google Doc (no formatting).""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to append to", + allowed_views=["DOCUMENTS"], + ) + text: str = SchemaField( + description="Plain text to append (no formatting applied)" + ) + add_newline: bool = SchemaField( + default=True, + description="Add a newline before the appended text", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the append operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if append failed") + + def __init__(self): + super().__init__( + id="ddc29d9f-78dc-4682-8787-c8a76f00cf38", + description="Append plain text to the end of a Google Doc (no formatting applied)", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsAppendPlainTextBlock.Input, + output_schema=GoogleDocsAppendPlainTextBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "text": "This is appended text.", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "characters_added": 23}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_append_text": lambda *args, **kwargs: { + "success": True, + "characters_added": 23, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._append_text, + service, + input_data.document.id, + input_data.text, + input_data.add_newline, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to append text: {str(e)}" + + def _append_text( + self, service, document_id: str, text: str, add_newline: bool + ) -> dict: + end_index = _get_document_end_index(service, document_id) + text_to_insert = ("\n" if add_newline else "") + text + + requests = [ + { + "insertText": { + "location": {"index": end_index}, + "text": text_to_insert, + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "characters_added": len(text_to_insert)} + + +class GoogleDocsInsertPlainTextBlock(Block): + """Insert plain text at a specific position in a Google Doc (no formatting).""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to insert into", + allowed_views=["DOCUMENTS"], + ) + text: str = SchemaField( + description="Plain text to insert (no formatting applied)" + ) + index: int = SchemaField( + default=1, + description="Position index to insert at (1 = start of document)", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the insert operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if insert failed") + + def __init__(self): + super().__init__( + id="0443fdbc-ebb0-49a4-a3ea-6ace9c14da22", + description="Insert plain text at a specific position in a Google Doc (no formatting applied)", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsInsertPlainTextBlock.Input, + output_schema=GoogleDocsInsertPlainTextBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "text": "Inserted text here. ", + "index": 1, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "characters_inserted": 20}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_insert_text": lambda *args, **kwargs: { + "success": True, + "characters_inserted": 20, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._insert_text, + service, + input_data.document.id, + input_data.text, + input_data.index, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to insert text: {str(e)}" + + def _insert_text(self, service, document_id: str, text: str, index: int) -> dict: + requests = [ + { + "insertText": { + "location": {"index": max(1, index)}, + "text": text, + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "characters_inserted": len(text)} + + +class GoogleDocsFindReplacePlainTextBlock(Block): + """Find and replace plain text in a Google Doc (no formatting applied to replacement).""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + find_text: str = SchemaField(description="Plain text to find") + replace_text: str = SchemaField( + description="Plain text to replace with (no formatting applied)" + ) + match_case: bool = SchemaField( + default=False, + description="Match case when finding text", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result with replacement count") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="e5046ee2-b094-418e-a25e-c0f90c91721c", + description="Find and replace plain text in a Google Doc (no formatting applied to replacement)", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsFindReplacePlainTextBlock.Input, + output_schema=GoogleDocsFindReplacePlainTextBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "find_text": "old text", + "replace_text": "new text", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "replacements_made": 3}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_find_replace": lambda *args, **kwargs: { + "success": True, + "replacements_made": 3, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._find_replace, + service, + input_data.document.id, + input_data.find_text, + input_data.replace_text, + input_data.match_case, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to find/replace: {str(e)}" + + def _find_replace( + self, + service, + document_id: str, + find_text: str, + replace_text: str, + match_case: bool, + ) -> dict: + requests = [ + { + "replaceAllText": { + "containsText": { + "text": find_text, + "matchCase": match_case, + }, + "replaceText": replace_text, + } + } + ] + + response = ( + service.documents() + .batchUpdate(documentId=document_id, body={"requests": requests}) + .execute() + ) + + # Get replacement count from response + replies = response.get("replies", []) + replacements = 0 + if replies and "replaceAllText" in replies[0]: + replacements = replies[0]["replaceAllText"].get("occurrencesChanged", 0) + + return {"success": True, "replacements_made": replacements} + + +class GoogleDocsGetMetadataBlock(Block): + """Get metadata about a Google Doc.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + + class Output(BlockSchemaOutput): + title: str = SchemaField(description="Document title") + document_id: str = SchemaField(description="Document ID") + revision_id: str = SchemaField(description="Current revision ID") + document_url: str = SchemaField(description="URL to open the document") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="100bc806-acbf-4dc5-a3a2-998026b96516", + description="Get metadata about a Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsGetMetadataBlock.Input, + output_schema=GoogleDocsGetMetadataBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("title", "Test Document"), + ("document_id", "1abc123def456"), + ("revision_id", "rev_123"), + ( + "document_url", + "https://docs.google.com/document/d/1abc123def456/edit", + ), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_get_metadata": lambda *args, **kwargs: { + "title": "Test Document", + "revision_id": "rev_123", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._get_metadata, + service, + input_data.document.id, + ) + yield "title", result["title"] + yield "document_id", input_data.document.id + yield "revision_id", result["revision_id"] + yield "document_url", f"https://docs.google.com/document/d/{input_data.document.id}/edit" + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to get metadata: {str(e)}" + + def _get_metadata(self, service, document_id: str) -> dict: + doc = service.documents().get(documentId=document_id).execute() + return { + "title": doc.get("title", ""), + "revision_id": doc.get("revisionId", ""), + } + + +class GoogleDocsInsertTableBlock(Block): + """Insert a table into a Google Doc, optionally with content.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + rows: int = SchemaField( + default=3, + description="Number of rows (ignored if content provided)", + ) + columns: int = SchemaField( + default=3, + description="Number of columns (ignored if content provided)", + ) + content: list[list[str]] = SchemaField( + default=[], + description="Optional 2D array of cell content, e.g. [['Header1', 'Header2'], ['Row1Col1', 'Row1Col2']]. If provided, rows/columns are derived from this.", + ) + index: int = SchemaField( + default=0, + description="Position to insert table (0 = end of document)", + ) + format_as_markdown: bool = SchemaField( + default=False, + description="Format cell content as Markdown (headers, bold, links, etc.)", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of table insertion") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="e104b3ab-dfef-45f9-9702-14e950988f53", + description="Insert a table into a Google Doc, optionally with content and Markdown formatting", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsInsertTableBlock.Input, + output_schema=GoogleDocsInsertTableBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "content": [["Header1", "Header2"], ["Row1Col1", "Row1Col2"]], + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ( + "result", + { + "success": True, + "rows": 2, + "columns": 2, + "cells_populated": 4, + "cells_found": 4, + }, + ), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_insert_table": lambda *args, **kwargs: { + "success": True, + "rows": 2, + "columns": 2, + "cells_populated": 4, + "cells_found": 4, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + # Determine rows/columns from content if provided + content = input_data.content + + # Check if content is valid: + # 1. Has at least one row with at least one cell (even if empty string) + # 2. Has at least one non-empty cell value + has_valid_structure = bool(content and any(len(row) > 0 for row in content)) + has_content = has_valid_structure and any( + cell for row in content for cell in row + ) + + if has_content: + # Use content dimensions - filter out empty rows for row count, + # use max column count across all rows + rows = len(content) + columns = max(len(row) for row in content) + else: + # No valid content - use explicit rows/columns, clear content + rows = input_data.rows + columns = input_data.columns + content = [] # Clear so we skip population step + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._insert_table, + service, + input_data.document.id, + rows, + columns, + input_data.index, + content, + input_data.format_as_markdown, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to insert table: {str(e)}" + + def _insert_table( + self, + service, + document_id: str, + rows: int, + columns: int, + index: int, + content: list[list[str]], + format_as_markdown: bool, + ) -> dict: + # If index is 0, insert at end of document + if index == 0: + index = _get_document_end_index(service, document_id) + + # Insert the empty table structure + requests = [ + { + "insertTable": { + "rows": rows, + "columns": columns, + "location": {"index": index}, + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + # If no content provided, we're done + if not content: + return {"success": True, "rows": rows, "columns": columns} + + # Fetch the document to find cell indexes + doc = service.documents().get(documentId=document_id).execute() + body_content = doc.get("body", {}).get("content", []) + + # Find all tables and pick the one we just inserted + # (the one with highest startIndex that's >= our insert point, or the last one if inserted at end) + tables_found = [] + for element in body_content: + if "table" in element: + tables_found.append(element) + + if not tables_found: + return { + "success": True, + "rows": rows, + "columns": columns, + "warning": "Table created but could not find it to populate", + } + + # If we inserted at end (index was high), take the last table + # Otherwise, take the first table at or after our insert index + table_element = None + # Heuristic: rows * columns * 2 estimates the minimum index space a table + # occupies (each cell has at least a start index and structural overhead). + # This helps determine if our insert point was near the document end. + estimated_table_size = rows * columns * 2 + if ( + index + >= _get_document_end_index(service, document_id) - estimated_table_size + ): + # Likely inserted at end - use last table + table_element = tables_found[-1] + else: + for tbl in tables_found: + if tbl.get("startIndex", 0) >= index: + table_element = tbl + break + if not table_element: + table_element = tables_found[-1] + + # Extract cell start indexes from the table structure + # Structure: table -> tableRows -> tableCells -> content[0] -> startIndex + cell_positions: list[tuple[int, int, int]] = [] # (row, col, start_index) + table_data = table_element.get("table", {}) + table_rows_list = table_data.get("tableRows", []) + + for row_idx, table_row in enumerate(table_rows_list): + cells = table_row.get("tableCells", []) + for col_idx, cell in enumerate(cells): + cell_content = cell.get("content", []) + if cell_content: + # Get the start index of the first element in the cell + first_element = cell_content[0] + cell_start = first_element.get("startIndex") + if cell_start is not None: + cell_positions.append((row_idx, col_idx, cell_start)) + + if not cell_positions: + return { + "success": True, + "rows": rows, + "columns": columns, + "warning": f"Table created but could not extract cell positions. Table has {len(table_rows_list)} rows.", + } + + # Sort by index descending so we can insert in reverse order + # (inserting later content first preserves earlier indexes) + cell_positions.sort(key=lambda x: x[2], reverse=True) + + cells_populated = 0 + + if format_as_markdown: + # Markdown formatting: process each cell individually since + # gravitas-md2gdocs requests may have complex interdependencies + for row_idx, col_idx, cell_start in cell_positions: + if row_idx < len(content) and col_idx < len(content[row_idx]): + cell_text = content[row_idx][col_idx] + if not cell_text: + continue + md_requests = to_requests(cell_text, start_index=cell_start) + if md_requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": md_requests} + ).execute() + cells_populated += 1 + else: + # Plain text: batch all insertions into a single API call + # Cells are sorted by index descending, so earlier requests + # don't affect indices of later ones + all_text_requests = [] + for row_idx, col_idx, cell_start in cell_positions: + if row_idx < len(content) and col_idx < len(content[row_idx]): + cell_text = content[row_idx][col_idx] + if not cell_text: + continue + all_text_requests.append( + { + "insertText": { + "location": {"index": cell_start}, + "text": cell_text, + } + } + ) + cells_populated += 1 + + if all_text_requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": all_text_requests} + ).execute() + + return { + "success": True, + "rows": rows, + "columns": columns, + "cells_populated": cells_populated, + "cells_found": len(cell_positions), + } + + +class GoogleDocsInsertPageBreakBlock(Block): + """Insert a page break into a Google Doc.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + index: int = SchemaField( + default=0, + description="Position to insert page break (0 = end of document)", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of page break insertion") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="f199e674-803b-4ee8-8bbf-172e6512190b", + description="Insert a page break into a Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsInsertPageBreakBlock.Input, + output_schema=GoogleDocsInsertPageBreakBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_insert_page_break": lambda *args, **kwargs: {"success": True}, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._insert_page_break, + service, + input_data.document.id, + input_data.index, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to insert page break: {str(e)}" + + def _insert_page_break(self, service, document_id: str, index: int) -> dict: + if index == 0: + index = _get_document_end_index(service, document_id) + + requests = [ + { + "insertPageBreak": { + "location": {"index": index}, + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True} + + +class GoogleDocsDeleteContentBlock(Block): + """Delete a range of content from a Google Doc.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + start_index: int = SchemaField( + description="Start index of content to delete (must be >= 1, as index 0 is a section break)", + ge=1, + ) + end_index: int = SchemaField(description="End index of content to delete") + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of delete operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="5f9f9fa4-9071-4028-97c2-9d15fb422dc5", + description="Delete a range of content from a Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsDeleteContentBlock.Input, + output_schema=GoogleDocsDeleteContentBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "start_index": 10, + "end_index": 50, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "characters_deleted": 40}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_delete_content": lambda *args, **kwargs: { + "success": True, + "characters_deleted": 40, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if input_data.start_index >= input_data.end_index: + yield "error", "Start index must be less than end index" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._delete_content, + service, + input_data.document.id, + input_data.start_index, + input_data.end_index, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to delete content: {str(e)}" + + def _delete_content( + self, service, document_id: str, start_index: int, end_index: int + ) -> dict: + requests = [ + { + "deleteContentRange": { + "range": { + "startIndex": start_index, + "endIndex": end_index, + } + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "characters_deleted": end_index - start_index} + + +class ExportFormat(str, Enum): + PDF = "application/pdf" + DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + ODT = "application/vnd.oasis.opendocument.text" + TXT = "text/plain" + HTML = "text/html" + EPUB = "application/epub+zip" + RTF = "application/rtf" + + +class GoogleDocsExportBlock(Block): + """Export a Google Doc to various formats.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to export", + allowed_views=["DOCUMENTS"], + ) + format: ExportFormat = SchemaField( + default=ExportFormat.PDF, + description="Export format", + ) + + class Output(BlockSchemaOutput): + content: str = SchemaField( + description="Exported content (base64 encoded for binary formats)" + ) + mime_type: str = SchemaField(description="MIME type of exported content") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if export failed") + + def __init__(self): + super().__init__( + id="e32d5642-7b51-458c-bd83-75ff96fec299", + description="Export a Google Doc to PDF, Word, text, or other formats", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsExportBlock.Input, + output_schema=GoogleDocsExportBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "format": ExportFormat.TXT, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("content", "This is the document content as plain text."), + ("mime_type", "text/plain"), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_export_document": lambda *args, **kwargs: { + "content": "This is the document content as plain text.", + "mime_type": "text/plain", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + drive_service = _build_drive_service(credentials) + result = await asyncio.to_thread( + self._export_document, + drive_service, + input_data.document.id, + input_data.format.value, + ) + yield "content", result["content"] + yield "mime_type", result["mime_type"] + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to export document: {str(e)}" + + def _export_document(self, service, document_id: str, mime_type: str) -> dict: + import base64 + + response = ( + service.files().export(fileId=document_id, mimeType=mime_type).execute() + ) + + # For text formats, return as string; for binary, base64 encode + if mime_type in ["text/plain", "text/html"]: + content = ( + response.decode("utf-8") if isinstance(response, bytes) else response + ) + else: + content = base64.b64encode(response).decode("utf-8") + + return {"content": content, "mime_type": mime_type} + + +class GoogleDocsFormatTextBlock(Block): + """Apply formatting to text in a Google Doc.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + start_index: int = SchemaField( + description="Start index of text to format (must be >= 1, as index 0 is a section break)", + ge=1, + ) + end_index: int = SchemaField(description="End index of text to format") + bold: bool = SchemaField( + default=False, + description="Make text bold", + ) + italic: bool = SchemaField( + default=False, + description="Make text italic", + ) + underline: bool = SchemaField( + default=False, + description="Underline text", + ) + font_size: int = SchemaField( + default=0, + description="Font size in points (0 = no change)", + ) + foreground_color: str = SchemaField( + default="", + description="Text color as hex (e.g., #FF0000 for red)", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of format operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="04c38a7e-7ee5-4e1a-86c1-9727123577bc", + description="Apply formatting (bold, italic, color, etc.) to text in a Google Doc", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsFormatTextBlock.Input, + output_schema=GoogleDocsFormatTextBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "start_index": 2, + "end_index": 10, + "bold": True, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_format_text": lambda *args, **kwargs: {"success": True}, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if input_data.start_index >= input_data.end_index: + yield "error", "Start index must be less than end index" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._format_text, + service, + input_data.document.id, + input_data.start_index, + input_data.end_index, + input_data.bold, + input_data.italic, + input_data.underline, + input_data.font_size, + input_data.foreground_color, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to format text: {str(e)}" + + def _format_text( + self, + service, + document_id: str, + start_index: int, + end_index: int, + bold: bool, + italic: bool, + underline: bool, + font_size: int, + foreground_color: str, + ) -> dict: + text_style: dict[str, Any] = {} + fields = [] + + if bold: + text_style["bold"] = True + fields.append("bold") + if italic: + text_style["italic"] = True + fields.append("italic") + if underline: + text_style["underline"] = True + fields.append("underline") + if font_size > 0: + text_style["fontSize"] = {"magnitude": font_size, "unit": "PT"} + fields.append("fontSize") + if foreground_color: + rgb = _parse_hex_color_to_rgb_floats(foreground_color) + if rgb is None: + if not fields: + return { + "success": False, + "message": ( + f"Invalid foreground_color: {foreground_color!r}. " + "Expected hex like #RGB or #RRGGBB." + ), + } + # Ignore invalid color, but still apply other formatting. + # This avoids failing the whole operation due to a single bad value. + warning = ( + f"Ignored invalid foreground_color: {foreground_color!r}. " + "Expected hex like #RGB or #RRGGBB." + ) + else: + r, g, b = rgb + text_style["foregroundColor"] = { + "color": {"rgbColor": {"red": r, "green": g, "blue": b}} + } + fields.append("foregroundColor") + warning = None + else: + warning = None + + if not fields: + return {"success": True, "message": "No formatting options specified"} + + requests = [ + { + "updateTextStyle": { + "range": {"startIndex": start_index, "endIndex": end_index}, + "textStyle": text_style, + "fields": ",".join(fields), + } + } + ] + + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + if warning: + return {"success": True, "warning": warning} + return {"success": True} + + +class GoogleDocsShareBlock(Block): + """Share a Google Doc with specific users.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to share", + allowed_views=["DOCUMENTS"], + ) + email: str = SchemaField( + default="", + description="Email address to share with. Leave empty for link sharing.", + ) + role: ShareRole = SchemaField( + default=ShareRole.READER, + description="Permission role for the user", + ) + send_notification: bool = SchemaField( + default=True, + description="Send notification email to the user", + ) + message: str = SchemaField( + default="", + description="Optional message to include in notification email", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the share operation") + share_link: str = SchemaField(description="Link to the document") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if share failed") + + def __init__(self): + super().__init__( + id="4e7ec771-4cc8-4eb7-ae3d-46377ecdb5d2", + description="Share a Google Doc with specific users", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsShareBlock.Input, + output_schema=GoogleDocsShareBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "email": "test@example.com", + "role": "reader", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True}), + ("share_link", "https://docs.google.com/document/d/1abc123def456/edit"), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_share_document": lambda *args, **kwargs: { + "success": True, + "share_link": "https://docs.google.com/document/d/1abc123def456/edit", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_drive_service(credentials) + result = await asyncio.to_thread( + self._share_document, + service, + input_data.document.id, + input_data.email, + input_data.role, + input_data.send_notification, + input_data.message, + ) + yield "result", {"success": True} + yield "share_link", result["share_link"] + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to share document: {str(e)}" + + def _share_document( + self, + service, + document_id: str, + email: str, + role: ShareRole, + send_notification: bool, + message: str, + ) -> dict: + share_link = f"https://docs.google.com/document/d/{document_id}/edit" + + if email: + # Share with specific user + permission = {"type": "user", "role": role.value, "emailAddress": email} + + kwargs: dict[str, Any] = { + "fileId": document_id, + "body": permission, + "sendNotificationEmail": send_notification, + } + if message: + kwargs["emailMessage"] = message + + service.permissions().create(**kwargs).execute() + else: + # Create "anyone with the link" permission for link sharing + permission = {"type": "anyone", "role": role.value} + service.permissions().create( + fileId=document_id, + body=permission, + ).execute() + + return {"success": True, "share_link": share_link} + + +class GoogleDocsSetPublicAccessBlock(Block): + """Make a Google Doc publicly accessible or private.""" + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + public: bool = SchemaField( + default=True, + description="True to make public, False to make private", + ) + role: PublicAccessRole = SchemaField( + default=PublicAccessRole.READER, + description="Permission role for public access", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the operation") + share_link: str = SchemaField(description="Link to the document") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="d104f6e1-80af-4fe9-b5a1-3cab20081b6c", + description="Make a Google Doc public or private", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsSetPublicAccessBlock.Input, + output_schema=GoogleDocsSetPublicAccessBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "public": True, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "is_public": True}), + ( + "share_link", + "https://docs.google.com/document/d/1abc123def456/edit?usp=sharing", + ), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_set_public_access": lambda *args, **kwargs: { + "success": True, + "is_public": True, + "share_link": "https://docs.google.com/document/d/1abc123def456/edit?usp=sharing", + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_drive_service(credentials) + result = await asyncio.to_thread( + self._set_public_access, + service, + input_data.document.id, + input_data.public, + input_data.role, + ) + yield "result", {"success": True, "is_public": result["is_public"]} + yield "share_link", result["share_link"] + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to set public access: {str(e)}" + + def _set_public_access( + self, service, document_id: str, public: bool, role: PublicAccessRole + ) -> dict: + share_link = f"https://docs.google.com/document/d/{document_id}/edit" + + if public: + permission = {"type": "anyone", "role": role.value} + service.permissions().create(fileId=document_id, body=permission).execute() + share_link += "?usp=sharing" + else: + permissions = service.permissions().list(fileId=document_id).execute() + for perm in permissions.get("permissions", []): + if perm.get("type") == "anyone": + service.permissions().delete( + fileId=document_id, permissionId=perm["id"] + ).execute() + + return {"success": True, "is_public": public, "share_link": share_link} + + +# ============ Markdown Blocks ============ + + +class GoogleDocsAppendMarkdownBlock(Block): + """Append Markdown content to the end of a Google Doc. + + Converts Markdown to Google Docs formatting, supporting: + - Headers (H1-H6) + - Bold, italic, strikethrough + - Inline code and code blocks + - Links + - Bulleted and numbered lists + - Blockquotes + + Perfect for AI agents that generate Markdown output. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to append to", + allowed_views=["DOCUMENTS"], + ) + markdown: str = SchemaField( + description="Markdown content to append to the document" + ) + add_newline: bool = SchemaField( + default=True, + description="Add a newline before the appended content", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the append operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="60854b69-ecbd-4188-bd89-f7966a4d3b38", + description="Append Markdown content to the end of a Google Doc with full formatting - ideal for LLM/AI output", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsAppendMarkdownBlock.Input, + output_schema=GoogleDocsAppendMarkdownBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "markdown": "# Hello World\n\nThis is **bold** and *italic* text.\n\n- Item 1\n- Item 2", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "requests_count": 5}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_append_markdown": lambda *args, **kwargs: { + "success": True, + "requests_count": 5, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if not input_data.markdown: + yield "error", "No markdown content provided" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._append_markdown, + service, + input_data.document.id, + input_data.markdown, + input_data.add_newline, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to append markdown: {str(e)}" + + def _append_markdown( + self, + service, + document_id: str, + markdown: str, + add_newline: bool, + ) -> dict: + end_index = _get_document_end_index(service, document_id) + + # Optionally add a newline before the content + if add_newline and end_index > 1: + newline_requests = [ + {"insertText": {"location": {"index": end_index}, "text": "\n"}} + ] + service.documents().batchUpdate( + documentId=document_id, body={"requests": newline_requests} + ).execute() + end_index += 1 + + # Convert markdown to Google Docs requests + requests = to_requests(markdown, start_index=end_index) + + if requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "requests_count": len(requests)} + + +class GoogleDocsReplaceAllWithMarkdownBlock(Block): + """Replace entire Google Doc content with Markdown. + + Clears the document and inserts formatted Markdown content. + Supports headers, bold, italic, lists, links, code blocks, etc. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to replace content in", + allowed_views=["DOCUMENTS"], + ) + markdown: str = SchemaField( + description="Markdown content to replace the document with" + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the replace operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="b6cfb2de-5f0b-437c-b29d-45aebbda9c00", + description="Replace entire Google Doc content with formatted Markdown - ideal for LLM/AI output", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsReplaceAllWithMarkdownBlock.Input, + output_schema=GoogleDocsReplaceAllWithMarkdownBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "markdown": "# New Document\n\nThis replaces everything.", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "requests_count": 3}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_replace_all_with_markdown": lambda *args, **kwargs: { + "success": True, + "requests_count": 3, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if not input_data.markdown: + yield "error", "No markdown content provided" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._replace_all_with_markdown, + service, + input_data.document.id, + input_data.markdown, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to replace document with markdown: {str(e)}" + + def _replace_all_with_markdown( + self, + service, + document_id: str, + markdown: str, + ) -> dict: + # Delete all existing content + doc_end = _get_document_end_index(service, document_id) + if doc_end > 1: + delete_requests = [ + { + "deleteContentRange": { + "range": {"startIndex": 1, "endIndex": doc_end} + } + } + ] + service.documents().batchUpdate( + documentId=document_id, body={"requests": delete_requests} + ).execute() + + # Insert markdown at beginning + requests = to_requests(markdown, start_index=1) + + if requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "requests_count": len(requests)} + + +class GoogleDocsInsertMarkdownAtBlock(Block): + """Insert Markdown content at a specific position in a Google Doc. + + Converts Markdown to Google Docs formatting and inserts at the specified index. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to insert into", + allowed_views=["DOCUMENTS"], + ) + markdown: str = SchemaField(description="Markdown content to insert") + index: int = SchemaField( + default=1, + description="Position index to insert at (1 = start of document)", + ge=1, + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the insert operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="76e94b04-e02f-4981-8cb8-47ece1be18b4", + description="Insert formatted Markdown at a specific position in a Google Doc - ideal for LLM/AI output", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsInsertMarkdownAtBlock.Input, + output_schema=GoogleDocsInsertMarkdownAtBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "markdown": "## Inserted Section\n\nThis was inserted.", + "index": 1, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ("result", {"success": True, "requests_count": 3}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_insert_markdown_at": lambda *args, **kwargs: { + "success": True, + "requests_count": 3, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if not input_data.markdown: + yield "error", "No markdown content provided" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._insert_markdown_at, + service, + input_data.document.id, + input_data.markdown, + input_data.index, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to insert markdown: {str(e)}" + + def _insert_markdown_at( + self, + service, + document_id: str, + markdown: str, + index: int, + ) -> dict: + requests = to_requests(markdown, start_index=index) + + if requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return {"success": True, "requests_count": len(requests)} + + +class GoogleDocsReplaceRangeWithMarkdownBlock(Block): + """Replace a specific range (by index) in a Google Doc with Markdown. + + Deletes content between start and end indices, then inserts formatted Markdown. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + markdown: str = SchemaField( + description="Markdown content to insert in place of the range" + ) + start_index: int = SchemaField( + description="Start index of the range to replace (must be >= 1)", + ge=1, + ) + end_index: int = SchemaField( + description="End index of the range to replace", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result of the replace operation") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="9e43a905-a918-4da0-8874-dfddd3c46953", + description="Replace a specific index range in a Google Doc with formatted Markdown - ideal for LLM/AI output", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsReplaceRangeWithMarkdownBlock.Input, + output_schema=GoogleDocsReplaceRangeWithMarkdownBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "markdown": "**Replaced content**", + "start_index": 10, + "end_index": 50, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ( + "result", + {"success": True, "requests_count": 2, "characters_deleted": 40}, + ), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_replace_range_with_markdown": lambda *args, **kwargs: { + "success": True, + "requests_count": 2, + "characters_deleted": 40, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if not input_data.markdown: + yield "error", "No markdown content provided" + return + + if input_data.start_index >= input_data.end_index: + yield "error", "Start index must be less than end index" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._replace_range_with_markdown, + service, + input_data.document.id, + input_data.markdown, + input_data.start_index, + input_data.end_index, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to replace range with markdown: {str(e)}" + + def _replace_range_with_markdown( + self, + service, + document_id: str, + markdown: str, + start_index: int, + end_index: int, + ) -> dict: + # Delete the range first + delete_requests = [ + { + "deleteContentRange": { + "range": {"startIndex": start_index, "endIndex": end_index} + } + } + ] + service.documents().batchUpdate( + documentId=document_id, body={"requests": delete_requests} + ).execute() + + # Insert markdown at the start of the deleted range + requests = to_requests(markdown, start_index=start_index) + + if requests: + service.documents().batchUpdate( + documentId=document_id, body={"requests": requests} + ).execute() + + return { + "success": True, + "requests_count": len(requests), + "characters_deleted": end_index - start_index, + } + + +class GoogleDocsReplaceContentWithMarkdownBlock(Block): + """Find text in a Google Doc and replace it with formatted Markdown. + + Perfect for template workflows - use placeholders like {{INTRO}} or {{SUMMARY}} + and replace them with formatted Markdown content. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc", + allowed_views=["DOCUMENTS"], + ) + find_text: str = SchemaField( + description="Text to find and replace (e.g., '{{PLACEHOLDER}}' or any text)" + ) + markdown: str = SchemaField( + description="Markdown content to replace the found text with" + ) + match_case: bool = SchemaField( + default=False, + description="Match case when finding text", + ) + + class Output(BlockSchemaOutput): + result: dict = SchemaField(description="Result with replacement count") + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="2cc58467-90a9-4ef8-a7a7-700784f93b76", + description="Find text and replace it with formatted Markdown - ideal for LLM/AI output and templates", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsReplaceContentWithMarkdownBlock.Input, + output_schema=GoogleDocsReplaceContentWithMarkdownBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "find_text": "{{PLACEHOLDER}}", + "markdown": "# Replaced Header\n\nThis is the **replacement** content.", + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ( + "result", + {"success": True, "replacements_made": 1, "requests_count": 4}, + ), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_replace_content_with_markdown": lambda *args, **kwargs: { + "success": True, + "replacements_made": 1, + "requests_count": 4, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + if not input_data.find_text: + yield "error", "No find text provided" + return + + if not input_data.markdown: + yield "error", "No markdown content provided" + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._replace_content_with_markdown, + service, + input_data.document.id, + input_data.find_text, + input_data.markdown, + input_data.match_case, + ) + yield "result", result + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to replace content with markdown: {str(e)}" + + def _find_text_positions( + self, service, document_id: str, find_text: str, match_case: bool + ) -> list[tuple[int, int]]: + """Find all positions of the search text using actual document indices. + + Iterates through document content and uses the real startIndex/endIndex + from text runs, rather than trying to map plain text offsets to indices. + """ + doc = service.documents().get(documentId=document_id).execute() + body = doc.get("body", {}) + content = body.get("content", []) + + positions = [] + search_text = find_text if match_case else find_text.lower() + + def search_in_content(elements: list[dict]) -> None: + """Recursively search through content elements.""" + for element in elements: + if "paragraph" in element: + for text_elem in element["paragraph"].get("elements", []): + if "textRun" in text_elem: + text_run = text_elem["textRun"] + text_content = text_run.get("content", "") + start_index = text_elem.get("startIndex", 0) + + # Search within this text run + text_to_search = ( + text_content if match_case else text_content.lower() + ) + offset = 0 + while True: + pos = text_to_search.find(search_text, offset) + if pos == -1: + break + # Calculate actual document indices + doc_start = start_index + pos + doc_end = doc_start + len(find_text) + positions.append((doc_start, doc_end)) + offset = pos + 1 + + elif "table" in element: + # Search within table cells + for row in element["table"].get("tableRows", []): + for cell in row.get("tableCells", []): + search_in_content(cell.get("content", [])) + + search_in_content(content) + return positions + + def _replace_content_with_markdown( + self, + service, + document_id: str, + find_text: str, + markdown: str, + match_case: bool, + ) -> dict: + # Find all positions of the text + positions = self._find_text_positions( + service, document_id, find_text, match_case + ) + + if not positions: + return {"success": True, "replacements_made": 0, "requests_count": 0} + + total_requests = 0 + replacements_made = 0 + + # Process in reverse order to maintain correct indices + for start_index, end_index in reversed(positions): + # Build combined request: delete first, then insert markdown + # Combining into single batchUpdate reduces API calls by half + combined_requests = [ + { + "deleteContentRange": { + "range": {"startIndex": start_index, "endIndex": end_index} + } + } + ] + + # Get markdown insert requests + md_requests = to_requests(markdown, start_index=start_index) + if md_requests: + combined_requests.extend(md_requests) + + # Execute delete + insert in single API call + service.documents().batchUpdate( + documentId=document_id, body={"requests": combined_requests} + ).execute() + + total_requests += len(combined_requests) + replacements_made += 1 + + return { + "success": True, + "replacements_made": replacements_made, + "requests_count": total_requests, + } + + +class GoogleDocsGetStructureBlock(Block): + """Get document structure with index positions for precise editing operations. + + Returns content segments with their start/end indexes, making it easy to + target specific parts of the document for insertion, deletion, or formatting. + """ + + class Input(BlockSchemaInput): + document: GoogleDriveFile = GoogleDriveFileField( + title="Document", + description="Select a Google Doc to analyze", + allowed_views=["DOCUMENTS"], + ) + detailed: bool = SchemaField( + default=False, + description="Return full hierarchical structure instead of flat segments", + ) + + class Output(BlockSchemaOutput): + segments: list[dict] = SchemaField( + description="Flat list of content segments with indexes (when detailed=False)" + ) + structure: dict = SchemaField( + description="Full hierarchical document structure (when detailed=True)" + ) + document: GoogleDriveFile = SchemaField(description="The document for chaining") + error: str = SchemaField(description="Error message if operation failed") + + def __init__(self): + super().__init__( + id="e0561cc1-2154-4abf-bd06-79509348a18e", + description="Get document structure with index positions for precise editing operations", + categories={BlockCategory.DATA}, + input_schema=GoogleDocsGetStructureBlock.Input, + output_schema=GoogleDocsGetStructureBlock.Output, + disabled=GOOGLE_DOCS_DISABLED, + test_input={ + "document": { + "id": "1abc123def456", + "name": "Test Document", + "mimeType": "application/vnd.google-apps.document", + }, + "detailed": False, + }, + test_credentials=TEST_CREDENTIALS, + test_output=[ + ( + "segments", + [ + { + "type": "paragraph", + "text": "Hello World", + "start_index": 1, + "end_index": 12, + }, + { + "type": "paragraph", + "text": "Second paragraph", + "start_index": 13, + "end_index": 29, + }, + ], + ), + ("structure", {}), + ( + "document", + GoogleDriveFile( + id="1abc123def456", + name="Test Document", + mimeType="application/vnd.google-apps.document", + url="https://docs.google.com/document/d/1abc123def456/edit", + iconUrl="https://www.gstatic.com/images/branding/product/1x/docs_48dp.png", + isFolder=False, + _credentials_id=None, + ), + ), + ], + test_mock={ + "_get_structure": lambda *args, **kwargs: { + "segments": [ + { + "type": "paragraph", + "text": "Hello World", + "start_index": 1, + "end_index": 12, + }, + { + "type": "paragraph", + "text": "Second paragraph", + "start_index": 13, + "end_index": 29, + }, + ], + "structure": {}, + }, + }, + ) + + async def run( + self, input_data: Input, *, credentials: GoogleCredentials, **kwargs + ) -> BlockOutput: + if not input_data.document: + yield "error", "No document selected" + return + + validation_error = _validate_document_file(input_data.document) + if validation_error: + yield "error", validation_error + return + + try: + service = _build_docs_service(credentials) + result = await asyncio.to_thread( + self._get_structure, + service, + input_data.document.id, + input_data.detailed, + ) + yield "segments", result["segments"] + yield "structure", result["structure"] + yield "document", _make_document_output(input_data.document) + except Exception as e: + yield "error", f"Failed to get document structure: {str(e)}" + + def _extract_paragraph_text(self, paragraph: dict) -> str: + """Extract plain text from a paragraph element.""" + text_parts = [] + for elem in paragraph.get("elements", []): + if "textRun" in elem: + text_parts.append(elem["textRun"].get("content", "")) + return "".join(text_parts).rstrip("\n") + + def _get_paragraph_style(self, paragraph: dict) -> dict: + """Get paragraph style information.""" + style = paragraph.get("paragraphStyle", {}) + named_style = style.get("namedStyleType", "NORMAL_TEXT") + + # Map named styles to heading levels + heading_map = { + "HEADING_1": 1, + "HEADING_2": 2, + "HEADING_3": 3, + "HEADING_4": 4, + "HEADING_5": 5, + "HEADING_6": 6, + } + + if named_style in heading_map: + return {"heading_level": heading_map[named_style]} + return {} + + def _process_table_detailed(self, table_element: dict) -> dict: + """Process table for detailed hierarchical output.""" + table = table_element.get("table", {}) + table_rows = table.get("tableRows", []) + + rows_data = [] + for table_row in table_rows: + cells_data = [] + for cell in table_row.get("tableCells", []): + cell_content = cell.get("content", []) + cell_text = "" + cell_start = None + cell_end = None + + for content_elem in cell_content: + if "paragraph" in content_elem: + cell_text += self._extract_paragraph_text( + content_elem["paragraph"] + ) + if cell_start is None: + cell_start = content_elem.get("startIndex") + cell_end = content_elem.get("endIndex") + + cells_data.append( + { + "text": cell_text, + "start_index": cell_start, + "end_index": cell_end, + } + ) + rows_data.append({"cells": cells_data}) + + return { + "type": "table", + "start_index": table_element.get("startIndex"), + "end_index": table_element.get("endIndex"), + "rows": rows_data, + "row_count": len(table_rows), + "column_count": table.get("columns", 0), + } + + def _get_structure(self, service, document_id: str, detailed: bool) -> dict: + doc = service.documents().get(documentId=document_id).execute() + body = doc.get("body", {}) + content = body.get("content", []) + + segments: list[dict] = [] + structure_body: list[dict] = [] + + for element in content: + start_index = element.get("startIndex") + end_index = element.get("endIndex") + + if "paragraph" in element: + paragraph = element["paragraph"] + text = self._extract_paragraph_text(paragraph) + style_info = self._get_paragraph_style(paragraph) + + # Determine segment type + if style_info.get("heading_level"): + seg_type = "heading" + segment = { + "type": seg_type, + "level": style_info["heading_level"], + "text": text, + "start_index": start_index, + "end_index": end_index, + } + else: + seg_type = "paragraph" + segment = { + "type": seg_type, + "text": text, + "start_index": start_index, + "end_index": end_index, + } + + # Skip empty paragraphs (just newlines) + if text.strip(): + segments.append(segment) + + if detailed: + detailed_seg = segment.copy() + detailed_seg["style"] = paragraph.get("paragraphStyle", {}) + structure_body.append(detailed_seg) + + elif "table" in element: + table = element.get("table", {}) + table_rows = table.get("tableRows", []) + + segment = { + "type": "table", + "rows": len(table_rows), + "columns": table.get("columns", 0), + "start_index": start_index, + "end_index": end_index, + } + segments.append(segment) + + if detailed: + structure_body.append(self._process_table_detailed(element)) + + elif "sectionBreak" in element: + # Skip section breaks in simple mode, include in detailed + if detailed: + structure_body.append( + { + "type": "section_break", + "start_index": start_index, + "end_index": end_index, + } + ) + + elif "tableOfContents" in element: + segment = { + "type": "table_of_contents", + "start_index": start_index, + "end_index": end_index, + } + segments.append(segment) + + if detailed: + structure_body.append(segment) + + result = { + "segments": segments, + "structure": {"body": structure_body} if detailed else {}, + } + + return result diff --git a/autogpt_platform/backend/poetry.lock b/autogpt_platform/backend/poetry.lock index 9aa55a6c22..9a2983fd07 100644 --- a/autogpt_platform/backend/poetry.lock +++ b/autogpt_platform/backend/poetry.lock @@ -1906,6 +1906,22 @@ httpx = {version = ">=0.26,<0.29", extras = ["http2"]} pydantic = ">=1.10,<3" pyjwt = ">=2.10.1,<3.0.0" +[[package]] +name = "gravitas-md2gdocs" +version = "0.1.0" +description = "Convert Markdown to Google Docs API requests" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "gravitas_md2gdocs-0.1.0-py3-none-any.whl", hash = "sha256:0cb0627779fdd65c1604818af4142eea1b25d055060183363de1bae4d9e46508"}, + {file = "gravitas_md2gdocs-0.1.0.tar.gz", hash = "sha256:bb3122fe9fa35c528f3f00b785d3f1398d350082d5d03f60f56c895bdcc68033"}, +] + +[package.extras] +dev = ["google-auth-oauthlib (>=1.0.0)", "pytest (>=7.0.0)", "pytest-cov (>=4.0.0)", "python-dotenv (>=1.0.0)", "ruff (>=0.1.0)"] +google = ["google-api-python-client (>=2.0.0)", "google-auth (>=2.0.0)"] + [[package]] name = "gravitasml" version = "0.1.3" @@ -7279,4 +7295,4 @@ cffi = ["cffi (>=1.11)"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.14" -content-hash = "13b191b2a1989d3321ff713c66ff6f5f4f3b82d15df4d407e0e5dbf87d7522c4" +content-hash = "b762806d5d58fcf811220890c4705a16dc62b33387af43e3a29399c62a641098" diff --git a/autogpt_platform/backend/pyproject.toml b/autogpt_platform/backend/pyproject.toml index fb06b65162..1f13bd6897 100644 --- a/autogpt_platform/backend/pyproject.toml +++ b/autogpt_platform/backend/pyproject.toml @@ -82,6 +82,7 @@ firecrawl-py = "^4.3.6" exa-py = "^1.14.20" croniter = "^6.0.0" stagehand = "^0.5.1" +gravitas-md2gdocs = "^0.1.0" [tool.poetry.group.dev.dependencies] aiohappyeyeballs = "^2.6.1" diff --git a/autogpt_platform/backend/test/blocks/test_google_docs_format_text_color.py b/autogpt_platform/backend/test/blocks/test_google_docs_format_text_color.py new file mode 100644 index 0000000000..6a6e8e07c8 --- /dev/null +++ b/autogpt_platform/backend/test/blocks/test_google_docs_format_text_color.py @@ -0,0 +1,113 @@ +from unittest.mock import Mock + +from backend.blocks.google.docs import GoogleDocsFormatTextBlock + + +def _make_mock_docs_service() -> Mock: + service = Mock() + # Ensure chained call exists: service.documents().batchUpdate(...).execute() + service.documents.return_value.batchUpdate.return_value.execute.return_value = {} + return service + + +def test_format_text_parses_shorthand_hex_color(): + block = GoogleDocsFormatTextBlock() + service = _make_mock_docs_service() + + result = block._format_text( + service, + document_id="doc_1", + start_index=1, + end_index=2, + bold=False, + italic=False, + underline=False, + font_size=0, + foreground_color="#FFF", + ) + + assert result["success"] is True + + # Verify request body contains correct rgbColor for white. + _, kwargs = service.documents.return_value.batchUpdate.call_args + requests = kwargs["body"]["requests"] + rgb = requests[0]["updateTextStyle"]["textStyle"]["foregroundColor"]["color"][ + "rgbColor" + ] + assert rgb == {"red": 1.0, "green": 1.0, "blue": 1.0} + + +def test_format_text_parses_full_hex_color(): + block = GoogleDocsFormatTextBlock() + service = _make_mock_docs_service() + + result = block._format_text( + service, + document_id="doc_1", + start_index=1, + end_index=2, + bold=False, + italic=False, + underline=False, + font_size=0, + foreground_color="#FF0000", + ) + + assert result["success"] is True + + _, kwargs = service.documents.return_value.batchUpdate.call_args + requests = kwargs["body"]["requests"] + rgb = requests[0]["updateTextStyle"]["textStyle"]["foregroundColor"]["color"][ + "rgbColor" + ] + assert rgb == {"red": 1.0, "green": 0.0, "blue": 0.0} + + +def test_format_text_ignores_invalid_color_when_other_fields_present(): + block = GoogleDocsFormatTextBlock() + service = _make_mock_docs_service() + + result = block._format_text( + service, + document_id="doc_1", + start_index=1, + end_index=2, + bold=True, + italic=False, + underline=False, + font_size=0, + foreground_color="#GGG", + ) + + assert result["success"] is True + assert "warning" in result + + # Should still apply bold, but should NOT include foregroundColor in textStyle. + _, kwargs = service.documents.return_value.batchUpdate.call_args + requests = kwargs["body"]["requests"] + text_style = requests[0]["updateTextStyle"]["textStyle"] + fields = requests[0]["updateTextStyle"]["fields"] + + assert text_style == {"bold": True} + assert fields == "bold" + + +def test_format_text_invalid_color_only_does_not_call_api(): + block = GoogleDocsFormatTextBlock() + service = _make_mock_docs_service() + + result = block._format_text( + service, + document_id="doc_1", + start_index=1, + end_index=2, + bold=False, + italic=False, + underline=False, + font_size=0, + foreground_color="#F", + ) + + assert result["success"] is False + assert "Invalid foreground_color" in result["message"] + service.documents.return_value.batchUpdate.assert_not_called() From 818de26d24325331a5d87d996c3941aa61430964 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Tue, 6 Jan 2026 13:02:53 -0700 Subject: [PATCH 026/160] fix(platform/blocks): XMLParserBlock list object error (#11517) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Need for these changes 💡 The `XMLParserBlock` was susceptible to crashing with an `AttributeError: 'List' object has no attribute 'add_text'` when processing malformed XML inputs, such as documents with multiple root elements or stray text outside the root. This PR introduces robust validation to prevent these crashes and provide clear, actionable error messages to users. ### Changes 🏗️ - Added a `_validate_tokens` static method to `XMLParserBlock` to perform pre-parsing validation on the token stream. This method ensures the XML input has a single root element and no text content outside of it. - Modified the `XMLParserBlock.run` method to call `_validate_tokens` immediately after tokenization and before passing the tokens to `gravitasml.Parser`. - Introduced a new test case, `test_rejects_text_outside_root`, in `test_blocks_dos_vulnerability.py` to verify that the `XMLParserBlock` correctly raises a `ValueError` when encountering XML with text outside the root element. - Imported `Token` for type hinting in `xml_parser.py`. ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Confirm that the `test_rejects_text_outside_root` test passes, asserting that `ValueError` is raised for invalid XML. - [x] Confirm that other relevant XML parsing tests continue to pass. --- Linear Issue: [OPEN-2835](https://linear.app/autogpt/issue/OPEN-2835/blockunknownerror-raised-by-xmlparserblock-with-message-list-object) Open in
Cursor Open in Web --- > [!NOTE] > Strengthens XML parsing robustness and error clarity. > > - Adds `_validate_tokens` in `XMLParserBlock` to ensure a single root element, balanced tags, and no text outside the root before parsing > - Updates `run` to `list(tokenize(...))` and validate tokens prior to `Parser.parse()`; maintains 10MB input size guard > - Introduces `test_rejects_text_outside_root` asserting a readable `ValueError` for trailing text > - Bumps `gravitasml` to `0.1.4` in `pyproject.toml` and lockfile > > Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 22cc5149c5f3183996a4b8ffb7aebb265d5ee57e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot). ## Summary by CodeRabbit * **Bug Fixes** * Improved XML parsing validation with stricter enforcement of single-root elements and prevention of trailing text, providing clearer error messages for invalid XML input. * **Tests** * Added test coverage for XML parser validation of invalid root text scenarios. * **Chores** * Updated GravitasML dependency to latest compatible version. ✏️ Tip: You can customize this high-level summary in your review settings. --------- Co-authored-by: Cursor Agent Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Nicholas Tindle --- .../test/test_blocks_dos_vulnerability.py | 9 +++++ .../backend/backend/blocks/xml_parser.py | 38 ++++++++++++++++++- autogpt_platform/backend/poetry.lock | 8 ++-- autogpt_platform/backend/pyproject.toml | 2 +- 4 files changed, 50 insertions(+), 7 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/test/test_blocks_dos_vulnerability.py b/autogpt_platform/backend/backend/blocks/test/test_blocks_dos_vulnerability.py index 87bf102099..389bb5c636 100644 --- a/autogpt_platform/backend/backend/blocks/test/test_blocks_dos_vulnerability.py +++ b/autogpt_platform/backend/backend/blocks/test/test_blocks_dos_vulnerability.py @@ -196,6 +196,15 @@ class TestXMLParserBlockSecurity: async for _ in block.run(XMLParserBlock.Input(input_xml=large_xml)): pass + async def test_rejects_text_outside_root(self): + """Ensure parser surfaces readable errors for invalid root text.""" + block = XMLParserBlock() + invalid_xml = "value trailing" + + with pytest.raises(ValueError, match="text outside the root element"): + async for _ in block.run(XMLParserBlock.Input(input_xml=invalid_xml)): + pass + class TestStoreMediaFileSecurity: """Test file storage security limits.""" diff --git a/autogpt_platform/backend/backend/blocks/xml_parser.py b/autogpt_platform/backend/backend/blocks/xml_parser.py index bf35733c15..223f8ea367 100644 --- a/autogpt_platform/backend/backend/blocks/xml_parser.py +++ b/autogpt_platform/backend/backend/blocks/xml_parser.py @@ -1,5 +1,5 @@ from gravitasml.parser import Parser -from gravitasml.token import tokenize +from gravitasml.token import Token, tokenize from backend.data.block import Block, BlockOutput, BlockSchemaInput, BlockSchemaOutput from backend.data.model import SchemaField @@ -25,6 +25,38 @@ class XMLParserBlock(Block): ], ) + @staticmethod + def _validate_tokens(tokens: list[Token]) -> None: + """Ensure the XML has a single root element and no stray text.""" + if not tokens: + raise ValueError("XML input is empty.") + + depth = 0 + root_seen = False + + for token in tokens: + if token.type == "TAG_OPEN": + if depth == 0 and root_seen: + raise ValueError("XML must have a single root element.") + depth += 1 + if depth == 1: + root_seen = True + elif token.type == "TAG_CLOSE": + depth -= 1 + if depth < 0: + raise SyntaxError("Unexpected closing tag in XML input.") + elif token.type in {"TEXT", "ESCAPE"}: + if depth == 0 and token.value: + raise ValueError( + "XML contains text outside the root element; " + "wrap content in a single root tag." + ) + + if depth != 0: + raise SyntaxError("Unclosed tag detected in XML input.") + if not root_seen: + raise ValueError("XML must include a root element.") + async def run(self, input_data: Input, **kwargs) -> BlockOutput: # Security fix: Add size limits to prevent XML bomb attacks MAX_XML_SIZE = 10 * 1024 * 1024 # 10MB limit for XML input @@ -35,7 +67,9 @@ class XMLParserBlock(Block): ) try: - tokens = tokenize(input_data.input_xml) + tokens = list(tokenize(input_data.input_xml)) + self._validate_tokens(tokens) + parser = Parser(tokens) parsed_result = parser.parse() yield "parsed_xml", parsed_result diff --git a/autogpt_platform/backend/poetry.lock b/autogpt_platform/backend/poetry.lock index 9a2983fd07..5e3b07a145 100644 --- a/autogpt_platform/backend/poetry.lock +++ b/autogpt_platform/backend/poetry.lock @@ -1924,14 +1924,14 @@ google = ["google-api-python-client (>=2.0.0)", "google-auth (>=2.0.0)"] [[package]] name = "gravitasml" -version = "0.1.3" +version = "0.1.4" description = "" optional = false python-versions = "<4.0,>=3.10" groups = ["main"] files = [ - {file = "gravitasml-0.1.3-py3-none-any.whl", hash = "sha256:51ff98b4564b7a61f7796f18d5f2558b919d30b3722579296089645b7bc18b85"}, - {file = "gravitasml-0.1.3.tar.gz", hash = "sha256:04d240b9fa35878252d57a36032130b6516487468847fcdced1022c032a20f57"}, + {file = "gravitasml-0.1.4-py3-none-any.whl", hash = "sha256:671a18b11d3d8a0e270c6a80c72cd058458b18d5ef7560d00010e962ab1bca74"}, + {file = "gravitasml-0.1.4.tar.gz", hash = "sha256:35d0d9fec7431817482d53d9c976e375557c3e041d1eb6928e809324a8c866e3"}, ] [package.dependencies] @@ -7295,4 +7295,4 @@ cffi = ["cffi (>=1.11)"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.14" -content-hash = "b762806d5d58fcf811220890c4705a16dc62b33387af43e3a29399c62a641098" +content-hash = "a93ba0cea3b465cb6ec3e3f258b383b09f84ea352ccfdbfa112902cde5653fc6" diff --git a/autogpt_platform/backend/pyproject.toml b/autogpt_platform/backend/pyproject.toml index 1f13bd6897..e8b8fd0ba5 100644 --- a/autogpt_platform/backend/pyproject.toml +++ b/autogpt_platform/backend/pyproject.toml @@ -27,7 +27,7 @@ google-api-python-client = "^2.177.0" google-auth-oauthlib = "^1.2.2" google-cloud-storage = "^3.2.0" googlemaps = "^4.10.0" -gravitasml = "^0.1.3" +gravitasml = "^0.1.4" groq = "^0.30.0" html2text = "^2024.2.26" jinja2 = "^3.1.6" From 7ee28197a3ab3268a55582651ba30bde31c3c4f0 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Wed, 7 Jan 2026 09:11:11 +0700 Subject: [PATCH 027/160] docs(gitbook): sync documentation updates with dev branch (#11709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Sync GitBook documentation changes from the gitbook branch to dev. This PR contains comprehensive documentation updates including new assets, content restructuring, and infrastructure improvements. ## Changes 🏗️ ### Documentation Updates - **New GitBook Assets**: Added 9 new documentation images and screenshots - Platform overview images (AGPT_Platform.png, Banner_image.png) - Feature illustrations (Contribute.png, Integrations.png, hosted.jpg, no-code.jpg, api-reference.jpg) - Screenshots and examples for better user guidance - **Content Updates**: Enhanced README.md and SUMMARY.md with improved structure and navigation - **Visual Documentation**: Added comprehensive visual guides for platform features ### Infrastructure - **Cloudflare Worker**: Added redirect handler for docs.agpt.co → agpt.co/docs migration - Complete URL mapping for 71+ redirect patterns - Handles platform blocks restructuring and edge cases - Ready for deployment to Cloudflare Workers ### Merge Conflict Resolution - **Clean merge from dev**: Successfully merged dev's major backend restructuring (server/ → api/) - **File resurrection fix**: Removed files that were accidentally resurrected during merge conflict resolution - Cleaned up BuilderActionButton.tsx (deleted in dev) - Cleaned up old PreviewBanner.tsx location (moved in dev) - Synced pnpm-lock.yaml and layout.tsx with dev's current state ## Technical Details This PR represents a careful synchronization that: 1. **Preserves all GitBook documentation work** while staying current with dev 2. **Maintains clean diff**: Only documentation-related changes remain after merge cleanup 3. **Resolves merge conflicts**: Handled major backend API restructuring without breaking docs 4. **Infrastructure ready**: Cloudflare Worker ready for docs migration deployment ## Files Changed - `docs/`: GitBook documentation assets and content - `autogpt_platform/cloudflare_worker.js`: Docs infrastructure for URL redirects ## Validation - ✅ All TypeScript compilation errors resolved - ✅ Pre-commit hooks passing (Prettier, TypeCheck) - ✅ Only documentation changes remain in diff vs dev - ✅ Cloudflare Worker tested with comprehensive URL mapping - ✅ No non-documentation code changes after cleanup ## Deployment Notes The Cloudflare Worker can be deployed via: ```bash # Cloudflare Dashboard → Workers → Create → Paste code → Add route docs.agpt.co/* ``` This completes the GitBook synchronization and prepares for docs site migration. --------- Signed-off-by: dependabot[bot] Co-authored-by: bobby.gaffin Co-authored-by: Bently Co-authored-by: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Co-authored-by: Swifty Co-authored-by: Ubbe Co-authored-by: Reinier van der Leer Co-authored-by: Claude Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lluis Agusti --- autogpt_platform/cloudflare_worker.js | 146 ++++++++++++++++++ docs/.gitbook/assets/AGPT_Platform.png | Bin 0 -> 503916 bytes docs/.gitbook/assets/Banner_image.png | Bin 0 -> 1060608 bytes docs/.gitbook/assets/Contribute.png | Bin 0 -> 514347 bytes docs/.gitbook/assets/Integrations.png | Bin 0 -> 514935 bytes .../Screenshot 2025-08-11 at 12.21.17 PM.png | Bin 0 -> 1073011 bytes docs/.gitbook/assets/api-reference.jpg | Bin 0 -> 177376 bytes docs/.gitbook/assets/hosted.jpg | Bin 0 -> 165622 bytes docs/.gitbook/assets/no-code.jpg | Bin 0 -> 185249 bytes ...prediction-yt6p2d3gjhrma0ctdsv8vp1t70.jpeg | Bin 0 -> 57145 bytes docs/README.md | 52 +++++++ docs/SUMMARY.md | 3 + 12 files changed, 201 insertions(+) create mode 100644 autogpt_platform/cloudflare_worker.js create mode 100644 docs/.gitbook/assets/AGPT_Platform.png create mode 100644 docs/.gitbook/assets/Banner_image.png create mode 100644 docs/.gitbook/assets/Contribute.png create mode 100644 docs/.gitbook/assets/Integrations.png create mode 100644 docs/.gitbook/assets/Screenshot 2025-08-11 at 12.21.17 PM.png create mode 100644 docs/.gitbook/assets/api-reference.jpg create mode 100644 docs/.gitbook/assets/hosted.jpg create mode 100644 docs/.gitbook/assets/no-code.jpg create mode 100644 docs/.gitbook/assets/replicate-prediction-yt6p2d3gjhrma0ctdsv8vp1t70.jpeg create mode 100644 docs/README.md create mode 100644 docs/SUMMARY.md diff --git a/autogpt_platform/cloudflare_worker.js b/autogpt_platform/cloudflare_worker.js new file mode 100644 index 0000000000..15e26a301d --- /dev/null +++ b/autogpt_platform/cloudflare_worker.js @@ -0,0 +1,146 @@ +/** + * Cloudflare Workers Script for docs.agpt.co → agpt.co/docs migration + * + * Deploy this script to handle all redirects with a single JavaScript file. + * No rule limits, easy to maintain, handles all edge cases. + */ + +// URL mapping for special cases that don't follow patterns +const SPECIAL_MAPPINGS = { + // Root page + '/': '/docs/platform', + + // Special cases that don't follow standard patterns + '/platform/d_id/': '/docs/integrations/block-integrations/d-id', + '/platform/blocks/blocks/': '/docs/integrations', + '/platform/blocks/decoder_block/': '/docs/integrations/block-integrations/text-decoder', + '/platform/blocks/http': '/docs/integrations/block-integrations/send-web-request', + '/platform/blocks/llm/': '/docs/integrations/block-integrations/ai-and-llm', + '/platform/blocks/time_blocks': '/docs/integrations/block-integrations/time-and-date', + '/platform/blocks/text_to_speech_block': '/docs/integrations/block-integrations/text-to-speech', + '/platform/blocks/ai_shortform_video_block': '/docs/integrations/block-integrations/ai-shortform-video', + '/platform/blocks/replicate_flux_advanced': '/docs/integrations/block-integrations/replicate-flux-advanced', + '/platform/blocks/flux_kontext': '/docs/integrations/block-integrations/flux-kontext', + '/platform/blocks/ai_condition/': '/docs/integrations/block-integrations/ai-condition', + '/platform/blocks/email_block': '/docs/integrations/block-integrations/email', + '/platform/blocks/google_maps': '/docs/integrations/block-integrations/google-maps', + '/platform/blocks/google/gmail': '/docs/integrations/block-integrations/gmail', + '/platform/blocks/github/issues/': '/docs/integrations/block-integrations/github-issues', + '/platform/blocks/github/repo/': '/docs/integrations/block-integrations/github-repo', + '/platform/blocks/github/pull_requests': '/docs/integrations/block-integrations/github-pull-requests', + '/platform/blocks/twitter/twitter': '/docs/integrations/block-integrations/twitter', + '/classic/setup/': '/docs/classic/setup/setting-up-autogpt-classic', + '/code-of-conduct/': '/docs/classic/help-us-improve-autogpt/code-of-conduct', + '/contributing/': '/docs/classic/contributing', + '/contribute/': '/docs/contribute', + '/forge/components/introduction/': '/docs/classic/forge/introduction' +}; + +/** + * Transform path by replacing underscores with hyphens and removing trailing slashes + */ +function transformPath(path) { + return path.replace(/_/g, '-').replace(/\/$/, ''); +} + +/** + * Handle docs.agpt.co redirects + */ +function handleDocsRedirect(url) { + const pathname = url.pathname; + + // Check special mappings first + if (SPECIAL_MAPPINGS[pathname]) { + return `https://agpt.co${SPECIAL_MAPPINGS[pathname]}`; + } + + // Pattern-based redirects + + // Platform blocks: /platform/blocks/* → /docs/integrations/block-integrations/* + if (pathname.startsWith('/platform/blocks/')) { + const blockName = pathname.substring('/platform/blocks/'.length); + const transformedName = transformPath(blockName); + return `https://agpt.co/docs/integrations/block-integrations/${transformedName}`; + } + + // Platform contributing: /platform/contributing/* → /docs/platform/contributing/* + if (pathname.startsWith('/platform/contributing/')) { + const subPath = pathname.substring('/platform/contributing/'.length); + return `https://agpt.co/docs/platform/contributing/${subPath}`; + } + + // Platform general: /platform/* → /docs/platform/* (with underscore→hyphen) + if (pathname.startsWith('/platform/')) { + const subPath = pathname.substring('/platform/'.length); + const transformedPath = transformPath(subPath); + return `https://agpt.co/docs/platform/${transformedPath}`; + } + + // Forge components: /forge/components/* → /docs/classic/forge/introduction/* + if (pathname.startsWith('/forge/components/')) { + const subPath = pathname.substring('/forge/components/'.length); + return `https://agpt.co/docs/classic/forge/introduction/${subPath}`; + } + + // Forge general: /forge/* → /docs/classic/forge/* + if (pathname.startsWith('/forge/')) { + const subPath = pathname.substring('/forge/'.length); + return `https://agpt.co/docs/classic/forge/${subPath}`; + } + + // Classic: /classic/* → /docs/classic/* + if (pathname.startsWith('/classic/')) { + const subPath = pathname.substring('/classic/'.length); + return `https://agpt.co/docs/classic/${subPath}`; + } + + // Default fallback + return 'https://agpt.co/docs/'; +} + +/** + * Main Worker function + */ +export default { + async fetch(request, env, ctx) { + const url = new URL(request.url); + + // Only handle docs.agpt.co requests + if (url.hostname === 'docs.agpt.co') { + const redirectUrl = handleDocsRedirect(url); + + return new Response(null, { + status: 301, + headers: { + 'Location': redirectUrl, + 'Cache-Control': 'max-age=300' // Cache redirects for 5 minutes + } + }); + } + + // For non-docs requests, pass through or return 404 + return new Response('Not Found', { status: 404 }); + } +}; + +// Test function for local development +export function testRedirects() { + const testCases = [ + 'https://docs.agpt.co/', + 'https://docs.agpt.co/platform/getting-started/', + 'https://docs.agpt.co/platform/advanced_setup/', + 'https://docs.agpt.co/platform/blocks/basic/', + 'https://docs.agpt.co/platform/blocks/ai_condition/', + 'https://docs.agpt.co/classic/setup/', + 'https://docs.agpt.co/forge/components/agents/', + 'https://docs.agpt.co/contributing/', + 'https://docs.agpt.co/unknown-page' + ]; + + console.log('Testing redirects:'); + testCases.forEach(testUrl => { + const url = new URL(testUrl); + const result = handleDocsRedirect(url); + console.log(`${testUrl} → ${result}`); + }); +} \ No newline at end of file diff --git a/docs/.gitbook/assets/AGPT_Platform.png b/docs/.gitbook/assets/AGPT_Platform.png new file mode 100644 index 0000000000000000000000000000000000000000..25df18a82a5c404bba95388ca9313321fbf92deb GIT binary patch literal 503916 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�~K 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 literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/Banner_image.png b/docs/.gitbook/assets/Banner_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbcd2b632fea469824039eb30221837f38025be GIT binary patch literal 1060608 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%0D0W2AI=55*jbx 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

Ft;v$W?j@)a!$1=YsqCyF+8aA< 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\E@zMsiEc6{npj)<7I6E|hZ$SS{?+?2;1wQ8X| z*e58AlW-@ZQeS-bj(M+LyteIy7o3b?cmSPKo=A263cmx7rzTJgd^;EZ=`=_WBlXjE z!x>_6oI!nl*Muw3XSs4?e4MuVs)yB|`%JwdKa6&$My*vg4$a1bw(6N2E&zqHfS>-| z;Z#&qp{!|2fZS0MQ-$@^h?J2`W5Okd?PT@OLgS<}>VZF-y)>Eq2DZ8tq|K?3)afR5 z1?BLGVB*ekuVExiNbVWIfJ6XMdQYe!NQmysBOrkcSWzNZMNk>WQ%unnJ2O5@?V{KN ziYp;^3$WNpBgyuvcqmkr1UBRbHY&iF(Oj>-lxBc1S{Y6>;=;Z20(MR=R%$GG^WvI~ z;}?WH0Tom`WW`8Ehk^rT1d$ekoDF_d>vE0s%GZ2e=T3t%vcr>AGM=0L@X*U3=EmX^ zEc~sE%O}nwI4cKChDpxj_<21??aBvvdJ(mg2 zC+`bB=hZ#&u<{($nGxswRGo0aoQn?Y9pmY)it??Y4srPjo*Cqs_oOHWA3b}Yo^>B_mr&y1s7#rwV5(h9 zRzF&t{D6=z`_|8A&eOC05P9P)EP+2CnmNeFI@^q)8l{R%aI{@~uMP}2k$cpGlfa1% z%G+jRuWCL8+FZ7@mT}nb?W`6#rg^kwjZu~x2l6L&eCps zFyC+unNLBob$RZd^NYX7_xxq<^J}AIhl*p3=wo(xf539<_t?RGeVa9tb;S)VH0v$V zhCP$FD>kI@@4t9U^qVgR`Vu>K*L;-T+AuGB+S6}83bc!s;oDwwQ~iCJysk>b6XZhZ zPy|2n(mS#r#}FpuNaUaxEPLrFoa;UPFkBFJ__71@5gW;WZ}nH{|FeBT|H|F}iymKW z(PlW`2vy#{xVE5!ft}za^UTk`_VxvB*s}lP!-1Z^KhS0?8Rb!vLwD@3>i9dYDb60% z0UT2KTN~ZP)NrSud7x;}y@t zlO_F~?a$NycJtTiYw2Bu?Eeyz*q_~w^!jFGNBBrv?%W^pL0Iv*x)sQOl(iB%@a|3m zG6o&icP^In{?allH85nhya#(IPnX?EowG96d=i#6P(!YSHtt4)NFOZl$dVnLCmO<3|XdHV~ZlU5h3>Hb@I&BHAF4@XUJk{a3uB@Teos4D_ln`5Y&O=5E6aEV* zS>D(&LY5RK)wl)!?JzWlu!faU+LS&3!qLR@Kowr8S7*DyI%doCRecP7R~-iM+}an^ z&&)0Fw7`1{rVHi1;JOs#)RNgI-rCOLy&;F`WTR}e+DuFj zU6ytY(F$uIrF*o#b+n96fqihaB$prC!=?vgu=&yri3LVBs%1|jfEDkfoEkZ>#};k& ziT)sqx`Pv2VD)7@D&NUo=y)Aj=I?DjHORo7dRo?KkAC57!FFZ#s;+KX{fT8CS{FNY zimOK~$0`S>Jke>rHn2f$ThNBfYq{+2D%+jA3Pn>-ya)ZlK|UjP=d!&_H4nJ;xU6cj znV*eAz83sHe%~p*@j&;<_p{0JXaLHg1w(qd2!+-LjdMBD5Cc8g!}=WHxYWySB0Ogc zmiHg^Yi7F!U9KqdNnu49$Vt z*rlO7H$lLf&5NTScmjdZ73b~p0rqQoFF8R}eqHR9f}Y2=HM!kO5_$kY5}GA^ChyBT zs?LYLV6e`MGW1=w_mOXrWc)%&C<2VYSCo!KtCJj1dLy|54(Jv_duk#Y_8WAuHOu!; z*B6RXdP`!vVp)~-{O)4S^2tK8W2LWxRI?CAF@JW;pCxswujpf*?+=+~NQp7AF**8^ z$V-AsV0FcTt`aSn%~(iM+hYutoKy533A&JHZf~gu$9sU)1Ftf<;CBdQbv<6~%YsrQ zwP~UyJc<2w$M5=t?Jgb5?+bOvS%i$}50Wu1$x#wWvLCDjh6s+5Y$P(JAaF@p!RzJ1 z5OAdH5+ud*f7#1V-ys~@p#K(gjv4yFmnI;T|aa7SgS!%kR0otD+e2k!}OzzKBu$@j3w8%@Hz z=X`eD&8z)XBSve~@&dO&*HyIGvDy>dj!@Uv+X26V!r=TPIPU`uI1(nP&#D{f?}+s55awqbya~@d)z>OvX>Ko$P$`K?Ub-yY7;%0 z$vnGYN7t*xzwlXt*()}AM0)!_`E#<`M5x}!I^G&*_JXS*;S zKj$d3W&wBAr;w+2HHaj2D=Q2X?#RJ>RC!V$M4xJVG z%yTE253}*+R~cs&vO-Z-CXJI5ueKJ4-5(Bx;|E`_Fuq3ME}5dSgFrXXIl)A0KIB}4 zJ2N7O!ocTDwJ@n-EwS;p>m79|f}XA} zXxS}_P@x7tDDX**zI(b$qzqb&z>6-@q1#&DZc1QL=c76~y{2q2V5_l}4Nu7;8#C&{ zSA%-#=(!)PO^T9y)yK0|&# z6f!YPh*}lmisx)m>9&mK%s+7lEARooufF1J#S0Fu1OE}~*65`nbcW+}_~SlJ?}&!bM*Y#VuxT2*q5^G7-9r#%$jPCjvfbaHSD<;|T5`WGw8 zN5bb?n@d=rwxHHgq$wQ`x+IF+F~_*He|f=1TNp+ime~bKpD(Qgz0~X)g%rwQ83E#r zzG`odzKJ8->11b_*kWKq`4Hs}5~$H5dJz!n9w=dg)p4U!J?H)!yI1Qpj}YD`Jp2AD zm%x)Hc(u__6R43PMSIkzPp6j;1{PI$RGWg5B-!*Zct#jO)e!~Q?!&Ei-`+dFf9y)7 zPv`Hg`=!bP;ox;1B%t$;>=g})leOy+Ot26>vbM7~-qk=NLXWpQ%ffewc$R*$N6`tFl%S-wto}vFI_y0q3p9->U$jbXXVJ`R1U|Fn>c+bix6LCOeWalH!)Rr-hAx8Hgk_48l7wR!u5Z~n%*qyJ>x)3+DgFJAuNcsbBlUyf`rw7GeU z9V@@e4&2|n4C>GfbX;4gvv)s_azpH-^hML&*w7zWPdbFf=SIv>u~x|^9U|7iW+rmM}4{`%tIrsd-PaZCrrbFnY}eV?ksjVu9kaY?kk>}bjTU0z6FAJ54$8ZBC}vGrOU=b*PS z*Lu1ckd2R-CqEtOYq#&x|N8cSO8@cr3z{K(%?oxRr<{NPU^UWRG}7^y`yuDy{r$&T%a^>t=VQUo?RdYuDd0t53Pt$_PAOV$sb9x{^| z6eXsIjG`Y^XG{@Qy~~ZEbgIiBy8%X@Vk@Bfx=^Gfy|H;uS7=7a4qqG^{u8LKwF`P= z0m2j;hr4frnT(H@(5%O1gq=8 zDzZ!{eYca_8_HXO;$D$b>WnoITGydGiRxrStvT%ho$APi^IQV}E!$Yj<@n27Fb)w= zyI2jY%|IRqkemDL&?C^&4Xw>uR2|XR5buiZ-i}26j*OINWUiZM3-h9ZwoBCVwtEyR zK4Oo;!Kn_TAondT09N1W4rO_Ahmk?v7YAI1y~s1V8j;e15PAz#MxdtJN;(8Q$eG9s zD#XBpITcbh*8NhhOpdtFzUBM{_JlFnL>~02aKGNBsam}EtsAlSDn$2Bxbk}x7Lh9gLm2BVnRRT3I4y9@^ zoZDRFx|V(psjzk`_K;*Xr&m0F$(-&{+D0;`my4y%u^_|n^LM<*L`L1>dJ7zzv zS^4S&iRSb+of82ej#>qX?dnt$9omr~$Q-^lU)?5Eu@s%`6;e9rg%)cT4p1$tcq*Ycj#D@zm-yQl^XW+PEu z_A!TILzI0a^7WSOxoNXeL_gzV&i@XyemZ)vX5UKywju_pBbH?>{#)SxFV`1zd3mV` z8(Y?$Ua;*zY{@TKNR(DzV|!Ipw5E<7;XAtH?;O?D*!iH&e@U)d@EBg_Hm?^56v?(P z_sRIK1gETe%$Y1tI2BGqbqx>3n46#3?ed>kGr!L^9Uk(|>2(S@Zkkwh{1VzC!2*w1 zhWljeK`n=C*#@!9EC#c_knR6@S%y$;H2<|*ys**BASvqavOsM0XA*r0B3)o)B2z}2TMSnHPpN$sUz3s5s5M?76K8c z3s4FSCfsb*ufU8x&84(#M0WDbyBc6WO4Z>xzual7JHu@vzC;h|yUE2~UQdErO)(5c z(_x3n?d|ffmdb)WJ3efGsVt;pt*+R7FMVrz8WMubN33(EoWp4n85((VekId4!(7>$ z>_ z-?9PrP9U8}ah#9zf{msxwzn#X+-$e(2wtiqSRgkeGQ_>Z8oemaLTzWO&PqBaY!#=y zjmx6JJ)$q0jhZYfQfeBFYL)Xn5vpLCJi9nkn;|fn)9gxN7i=_=OtL!(AdskF?8SmK7_6SX!pyRQu^(%lI?2Sfnz-IKWCQ0+HMi3m zIxrU$2?vTv`L?$Gy%?1k^SwqMm(ewGp!!-1^-XU zkZQlQy{ZuJGVi7P)i9`St7CkuZMAcOtaWjq2*QP&k+2PBtU;|jRj9ROgJ*di>m<>E zb<0AVx1Qgq)BV?9dqS_R7UWf9rFn$| z^fEPCDg+flb93${0YE|Tn;SMw`Q6s z2ETTl>D!M2eQ6{8%k=fjNdLd9o_@%EeVy<7xw}M9w>C$bp(_E5JoHr#8WbRJ?=q1~ zk5>8?@XeUM@d5PBv&4K4*$Nzw_HNIJ8RMy(eHHKJ-N_RDJjOkRhx64tUf=JmCDAg_ zBYy7xyZo=wSGIph|4je;EUP}83Oe*^SUC>}#YZQ6xaS3b%ya$dOA-XW8D)%)o?3oy@(aLHX9GDNVeG%IADMPeL)toJip(WVM5)fowdnZ zmq{EO*V!4q;Gd42yOO!Sz5;}yz9(yTaX=tUnOgT5@P^3j1m0gQ=!Y-9ME~cP{}cM& z_!WAGb&x&F3TwV;%kTOLpK~k28??UmlKZyp?TkF)!3wnhTTFh|-2TwnJvY6bsa(eS z(6s>nPcFmRej88eDRS#zG|;kOY_5utT+W*W6L5bbufxE5X2WvAk5;^f%o|=q3Zl>l zIe%BG=diP1&;a<{E%{Jeyk{=*X}hy55G$$vct0FY+b7mWF zleO)-k`qaSlSu=r2N>E(d1}Ch&d$3D8R|3?)EIS|OIED#9+8U&WS9>atL!MgF*7U<^O%%RIQ4d1N)G;%3GSsI0%VEX!yam1ZQjH83!4n{PuDltAgumN9LqIQnB<|KOX_#{fff@Q-y* zTlRPe2((PLc8c`cK_4l^*fKuJ<;Dlos%U*xqBEH4mH`)9_?-1K4mL@=T6M?nwt`p}M+QHV&>C%Ipe zR1`rGGL&B(%CM=_84&B7EtzE_Wp+}!x4&+8stE!o=5F?kKv#?NagP#<=dO(N72K{z z4IS0@dVO_2gVraJOD}kjUiVA=SMC`>=Vi_`F#zX&n?O&M|HP{AdN#Nt=7ln~7BH1_ zHR$IIUSV+PzSk|TCJ>=SgzYbXM=Ct0VIcDv(>`CZuJwiW+MMDksZ&i+{nV~$5XIvT zW&b3|Y#8+Oh+r)_y;6?Sq5q$={;=YG`Sxn9!HSV}tKRLPfz+0(^u>&+#r~(LoF-st zvc=2Iog%3gUV)MY;pje??vF{yPIoDE9oyvH8p%}3 zf$EaTe^Rw&yIdxStFZ|tcxD6HGh)pzoM`EmZx2I9GlP}VQZe#*nml83tYb5R6l zLkm@QI&~QD<-MWVpLo~IMxD>?i#+}JLCK=E;pyK5-srrRLZyZ7hjS!{^3vRN1^SI^ zU^;YbtEUsa&%WBT&%@cCpKR^y9l14(O#9wUV0}$MPv%TBpX<}XdY|kKoxZ{Y@2mF~ zLK*IPI?w++!a>{COQW_+bD5Q@eAR}-$?h5ydeI{TovLP9ZR*yUU}3Z)!q5z&h(=Zn-AOi zwV%ZqKEJOasEu5otuP>YR)p2OOEeXCe3Elf^7Ew0OjE`(?^~$$dlxpcWpqTX`)HB% zDVR~fYF(jrY>4HYS#4{Bj*|QVf#KM)LZ~qN(q?awzh2*q+;F2r+Z<+P%&mb$e(gFa zNO8h{9R9aJ&NL&owIe-)>T}{}m%Y{E+l@onH(i0pvnX;smmL_)*eMLRLFSP~k&APD z%$7|L8&+&6u)O=0$Gt_ZX&rCZBb&L7UCyu?3rB-QoYYI2UB;&ZwO0Eg1WFw$e%E_1 zKctWLcdXQGO(6-b6IO190jp{MET4GDCGE2!sQntfhE$*fft*@uN(~#HGdaIGTP<`} z#`0pPFw@jTOqNk#->aihq75bcW6?-fVDL8g@t`lBwHsW*(fx>w?S$-auk+Uh>@}+U zvu#cHLc*xrxNe!iR=0cE%$tqTcmx~*#rR8wms!(Ll0%&vD%8mOQDGPz@;XdTef!#j zsmA*z^$evwG0yEhOSrCH4o6y={aI%LG&7kQMVSkZrz6NfM>YT*K;Y09ec21LA2k4Izo#}hLZ4}z zdi5{`&{JP=&@VnOdS*PZ0cWx()av*~6fl__(yp-!`q>@qZtN8&f41kX9{N}WZzGWH znw?rdoEW)zUpAL6`{92`-ERth)IeOJB<jK>@U4oqa5j#r1 za}nqkftF@$&ZX?BZr|K0b@yM2_0t$!%u!BNR3(D!JKL$bSuYoJAnz1?JrF&_`rvoS zSU=%u-ShFh%Dg7acj;f>{Y&)D%@669uResq+I!@Ep0;0P2=qTJOa_WWP&i|=4cWPo zOyKUC-^D+V-nP1R;uPP!OzJ4#ZCFlIXZb)T<`^1H0^KM9gMnsJPMGp^_f|rM5{Pzz zMqge=T3@sA{wk)vGzZV}&I zH~$pFIS`Ss6F`o2kh{DpZDEOuzmFNn^7V9|9IW;eq7S) zynn@Q@`CUG$wD%uq6I+AcGhtapHTEqJxfx$Asf`Jth1cAvR891$*?9~jKwIU6fbAQ z^1)fXOX|EHwe*V7vE4e;2i)*Sg6Pp%IVjR>tU%X8P{`87MWi=2fiCW(JVT;SM2u~% zP3Vu(_C<#51|BRh@^F^BGf$zxTZ1*VJSb1}>i`eDasz>f@0>4)Y_`{bWlZXx;=K?w z(HIj#W8qWT-=>GovxLnUniUq?^^WI`FyYR}OzxCJ9nb*gn3QitrD zCdfheOrlciNF#ohrYoq^-2*?Z{h}l1W_L7Y&a4rWbxiI6iV~dOdKU3NV^onWsw7+B zt=9&p@E|_u@{I>K`tizE*Q>PUvRFRTP%egL)Eh51H`elOTfR+Zn6?=wvMkt4b5E#D zpHg+E&5Y2Kt~Gs>;PsDpceLvz%Xy)8Fyot6I?bHfrn8Do!vbZ3eMWR}x@EW*tj8^Y z5b3I}(?d`@l}9yWS`q@1p*}w73Km#)&QX;ox^=Mfb%N*!M7%^JRZXE#(lRd*?@`+% z9H|qPy{KcM%(2M27swP}m}F>mw4GjyLq6E~lm3Z3Y>@6~qw5e@(~QI0Z*`O25gw8v zTG`w-_d(eWB^x2)tdIru$aqRgH6KGWz4(vl4DYNj=t9dxSpcZ+&t%RVHLIk(%H4*J z(ks-uIEF0#K57t!WQ^;6NmBMF(T`bgyJP$76Tbf{E)-44Y&+(-Qx#Zb*=R_e26bxz zw(@$hfgBCLW)viEi zM~QoEycVd}&AybmTu^~EpL}`Zg-2Lt;j4jW{<8Ka$Vg%n6!_qbBsB_+jfv`@RL<&Y z>aV!x%6ZD$1J(6xZ=?AhoqezVfDs6Bhq6%sef1hq)9(?8bg&QSb~dLE$0zmJHlBNG zUwOy4pi%ave=hXa{3GN^hK0V8(Qelf@MS*I6Zf^&UIr8)B6oxz^k&+>dk^o4t86~f z$oL5nn$rJ!FYSDRBAWJ5=PgV`p=sl}wsO9+59`UXduy^xZl}G5D;;@{&1-uo?7LJ} zI-GbvQH8H^0=TbHxwtK#kxzpw=w8nO0U?@QpC+(-g=@_QGO{lt@Tx$Je{ixMKv4Oi|& zK@cOQWY$BL1z zDLa|+b~{^GIwtoUT`!sbGooCSCNjsg&eKpGWu+PWpME6pcM^yoMQXc_3Ic(3l0th1 zeDE6Z(~~=Iv4d=0QP<0zj?_Ah1Nunlr`G`6ZK=W@*7*@*vl^UZp2;$y?s+-maK_jD z-O#!jzl_v4MF?vR<=O)Q^mp!COsQlE7(WDRL9?f_KNp)hR_E!SJfKYtc51xq${8!` z)s9R5<4#~0vr1GZG6u>}+BwP7R`R(M@n6E_eB5b_8q_Sq%4MCRNXw6&`L*olQ7l|ZNe z#V>q;zWn$J^}>S`RxNAB_Rm~DQeJhJKBD&p5>OQ+HiRu!S}RZtSv@O~cYMx1VCT{h zJVn;vG?j~vrW|{Q<1H`S?|t-w{@{}r%s(u9OdL`j>K68Js61!h@%HM1{=$<-^klu@ z_Yd@2pL{~kc5r3@vBYa97O5OO+~;u1xBrOW-z7MMgJqhF&?2?@Zh$5r<9v5{K~d{U z2D)RT)Sh|W>-_nDy}x9~IymPdl{8c zCmE&>yIShfI?4^+5@#cXlTS-_Sj>e>ka4ka=9%eLZ!;de;ep)g7LW9|7QaS+bMxPz z|Ha+EP48arbl-K#!`yL`>pLN*mDa`p+MG4R*b;2BI%;IErCop%)q1R`p;zLp?&!&z zy|EqH?!2xeuZ=jz$GthGMSL5S{bsAsF$UwwYTL5FLWQA~+L|5eg|B#DJ!VJvBR14u zn1fuL;gT_KBOoHObh}W}~n`!X#hrQ$LCHpmIa@gl{SAZ^~r7=9@scazxP)HC9Sq*r#x5pE$ z`uKv=0pkr4(43k#7Fbez($Z`FyFJUn*Ev(+ulT$~Tp4UkmA7Zxtqr^oTD)f(`U%T4 zw_&F+;A@s|*IEmjv?jE@E|+ud!J~c@nvrPP8nJ~H2_R!6$+D*fA&;$cDm$s2K?5Tn z=oBaL3=fRcZiMsqgN7(d3;&3Na-SW^$o7xR{>r1pA=_EPOhDGVvLTiIqVjhwo8^QO zXGhA)DDuEm(l%R_#I2LDEfk7n(nSw>Qo>w?~-Mtg{~vnAXfr z=edEZZJ>1oSpZaqW89J5%#joey>zlG&4~^niAItblOR*s5wo!gzSJN#A=%3!g9Ni< zd6uNSQtV)RK|yPniahr*w;@4xPgX0|11@yG^qQc=CW0skO*rGh0_W6TDajgw1j;&# zBuseO8LORah$1@NA}<7F1lq2#J%ADyuCM74&n5UybBqe@{bMTRRH$7yqw*Dd!0vc zPCIa#9=RQiz0iJ5 zisRVLxcVajb6^1(L+? zM6>o0PLmEo5rj6)FfUPgO~2<(?um4b4OSv6JW2qOqHP52q>Ze#YAPa}9ni+dZiK63 zK%?KuvZd7V#{${~8_TblQ9oI(HG6i+0*wfBdnT%HU0&1mYN;^MJ&%!XldM4WT2Hf& z2Aw24ZQN$f#tKvqT*fSUM2raGsmrLR^(TFxd^zDfZuWzGBhGCR{1?VL4OCF_EklV8+H$niC`#L~j_uRJW9OnF!4DwMUq)o6(xhkZVZQK>QpvDgw*RU^w zYuOX8csYgl2sxWCI9ai0OS^^H<+^V^~z3v#ZL>GwE;xr5@R>yOeHh#Vwj!`AF$ zWT&8xq(L?sjSi^>Pqdvir*A-8@rdxB3%yeQn%Y>zBfS2f06+L#u5;%@Yjj)2bO|(| za5ywM^K2lYvd1ioEU$nd(6##tSDybVADAJbqFa0Fqsidd|4YYBsk)M8&JiG$!%RMI{H(O zF6kE^UzHkqYrStUg&K$*IrQK+a|t1-kvk&_d&HdSITu*!4);sIBJ<^6Vx!w%y?l)x z3$!QC#WgbGZ$i?HkSG~T?419j?Ja$eo!TEQcl6I)yhdN{FX##PK>`L}W((|cmHIjV z_K$gA3mm=B^t>C?5uo$3@3f0z-23Ao*{D1ECOfv?=68LG_vfESZN*)nl1(N%=TaQ3 z-1iL+`&VzJo;Vv0`Mdx8tw>*IXXhJyjNXyT0^Ih;yv+abGSW-QDn>ndtqY(1BpmLs z&U~n^97l7Yf>2=%_I;Q-8sKx*xm8x@G%=hveuN`Bi?vVWr+drm@i$-lZ_)DQE&VT- z{|>z-^m&(|vx6U~+AwQ_s2Jyc7mZ^s;-n_&sk zn*c=3Y_c8<>cDoUYBe)sh_xRL-<2%ycpWX%+p{#=j`tXo&`~%!rt@ZUY2F9(g*@gq z-|FZ^x1xXZ_Ftg??qbTH%vN<^U8vo9RPU7`KYWH$=*=Jv0S&wArSB-swbr#a4TlD#T;!>-%t408n>s*FOW&8Vz~dJv-%Zkbf+cV)E$sdrk<^@_Vh9p~NaGG~ zdG5?*ERY*}ZPC=WE{^$ekNU~gct_;=Vs2~|;H9|+CWK~PO>_%IH}djKvB-3pTElX? zRXj7jPG+XUomF2Vqq*nABzK(orbNpj)b{ekfM%#v{z~}=07%fC?VK9wml@at2x7H~ z1#jB!5qR&;Yp8d{DNk<0X!Q;62Rx)sYtIfc(UdNnn~y?e1Jv7qpzS~orElNI!YCs8 z=J4{Smmw&Qa-FN}v+0fp*j@;9Ay~GK{E-NlS2)X`|OrIaXD0S8%&{}pXw86uHqx{ z?~mBwdnq6MiI2PFP6L<)^g0%@EEOX&D~I1ze6SlRyWETLjf^GoTzb}FI=lmz23 zB9lT!(O4dS;}z>pPdYfoQBOX@{v%N7`~3h!Ky!p71R8jWJSF?GpIF~diVEoED6`7k zq95=0*$?h+=$X{=W?ky~^2*LOg6(xC#NH%{7<^_nymxlYsK@-Jd;%xZm@tG(VO_QB{jUOnfNd|r1q#tRb6kosgzujK!I^mC)gammlv08 zPqsSbidagGa~l&b$w!8Gl@&oNIY9$j5EYhzKxh|ea~r}!Ef?GKxZle*_Cg2wh`OKJhO9>ddRMpQqZfdVj8tu=0_Y@$ z1?Y~|yE>xSxQ`1Pz*N5A;uVnxFCLpRZ{G#%Kr}^!^>^mUSv6uzl~$d-Y~9WN2fJA>&Nrt8EV=>R(xkxi93SC?UBW%fp|4z~xS}Z2mux`>n+wAG(<@4As4KTiB`jYgfi|iwVl78Owd&*DLyAw zA1F|%86Ql*gFbHtD`dq))aH|SBtX>^sN7KNS{=J|pDH1@`nWD+7lnsF`15S;z<^Xv z2~wkVN!P3(tOf0Wl|pfHi19b7B40Ct%qVJ~Nffof!Y;(IF5?$o!b;{Hwa^B9dwP)B>NHElG8}+a z>hO6mM`3}6_F}2ihG@!3Y+shFThR2Pj*Y2g&FEh2n;Pe#X;Y$Z+4;s6Xj{|Jj8pn6 zu-GM|myR#A?D73zwWx=2GF9b0?ucvFQv0qj?N$?$9GwC8Yh81KBV@mWvfbJJ5_keb zmKdcqBVQwk`R^V)P+_#0Cv-M0tpVp5{LZT!ii>Q#w#O1!Yo1PjdxiVxX{O`$vQKkT zKIL_4y|Di@vR~F-3=v(ZL3i_JWd51&nzL|g`&2TZWerdtGT5Q^mWFUdH&aH zD@P&77ohVA4r~uj&>$j3^T1ibz6osmWsJS210 zvg$P_yXrq;F(I5_>E(lTnkiYxw58k6c^Y{&V_wtd!VXD!TkVqBi z%WSmyV6&k=V8^aFjh|kuXemK3-0TPZyck6Pxi?>@cP`iT3D5ZlJm-JBy`%SdJzvnM z@{rG4t87mAdNY@1q>GBKqF6d9YB-i;*eJYprV{-f#trVDCsV&U=U{_D_SpB;=s=IV{YR+Jh$nxqsy&i z<=T2~c`ZI(2fjypNNfJ@7j80r;V#n?rZHcAnd$3~BYlng5tbP>I|Bj$g7H%#Kvx20 zI^^n@LdHh1WrY(Y;F308_E+?8T>tmz zwc#cG&o2KK%ib0!p^j=K)Fzd&s)L~@+K|~aw6?bfbqn)cO3i5%19o-K$(@>oEm@y^ zD4Dz+%e^WK>+!SwpWr!;5x6Tr5ODMfi z)QP$0ciaZL-30o7bpJg4Z+8DOJ?Bk$RD9tVJ>xxj%d2|Je{MCtASsNxILRdlBck1> zdo}`h7KHK8%Vb}F)l`u6y^;@}$*Olq4O2mlNy#8K2MuhKd4i)MhXMqJp{PzehJXZ9 z)?Gvt32+?mf;#d!~#^BTyh|B-zn@Ts}C^QwAx#Gc7&824;e$;_3~T_v#VCP^`LDyE4!bS+x0lIwO>X5#N4S~(^IJ((CEB0p9{CIHli~zH3KgX z+4v%0Q&lHO2yP5zuGD7VfkwK+#;FY2^C(HW^Y+;ykVJ2>WFIs2FtingH{7X+j}?e z(JRAd)7q5Ux%0nW1xuhE@{!m*#Od`3_ebiXFC{rZP>#s#U?#I$Y+4wNHcQgT9zoQC z&ZGPVNk48c84!3adQWclfywToANSa7UJB-L{)$WuWCULy&!#m!Jev-KfbR?)2bH+- z%v{*Zl|ZSz38f%H%}Cch!DD>7Sg33#fdc`yDtCy*X!Jr+1d&OtY7z9Ch%+U~Q`^nf z&=GK+^sG2+i|D|-7Y5cpo~Jtv(2XG$|A}T#kk3X$ zI*!$eROqR+EA&`t*TUp!399MsdNOsYNbX z&;!5w+0Biiin1QE=zGHmKyXEvmHeRa}~Uq!}g&X)X{Ql04=o?u8g~&8}B`aoM zQj`XBBGBpXdJtBad^Y($IFm?CAH#Ia7`Ki+nl0bq?MwN|_FT5l&ie#jby-LzfBZgDVWFv#oT1Ow>46;TN@lw&bNLU=`({xR@{0lD zm5m!)fjXky@`n&h3eS2oDG{njO_WY(Kzhs*Vg1wt_(< zbrKaS!UZB9t!9#Cb;#!{Cfo~ka9Z@NFzBn!vc_Mq!QdlyW{H5Z>K59jIZUHPnsR@) zK`TtFk!PW`nT$BUzF5&GyIyOXZ<1wzWp^Y)C=IVTKa-hi^daAA#es}3LQ}KEe|N!3 z9QN)KP(elSNortv%zc+y&@cBJw@tut+Xz0b@;(6&l3G}z2ue+{W!IJODOg6KZHrWt z#2jD%$~8Dga#vOYzZncZEv_%=PD&Cej2o(Waa*HiNLvlDaIrSw$X_-XRJubNReBaC zTSA4^B1)XP=IdBDP6m8kmK^u&4qVU`tqEM$dop9MPPV2k1j}7`BQCVA?uY!IjVR(t z;Oj@NUv+F83cn)`*ZtONFVBVY`6Y~ezbhyL0nWt9C2fiTT|lD0(NmnZk;lB6W#S_B zs?Dx*$nn~>#t`ADTAGn9ZFLi&-tHmGESEXn@25(LW@Sqa>V-x0HA3a20Wy9R;Mpl~ znwhGhfIK1)^W;LId?)ZZUZOw)0!H${Fpp#neu7vzSJ-MeWlL@B5zbgKdZ?p!Q0J&* z@Mi8mpelB!$Y06V#1D;ru+efmph&G6F4@8falrtG0*rRZV7x zKH^!S0gB25R+WyPH-ls95XjM$`POl{EhP}L@60G;r31ooQZhd)+D`;M!MJXEoM&j6 zu`G*W&y7C_4l6&Jf|}_En>(g2KcSy`al=Q9UC{iq;63?PJVgT%>~HIY$xkf4UV z!N#3ie%F`RYx>!X3wne1w%B~d{3d}tU*x&{E*rc4{)^`di>|aJrDE(WhGda3!#I&d zS(@PK2z1ACml%QMvyDKt^Lf%Ug?W!^0AdHa)R<0UG^&bisksP)xJSf?)Nnt(Pl6SH zp83(2S8H{`YjS5+>Q8r))x+m?6;0+7NBJj!UKhjW_tKVr!ejco;|;w&tctx`3^yOJ zvFC-zc@TY~2FoCWU0yFQ>XGFd%uFeJRjMw2!q0u3o#0>QzJ5hwgxG=gjq9HN;U&>? zcG7)`J?}ry)9_Tt7eBFJ2kcvSiJqAz4TYVIJ*#327O@!ztIG zZ>?7kd%Qasi^28GH3m3KApq*Da25**rfOVu+vhQ^da(ar$v`4b+H3lo`+u4K^d~>2 zfBxzpvHSu@i1)|or^}lV+yVqwRk|a3hO8}Tc?z@c>nNGVNo2TSXgIh>1ALaj;In0* z`)sHTvW4Z}v4#%V&{7$q8EKHIDQ$0qq2I2l935o^(&k-O=X-$zJ*oEy>^RRkZ_5Aw z@SF618vi@=oYn@>8IIj;@|?W-him8nP4=z8^FJXAx{#^sK7#?vWXI{d&G?$j4ZcT& zS_DlUkE(+Xs8cBLw}S+44{+udGHvT(JOZs})9MAmD6$h<5Uq62yF8waR+tkV0m6=; zQ+iBOx{NUd2|7v^46L=zHFhag{z9bX7Tmy8vg0L-d|T_sY6h`Ck<8FZAloGM%=bD8 zYA7Q`91xz?>F2{v+G5#bZ~FOS)MyO49HQ!Q%bwf23_z%2+KKfvxK;~{vRBVaU#W=K zsZOHxkdeKjKPgpR6;os6HZ-~&#*FhR3=SE?KNQJKynC$7UZU(jJEEr_X=GyK+g;0PW>wX6us7MFxqznfBU)z z%d~NnueuzyrK!ygM&MlMKalIZF4O0kg9lwkhQ1j$-BCf6Zeyp^^=$T$FNZ_-2P*uJ z{MOk%@=`8s@IaBzLM}G5l9@FErK@*{?=)R6{l|5wOh)LMd!`1QNk1rOI^wCSlheK< zH!?2P0@(KyCi~3zr62_f@}JfZXIio!_6WSOIo_$mZl~pO)R9eP!fCE+$oB#z{)pv# z%}~#lLH%OfvYfXwBo+!lHOdFP;nlBD^fOG>!5yWzk{OST`S&e8T#d2htN60)~Jc6XSp zM+CX`aeipM|3R%lJ=8TeE^84we=6kPV zy8*kLCPTSwlA6zOmYXx@eEk>_r>`G1PnXZFxl(c{zg34?lTG!p`O6BB-IHQh2ERi<{MtJl`KlSelJgqj2t|U6QZ^}6-!Z($+ zGNK^E*;sK1RfxD;bW4lWMSCLLN@lD$ulEZ7InwoVO;6Z}DsW2Hb<6JXy15-{>3qD| z(BtJw>o6I7y45RJsJANzE2lWh_+ZjS2}7@Ly#87YIj*B#eu?reYjqi*s>+9xXc%CK(Sz zM@W-ABZ?9-(bYKVM$w#6$7wD!l-B68TuWA#zQ9fznInParPY#lJE`R+&aKVC*|F@| zrNT>FAjF+H*ro%biIgYfk_>beZZ6;)oY6>!j%J6Mj#=v?BZ4zJM~uywLsdG-73U@* z)`c2P5b6MV9h&K~?+w0uk39-yN&Ca^UawFa*?HO_9Vx-CTI|>A75Y9XwRWVB@_lCx zMGc555#s~q0;LM%Uv+YimXWJL2;8ounh6xW%n_pTvmyC1Tx)=0c9y%5XM|u%81?6)M1+pqx^!1 z*U^;GhN{?J1ihxvGNQVF3tcJMc2wzEt4N2~WNScH%BjHh>$@E3fDI?=aNF)Qm?XgY z?`1Ry5y`%9WUlvo|BocYn~gJayv5)mnd48F*Ype5kLWF_waCu2*I7Oi2k}dGxTMj_ ze!MOG0rJ8|9lO?_r(&$(cYmG#{$!6}m%-)?EhXHV~KxAZ&Dp3}`}+5BbpVnDW7Zs>~rhz#>O)6TCl z&6Ov%8l+{l4W<0Y9syY5QxnhMki?bcaxa?69!f^6uQx5s%5e z&^G-lC-cvazuQEmOF>ePx{>~v&-lN~bMU8`mh3Nk`uj|(e=Pj*PO|aEh#cr`_P}3Z zuRLPU)-S#s>5tgf_d?np6SBdrCZU=;#HcNSb%4@DPar)*NNFr!!TR z)b@IXUUesdwcCTnS=~(&;iMnpQ&!V#29k{Lc{)wT=AYjuM(Xb3asK1gJM_QX{*QTn z|8MkHFaDmE_tBS&b5Z)Uw=*PhXAz>IJI>`DvCA;Lf$!;@Xfg${Hi&HC^wh5acGj<|5B(Ejd8~SXkhu29Jg?;i*=BAglg1 znH-nhsfyXj4@ZVH10`eg4ArVOymwkBkQ5COC7gn`2}+p38`P0K}UmV zjR<5Sr6s)xlB)> z>HeEqX>nddgt0ys5s>mkRGAp5eYB1$oQp1d4!Dyvxcp$eN7$0E>$Bp`P3Lj>2b=wi& zB*sJ6EXQ0fR$4C59oak9i(YJQ*^zAyO@R^L@p^p1_Nu53n=o~{HJ6-`*QER)-zQ~y zw&GOh_5_V2DolAO=cmrKTHJ{quwUm_)fsKQ!?}BjU{}eS#Ilus$lE2bpa0#$xWCSp zvFztHlz+35erZR>C+H(X%7xyQ%x;-p3HA}P24A#k4=;M^`*m*3&ai{O8=8JqWZ}jP=k4d|zB+und@?oxfOuxGdu&5>jfA zQ8mzItT)Qt||qeDtL~9ZhLJGyEgY(^gKs|9U7Pc(tn)KaU^w z&;Oc4&X>qenq)ZK-$-eJd=rHdF=rE7UegpsawRxGICP7a3(+;&!-ZCY!#1e%+!dUF z`j>VC9nu9C@-so&8vs|h(0G$64hEMk3f-Con005F z0DdC0Ze?ufE*#@}G4r?Ah5pw z{JCb4_!_NN0`0TV@rm<))tRy{-|f_iP6pFS7W<<{W0f;)j|rUo3(d42>e@f_I&nNRW%WHK}WgKg9` z&Bn0o6(f{LBj$SM1ZES8m^g|AcB$5sF~wrRuP3F6>^1xzWGX$y?{| zBw58-EAYbHABpG|199(lugGc~K~GR+(gH6CiUC!FALd>l#(IHb7wA~Y3?Hl(q_iV} zCknX>XHuzuDE;x8AJQ*@niLrJg=Oh#SH&2q(7~pZ`S`L&q9w~DDc?tf@tQ&uHG3*~ z@IxX`Y0E_ss|@de96gLt9iMXU)1!W++4=I0g$ifU9A1iMacIQSOk;rqles`-cevZA z;U!HXT=TS-5*2-WYmUg(TC?**SL=hD6D~qQ9`68sPL}1r-;$UfUMvC$*xX9a`MYygO3gb;}_OREWmQG0@Sw+?8K~aRqojSZUdrgcTBWlHuhJK)q zb*YcNLU4lg&6R#%TL_y6^<_#I#{B}y~_!_ zB<C2bb z^ycc44XgwGn9toepTDGEdGtu@k#9yb+Q}Yxi_gqoc>OW`!lP?_-&5|}5196S=VoJT z?e%w&;TjyXv+#G)bNm*|S#S47E2MQXR7n8aB`@Mj$*d$Jfgdt$_~!Obvo^|^3=RKR zWCAMki#Vln_Iu%o&e*>cs!lbUe4q?Tv&xOX?so%ykMI0G@7>4(*5-u;&d8c>BvWE! zUdom(72Wv$OWumVe!~X1Wv1U^vhfUAOsS#EgVU@Oo4x3K4~CvDKz`?s`kLk8TU3)) zL#9bK)5I`V#ri!y=uMc=_sg>)uVk0MvY{=NfU9tt{@j5&u~)NSizf+Kd$&Cm)OGUX6TIX#USsO3^fS~3f^7xKNs0r`xQdrsYOh~xGX3Wdnjd;e=^#l zr2upp8acxaJK&3BsGBMxz`7M{oPFx~nXCb7KL_yVEH(-0qXdd-?Q_<< z2BlJ+>gXLZl%v{4%x)vLJ>gecMvm8LAJQc5tt1O59IJd$>$V!*vfn%qt~6c1PgAP;-BrX)0*2AqJ6R;KFGo@JU+&@l|KLkH8~>UaF>7s`4PQG z5yen)%b)Y0eMNW6D518p^B{>Ud+2pueo*WslJ(x1?&WgumUWb&H;8?wO?z>e^Ygc? zi|o{PHv*#FI7kFSKn#XTqX?v|?`{>gmn_(Mw`Wysul>+KRVWK8V=hFtS*XpqCj??- z(#(BvmcL|P{+w-Oy`D3ZF;$k(clWxd#?H^%Q-$)MtmQ0@W3|4fG0=d3d#AL)qi@ zpIp#qGfgt|l#aKJA!^j zP;rQty_4sg=AO&YJyTGHx>zT3J~=8dbj)P2WgUK|5Fm4c zUowGu%8Eb-K|mDpP6gwjj^lw3((T@AQcCoznppUN-LilqfKe;SKJPkJ(bVxyR(D2T zvB$XGktzR^doHDBISXu>g~bBgFdC(s80mB4bUJfgt(Wx1H5;-Qmh~kDVCl~_JBaQi zBcA&%+2KoeD7juM?OH8qlOGqzEFBd@*C|FeA4|K*nyufS0ui;*Ce{#FRR zsLWcN(H*{5-5-$G5dyUQu|#Hx?4phAk8F@LnyHw5Javv{gT0rgiDLU~yVb1m%U+Zp zsQ)y@>3+3OeA zh41LOQ-f_ZV<+WCh{6RZWgUwucS{W#pohRpsRFjMEM;*9u2*pS#=EL5kACvI{Gt~FeDQ-}!wgnLMLcc!oIfB)fI6%y8R_ z8&y;_lU_nd^R&%%HnE$2WC6yLzTRuY2#e-@K(S#OYnz`}Xy<))p4oWFvBb z7zo)M<)2jJ(CvNoI^G|R{-!Y$E-awU1GCCUlAZnw@4Zi7+g;P!djGG!c|*Tb+xS+M zyI$70-Xq)kgW8v$ezv1;U5l(T>F2^@6qr-9u@LDEd3lX=#K8QT*#gmg+h~AUG9THl z-g6-1%z}vXy-EXK2`%Fm5E}bH#WHtlb^5|wBD2SWgTRN8ts=&)*|S&_hMUyTsbs#= zj#9@tDe^`A;7;?HEU2sAdPA0ZU2KRNp!j~ZqWu@%9O*xMp6T;V3VB84?}akSvHzM# z?#6WMLu3iS(BflziWAk)gsh%(*Lo!MCFpwwF=|1%3hACG^qjAX$9hSZzngx7{$2j> z(~lp%Pyg)pcPnWxmSl8I6wc;4e^QY|WbGX$xXFt|3QnOs(SrIlq;EqwLWvv})h<85 z9V_cZE-ROjjaN$+zOn|N-*zRy>4oz}9H7-HU!>^wgVw+V9j(rAb%>W2nYKSY&|iB0 zPtpJB2Y;@zvH{}~1%IH&E+ZMfx0@Vv$n*zx>07fQJ*Yj>_OBkFjD{<%>%NO!=7g~lrmk_&tL3k9mgRhJ!8{g zJV!wYYWsJ!^Y<~qMxevNiMcl92###TkQLk*<;HX-)cWHHNH=vQb#%X5P@S(Pu$G=b z;HRtnHm5lZQuLEBx!P|XR7geM_<_Lz3SgRGrr zQmmOdgfpC|+=7YiW~KH8i4jq*iH&CV8ATT8vF^8zslC#EdiJ9~+{=8f9}@y4T&6T$ ztFklCXINLF7VTs0L}r|Ktdo~|TJC*I)GzPy6XmiDnS>a6r%Z%p&oKfs-C1aDW8WY^ zS7qF}kSA%F4%7^>)ymU3`n{}3@&9Qk6gkc{xHIOjl|G8-oa zWm1|u;4}8U??-xprnx3KzIT!@=a~W79qf8x&;ZE0Tw?#4zOxS7@8v(NN|L<#aY(O3<1V;myvG1i*{!LiIa>4MJ{*zG*h6tO#1B)8jjbE1t|r zV)D85Q!=|>*8}{Fb{f#Jubbmd)pzdqhpKwDY{PZnOHU6a5c8(mZ3IGH>&|<2ds?y# z3Ao5ww#~*Rj__?lf)(ahM3iZ^gt7!w%9O2)k~?<`XidgBI)arZK+a2+x}b>8Jdu~A zJGuIOlR8^8O_OMsr-|t9$XNB?@c|8x7u>Ox30Hm-AO%HcWJ4 zYfj|Z!wa5NR{YiVB)PvdVr@o(l{qZ@<1uh=SIcV7Bo!jOML7K6t17 zckNSlyB@i(VL;NIHUV7^0UPIP%v)>l-;gE1b}QM9X~4}(=lHnPG#UlGQkiaVf-g z-k8AV43UuOkv;0X+NATAKB&gooz{an8X?JM=#!dAchy*YPf}~#;MS!^jEv__gcOM= z6vudFF4qdFZqRcQwI|MLHB^+Y#wPk~fT5(dna66d(@01b!RJU}Oy|oH;{Dp~s^InB z&5a6R9x=EV!?r-|RcHBOzM}8nzSW3A%|M#g2S7$DFwGtPQ zLFr^jHj283tJ6o`{=DuTu>lX9g58>NCV}3$ zjEKd5N9w*HfbV$8u&cx9q<=cvS(v5>oB8o#lO=WuJkHpwAEOd}r))Oi1d5PoBwPnxh{JWsSbX^+WF6 zukiAKH+76Vgx~c|t21@xQiXJX563eZba*ceW3E##peqd}WOBp2%}crvS&6>q-S{N5 zt(4e{NrH3gzcjC$;u1h2yf*so21w^Qh(=eIlr)IL>fVt;3d^r0T?2~CFfU=Nq+9x3;LrkKA`K`h8X@NTSnvrag1-PgI1{M z4~|Ez8U9KA_xjV%==Y!9&>yM)K9E|1v)8Mg=^s{y_HR@N`u0mi4>eyFJk7 z_j_|3QdjTI<@wG?XR?GjWPjt$E&V5TkNnfm-%|&_IH;vYxEPn-)PDk%{;FDCzO%nG z7|k;ZVI#{3-t--(G>~+kS@K#oUZzl^Llpx|u{DDn1>}1IFDz1rG&^_YP}b$&ZGEiz zyXYCLK@;Zotpq&|U42GQ;hax^P+xZ1_A;Z7l)4~OCV=X}mKHeP_OGgxaBFgnoGOi37%(p`drrQtYzbG8&!TQ)-=}oGpNmUvxk&>i7k)6$%6A!1 z{*tx6uXA(o{mc){hpb`IZ1}vZGS@$~p?~BI5Nveh~?Ur#1~aMs*Z1&R&n&mM5AuG=s<#~#X`d* zy?X}wP~j%$kU0Tn2&~y9N&U=eJ-hcb;K|hxjh~)*8*|KsLc5dBx`G9VxI+B9?FIi) zIq_IDQ`$2h#Yy{xyn85gR1G01U&zHEzV+XMH7KMhp*TwnnFo#+9kUvZQp@yW8%rwS zn>fQd@8LbnoqWMf)^?H{8y|dlbK=CWz(!^E?!r(H1P~h^XvmGb2#6f z*3IaTj@H*E1_K#u(Z^*cZOKa9>*n{gaEw!YZnCQdjD*3}vn&yC+?>JKN4~RN{z*Nz zAd~0LK$xa}Vi{Fy{X-8x!v>5XujE;|+!or`4|Fx`V~aI~-HjtYggj`8JKF)_{IWA0 z?;j@9mcn%a4~Vt?dsY>D>6hg66?;}?x{c~EQd%ulImFQOFvr3}J9f_9dPaYgq567a zEmGU(4f>e;<=W;|mBX$FK&Q`V>gPJ$XI|`ix&JDg2<$Fa9k4$Z*dx26RV?83tT%|0es(sG}o zL<;?s1czknelHIDx+W5Ub;ToHkJZUp9S~Q^=zxVPQP92wp(@r1HkuMye%urEg|Lu1 zn^*C(tj%S}5O%)85seJEq)t)}_b;(+KrDiV?fzwUqxup4*u^6pOMk4@bhN6{|CK2};V zPUvKc;x@wJJzCj3*TJ;>**yZ#%YuG~{Xol$2$0d0(Z|7I^30#!e%`pes@f2i$OkDAXfQ)F!>(*b19XRNu{!vu+x>)H6Cwl%8_ zFDV*~(+ewWX{DA_Ru+{}f=$Tyu;^tXuiniP$ZThI0#b=gfdmW>>ie^_wxrJ|wbd2n zF^N2cOp~Ex9-<7w>YQNTdQkV;2Fuw+Q|`_c1#dV>(CO&cxhu$WYBJNr=8!TyqEs3& zDEj36T&I2co967sxX`s0$X0Bkm+PuztXSI?%!zkxhOC;7A*Dy`)g4n zIJA^^IJ>=Zm)klzVZ#T@iHUv6=LM&p>iVzi=czT_-kX=7B^aN98k=zTT*y!dx@Ti` zFIZ%>rS^h8Lc5*46iSr{$s$Or5-0Vw-S7@&;$)cXu_LQJezs$UG1(rLtU>v=lX3%4 znnP3bqyh$+WUk)i87cy7YcjBm1M13-5FIvm@LuvQ#1+gUk!F*4n}jhTJ3BT zvS7@a_JWISd)JlAj!-%crp^GV^EZ3ODwz=C5c%hrq$>K^GQC~smF6_#dyF&gflH^e zNZ1z>V5}k7;=E|UfH>)=InEFJ1jIW4pEeovv(_h+fFyBXPbM&F=6HgFE`b;Myx`ZJ zVp_lo$$KU8yRJD2gmaH_p!<7RHP=0>*}_MIT;^8O`h>6j<9da#n$LXhJb@JrLTT6* zaCqR6X?3o&wE{=-akT7yhD^Y=2mMTND6qn(oJO{Oc$RnwxN3~>tbKjal136DOUs$f zh`@))g0b#2!z#Bq@b{)olW&ZN%<-T)P{fg;Z6||Op9k~aNn5(-tscGd0NGb6Lm`uW z@_?yC@R*=&(3Gk)Nk-2vy#JAAiVIkz1dB+`?fW{$0;lP1{rmS02Zd6Unf(2_PM^Fw z(l5PzLmyW8Nb9TC=HAx*`B^m*?W=Q~!;nc7ULEa2X?zhX+mKMM0gmmPI+l;>yu92W z>3OBuf8v7|RhBCB-D*&~ukZNjn;Y%-XVq!->o0HVliLHe)1Z?9qoJ=0hr!A+!UT5k zNPq2%FX;RG1AY71b9#SU4V-nZ?yIxt`&AzL?K+1)nD^EAH(4HNh}w`tdbv1J&=mIh zm0tjtDo49?Wrq?na5$L(!h`9OS*{@RT2L8GWZIr&>i_OG(Rb_bm5S)UV}1UM+WvPc z-TNXhot0r=bY8i*IP??gfdiyeZynxJ9X>*lzwwR6) z_Vnn>Vh6~v|D#tleQQhq_fP*E{iVBaTTl#}q2Hajr9H6}eN|22&>h*}zuNb~mw$9u zh!?B3v|6SXRN)S)(d7gp3rt}OInK&Jr4Xgm>9e2Jp{(|B8IBs@ijoUk6OMC}5S*3* zCcV*gHwXvtW@0!UI1W_mv*NhP24S$}HeQGBg6-2jheND*hM$~uF|xx8V@M%v&YNNx z%zN#BqLy7e(V`CJ1mptn&33-I1ss$)$~C#i$7E<~@-QO+O8eu6(v1D#0i4O^ko+|q zfdDFdxeUbA`r&;|Xj30X9b@fIM&Ahfb5gkDr2Is7Hsn}ePwy+mFd5$dhw78ST7t>~cscZYqM7>SGWxlp_Zq!77nSz!3qUmgx68mGJl(5^je4ba| z$9-h9T+cD|l$?ULm~58e3_LcopRNb&9nNrxn!}u_nN`@wnuvNk!?_ESFl2G^ZZ%n? z6c6&J)%n5fl%`{5=;|JqBr5ET)eIHeOsTG&ks~IBe$fUx4O&+nT%{*xU6fRr?6T0UXQ+qX%>zv?Ta~;ZGEx@ zVah!-jPfFI1u_}d5j-O7X1-VC#|T6;Nh+Al;Z+dWqA>b6$8x&m7`&-E#=wROm_=u( z&&|_8*FzAbuBrf~Q2BsnmaODyf~^6vh`zVC--;eIp!8Y%8;}qH$G_Jm7CrBPAZ6jP zlcBVkjYP^!8B&~nUPf}6#q9&(SX5hd{UIgh+}3ymztp|%0a}n{>m#>ShqyaVmH^^w z8nzHWF{amzl^$*eXTxvmjUdc z)(rUx^xe+@!I|&0PV~V2@j`9wj`!%ld2R~9qATFmA?zibkFsnob@a-ek!yMsDe}~K zgwH@Cx@ZIIel}+xce9nw@NI(ZX`k7T2k88z3v?-=1j$L)W(2!MS(^5x$#aD+gW6+l znQ`CR5z6GUrS0Akh@hu^bO>>tAF3|T4}6!J@Cx}Wv{sN)D{m(BV>UYv9*dL0jzBZg zgX2B-ar{^%ai|j4EE`{d;Lun;`;;wIzxc-Q_4{KCnp%!TpjaC7@dtzF}Dj`Y#p?_-X8 zZND`6(C4#tsO@YdKalO!u}Ni5yxwJPev}ulh)#^zHy)opu-NUV135Va-KUoqFg0Z@ zBpLZTtJbpVt6>x+rwTR*N1wz$~=Lc+yGk2^p~PeX>met zD`VK`^4-_(QNM>80ep=0Y2D82XDY}FGrH3nw-m-K`8jDF&5>RRWV_U?mU$6VL$Sz2 zRSrZLOD5Ed6IN=wTn$Mhffe4g3We7a^(g+eDhyANL07t7rqz%BJe(N`$A8Xzj;EMU z1+Wk%ybGl{Kte!CAxyg=h`Tw9w$IP%^3S{+mqqon!HmNJmjIdUS>i4fpS0_ONpMGX zGaLJo=3pcfWAlWJJ~=Z*9n8fHN;y-D!sm-qXvfk7Z4>y3XkFh0b0B-*mB0ooUceR+ zyab1n85+foq{i@IwibjZbSIA)B?ywjlL?F1lhy9ZP&zfEY{+eX7?e+h{fzZ+%YZwo zP;Xb=^KeG7D^Oz&zYl8`r5OxKp{O=(CS>dag)B9tM7f+iijk=|aDbXX;e;S4aNJvD z4HFpa{@5J5+Rl05d%5hXI%1C1!BOeJP-6X&phtPPRS55NyjvRKh?mi7fT3@YR*B9! z$02hiZq!nF+$3`V7mRK+qZf)00^vW+z0=w!xI`Uc0ZY@&5Y)=z>TuGi_BsZgE1?sE z1J12>rL5D01^X=ZN=@)_vJ4Pe&)p6J{=fiOp5&-pJd827X$h&9E!h(^EP*R>PF$EK5(!0VG` z^yr#OmNl{yas-N`UR)vS&vc#_=X=2~oDO-`-2&( zc!p6Ov_c7<&~1lQHLmfh(u&`Db4y>VPXB!+_}{&~rQf;R)9>EyD;X*DCq8t zSB!n_^gDh{K}zK3ckBE9!{c74x}=Qs4t@g?0% zuj;?I^jtFR(9m4xPb|pQYP6;~(S$y+{+?q0+7!%!jZEV0`I(g{WqTGYp@@f#9Ddf9_Pl4go@lK2LO3yTFS(N~3 zN~McWLNH9B#W{-5I_cYNd?aK)wy~>R=8(Az=bqN;N|9k6dM%9bQD)5L2aevuspcMX zCu^qv@eCS;Y;nf#Ch;4hiUk%z&PLf7arUZN-ZK=DJ#G?i%i_1p9NU9d`gUy2UuD%W z%JzFAtz;L^a3@RzXDo2z_ZEcHoI!z9L+AD!gHL75ITm?w%w0#ga4|t6>g!dm?p7Tt zL*J3$cXtdI>ZBLgH*%L<)U}7P*>d_J;P%hupYHuRo#{)$y0jhGiKx7kR#9g%c_x`3 z7Izi^4M`vJ;Lw0Vg>hY+T=KD^)&LrLcKg}CM)LWL zjP$mT67Nt6=x^d|A&_yi)tXprsV($9XwnwFgxFpFO*ibVVhr_2-5g@A!d7n*>VXQl^`e8C~?)HbZ(@;n#4!9~C&5;WUsstVhX^7n%-e zV_Pdpq?xO8_^63CTU{DMBr$c$bh3kHG((>e)Jg(k$r0t&ctu;K&l2Q&b)^9|L46Ve zkFf_F%}(#R-|N{?BrTDh#(^R`e=t}kW^;_YOyY z_H0M{+txbKLWo7;M6P|g*SeiWcjyx19#n>q5;2Kf37kZW_sGZ~fY%R0} zUVW}}nBZiyuo?}ju_ZH6Idhcu^zmC`JuOSC9xN}Xx>4pXO-!0Nc{W$Wu9XuhY4qDvTU*|b{R{yrx!Tg zOO!R#@dK5Z+4ny9Zk`*D4PKQfog}FC=OmrHKP~#Pe2OD#g%`=4N|TcXjXE8RSK{1; zWRynOrzeyc;ui4J?=6>a*v~0s_I#$>C%q*iE@3-9djLg1y1$q2p|b~(o2=n&G7&#$ zqhwlmi@ND`G;Qv5oy%iD(Cs=oi|w42kV}^#XRS+(O*vdnIFDMu9)m4c|Nr}r`7MPwv#V@>e_U{m{mB0wXJ_U2OzYyMbZBVIz_}s_adKuBQ64J-V~ez&c`!p>^eLWAv=ELs zp74!ri!V`hlHEE~!D<|AlbaKnRSCGQ#94&?>1Z(O=Hxa4D}tZEEy=V?RJ#a<`zkzN zSH(kU{KGt=c^gXGvX14LBW(1n*Dydqu2Xc1v{zJ zem_~ZS--CK(<8c5n|@yQ+lV-|=Q;ipYvOIi-zly3iZ5*2AE`4C`+L-vstOM`xRhS0 z!ufK+xAl*^2wM<`)EwDC^gUwNca>@odC@2C1Q}gY)PZUl3MB+16(3YNnG87qX&bCr zu$EEGUXQpJ%vbv&pw#4dhldg)nhK{&2T`2b`p{cJ8>oNXxB?5KO z+O%-&s+cR8#6Wwu-~dA|zm)v7#+5k%(yT=s3hUT)Noi1UIz!`iRQzZtAX_Qq;J zTV!#<_gMugoyB1YXPC~ZL?p|*T}bjX#e72dnL0-_i~-u8?Ir{P-qf`aXYkP=-$Q{4 zVP?69b*m&ZHpsr835JrCRFOI8;j3f0+SNHmt!wW?DV>ms_BL?*Yuzn>Wiwo8KL-fF zGn{JH32RsT-1=$skz#Mhr@4*6w3pf5spt`8&Pst`uX|IS`qdFEjz3dq&#$x6wt7#7 zg30xH7mCUw%qEQV=!<5ZXv8O?zFm=aS}}A14ue7KXoNiK%Y<=H9vQ6GIOjuiWV(@p z8_ys>TIz+&GQ#@1@}b$j0+~Nr-Jme8kkf(|Ow^#DF(xT%An@J%6vs$EIlQ2U>zRv1 zMqe&oJxzs?$%ICxhvlO)?~HM#GkqZow5a1Pbw6bo23t)k%(+ak>^H%_mcSix+R7RZ z$U=(uaQyB;MwUq-6s^lnbH1d;+gatT`xj{ev&QP#z)0JAPB@nD37|^o=SUQqCjOPu^V7?^LJxZ@;~zFQkOV0en>rbx#yu=0J(N` zFkhqB^vA~Eqd&R(4*i+&@6u1!-#616+LV1Y1kMmAM260FE9SbNHuT-!{fPd~{-@}7 z(ofK@fBN_7#W(J%3|vfBCX<7Pt%bhIo*1!gu6Q5rOl}az_2B)M{jdlB8PdZflyFRd zT%txnb%xhj+4&xTBV~j3Ws;^w`yRcd3m??}{qZWNf6Z!1|Jwe?=@+kmgZ{P6U!xz} zyr!=YU(nZv&*>`f>-jRrxQDArV2M)7y61l|e~o_q_~Z0f-~LndH*bH2e)I4Vy_v5x zOqZ!4FFe{i=Cjk%vyF$IKlh!?i)M$;1{+!@! zp3MR2Q02a^40}omc*&k0H8z?Y(p8?{A?Q=$=>W%WC5R~463DV1GT5|jPDk`{Fy}bZ zqk|9i=SnXXbM@fCSBNYuBah@z%1?L9tcfX8iy+s0qahSBC} zLC6W`Gqo`(tFl+0>9pIG_~hWlKBsOCR0o}4vtVIQDosGK)<*6E2&O+Oc(p!xhh$}dEB~K z&og_llNTm9HQS;y0{WcxS(&{8BsheHs|{?gS>3bQ1YCXr?5JjllLgY*Fs(jvO3T^H zT_%@F>KC?~gZ$o>HgwyZ~4oeefS zNalh7D^F0!%l7e3Ug_-wyPi9VdfSjYm(+>m!RUTvFdA_TM^F-e>fQ&mw>ZbuPO%(q zn?FO8%IJqaq@~ER26SfOpTdVmRzxXrjz6n(f2$ZhCjU##aS4DB$n+vM$EpL!S|5f% zq3E?d94D1m1^)YXI?(;`p!Y`BZNKjl!Cqxq-(gdeF$49_hGC4}9251IsvjsllJ7)s z+KIJth=h>^%`ecu+*acm=)(~92n~`)mhr-|>$K^_2FdL_C6kfl|AN|iz1>88@17Tm zMfQ5k^xpNAmOeR3FmvjHNn`)ovlAQL)Fo!4MWysm;&vuYFECy*mK@y@~lyBspFjwov{@^OP%dDmWQxo3omsF`Fu!0lGIwr98U2~w!kY10+wP{VwWdQ>5Q2W+4Syn^fcP+c(Tt$N0-}u-M)%_QD{-}5;V#B zZ1RL9O;9`UXD(y=9o>i@DeQQXP-G5GiUl(=sf5kkgt5<0Iv;dx(bw+#_Tq#&fxTLj z5K70FK>ud5(-_L+5>{Prm2v|KoabHO&UNa1k2ZTZ_sEnnUC9LJ)X5`l#FW+yATGD< zLC}9<*Nm26Jecb!sVD2CS&L)vly$Qf(1avB>E8^w)#*~dCY>$Krrhmh51pv)`v>li zK#RU_{;H5cm#sq3rL*tsKL#3Z3glh?x?F6*nm4DoAwZgaFnY)gQ~*oZXuUeqT5qFe z^qXPFWp4hW)Dj#VB}V8sQhVtgHiZjO-6!v~ss1s%_}m|llk&JDIWb#p=nUsKH>Tpu z*f!*VtO6Ix3T}U=1^ENN*d61g6E2*oXf{si=A^seDCS-Pg~0~XT<9SgMiq-YL-WUYY%PMHTt)ihA zpfz$YnX_5y@7z>DPCgf*K!~dd0zXC1X?(->{tpz2t(+Knl4$R zkyTjB37Hm*h~O!hr9D>=X?99$68^)uH)^$r@>=>i_6JNjl|6i44Mcl6Y6#F*0hUdX z6h*}T9yQBJ<07*exo627JfimV)mG2PEKdIE&N8)i-cZ~6jOAY6kpQVx4RAb4T=J0u zl4tac$2xGQoT%d+Gr*<6{@HTnaHJF0WQJJk|jhFpsYfWt*xuET}#}s;f+*+hJEtRhX zV-;WTY;ME}+7H9RA5ER#fZDP);qPwmvVXCc zW$k3WheV#u7W)N=2O5Cmu=;@I@B1ITEYZrI1HqW#NKEJEJ{kQ|=>DS_dVr)5(cAKw z(3QC$D}h?1E^3pjb9_P;pzsG-j{%Xx8Z>y?2bH#dtFG&N zyN%xarnYxmpZmNrhu;%u#L47JGjg%DH!wN;EqNw?C*LeqTR+3Owgogt77X;x(<5*# zC1g#(0qKmp4N051>t&vkY{pd|=n>N4id?VvMgNJs&TPq-o#RU4Qqt_=M%DbMJH(SE z$Kn276(xS$*nM5)kpKGC-==@_`Y+QzKmICxD}P#f<=%o=F0dHM`WN{9umAo(pl`qZ z>$JamPS?*Tb^3|(fpaqudSBI;d0pk+>fD?wPdL0)TuQ4sEk?xyYaE``XXYx(ls#)b z?{ozNb~?xRjTaYGH;{?QJF-9)IC3n52D2v4aS_oPn9HM=WQq^JFjl9yjX_T9zxez= zrGNRo|AgMlcQ!?G=0w;DC$CdLkAOGF=g-q`(!W5zO#hAd|0?~){U4(L?Cl?+zw+kW z^f&H*ntp5gnC@w3HJ&l9$FB0j@U9EjP>|iHN4e>7z1>S$2G0IG!zd~wKms_C<)22& z&SxVt&{E{u(laCWQ8p*jU zYDkTs18IE6u-UdfNZ@Ns-mzMi&ZKo$mUiw%IvJXytg1cQ_n8H4&>VFm+>JAId`KI7O2iY@PxsY64;pW5yNX zFXI3L1)xljx#s3fSVM8nt&EZOVL&OJj2fHhTVj{3&93D-usYnaFKoFB&Ju!M8RfXR zO+s23@FO5(Vfm-B zQqq;?wpA_?N8A9KBD&?F&h6Zn!E)J^eD7Ne6PuHJ14l{0Npi!x+%Jy1eL3j-i#Bcu zBSqn{i;vS=WJAl4dep;wth~DRYcRufu4g>EGXgeEm!klL5pyMLH^4T<@1$$cQWx`J z=?mvpCCOsQA=pS}N6U;Uv(HNy727-P47lt#Tx@^ww>relwiz_md&}+sBl2V$3kK>& zG*}jN0%}%*?&@U;#HbOpV?lrM)7wJuMS|>UjcJ=2?{VDd# zNrDeIr8>L!bSDA+Vn+~Npmz8m_3A6X9Xt!K@+!%yKkB}ijdyzqff!VxC>m zON`R~7SMax7ny*>B>CzRU~_+Kv_$^xwzkjLK?MXprG3KteGVr~vD=2khH>;j-_sR! zb`i9Jj7Ox%k4Y*Q52=NtIUmxpC{#4);(48`!>-WF{T-R@ZMHp;EwF%L=dlt8wn~Mq zBmwb~PWf1cnuVgPX`bP3Y;=J`zvl=|#iV&UCTX;q5 zBbb7^;I0$qOv|;5XKnvew|^W_P=nwX@2ItK^E#rlp-P$Kw z+v1%M#n4XdcP5LQ9iGnY8&;V?gH_e;I}qj7Eh;~6YCDsm#Kp@V*b8x$u+bY@lr+Be zS6knmF9)(LdE|(_Lw*kuzhVUG%y@`awin+w-SBxiAF)Tp9+KSVw4R9m5?x|!@^Eqc zjM;6H-?QGUi6hwc;S2MNq%7|CW4psp*d$=N4J5kPelBPMpEXhX`R9{IQtT(yS3~Zl zvyFI34U;*$`HSR3$ejKrcN((sKy$bl-LTiV9Ftdh>Q8JuW;iuccvtFPzWE4sJVKOptp!w@6_zgne2jg;W2qI&1_AM+6GZ;1y_Sfe1S86+&GP#d^J5F_r2EO7-G?eLzOC=QtA=mM zXg4RkIpPIASRCVW-*L8xQ-wxlTNnA?zV_?Q+qd-j?OV+n*S$0$YgOl9y`n}?US*4% zop6uL|84EVZFNovthYt~C> z$Ij`zxQZFCVTG0t!ohWlMg(39i z)MaiGBDrmzJVV!O(H1zGM8H*h#%uq%mIU ztMJ%T4JAonPDS~aXW`Tpr?+H_Ywczj{GtGnHT z2e5Cnz*xO^V{=!0eq5MRMtooUIa?-(zcO{g0+d~8b`KhtA#FXceb^_|UX^;wSG%Y& z-Nu!=U%|w+HrT$^Defk=oH_as!7OJ5v*~)#)l*^#0DW+GUT811%O~eI*k<6grw1 z{CWv%9P{Kb)n3C-0~(TLhOt2zDxA0MsR8w?wOoXq#~>LUe~P+s$%AeZhz{E1uJ>qQ zO|~>^pf7n+kcoeHZ$JAz>DN~(9C7=(p61ket~kb%1i45C{OjWqZQnHQDb2xR1|y6@gf_J_>tYe@&jab@qX_4 zGkSS{q+kB*rPg=UOiqXNjT!I$EuwAlaehd-^vvjyEJO)qP;?-($`l5j?FLGhBT|33 zqbuf&2c7XC3}lTbWTH~1ugQ01$bc)gF@!wlKMbN>_7N#0BtB0sHBUY_DOf0xT-1-3v8ILl@rwdnp~ zlV9h+3pE3}#xA1`727x2{@VHD?`yvponlfzhbkmnmSo9o4H3Y$kX9 z6=bBtY1SOr*yBDIB{hV7U2eR~ohOU&ayt&rh}Lta%`^2!wEf5Sd}PKGg^t_nRQfmM zHPJ&On4-^04!+(xqW=Y~ezU(C-1kmP!VEZbBFPL&CqM;B8s%L^YlR@>F*)jlN2CGV%5+Ij{`aUQZypl2@TrQB_7_#W?HoCnyToZY6yTCFxtw?~#_ z7aNVK$;8}vbUeIn&gD-D1eX1Cgo`YU{leFdRwixUnf%_(Qv`|o-*}(!j&a7m87<&k zc)CWAs zvIx}vdf)B#%8A;sFTTY4uXGx#yuoo z$x^(%7nuL7c3`PHF2M@dDMfIA1c=TBc9Z(i+qsoIT3m}gc=??=>~oQj9j!`0`?Ak1 zbKa9YWY3rh));`=&g=cha@6%GZeQ;E)9am!SNfhQ-7R>~$C!F~!|o-%L>~xt3 z=-Jq?ka#dcn%i2T4YdUpKI^9rJ$yanPFC#2w2qv#EwSJ+F2};o7B5}CAXt$mnT{GX zkotY>ixFe8Hq1Wx@LBFgVb3X@Ja0z{-_P0e-}6OY9KqF%);Ikxcp>QjG6&;IR+vZ8dvlZ++hm!J0 zd3~c=w+3=(M(Yx_W}cSUxmQ^!62c@Va{AZ^MhuiP@%Ad z6Q4~8Qz2!i#wu|vN+g^N>9)3ewXtKQiYEl;u@a&W>ikI5ZMn9(J+G^C{LTKJUR5WO z{1YduWOmEFCFr3=7$$@;-p}=!`$_xWYAe`$HJN9*fBnxH;}Ajh+11V>B+?<}R$S^%a7rFn1sS##wl+S};dLEs+u~^0t zED6j_VfF`HkV3>)iB`{?Q3%{>sLLiZY&cs4YB^dEgq+g}hLHi{8|aF4p+tYZR+Yd# zj#U}C&Np?R?&=!v>7b5xq8E8f&+9*d{1>N(IA;_rxKyQF>Tg%3Bxmk$yf=u-*)t0^ zjluGzGv3kI^$N-!uFf}wMwjenIAfLO^v0<^f>anHvNcl~!{(=sqm8D4nSe4J%&B?o z>kRsvTLy#IT{Gy(R27$jt{HGw(&nxzw$=F@Ss2bedYY{f&QKty)AOtML(tWF#2bsI zCIsOq?M3E#Xb@0T$lvAf(^~B?=tv_1oi0)0o<*W`aN8V6?%d(7&k|5^xVIG%Ctp7n zaaLblTitMp8qd@s@y@O736GsnZI zDLhr2vcqKOg>4===z4RUs`8yW{*XMw0@0@#Spxc+&am1mamt@>bS;ydOAkazsVQyP z3#X_H#e!5c^N*Tv4krP}ef>kl6hOfK>s|qLyv~8{Svv}uN+w;k3;C2jg24zogDHI{4C9}>$Qpb3X zI`T0Tr;YJDS>Fbu$*F@&Rj0VX=8rJchf^F5@yJ&7AQ|*+=rdWn2}*V@PaOU!{`2sO zcjtg3U3B|Zk#03mqgdIG#Fwg`=vC4p?85qww-2f9yi+c0cg>hki%3uYC4DP>PXEr$ z|CRpC?w2fY%?*b1@TK+(aROG>^z6FImES6K`$gUBx0A{&FTZ=BxjM9;e{)o$s_kc@ ze%^G7w-#I~By20TnA+Y^pw+7ZZ+vEFVOB?FowH+7Sw)^5#$nOPUhN{v5B5D_&FKo{ za^~|lO22-*O45HgOX?4m?>17Ef){~4Ng$uFZeji6>>cqA^-&@S)QHxi?zPcPu8$q* zTjOW+&F3%azx@2~(EsA2|A79&7k`@m51;6uhTq&9`xtz+;3m*a+~Nx?sRg> z$slLkJHKiaPM_J2g3r+PrG{g`{(RJtg{Pr6;fIN1u~rzH6MjfK#aIp3Ui=aCXE93#VQ< z?Ml;6Os8Tv*-dBUPW{LZ!>#uYO2gEttsRA6*u!nQ(MZw(j~)!b%3p#%WeEg7k|BOb zGegH7Q?%Wj&~TU`6;#JlD7ann$ztnkoW3r5JB4T2We2&v*ELG#T<2ghO<{s#>(VY< z7=G>WSkRWe+gWtFV8BDdZh6T=;4I%3168pw%*y%8#dkE6Y>bAlpycwT( zXTs0&*|GD#>0GUeU0;F z_eo%l@T{?(&x6C3%XgU-D*GNzad$5l4l56q)sWmwuS~7KSkFVHA+PFwzpBP#b&f;# zoB^>rXfS+=bFHhEShHU5Bmsn*K9!Rv0JQUP(LuiM=OYK#9N^WFI~zKq5ayDR^{m6f zemgbB*gvNgKFu)buj}Ue5pua8LEtbe0M0X|u&V^jFU2;-gIE!^eXr{P-XL}gb|eOq zO3sXz$ZbXp{jPxCNN|2e-(_|8^|L#%0pVC_Tr4jO;3UY>3426toKZS&;ADX)?dB6E=iSH9nU;tfeRgNwI!$PZqFmx~n}R z;+mj|iv4;L8JsPl$P*Wuq4&(*2c1#XaGG@wYq^}lD$iOOOael^ox7=YV*|}wuKe<3p^lUi_n}2^jnL_{`U7^b z1PJq-TEKTSz!XTO#d)I369nCOrb}xd0X=8^ET_+;^&FgSRK__OI};mS*L2Xr5s09H zsCjZAAujrN=*y5oE@;7ZLkpa9`j9%>LHImmH1PIw`|83GNf*Sd%fT&>krZldq=(L) zv7}@{b~^3?p4rLn$?Z(oHN9Qy(Fie3Fp47DGGPHtf#-;rCWk9h2bvw8 z5VnYxlH5C9yynf^GLPS77OmEJL0v|okUSiER0Wo-nEgH%=I_k55ord2Y|m+=uvEsA z{R&5o&#)U*1DYJ2)h*9}*JaWy=9ks+Y?(`mUR7aD;KbSM_z-mpI+(D2n)Ppw$gw(@ zcAz%Z!7bV08o^fy-c=pbLF;v;5GXC{!JwAKc_y@6vdOawG!n_Xr59Bpda*Gf;k7uY z{A_j(Emc117!K7)K0)#NQfDb8i$1IZ-9{mbiz-gX+UCvnN^1y}d4A||oudKKoB|=g zWx&XjnzhN`)e)VHhtzoN5uLgx?5l80mnMkt!kLlcz3hs%XHXM0!NBK>a2&|?guXYT zuhQa3J98)@{JKEQEz8ptp41p=lsE9^^gfORiDuNKj-cA>Tjn3k!`v|u@0=d_Icfnj z#?pRo!Y?luCVsa}dsapHDw%DzsPIe{!R-Q+)MZp{ieuab&Pwl>7{fNTJ6ClspDVc5 zP>p%w{GO|eX`pY6SJhydb+4 zXrT&9n@Q_fFXl<So^qg54vvaj$A> z9#yUo&60(;ZTqudQ~7l|Hdtwi6jz*E@=0nt0$C>Fpw_kb@(8|OgJ*V45%>TPg&CE- z203k7KZH(aWR4vtY9$biAH@EX%w~yz*SQ(HEK;nH3sgs|v90jw$2~3TF#S;cnIHN4 zu{OJX#EoWZfQ6tn2oJo2VsY-0KG!u)vfpG5bSoZ-&hejKkWd4|WEqq4Q;a9#=-rr+ zM9UulokV3KDchj^N;a?RfalI|fVJ{~7vK3a>UkGCGwOifVtpbib|x>|LT-qX@2{`T zIW5`J8sY55`Akctweew-%i)c!Mk#_(rJ&ZM}5fH1RH(C99p?AHl#~{a0nn6oifS(K{_@*|K`n}R+Tdvo& zyDQfD^iwkaP4t7i1AVv7?N89P(*4(mLa&bMrj4;ICkp>OASWkeX6G;zp1YD4zf^h6 z>J>Uq)`;Nh6xWjDZbeeQm>X~IEt`pg_9x$~X@GAoTN~OZ)+|wDvUSjIw2S~ujK6H-;sWIQ4;ex@{DtT7FWS%sIpFdHaRU;i#lG?cVXGDPCba%+c3NL z$2wYTxzdV1yZIIRS8x8R3uTM8E?v6Tm3EX*>z4hz8f5DvTyF>3enj-D?x3meBO$|w z`kJg#|?JCc_scZJS7}}etiLyr(m9x=6-4k$%EBw3syGepmZ$HJZESc&O8#4Mt zHn}$;=;W$OCqJ|O9{o>0`hU=W>E>7I|NP0nM1SGspQ2CrS(WQVU !&fpNxMW{? zXqmiag52y56`bVQzdCf~yQDh9hxM6%vC_()Jk0dHI(L7&%36Q3etmlc4-3R7qeH>j zW_yp#->8T|3a5WyWR)@G90a}i{>OiIwcS5f<=GEwJKwMO+>*cy<7+vjBcspBV#I}a ziFh=F=N98vrs8L^Y-~T9@>y|ZBF?IocZqUKWCksi&q;msLvfuE4(-wpJW&hVlr15$ zjOp2G^5KN6CqJChj-W#oOeeC@+%Zlqc;D%)O_&?F3%cY%CJlAR446|Gs@U%gI9xN3 z+B9a0oyWeO_VmD>2tDQ*!GhGJ(9zojnm7zHA7K1RL1b^1~Z=A^dYFx}n+QKu`K zAs20T?=i8Zs_)tACm?7;&)y17E2|0rens=g!gkp`iAkB$iW4g&pbXnQ@lPVs&2OI2i%Qde&Kn{Sz`! zH?OgF&>P6*9&=7aYsvP$(z|3%N_@PyJh0aV@Z@VSnEf~VvDb}*edM~VJCVA6**-Cd zZlQ9M^6qL|tY_0Vw*Hl*Qua#7?3EA1xr4d5F2R;mcl~+cp%PK-!u&wr0~ri&BQmRkH(~ zOkYqN2==sstz=9po3~qHFbd#IfZW9BaXQ4DgQLVcAoHlqfxdsjjm02C(|jv z0LdeIK$oHuKEZ9j;aT(4!$IXi9H7(oUO#3gZ)`V)cEg}aM+weBQr2;5XnH57+wFU< zU-Y_KhFz<4wB2cODHpiA&uI%d{Lgg9YC?Ut&6|FL%${Hp6@+y4-N+ zR;EK*@b&6m=C=3eX&Hd4uP8Bxp_W}3MdOR>~2X%4_q`@BZww4GbPvqrF`{bE3K~~xaEGAVFAYHkWfJ}T@cAB4XU*`y+*X#l3(EC{*ClhO6oP=D@1yo27;bM*tF`rfVu7;GUybY(hDfkJx&WfoepKcfiJR1WJSvim! z$$qLroCuypYo}BvA+pI;$pOPYs`JdC-NiX0%8N(aZmaM%sgT3;&1#Sm+5KLj`Z9UF zIunMfFi{;$b7_ZmA+WsTl}9s6DQT?DXl)@fh`b{p?Voa)v4kvmK^%g0+!7!l^Ko3m z)mUd6`u7?J7j@k@92^{gMswqAKq1}&iv$0fRHFOJs1{bKY9L_a_Fr}pQYG1z-MbaQO zrOtRV1x?A&pxK)0yq~5EAfdBN~5X*ArimAe_$@JYpHi)lplnG^*c> zp=TbGeK*2c8wPs7U|u?>y}?b^eLo{$;9#)!0=GXp7$az`ykGi3*lV&*vq6)#_j17Z zDGY|P5M(SI3>KYtl_$sg46TbHyWs;h%x#eQJt(4so*(JsE=8bB8xo8t;N_AH<>gjtIUJQ z!qNX(#cWcM_*_A=I3pw+WxigZ}8-JRS( zklIApt!dSatEWkwovsGYtM~EhcjcsE2=LX#vu?Df769oEOqGSBuSRcvcKD3`2haZB z^o{fxr6{NLgiCbaFY3LY)_3nMlbFDlUwpKs{q0P5uZ}81ynQ**+s`bM|N6rXU4I~% zbIutEvcAzWsX4C3$_*UpH?l{(za5$QiY`GG$g*dS<*biM<%3VaX2j|#>$tT5UOs}3 zj;8Oa{YTi)K|_2|!`O5g%Wk$gkmpIpRh{Me>-AiH%aBuC7ZrMxOLdsk2A`!n`qR5# zr9b`?ze)ex&9BkF`}_Yo{r%}fMF^NVg@`G7!sUFEcbpSyPHz|AC|U02n3<*yBwpS- zIenp`{rdKy(6?%D1YY<>owz?*|NhPT`#p6TUCJBW*kO*hR5+-!pBKx*wqU4I>1`I6 z>9}cW$oa6o`xj~(clDibCHS*62>+z1U`fYPoc5-KK$<4+gk-1AXp5o^bDzkL15_T+ zb8ej_H|$7;sj|hy$PhFmy$1^FcG%*~cpo#tNkn9UU)C9G-`(^0E)g6yyx^Z3#tt$v(7uqZp~gNzbCckU;!gQ~g4`kC#>JS42ld?qeU1DdoZ}u~ANnFg z2jnHsT*xh9%Xw(Wv*}9SeHaas8y>m4&+RucoYIX9&u|ZI|G+!r-xIHQI)W?t?^9y&x!cV-*)b|_yWw~zGu3OpWs zl>z^&5cYtMZrQ7CkS5c(%t++H`)jAPUJm<=fc6BsM#xY<;Vt!p>nc}Yi4KKK>w>e` z?69COOn_3}R62FgV4KG7jeogQdd>_aLu*G)sl-=mFts=*4k+ET3LtC!x_ribSu7M} z>OO>cp37o<#-yyhF$oOxmad15LQl*0a=!-2ujS^{9~Idv2Rc_5_0rWtW~^aQPEl-lB;WU}(Xt<~%`L;zCT zW*$e=&r%SBnZ)Wrf3RD4dEc3Jp>FIV0gKH9CXf$JX`rvL(n_uc#V#MHm^GX8qw=X;pEL3 z$UfjL&IkAbyM#1VR?zhep6{dNRbQ5SMz4?Zaw#H6rt#lphBYtOL+zB*wFg&uh#@X3X5vTApqchjnz&09bBDi&oi#G? zjzMnBs}h&%_opV4^`Ex}=&{3KVFI}C!f{NzF5cF^9|jgv*_z1 z#yE0}$y=ElVui!HXQfv~gQk_o)z2c1f`c%Bb=OzvXYX32Cs3@o&hm_>-p&2p%R^%4 zs@n{--c*)Bo=~q$BBspe<Z7olucSV7Aamsy=H$_KFOFkz-jkan3#!2Ux5n zt6S@!a|zlikVd<@_L5aCLX~8dN)*a&$O@HpSKE6|VyMb0kbYi`$}+BF6+$NwL|p<8 zgSQh!8+*$6N$1rS(1Qjl7y-Jk2BAYS1I?sRTZtTkWx>3=qoxWdvcU!3XRJWe#<`J}{P*PsjD9{yB;hD;%?B?Gcet;)5={tL z3IVegOiOQLj|Qz49LFv+VV`K>*ok@YXs8*{mr#fSM-_n~tJ+dcFz)`Qe&~t9>A*&J zj*{7(8Syqg-_~CS!&X>zZ>3m-vIckP9vuasmbQiCoL);!`OUN1uEBGCcD$_$*I4)U zKnLrU)o(M>84xuV%gTHb|hc4AVsZqh(oi#%f+4WT^+f>DA!v>clR7En3 zwzZADgq>^*$~Xb)DE52m6b*$*mwLcQZ7*TWtXZ&E$Ud})WM%N~(3QDBee%*N7&;HT zosD5Gp@0OQuKpwD5+qNc?=bj`V)H$vu-)Mn!Yoc7GfB9{P(jje&e73ui0y-(|u z9Vqp%Ufq5*cv6G<=6Pe|7#czJtOhk2h;x$k87&l&ejMNoni1$?h5}XaJb=O@h}jJK z+8&_$5^CQoAJQ7`GZZWd=omvDa;54Vd(iHQQA+l{I4^JSBEzK5g7s)%M)dV!O+?Wb zgaFOxrWTRExU1m&A@E`_v;l|xiYQjes@k(T+|@CD3?6H!3M1-@u^C#W=HzjLfn|m~ z(~q(_HY||g0Ap3L^S*M9n}IALbLQO6OG|kmH+j~-PaT7mHh%wZPd}&*aiOQPLiS1< zo0ub`R+!Uljv<99k7m>2^}ZfXVAR2pt)93?Rx4DnI>HfQZ&-s%o*#xNr-%5but!li#f0J|ZzURI6v)~Jv07c#I-qlU|-@5t#(VyJ?J#lH) zKAf{ccMUT-D_j0$UCSQ`&9M7Rv8*VSVd~m$cU5lwU_*y{rrXz3b(G7oE%fI5d%C*X z(1$-W(DwaoTf-eFgT}(BoUgP;9F}SuNl&&ZJmrdVK63s9jAC!3(&Y8jwi{X2w*;zc zHjRiDYQw3D_(yeYpB}8lmNkmK1vxdFvEOtqe2+LHzAutiuM;|dQrnU?uWXG(X34P5 z@=cweYoY5z&xSktH@@~CSHtg-{+-|bAJgaM%7Q!W*6=H)3rqLTbA+E0&Wvqg=xqp? z5$9@S2Q%?&L_#j)RSus2d zdml7IS1`U+|NHg&!P`o5f3PizY_B_BRZ|OOP<33Fu+b*vh8NbiVerVf;mYpw)?k@Ru>q}a-Vs~B`#1C^2*Kh5dFsG3` z{i^a}Uo87kpwptAE(n1a!Cvtjj>gKs8#aMvSF-@}rmqt-t<1!2J5p~O!aj^Gkvg#@ zQL6)w3uUkf2`s@{<)gW~hZ_;LW~|tpIy1>+3k_NZwE1$LsErj#9tr0-E#`+Tc$-=6 zMv~QQ_8O*M7E{M%HeP8uqSj_RbMN zPLFU)N}4GyHiB&$99U0f4zYJl^Sa4I4(Dz1|7`LXEziVbm&2ep#~GcR-^Do6@?-zV z$~jW!$OSE?78GjeFAk#)n(l0XX{k?QPE_K~DBGjXUD#ecI98r@omSTs`@g5#T7JrO ze3k91P9VYP1_Ed(CSu*$jAl0-;GmJfH*tDvlEQIMd4HrR*EiUi(0osUP?zWG+Re$% zUYU(IxWmGcAl2R=16A9KC5UMmGqIbD+hvlXPj2TJVC+AuyMEN5d3C<0#qx9w;844h zzE}pbI_O;hOhB{02b4V^ZL0mC+e1O0I;l4`{u~5DO98OjGjDcVEf<+AdaVxYpxNS* z1+AIfZj+%FD7;tuD(kokN*?+9Er7sekYtL2C61+Z)`jV%C?2|+tdK6=u{fK&d^Vju zV6c*|KDT|nwCVI`N4BE`qdL8ndchK4EOIDM7=P~In`2M(d=KZy%dC;vDm{x_kShvP z1WP@5aTmDI_0%zpBH3%~C zoD&LVLkOj}C~G@D9VD3>nRpIIn`UHOtka8L=ZDve(f`F5eb1!ju|GEzdUm?QmSI@W zo}I{G6xgTgfSQ}b(cX~_T3v*gdD6(aq5e{bbIpsgy%n~bnLVG*+CRX$z-hxsMf1i z$Lbh+T{o8q!q+=fu2^7n>s;**4F*dDKM8_xMbytSV7;x*FbqI4XLq-jvD}@<=4j&J zA?9>Hsv^z~*Oq)wVlQRmJI?kO#>RKJd|P~V*BKF3_HJE6KF(dXJTE$7GJ|E=XjuTE zO~~#(cX^OPlT~utYifjHtAWZL4Rg7}X%ZzM=ByMAF*r&_e&r1ck1gILz_F=w8V13Z zae?*mCd3%%Q0m5951p$`Qw(&| z4h=P=x8en~Lhk4YftF;9)#!ciXwiD_WJbBdcHXoOm}hCbP}T+F6r82zu%>Vzo2-F= zsF15MKghnP-1cmChjvO7S@x8>=eZk?1z9E3Kxfo)Q`u8XSFk}-Ckx6_XZXgRv3h#; zPBHqZgIgWq_MU)YO|dgNrx@CVAuQm|UEao=gl^9`Ps!R*TbfAz+^=@GwW*Q(fL32A z!~I{L(c|F2KK1%MyQ*$5j?#zOVX%|CN;uBj&!o@jU)lb3`hZ@OWi4E|RKTkz;EVdJ zK#5C+xKtI|D}#p_z%pdC?@}9F9CQMkennc&=v6w>XFoWo{v#0SZ~hk1i;qWo|0k>5 z{X8pNcf^B@mc4Bv#8>PTPvDtabh7?_Yd{%yhgoUf)fEiXe!q~KBj7}JyGV9-mD}DN z%-K4F7Mft*R<|@~jYYt>_3twtRc)zrngk+furV77f;mlf@v^xAujoMk&G-H?eedu! z`rm%~uh93)4T&XdVe>gVXljA9Pq<3gj`3#OZ)IqiSeAKa^wjKvHV@Z&%&Uwj@@yT; zCsmjD&LBPsuXb-%D0D>RJ8wyngqh ze)YND23bnrX2Ut((M$!iFd0_QP-*-~byftj>MKR(pIAj!5CF`(@gLLUEW?lkGSv8x zyJ?J#_I!q*qY!i_$(~0kHf$pHKw2>EfVFSr-1-aJ<}}OHVmA4clZ%SMRq#@9H+L>s z=91YnFcF%)+IvlaPY}-SUa{$J>pIu!hNkAICIoL~H;98yowVV7#Tk^E&W59Ad=vbw zB{8%Hbp4RQo6Z@P*PaL5u)OV|)8p&=qrH}n+vOPB968%%@FZWCv=Gz6{-S%2EofZt znV0YAo#1l_y;EiS~S@+fZ*V*-O4|5AhGw-Yr7dsn9E0F1q&U0$$ zEQvh$y)zj18SXd}8r;&u#BapOH^gUc^p%e7B~W`ySDOuje@qq|kuYNA09olDNQ>4q z9!Ti2)gookE3rR`Mx%%@0=q8$$mu|W1(&PtDv24-#I9DmvakQUC*g}ngU2p&*cv2& zTVFICy9})hm)cEAuQs*)ko?TpyvUe#aEiMrpShFodgofmf2o@-y3B(XuU^vx_IUSm z-4BxDG}~<~UfzSjFyd^3PDVlnb+iGtHoey!v<%tFgEU)DZEnO4u)VVP9#G~2VyRAv zILqN!PEOxa(~Zocnrs~pt`E&trmh$|o=~!bAQK3x9oe4OqpADK_N8P$Tlu`A&PLAe z=(BSsPi$&mZv=9E6esy;m9l&;MfZ}DX?k<9Y)y{{^xDTgAGU{@Gtu`Abao9U5riv6 z*&2y2tv!TX<%wP{$^+3LXD7_H+bb7B4M>*<$}?!6+NB5FSLftVWw>M2xdtz3l}I7! z+53$E21X*4k<3;i!O%wS-KD_RHe0loq0}T>GuX_1-h)muKV|#V@}O|=#FUnYz@eGb zYA#LQezSb6jak z>DFT1f5=b?w#0<4 zNoMC8A}J^6W6x{J_F5}!i{^ZF*T_fGlmfh_3 zP-n{)pM~14^|km8vt&sI=&5ZYioh%Im{_)jZ$XmYN|bTZeY%E|0F7+aI;q{r63b3) z=&o}{5J!Q$eJ9n)FbN6pJ?ns_}`Q?Xja`pO-Mghl3Xrg2=qtriV4%|WD!zBYpox%lK zsOEfvsQ?g5gSx*>=&#P@dH`;#khiavrLuB>`V>feB_e0#->9(01<|^~G&kc;e^)s3 zY{o%TuwYD0Mg)95Q=3-p8dZA4 zjI&|%r-;Csbo~XE{iAA#dR-mWpB?Trit{)hL70q4h*9uGbz*$<>^a@kaoq{TPrdhT zz3&bg<`+5(S;6`s&OULNPMRr9QQygpvm>I4d%;OFlU(rV_-h8UIaG(A2s#SmL_PE9 z*3F5zMx>67+0fEqCQsgMcl4r;Qxj^>;2cDYJ5FE~xF^pfGi$WvaIqqZCbKAI4WZWk@?;KA*0*3w2g)wBOX?~6b zkznVw#&Kgj0%N<=8h0v7#&(oBS-&QQlh{p1RJvdyxlk+o67^O^bO3aCFZW1L!ydKX z#RzjWXg`D7H2CWd4u(9COBHEZH(6`1Kc2d^)AwwR*6a_qPZ0Spkmf<>otLPC{s4t; zG>Gy|cOK+(IY)BOy+PG$vd08v1Ws}Z_AsOZj=jNY6{xAoV(r%*Hl=1QbwMm_MpI~< zZic|4EvUu1pUfd9&Nvu%)N${ZXG-+k(Urjtt-?x%=-|nab}|e)ozvQ#&Y-^ufrIR| z9vwOm#^hoGMa)4s$U~`15$W3ujF90HoZ^VEPe38@y50$vP8&1!X3!=pxlrH`mu#6R zU*TEo^4XZ8U+y?}-l3TwY5AN7X)uBaj0~q{tV{j)TG9?e8A{CcWoCcf0a+<8RxRZ5R-(gqz^~cq@aFyxJ>xu5(5Z!)Z zva3|@OjA(y3~#|hcgm%DI6hq0mfwtjOzVbUPONCYhQP>)%Cos zYxSmn{dt|B8_9B;2dy#xdv)D^WjE00WSQ-m5m+kyDb{eHJvk@pWT0?dkxLZ#k431o z3?%5X;&4AG3Q(dC>cV_je||R$D@(>IJTPh{5?OFwqX!ZM;vOL$x)Ktu{|hYwyX67F z;w4)-2F^sC^Ify?vKjMCO+h<8pwKyz*`NlKfjDfR85=J(*+l2BL$XW#qB>1Wpu;7^ zm7~9BB z!_Q(euAckqlw@%N^`)+)i7H3FWyKWJ})HzV13n z{Z0`G1(6Vge_g*7m~zoipH+L&^ZIYAHOE==P9%ub!c1!RkS_vt{2C8udhZMQheh7 zTkNcPUeG}Xa%E#4;4h7o1^+f@ldO>iBZXY&@|OgVZ;am22B>3PV!Rp*E`b$F>&NIP z10_h`aYTJ@`FEVU^9XyV=qsZCR2^j!y$Yi+Ct)^S3g}k~f39a>B(GhaJ3c8}UxF|; zWu#YGc=OccQ`y5iM!zQwGS>DA(6Ug*@qv{h&+yi3vfy9ONWXZgEG|K; z3lQCw%sX58LxvN-vx!`88^l)5yVA!Y<~sSh>d!_G?TpP@T4EWf6yaKD-n$N{!4r$W zQ^+$du!0w~R{6+ieB5n7nsn**gml@S>Ook{Ye0MpUW;t-b99m+8?|f|ldp%N&13&A zPxSecS943?jB{%H*Ab=t%%fjzom$^@#M7~}!@bMpH09h^*dIvNH90ZIPSCGrDgO5r z(7)4eeYHpJpU5k@NYOEBT?rU+BXzY!9>sIcn1jor&9=vXv{%n9oe=l+EC8S08`V5A zQL=V29BQ)ZX7)(&YUHRwl+efbs=)rfIF^#tQIbZ)@${-1jX$|9^k#pj&-ItKC=g8C zqHWCaK52)=`8!tURz_-z);rd-ktm#?L}AS3GqAAyh`=G=-yS4OdRyhqIu?Pls`K); z3WK7s4C=HZjgXT$IRKI<>3vpL*|QR_27^5of$R%`M26u+BPDC!#`^s?s-yVht7oeG zh=Q@(UDJEpEBe9VmcCmRn|Yca>MgYhYl0o5Dn_%_f$151>I_F_l%H+>!${P!I?Qox z0?65H(Eh?6j^G1TfaHrIvQy=j=T}$svmbs$_x11JxqGWn^UtcH_)6aQ4tt%+g%Mr~ zBK8F>C?#_{M_m^2;(KOV)bn6F2LZ*8%)+G3I--T4fuW-Kp6Us__b=JrOoc;8QQ;@h z7X1As93J+_tcH8;)=ZHWBrqh6swhjqh(M}`1(p&mYTu+5aIg`l_|>&4Ug8wr*0U+7 z2)o)3QOYH#Ll6>f>%W6CX{!P$5a=(fQS(JT&w1S1zG@*rR??L$$U@=ZBMj4Of^~Gg;64WA)bqBWE>`Z2TFpUqbIBfJ5lnv+d!{QtV6#U|T`H#o`9i*q3CR13Cfe~$srRgnrOKT=)|#K z{p{k*=oDtBQw)8TLS{EdvD`GQ79BL$`8h7jI>+}xC!BXtXF1{37P2f43QZ%?A{Erd z7fKg&dS3o!9unwN%R3WY+S^Ra%-V}wy!+kzJkUR0*K&^AnEB#8=bPcvW}o`{3%^@7 zrgiGvS~6t56BJ0CMGI~XDZP!WlP^-Y$Dw7%hiU1G{S5gW8e|0Y_g?Ne#6}DxvFmSpzxZR+`L$;v|9MX0z2& zcVY<;8h%9f`B-gMVviEqc9hShG*8G}1A;{fGUn2u&)tM`WJ>abx@y6(GaAZOX(#{-?MR_#)LuQ%xQup=`42vkNIZM}62 z+4eyM?k?pH)kP#QeOvW|d$ETdTl?}u^alODG9emUP^sLZ^2gDFyAROcBJ0%99+Qt3 zh*ds*w?8WUO7`^zs+R<14IB7Xk)2D1V5Ig-38>hd2`&^JPvi+HgQE`ddP@ZHZck{a z^=&yNCWB`3(rp@a>;bjs*4|}%*|UJ651T=1_cWUqs~u{rJaoGmG$AXYeL+E#>~KNs zG+nRILeO5XdU2#hMyXEgOG7E}1QDzOGm!1hj04}dApP$1b7S_Oy`3Sg?`iuucy~5^ zFqAB&MH|ddpzrT^IjzmGwFzw#gq`d_gu zKrVZOU%TT&yJ7342}ymE`I3z1&Tjkte1K)Az{UA7t`)Zy1j95VW%H@I402)S`P?_| zm(bD?Ob@QwV*0rC^NbG6u@Cu&UT#N9A?Ri&eTxot`#&41VC$p()Zi+f=}FgmS$e(Y zB-K1cXYH(7Ag`BOV65Tz(8NC4gOhKcGNWHD@qP32a*tj zqX~kuN4pW2ETUkjd(aQMTmxTx<(KVvFZxB4n=|j!ZEJ;8Y*Bp%gPN@#86yLcjZg_Q z`=AOs-+cZ;9l{%^`?g~YGEWSO;sBOR>hHe(g1)E@($W!kd9Mijc`$|HPzmjX`m>VV zIp(cqstdGw0qlzOP3f@LxTv4cR9wdi;>+Am#ly3DSB>YtPp{}jbtJkmSN^?~n!{De zxfbXlfj|;PruIc@4sU1(BAa3k?b&;&(Ovs>5G7@{?CY@#r{8+^jJ|$-qhl3kon+IB zu)fh+&pW!Rj^nq}V}zqoygFX$W3Zs>b&Z?$gEzDhG6?yiE>ohTKTMHidnF8j58&Pzs< zjCiZjiYGj{B<2yx76$7!2O;pbVv>tKm{Z&O&(3gY>73T9Kp=2u54$4c3YE3tS&^;m zMWI;CaC%u_$`(N@1E5+2{&ZT*9HJ3bQP@@^?iCf(0orDBipyPEkBUj_$V=U_gVsS$ zx=;1g*7omH{e7%X`RinUF{cyQ9#Yq8mf&aULpC3j%%zM*Mk4l5$;i2?XZvk3B~PP} zBcOocz_13-3o+*}J)fgFZ_;*4eVtbz!qTqJ^D~FB!*erI%!ICNvSg22V9G)12W!N; zIM`KCx<}Ob-JLZpwb9k7S3j?gIf*>?T0Unl4pmGuy)}}(Ow?f6 z9$GO*Mw38U1ARdZMiEHTXp9-9_Ca_2YYztCPTA?tWb&HSe2>~kX9R+iPa54Z1M z`@Kc&W;0$2OkpYE_**C}gmWQ=6)`@E!|qu3$6->V4tHlTvd}vPO!kD;PT!aVo&7#) zMk(p)-k>X$h)py0b!v)8TxaG++B}-`J-I`}nRYyz8lTX?Md5QuSq8_>6M{(mdHFNv zRa&HF`GVGP&(!UYWcw(!zujSO-(kRhs6CQCGSX9% zJ5#q7ZrtvE7C3JdXjCC0$9Sj0sg0>QtRW*ALqLDT0X4RW?gYM_0GFeWrqxe>a=*mFZuMU>M{S7{LAzw$6uv^3gwW`{9v}RX#MT#6z8|B5b8)nKYNYY zoZ(YFH)`vEL(auc`6oe?@4r`_(J!hzTpi<|eg8)zkZ3US#Rh5q=}uhakJ!~dB6*T45aq+4YADl&m?X{K|UhU)>KW(!;G zrOV<168&_giT~2wL_bye&-1!QThvpP_ssR+Jg<%X^l_rQW3CQzqQ6y1^yk~G$frA6KZ1lX%tljmubYfNgXYOtG+tpe==-8|c?RetY|e1cfXa^a zQ|a#v$l8MPKxB~ain^fu8**Y8rlhwQi1AO z#_d`rl{vULPvmgRO9YxuUy+^_%hYvy!6hd)doUE!vK@RMlMZi$%~^rnGST^s$l;7J z+H43;4bB#~MH{8P|A}XK5g1M7%gb^seCnq>cWue-UEu7( z$@1usTf4UPc>Qf_0`u>5hg{B2Df+)C9Vlx&gD2zMTfib3lWesSWq;fV>vEiKr_=)D zP%_EvAW|Ajbm5i0HA9c#!R%pj&gb*IM(i9KADLzi43>ah%c3kwO9tqjg61Z*p1ov; z%eWe-%@%}?BwxC&a_p5jHidLZa)V@Rj+Vd?9-?fH{XA}TuOGb(9L|Bs%g2QZ6Y_7u zc}8Zf&0AXVxBfSgNkCF<9g`ut@FFmjnp^}MmDo4M9-xRZQZF4@^!?QbxSqW_9-#n7 zojptEj61oRx&Tc)%Be%DTZ=xvUsFO8kaoPy?p+p8Ng!WoK?5{!U-SoYEbm)8dWV)y zI%&^g0Iqh9sO2a@?aGVR{eVDoXux0 zmDNWp^))%o>1YCU87W(^F|l6D@MwU@0Q*|DAhrEa==PB5PSQ7yg}k&|Z}aHwNBtf! zn|+FRrmoM1n2NGwK%5M?;E?_O=G9(4p~sJ1Os=!3PEZgm0Nu$G*sP4qOp8OlzLJl_ z9MHk`p31|LWr~WUOwMnq8$$vQWUOLe%P>X+;s@c}g;NW(hLO{&@_}WFt4&(uEh#-Z zO{df~CG?vjtAD|(`a_Mxz2)O5ztw+6jphWh0C~Hxk9VX{1AEG8nPP~)A>#+{vy4ws+prixB!-;8);n0nxIWyE|4DX z#d;(s<$-!c8%~|>U^Kwi!2CtQQ|rI+oyNW*Fzw@ao4`NFYq1ZUnYq#OE4-4YNA{mN z0?JyWU|>M=g7uxU!Az&oaTl(5Z9rQQpOnNcToz4G^(R`0~pPKHc2*4n@_80qsftQh#eVl7M#P_XpcVRXij># zz+$?iv% zT8GMU!lX~5;>Zl-GHp4X5MyN$ENInR`k*>y1@LPtV=Dr)y>g}{IwA136MG`t2|At) z7Y}!XgP>(r;O-1|$`Rpv6LfMvXlm#Vi5e72S-wMsp~lEU;By5&YFcFK>&klnRPl6Y zo4zU|(hioi8PT`}Wf=&W{_Ec;X)zL}npl{OF~-d)|d3gG4foGRagI>k3tsgb>E z0cf(rCw2bHbCLyhtW0VK)R&en5XYr%CR=kUgYdaHLU-46Qx(1KVDMks&0*I3@a0RWx*Q5PZ!&Wt9ZtBva%WXcV@gD_jaD)I8`HZX8TTp zamFFg3L@L8SY0&U-x&;g@o3sd`k?fuGucT8J$BZ zl&vX93bKbJFak6y^-k>Uq%LXQHYC_R4 zhLIq-Gtw2P47l_oG9;w0N=x%X5Vtc&F$PvxKhy!2I_d80J?S{+TnsFT`d?%$_q3#2 zP22Zqg0a_1_pdiRYoGuEpE`q0*NIi9dWL5_DqQXe-U@b?kZogvNXrPpPtO$A3;uZ~ zkJz_02tKES&z-X%5iOKhp}z+I8MS9~>uw6TUC32oSWHnCA|S&(u)!V4wEC$IB6lX| zaAaH7Yu|qkV~H*aAl$>a;h8j8(;_tqz0bMHZd&6CS>h>o>mQ1<$t>(%W;gUDr?u1> z$f!L>)Jj}nvow*T5tuNrhJ0ds$b;WAWLG^xkPS*|8R$c|bAereoz@FX}^^YdRUv zf>p9jmKyb{({?_HGrY>B;%vX2^)uNcn=0eKxEX0zX`I-kQ|B!5buoqeDRes#J?XxO zS}2fps5yagW#7xUbv-2xXjA+3UPf|nrd_2^|JwWiU;4j%@n`9;-Tj=(Y@Y4^kgBYA z_}+AywBl3AZ^RFwBHubzhjVp&iyn6%qvuDEM9cJ1%mI2)Y3VHjUF2B_MpSh0wAR*G z^+I*mWQwFCdADUQdQhe9?+kri(J!>zN}*j9ct5V+{doOUiaK3^cHURIu-h@cU%> zY{Aw>qOxV*XG0K3@lMbKwOI}Nh06R>au%=cmO2ng(knx!?>O2jw?H6W53l8$br39f8)lrZB@AUb_*=K%yn7p)LoKlXw8Upt0>OH{| zJpLZUNcBjS#|$+jf+q<&wbU~fzAk!=q8xd-peDO`(A+}bVFalUZI&1aTPkmh+`C5E z3Igfl==QX{Vl>-WIhwOa9Y|ShH>NWSz1a*FkT}(W-m&}>IyLBOWg`%#A}7}anY`>w z23Cg$ZfhoIT3L{g{TgZBm@n>R8b`593>mzeYvVIU2ZXNQDlK&zqnA@`!H%}Xg9aSu zs>AN8E+9!CQdUFc_bDRUh+2twkTQAE8N)W^DgIylMY;1Ga z0u({JxpOdqj(0DwuZNCotzimtXIly;iTQ?|fDFa5IZHt|1-)u(4jtc*DywUGtE~mw zcJi;y2^_kjyWb;QdAqS7W9pEbd@pvv_FRQEEyE);`8X-`KVi%&GfWmtvP8YWTtN1= z?OYbY<1un(=hSh>VW}7PRoKK1Rz-r&Kwujx>(=fskHC_ zJ7LTroNTSo z{m#fEuw~F9`Kr;R-ez=?gaH}cbWq7fA zY?bSGnT*4WJ#Xjd@x4JOZMAZ;{s|-bce#&}Ctq}**gmm<-#*FyY&X(Vw+YAnbWYj~ znWZU>e)*#eAj9FM{zA=YW*P5kLF4zFZGD6CeNjXa2NG9+|pXiSeW|EKwd7U z3m8w?v}-*j1+<4pl0(Q^GhH@8C$|TKKl|a-@wzdP8#C5g;2z<{42WfmV4J|GiaMhp zv?en``EI(-TY9#;p}h!5r3u3V!Q#TP)Ijd%G8mu>wG8O;VsmQ_IVcYhx_~dU#?g3&&YpeEMA~^*v{<%QslGUM6!Hg|KesNt83RNEJ|0ZtrO4^46X||KP zk}1)=78Iy^)|8`$i$ic6A)~P5(*q_K`kuJWfh$znKQSt$I4!ykjL0t))O=9R#1ToI zJOa@Uli3Uk6yU-3vFv&~OBoPG6c9w7J7fBwDPMwepd}9={4(f5LH3SAqZA0BvkPi2 zXgp=&#hpx_8!u?v~J!d9@dS{&8k!-iRyxg+Siv^=-jc5q(;>5>33G#M^UOxST z(J1O^S>Q|<7#0C)@6sxr3}5%WWQ|mQV-Vnbima_Nqwg-4B#Y)3c)Pvbx4wMMBQsW< z(Hiw-wL8=7iruW)HrlGpx%5HKvn#9aRCRhS_iQ!|zFyvQK*rONlmAYsBcZY(G zDZzftt@hgLIW~gUy&{ntnOyF4`e}|D@EE+0DL2QS+ZX|*9$D!gtPI1et{?iQPUbjU z?LN*;X5{{Rr)l z-()zzT@lSOcVb`@6ywM~!{?DP76zC0ck0&aWG|#M>q5>c+wv<1N~V-I$2L=6=i7Ia zLS9mec}Ztpcb0M_cW#*@t1Q;#@+Gp$hxrZt8#n(i`e&}cqfWl{FjbeA4DnmER~@rb zUp%b^w+ol4Cqrd-21lLpg-)R@$@aZ|KG07*zou{g*pBYr%=F18d%CNR^26(ln%`M7 z=QMC{pR}%P9ua&xall@SL;NTi;Q}){n=~czLRC$w;jqe1+bTZ{Ffh7NA@#hYbaS=r zw;SVoyPi*Y)OtG?$?$|pvrJslJ?{|y@pN_0rZ@Gch}_$H(@l=^_x15}`nNv#EA%(^ zf2hvEE`UTHdZRuXI@pDqz&|r&ZgIMQx1O)xuJrb2C7Y=Ba};DD2{wSELK5ii>)Acj z^ZGkuk}~X)&s@KkY(jgp@D~XUR%l@TY3IejW;$Z8ZF1x7WWW197YC2%96xzq=;!Ot zZ&u;-qYY`srLsj#3I>-aF8+o}otzBN2{W+TpZCe9VlJR^w z{o>i@qsqD=N4XfQ^alEi8)yr+Qc|GP?DzWAFU~l|;#f59@MqIWOs{TyaVhtCBRy}$ zy(jWr>i%8Wkk~&hcqAjhZ2bhU9y-_FBTj;ocI0{@MC5}_J}TwYyIg5yV_L|@ahA^T zvFOg3=ijXhU&-ah*QHUF$ziqQ@6_Z9&Dw>0soA1SLxukB=mPFoPod*;(^b6rDEULQ zaLjg>at#EQ$c>wAwG9bUSEW5i$@I>qc_ufC*XK9muHLuN-|wm(c3*W5u`zA7S1J#w z9&d`b+1zr1FMxw55o8@buWAN#8fmt$#*aEXC1_D|>^h%n;}P4O*sKOPdKG~#3*9an zRKAS}emsYS9PI~6@`&^Dy{aE?WgN3*mr63suC9&PsbC_w>GT|JOXHa5R( zoV3jpWrBpq%w)FT>?Uv^dTs|&o8(*3>r2L-qR^R|zB0qKz~oLjTbe}8Dee4@plkqL=7eTx(To58tUIkz*nzVHkl%;9yXmy@1@@=It0y%FQP^!z2bsg@I z_5H4Nox8p}DpljA*b6vw+IP%*@&}UBS-E>QF~&2fAABiy!?U?$qULh};zrNfqeR$> z-Md!SoZ>|1_(Z(k_vY$yXQ&2Xr{)wtv2nph_vkqB&eVRzbEsYh9rul%Ehe-!DIvR*&u)m{d1Uhr`3M1(305$p4z=3k1yIyalBIMIXTuG^eb+s zm8?U2wr{~>9P)iIpA9>2ojp4~2aQ=Y>vTbE#-cT;j?iV)>tt>^xpi@%Px|8s9wzIY zvq9xZcD^om7dp`j`+=6uoedXC=VI=goG!sj1;&8RV+ z=*;~OT>oUa#4lVw3=MeaOAhyBf({IR%M5~^sIDAr!C23aW!&1?e0CRyh23?^(n zD)hV>%U|AA2CkKTtAUCq&0LkkJMk3p%&wBOsL#{kdcd!|YbUkA>$~^UUY&CDB}4Xu z7o;2mQzoqwHEgTVY*1L}NouL2jJi-nucR({{Y>g+OFd&zdVWwHK~nqastPH4$v{8u z>3Y1Tk9ODkoXL(F`dj;L(R;OJdNbP^=tvcY|MA|+d=78`W;n*Brn_eW>#lU?OScEY z*%5!caMhV8QhMy=XQx*B@iQNMKtJ~Ug=NO`yx?o4xX{v5*y!z<7p3+-FqK3rCn1}o z)8_g6%&*%L`@A=SDbwSP`JY} zCHs4@YGVZF6{C&CycWy-lKS6o@~j3&<-v)g=9jf^^E>&Ru*cP9Wmam`!#WGP14HSX z9p*Y5qZCo}hxtICmRGc|2DTT~dMuIO;Lcw5Z}~)pI77F zAvH&g)gCz*6ttpf)HXIpb4XTWfIxoJ1N(20Iqvgbuy)yk1~$n;S~g(T3`hUcNR~i_ zl7k7;i|TL_XSf8oY{q?6<}KUg&3tH1S`f=*qM15|ZKlxsSyZhU!$WEP8@LjHC&mFDC+KGPf zj{Gek%Jkt*@Oh*UF3g2tAv)0Q0|_S3O#0M5@8#}Cjg=2yLGQ%iA<+NAlLgjW_WKNh zQEH^W^J`YdKELE$yIl*o!5Z{RWvkt2*)?jQDQA>5WXq@%S`5enHOXGmo?@f;3@)V=m0g;Z(F zWGD%CwhigPvX0(u(;De%K{2UI!{)H4=vzBBmq8!1{d3-kfC@J>1OrMGZKj@2B?1+) zb{IdCO9tMC!i1ZF#A>x0;de;$R#QAvZ-le~xe!LnZ2W!(qCf5XJGqyo;P( zCHx;jf0ectuSu@&Gsl}v6`SD{hGF+`6@^$QjKN&f7R62K;FmF$fr-{mS#P7CW9;jM zpPcjA^$tbYpE{Pe$i_1Ed& zy!oqSp^fE)d!_r@uTSge0wwKfzUF@i8{$W0$P5|S`~1-5BAjf6-EN?(>uPNOXj>iR z6TSUnqF2AWr#F9h){;-hy<~)wLOrIzN-PP~`m^^2`tW1PnyF6qN|%Ob<`6gIzrBDv zViH-hV$k-IY0}t~s4qVht0iY(2R<@EPGw(8( z4K3n+%k%MmQJ#XtgeKKdd8*OaQYXAO)<4hk3q`l}_wXORkj_9gm z)#txo*XMh6pm(Z!g6Ab<{?U@&L_VzgEHYhJKJt@yk~L0rCu6FgKTmKL)!$#&y|5|r zuR6a)HK_CZysq~*>)+qtqz-!t$hr~qv%05#Z_4!R^_AaG2vSg5X=|t<+s<>ORE8*t zUduqbg1Q z;b22rCLncfX|`jE?>zvRx__Z>QHnbvxSl#1N|1{abTlf9b{6+@H>UWG=rWbyMssOJ z2>q8(KAv)&kylU7=MN(jKkeN=x^{W>_k}wz5hERPqA%6Q^t3gIyO-j4{f@=H8ohofaw(k>~x2=cZ_IVCx-HC#*>bTQ=LGydIm1K}BmBkMd zsFUm*%+!vm>Z#(`lSB!TNh-~HTj{}Anb-%_X}$%@TXDOCix=z?Jc5Q0_&Iy94d@2L zo~82p+@R(4ht@O&^sgtv;H*eruEyH`Y6IIqMl5wc-_-WrR(<$Qwby;%5&}c^@%qpM z&f927BV&;u{YvA+#s>$~5D6V~lTjRvO}jaFw1nGQ^tPFtFYYPJ499wh-6o;4(Ba`c z=iJkuwGJfv>0m+Lo*}2Y(8hE*`Kh(DTfn7%uX>ZyWysN%Ys99P?c7G?;~BIbxT0-o zH#=D}bwTUW1<^?+3*2Sbhh+ao-QxA$Ov_&#a~VinR`M#Jtry(v$jiC5+2!S$gwV5k zxAL~5^{;zJD}z8SFj`Or-FcWHDCZI{y&5{FIQYJ?ObbF&nJPoCNKzKB$|6#db3lk` zq9x*`>tiv-#smGGDK-1O1w14&=NC8K%Lk=h!Bhe#;*lbfiOq@ojB_R`P!Z#%vo^Uh5s zyZrElH$2v(3zyq~#9wrxPYcT(~c@aOYY7fl1n(CfMKKP>{>C3v)JBlTC7AN4V|o+kgOiyTSP`Bz6WgERHjR305OFK;>CdYZ?Wzji z&#JLrpq|AkeqRN4am>9s+|g|nuB68I)26c*8b`=To?T@Q#W&SxFSVLg2&oe%@KBS_ zM@||Xa1g<{?vHI1il50i>$HCT`WaoN|-^udNL9&Q2KGWo;t+mV=ooLy^ebE*o1fWO193*3c5fI9Nfi{_DxlYXL|Acg*t&hs{fur zz$k#bl-g-8G&&H|IZLfhWTT4HTWFCu?WFHo&)1kMqh7Q^-(8i+^t=?;*6&Y+26d7v zko}c*eZ~hpYa412vPuf6?L*Cx6emTUkgF`w@6{kH^mmfXrb3@pTJkZJC2^J)!2L36 z=a`|PR6{4zwbs3Lx?wvwhdjlxwZsv>2d!LQX&I^AMb|w=Y;`)N4#`>Sn~B0~^na0Q z?d@aFT6D#1YvICrhGIB-GP`9^RFDheswZ8 zpw{_uiYz#Te?@>18y(T05zpTCthR+wlwxq^V1R)|A>|7#;ThBUb&{he!3uYGM$^L> zn&DJsq7`4e)Lx&(9ntIrub7BxK;tQBhEbQvox$Sd%OEK14r+D6r1Msc)MbwASwR-K z3!7d7CAotG&Lw2_Xm3D9Oeq5&bH$_oE-qZv(OiAkcWQGH8!}p0PzQ*fwIG$rj zj8mFy+X1Q0O4cKOz~zJtLl-aJX?(Aw=7H9BWIiL?)6WH)!LBz9Vy)!LSO-dH_Kwpx zyffehyJqY*M-fOC=aA^hG-X^Vbp3O}Yf6wh%t2memp|o_`+x50Gx}e?_kW|W(OV71 zTj%y@2HVSG8RN3tqpf+`;Kl)&t512~I}lXgUNa1zB2(O4RVVj1H)_N`d_2?sw$S~X zDu-7a_P7%Sn4~g}Ea|2?(_cKRhWe}S%qGY@#ihN3eMvSLjl3ljvS&JvS_C>~j&taO zOwGqo(#bg02{Bl;HShd>bvHpEso7trZjO5q#zat|yrap6J zd-kL8bNZiu{1@qO-u(=Hue_j#=J;LoPj$p(lXViZ$$q=;nD5^hz^6zc_l{vzP+hTxVsN07;z zf!^i%q=Avo)Pi33Ms57JCRUm6dHwq8nCb6l3$XdD&f%u+lOK~R9kT@nN%^8(ZBsJZ zw{@*PtlxdKFY0stfvjD~>KwML@Z};qyaegY-eK*l$2TR9BuN&aq1#J+5YRywH5xsb zR%t(!cKrbzU!6W;v>nVYK^|y?&FPS@?9hU3jeWfxCSIE=Ak_Hb8MSWEHCx3@35=-K zpN7oJ9tzAFY}J=TbEkLe9N%rrb+i~ZkyD7s_2o1Z$k;In!BF=HD zy05{7tDH3$ijz2qG$;xKYYCp>}qa}EF-xug&jB^OOoshI~LMqe%0%!g> zECW)ZrzW7cwK8CYKnt0NQ5zMM%H(UaPml;~US&47l2JXnG@Al(NB$eB zM2kK*`e?~vIpphtInIh$F;E1BYkVd+76kNsG$*&KCiU5l(6r| z7DL|^ElK*n>Wk4IBrFsJx5ay~&xp=QTgx`$a(Mm`&i2KX>4_rO*~{Y)7`7?z1Fw8b zX6G7$=Emhgg^ylc5JXxCRZn=(46hD1gX%^7Rh4{^NTwokjyZjR;(BGAZ0% zv}V6Z zPYt-KQ4inio&}LQ;-Ei}x021sZM7(WJHj)pMCiJ!&apRDLApkL)vXG!8+E+NZJI@2 zg*d4b{*9X#bd{3M%LoXU7dO{hr&(roOlCkkC}EXahGTU)9<{Es0>ta`Jxt9kfY@qF z&8Q=n6s~Jf$npshm#GubJd4PO%{FWsBhizH5W~=AwWzoWMD^dU&W8wS_x1gnl_Nr< zX5QC6QCaL~laH8A@|iOF(?!cR`!uq@^s~0FLk@=$<&Lwy7SBStmOlp=oj5`)X;H_| z=gpns9<3}e+Uj`km@;*JMwYn2_u$=mgk#;{zzqJx-W{-3YJ?q)u7HHd{vT?4n{2R7 zM>#JE)JE=^95xGd2xodibhJS8+p)IDu8g{?GM{5Lq8*R-3UB6)dJA}1F;>tknQy7l z{Zg`9MZv3dQ4+>PQBjozTS0!8pqTrr*xy%$E6*M!Ih)bW>jNK;(f{Q2b`-|AK74a! zj=iB{w6QF_RP2d5x@djh1G;+;4LK)wIK@s6!B`;Sp4EN2t>3?`it4NSPkeoIRXRT< z8|$9EW)ap?VERVs^ImDoakl#GW`H9KC`$=|0gaN90x~yJCthmE9lCN7me~iVj6%H5 z7+@w&j|a+x(!t1@ci1TT43WBK2qHQ$h;e~22yHz6y0e!%;FCA)$1TAP=SGVN&bZW2 z49cc*FvZ-;95|u_Ub0p^*G>y}WQEYi$jHa7y)kd~`qUfcoOgR2LX20gyxf2%mvyy- z;I900L?(go{}GVjVh}i*k%hY`(zNcNUz(XVSrExu*-;~vII9HvbwH_=Zhpe!0zM|E@G)f&*NPG)H^1 zAdCC{-oE$Xr=uawu)_^PPSCS+03wBy0+`J3)?ma}ebO!@>xa|x3GzaBR?=A+s?kcz z6yok4gO$>`Gpi^?HUnE37^N7>M~5bRbo1-?m@}w@mOuH4xrOuG7RrMdK$rto9TDrG zjrwl$xKr2IvTffxe(wAp=a)=vPc4*_{$db1?#{T4nIU_*8DeoB6PePO5G0mb26zlj z=C-i0Sl_4mj;uAd9Tg{xf;m{_LIzrn+0RM_EarIy(|UaRMc7Z$>Si}?Vr_?xe(`d) zR2CoBZJfExuE{x$mP{qJbDb=oDw?)qGiW+s=<43R|Z zQn~{k(e6^8*&NCCH$5W9KCOR5YxT}$bKiE`ZLT82K+iwmmORU;sl_UK@M8Pwk+Y~$ z)0uG2`edarxfj+9^`6i&j z$7JXAbB(!T`ndl63)T4lz3o7+TB;Z|$Y4mg939jCNFDQE*=2fOELQMsZTo&itav3B zU#p$^ww$rbhmXkc{-pl6t9$>2IJ2~=qP+BN{q48w@86kiGa1?i_$QnDHq1W*45b?6 zMc`T1z69hbuL11A2$+__R!6^;S4>7TnLAoP8{O$- zX`f7OrEr`p+XrxB!%5|tbgaPn_B(b#zcXC8qR233f177#0_p+GqO3$@;QrcG(;wm^{X97oZCferg(sf>lQt& zCvJMGzsq$ZV-)5D$b;(QyA6;PY5c|`2l|;;D}Q-B$H1v2R@s5;&i`5_O8r_}|H`o@}6F8(J`VI59i>DbByrWOXD@piN?nm@P0kB_JQs za({Z}iS%#Y+n2Jof*d-zvkcjA)$T|r8>MYtU)ebBW{N}&57v>rCN@yz=faOsS}6m$ z#+?b^`Lv+bKsh7m!j2N`is|ChK-!(zQ?RGlo4D8b8&Ma_VE-{Ean`S%Z+Zln88NZq6!~sb)o1BXXK;(r8-cs{TuKaWHLjqZ(V626 zh}eEFb;8-`j?k3jROmr|=r$%3RF#wyD@SLh+DtQeGegn*yOhRcyc0Q z;|?-x4nYalFK!1iJ~Sr(1N@)n3Q#6wfQF4>Xz@Y zd2qxLn-h20oJb=fhhJEO_2=C03ZKuk{NCr#`9X2L3HK*|s?!&dL~*gi)w#Yny-LQ{ zdRTR(?Lt4w0KJgUwAExkYX^atNN7tveRGHd4rYn|qAk#@^&V@l^?hmUwdf5uI=jA7 zwBg^u*T4g{y@R%OzZ{Hz3|l;xy0I~QX~O?zv)#gOuQU=RhLuL1qao}5sV`{+4eMpJ zeoynFAE_U+)0_T`a5oc?2~Lf_csreZv6#m)M_>#UKAp_Q^*m~s!oUW`vGP`0 zog+UOPnf@i%pWqtYcMBR3OtLeUyC&)YTsqrlvb4q7qa7(80sE`>Z zBzPq51YtFyUaNFTVU7b9$OyIx$)!40cUB)cyVzsSS9#Y5S37!91vgO;BnnrEuh!D8 z0@+;^O0<4($KE8HoYS>B+V&4R#ywJ{5e-|~Y)(Qfv%o`36z?Dod=bPL3;=8JY`39r zJbz|Nfj~%!up!D#HPCN2qe6?zJLFk$#)<#yO%+C8N?j=^R5w@G>SXh5UazfnZX3&Y zQky)bjVe*L%n*|1S=%_f{X0eQv{8Ee(mhs;5e`m_tWAlO)&v*{mY59&R00~dRWUsP zB2XjwBgG;lnlSEXFjxl@{0V1N$2HoSEyg%y?@N%!$l{nb z7<1|AG#`Or!_C33b7nyZ5~Lz<<`S$il4XkQ*`wf+D%7*rGwdbvC_>nxw_2tgP$cUA zUe@_~BQQ=GK<#W>LC*hJ$924YtNYXI&uT5}a4;l;za7ljz%JNOUwfG>!`AB%_e{Cp zj@^3ou(4)@XhsuvPA!(U{=2QuyqRWIOZCi10FDHB)RyicFh?txo1~HPlAV3jwLI+a z&C#E%cC1dLe7|v_+ID00GgM>2K)br0l9hfZ&%%kW!k;`-?pwX;~*J@%u)$Tk3iOh&&EfTHl{S|jg2C+|<6WZSa)Fl_C8a;V`>?=`xCW@8312p}ZU7HE?c zMJg!K3M<0$ps;C2IKuW9`n7C4zuP$CEs1VCaSrbeUD z{rbIoZ{4cO%yahE8h&f-eNJXp)xGa^QTTPP1evN%!bHe)pcwBG02nmyb&W;fel0CR6@UrcUANdx+&0=Z36inLn%JD>O?>3#U$*e^0yH%fP+kT;Ijn>C*c#AL-OAmr#mL*Qw?(S&i0O zx2&I~I;DdlDRss#r_C^`oz11QSbNLHG6%)O5s5nf1JdQg@sybra-!XvuO-ir zgQzp2GYWAxGbzlwsB>n`!k_+0m-K9&nKl(n*6m|`{h$f zp)O?1GEODbdl$h^YYj@Zh0)HGPSe!M)uDL6_}k4v4{Dz7=i?*sz3mAC(o6)j_d$iR z`*q@6#>S#m10^&)c74DxY5DfLaID002Dnh$mC^yVr~4sqC!$8QRXrXX*>l+=fjtAr z0d(V@?^suja4#3dgpJ#3C^J9!{p(NYuYdH5^h>utL%&;I9S@++emv=ld;4=%Yn!*l z2wpJV{#SM*{SedmXP`BI!u|WD&5FK{=i?W6pM9-P%AyV!vSg>1_xvFL{6VIJzYbm$ z=Zruz{lhL32Xg}Y-EFq4NjuoP<#341%Ip3W-m_of52aMr8-8}j2ksttJdd~H z@5TFk&-?l9rqUnsJvYin5y=HoC~FB4V;>CWOz&VsLMlV2J+a@WChDpoUUX^!jzqbf z`6*#C`biCAlM_w-dmE?%>}9+Zn_I!LO`VRW&&k6flZd4DaUeVX^rZ5lJEyX z%PiL)Cbl239x(EFRp0ix?d5OPx5_HB-!hVQ4ynbG* zWq_(!3zes;%R8|Dqy!s;zQ{(Dyw11nCgn?*8;#i3$YX%ElF6$cM?0$1uINDkb&~+d zAwyKP0l1T}=uy>crHEc6Wuj0XO@U{<&-jMgfOu_9KB$O{^j%c|j>zxL{$aZg^W*f= zk0WeQ5k%6HB>z2Z*6q9M5sI?+#qJ>Ythxswb6fkEA6cXEK(iF$9vLX&V1d11@-ks& z(@Ef2Y7cSyrf2sOTc(y1F`W-Yz}^MgAkM)ktVMzA0Fe-GhE9i0nF7 zHrddW4D!Gq-G6!1HaGo^hgoN zQpM?tK~KwWSr^Z_KG2upC`-4p_E(*WN9V8F^UFmW(RwEvoB?{(5!Vs=5Z=4yScu@ar!i}ouVlr+tga!d;MSe>NNGJ++OO)E8hvU-mO1eJ_N_spSYG%lN*GCV*( zyh})DPdzw|F&B1K@Axl(hWfsdZD1Pdi zoy-1wo*QtbW4mWM`KwhQTL3^1Zs|{pkoybz-)Zq|(E~o~=Cq zyQxO=3UX^CDNzp!hG0P*{g8R9;CRb!b^@{)R8REb#6Vk(h%|37h-^{kz@63xHv@q% zZ7tUbZ%MsN1>oAH4zV%ZF;TnIl<6HKO;&ZhsB*AjJZYm~o*XktS^o0kf}XR1UO?v| z8Q7%hW4LXp^L@|lNs4K&&nRz{`y|c!?e302sK+=?M<^XU!CH6rGD~;Pz`@JyT0!3l z1m=>7g7oo)q))#(VIlcu+|yfbOXg!Q{pWW+<2F|5n%{F! zg=ojZ=cp;Dj=L}Qnr`oI*l5G^CDHSUt~Z5g>byn2;47FWJVqCh+nN$k>q;BgDEmQD z-QQ_sGBvu@TluVQcoPKvIUh7-mwKY^= z4vNqN%pom}hl_hpJ?W=j6bYd}l2Yn=JwqWh*#}*%0X+u$$6GLm|_q#rtOme9^y_ zJt=kf%z5!cmx-zceDe5S2gIX3IZ=SnMsv}McA;v0abJf?`)kt-Im%TM%Sm%K@C=@R?b4kC5D){ z{MnU#ug)#k=B)JRuYZ;P>a$;?|HEg0USI!(U+yCj4r}d_wB-L1^M)VddDw7&CAj_* z-bdeB894sO>rCI~pMQ?`*pG4pmwf-r(K05;nGhLRz;oGpdndKj%$lxunLl`jldwhj zOzWzC-9>=05qg2JS?=$*L4-D9 z0l&K3F97_KopdDhEKpgTCU&w*PkL+LNTOyCD9!l>5ruk&tC!S(Lr_gKc`zYclMZ++ zjV_kx2q|T$9yL|^K~UpK_IsW2(0Zg{)ZRQ?rdeAN1?Mz0=;tG+QH|qXe(4bN5%1|( zTsz$l96azlbG~?=!_wV*#wh*yFAz}3!OcLhB%-H&KQZP?bk^|J8{(JGQ5TA!UCC|# zhs`QAqK_$$l4nPKai+fbF60X5p6THk^}Xx0lLg$=Y=o2T^N0j&@|c$E$>zZ7nWjRH zhJzT=wVl5tl61YXOl`u;2Xlh=>~gw7YFo-P5J!IB13Zthx=g8#p{ygaP9P=yL`IiP zElO*o_Vu{qA3N)R*b!3O6DpTO)=P(`mvzz0){S;n3i@JEZOyUUN+cM-FP+}APO)P< zf~2pOaSMPbeHMpuar(X!9hV8M)EF0Aon)t*SeF*3r)fa#*`bwO(x|ryPT^f9KmSgJ z8$5TEjSBZ3?I_HBg8fFv6nq%(5QgH;?x)(6Y*yl=ujQtuW}6D(Z9+Qo1MFAsnU}Rp zl+ByjZ^OP??YSgTh3;VN;|<%F-Fu2sHN7UazQm37^fNjSIredY@1ZE^R@|At81-+9sd~AT56DHG=eB%?w<`m_HSKsd z*?m$#+#GW!1gD78;#Q*W`CM5t#B;=AzB;wmro)_AXKg3a$9vEi&EyBmkU&O*c#)*$ zcm@bA_em;w3C>z+*-vDr*QK8L95;ub#fFLg>7LT9xiTA;PPOflv2=66?ij zi`bZrta!B&PJAm~!>d7~b?;a({PyjQddUhy-4e;DYX!_B&oc4$FM>`TEly*Uhsn^MjVGp zog@nCM4Pf@$qrxh-|9$`uGF*p?e3P|@V`TKCFG3rL~;@ZP#h7R773G&y{dbX<6zY= zKq(b_gG8C3-d1+urd#LOn}{?Jf$07oi_C2Zxc8W04E>(%37QLLCs}RRc~N@SgVjgd za=*koUuuuP%SF%HbME&$vg{U?ihpf_&)DdU(fOi)d0thcTRbiW#mNk|YdCety_a&% zQLiOAt#Q!P&)E|$UCZ5_d1;Rmc`D9sGAL3I(Np;MBk#=+1Yx}CJp&`vl)u{zEGwf? z6g7g;cD&>ht3-m#FcTMad)|OX>~q$6L;pqnJ@o z3@a1ppzsyZ-g8-u3p7%OKAQ80%0IO>`DF&6mvcRz?Y-pD-l2H*%;{Y37oR$vL>U83 z!{_M?HG*~pz!^sW9vO5VR2Q%9qYYdx^nLu$`An(t!MG3dWhgJH$)P>akus&_W};pu z^iIOqitI5KjWKlcVt?;q&X!~?x_XrH3!w^1S~4?)sPMzq9%~Y&hFl#LrZtI*Us6Y?ZIyDh7HdbM~?kA=}mbp4h%`7#x-*~i%=h}-qK(H`2Rz{c>A;T z+xM@?y*J*2Bc8pq-Z^2kNfusk%uxI{_a9j6^qU&WxR+Q&8r5eKjWWUzUP+jeJ9}77K0rW zGN#Y?*BdxsUyFD<+B4tgcij{-dP~HI(vlESD|xiOkuA^@iDUyEE4AtJr(j`grZ!6K zhH*_Z?7XWsCC8aV@TcxOf016jLCp4w^Bm)~4hA}naUyH&rn2m*brUTpI_BxIs=vz_RE4GLo%ig1;PnS|f{By&0t*d-N zD{fcH=#@07J|y<6w`EUxG~iXDhs9Q*rD-%<);fX#;?#Peh09=Gx4SwB3t7CjYO_wP1Gpre$JV?UkO-edSB)CRxua@R>yhrsYt5vUhV4|jL$h?Y^f@Ithk!XEM zPG8hcz@WO)7IpM3jl}7rB_h!&oTcH+5VC)r$($ifb{I_UfK%#Z`}jV!tS)iafD(;T^9?sew@wWS^`njS-RJ+9(> zwkS(`|9*dUop-H73w}KRwdlmF(@Zwrq@4=OhdFoFX2^pX+?hDssB;*%{IhJlC@mg)Rrd zXTqFqHv>ryhf!;YC#A>ktR%}gVt&QRQk+}dp>@uVnv+_va{MQGSw1qoNX#`;smJWB z_76V&YEzaTy*D|#Alt|DY%~5_I{Tuuqz|)(yYuJ#UF{kcB$OTuT&Z@hflZ`yQ&FEf zIsLvx|4yu#IWD@xeTpG?7MIxUX&ErH?2mJz&e83G%fGE~NHd6 z$CyB)OslPMEU*Z0^hMhpLtaeD*QW!Yku9VfG{J2)a1!KYqvNqvq9eKe%r@4b2cspY z1uvmHqh%Hu*0g+Ab!AyI%1+4E4_c)qLekUDkJE4y!sqXaj4Yi)s$a#*DNs7U!qv0v zdXL@SrfsK|jhDy?8Rn!s()V5vrC860b>jNS-^;7DwL0C{<3#4stJe1>a!$t`j$TL96Ydldb!E(N zpaw(j`fLEc0_-Y$GmyNw)LJegU<=qPy&3_GOB!_n#D)2nQerG3xMc_cBETOGNRJwd z{PH?JXcYoq)l^a$Ml7=Q%o2gXgifN@udi0>Ehu9XqlnfN7vYHKS!yh)695Y}-@d!i zbXdm|z6ETy6E=n{=yb*-KfbA+h&Y)J09?WA*t+ z-7ptK2g-&Xo%9fsKfZJ-)kAb5%coi{_nm;DyHgBTs%1eyULGBVv>}SQMB3|| zlSS*7f`B4FBh(o#yRJnKy2}Bdj{KV=Vwrt!^>=NpRa1wtK#k*K6wtbMKp(VT^$_%4 z&$0Ju_Ua+{UX2>`9hdCE;Et|U-*?$+(^Z>aG~#FO`m!^3mxyMy`jQVWUZ%TghCs!W<2i*Mx1oS}vk zrfGa$Pef-HP3&R%tMkBlmBV0 zacOhM{ki4y{*3>=S*a~AaUcKXtKX*o=JQ{o|Ly(1qmA@O@pD~hK=!gkTBSKgq0SXI zBsFJk%mPfm z%pp}|D5&(KERXy}e(D)N_$~hI|9N3xx4cJ>2>*Pe+QL9rlA=|dBG-jJ=DGZY+Z%IK zeGS9%;JTJ}$N@@Q5=$0to8I-*!41$fUrU{?EvPX?>cJu4>iE2mwYs|3S z@5VRLE!GqUQ13`-wt~h%s@Il z84-O{hF{1;;jrc3HU|XlV;Jq6*iiJLU4@2`JA~PjRAh%WOG;aUjJW z7u(f=W$1#4xLIB73E7eW?ps}J)*Z&JmdvQZ-EsDNW3@ZY4hhc^wVI!)8PSWo;?x*` z(4&Kv&#ZsNCvn|uvG8CnaqWeq3S+Y;(q zrz)xFSBv$vy{UWI?G_nP^dUD`-xS;y8m<`uSH7z(&8$S6%UC3Rx~ClW?W|7iJF_Y1 zkm1nml&chEe=<3M@%gq&D|jtI?=R3_e@XCmWWH&rB;gyV`;|;iNRp_RphN zJGw`6pa8k>?V&l@M$0}{a5^n*I7n2ut*OXNYGZ~yYsc$*f3UI(Q$+KhntJT1db&S$ z+>DPV%#Ygjr*bsEPa62*vrZj+}F4iL&T^Jk|i~b8BQf!|hFK<0CuU=}dOB zc(OEFl`9=d7}P)A$wiNq&kCJfuRMP~`5%>L6Buh*afVAg+W^kool}&+4Y98S+Ntk! zjnCbVpi3e48F3;L$J{RBSsmik-Yexo4=uQ5HYuG{TG5x%%JZsiuydA*F^Iiw)dBGd zfNklUZgXS0YUdPJArCI}u-Tudmc~nez^SQ5TSOtVD_z~g#$Xv&7lVc~)IfnDC{47$ z8KrQK9V4A8;5lJ6s5$`CF?`*Rp29fO$-#!)1iMo8d7@sLoPh#F9=To~Q|8Z1?%BaE z`=1_ep1kk&>vt!W`l*xsU%D$%Sbh3U)Em@@g3gA(t)Er=WgcIBs%VR_sxtx^#4SDo z6YAR}+o;)%w@Ab6fQSjhsEwh9nH*7{5hYX6x77VE8`>>nKJE}Gni%~V3pmrwYkI!9 zq8E}fd}Zm*J-S!ZYC|w8AZ+H@H8o&7-T)xdg(3dW<$9%4w3F0M#q0fAjgyT4MnWT5 z7!xL6AneI3i4ZhOge(I^2SmTQ!dTN&HgVOoPg)~;Sj9X{<6h_T^72aiwquY{-Y50d zFZl1P^-9%4uj6vN+tat+-Ox8*zt+^%cMJ-?x_+*8YSu_EZFHn+aA$7u>I=y)fd za-LR3dLhE{+G^{0CN&ovgszA~$;iO10^-vYjyX|_8USUaevJXT!sU#e1pn1{S~}>{ zK(#7cLx#^np+?J!DneQdlXb+4%>@k?{BJdCx~)l+?)x1Z6Lu7atC+73VLYjO{%M!m z3#e)$Msa|VlmA8(iHbV6{PPtHHs6+bd~uq|*f(jO8c$v;4lJY6tjVw#Y9=I6TJHIQ zH!K{!BTEM!&K@e{@fzRV+Frf7qNwqFw&TSj2M(Twj=(-#RRbO91-1vL&HyP@?vW`V z0ql(o2kwMHsEsals=XgjxT<@XlkLT{+FJCoL@?yN-AgcJ6e!IVJzfoAD9~LPb&0Gk z3esWY()wg@Fsj-YF)FRB4!3%2dYaJ$q1o#a!O$T47Ln;eAC%2IU8zmbO$NX#&t4NE zI$(S&W_Tk7!T+Nva$$3e|cff1}8k1 z-J{&;q(*2|L*sswa5X;>?>8)EUcR7>mE1Bh~gqD2iBb?Vr+W7&@19#rc4r2{l}k(rRs{^t{;W zWXn~0UWk1y0G8(d4WYi51@Z3M01gzr)AN=!n*jh@>?!4&xy_|UR0D7p5GzbWsYPN( z+qM4=Q{;P9e`Z3C!8U=;s6CyU{!S*IrZmG@G}^m*Bsbol3F$6TyJ|3?jNph?26%&K zcOI?goRf1KGsfiANz_p$-rJ3D03R$A<0J>;XM4YN`-kS+GIe_(rOpo7MYd;)Vx7`l zz0=*&=?eplHT|wu^7z1+vMI2+&kc!%c;LLn-mTQ2GZslS&A-3;Tl5#`*JvfVr8Scg zH*w9+ZSfET;#E-0mFX%XYr5!`Jk`4VfuOu_CspCoLu(j!8=zF|tE4hciaqyT zzKT0BJp8UyoHpB7A`2sqVPwb~t<6voagUA+&I+NR=vjpx=(^Y9s!y2%cWxHqvbS~6 z^|;WUQ@J4pmzB!AWqIXgqK}5p=)d>T-=hEhxBe;v)kD|M55K&ItAnqVnlFTpLR`Uq zi{;cGWgXxLd4qk2`}r#u1N}Z|o~RI0Hzq%h^Wjd1uC>av9 zSr6#IVkv(q;UKE|h1X-&=rij;>b?AZp>vvj7QnMRlnNafM;!GW`cBNLIODV4bSq9v z3NDO{+p;aKScxUwhe(sEc0PT>q(3+O-*K!Oyiz^WS8>Ki0hHDx`r5(L-D_=h-VHv2s9VA-;ujzivHrLHc)12qjbSgjbPUUtIoI#-R za9*`8`uTwz1$&*OPJg~0)E8Iwg*bu?NOkY{QPz@8)^|pq&()Z{mN2Xuq%}ZpxZM|x>Xtg_<8&hB_`D;n?~9MeX#zdWK{MPj zy=4Gt*W&?>n9!rmSsxZHy2sliC*G3)#zuJwv`vI)@rlj|;4{6>P6Wy)BB1G9_nfYz z;-F-Ggta>DeZ>CW(`bKtT{IJXzL&oH(j}c7;yiG{LMScwhJ&rk5&L|aBTTrb$eP1u ztOl~&I;eX^9G^ys_L%6zAZLFi*ih@Lkk!hTTe2x$-Zq;r1n^`ZIvST1UJZn0>gvr*GW6 zqd&QO$DbS2cf(-Uz(U;S>Y4s@p}{gNnzx@sS8tf891a$hF7KBV?NZz2dV8T`+e!WA z6PKn+s~y8k%kRx8qN4UN`TdVXi@VaO0(;Ig5*E=8{O_KL@~8>|X?6esNw(P(%#V3b z+>LvBO(twoc)g;XS{o5g9zlt=lf9><=_j0bV|(7| z&Uy{cIP=I(5cr$Wj6sG%+AAwIueDEsEk8@dpphB@3Y=Xg^AxwV$tTi|%?3HYEDM93 z`HMlyBy9Ao7O%n0OS5I5uk1v4KQtPbx`@yd0>#oJboNe4bpG4Zm(`9c^sb6XXF`*J z3lo4(QL!AfQ!m^ML!2uHguSX!{<0pc7V$(z$8OoEde7f^HdR-ptj^a6V7c0w$sAu? z^dp{+--oA>1-&p_my_}MrH22(0Br$e<=qh~*@63Fv3(+NhtnsXEMz(WQ6PitEft(DFEQ6t5X zPQ5Ciy#-CO^WU>~-BX@UuU>M$RxtEn4&?du7RJ%jS7akV`e>yuLYKAX;_%=;c(O9D zOE4-hqYeoG@}GX@K=Z|+VY4#jrUQw;h|73Kdz~rEp8lzZp=VZl0K7s!k-fA5y(_4j zH%@b-l^PzgPY07pAfR zzne6dXR@X7E_+silWds=!l0&ugmRlua>Nz&h=R|ZBN^lcHx~DxxQ9@N0Y4#gihWjc z>TJ^(V+SBx6lRXIZw@-+cDWb@$mss%2jfg45=g!{^6o<2n z-(KhZ+fucs7-s)o^4ak{H`F6TUDp(aYg(a&ji*Lhb$hn`o*|EW^iTg>@iXrRT?fqh ziH*pn$-qQ^|4*&HN&kzN{}0-xJ1d7afuHeq*QnUfs)FJb0JhI}^#)=-(~$aw5 zXPJn+-lo%Rm(Nso4G_J+DDb_znk+c~yh3lQxG82EpXpu`5-fnKL~ZZ8X-FWYWXDMN z`9xim%IWJ#p!ni`ed54Xxtg^FPZk_>9MV!;||9OmBbErh#_c_C1r5AE@Rpa0A&v&ex8AeWx=0q$2!|=kfI# z`_ScU6JKl`N}J`wVx=-NHAjhN8nXRdiJI~Ggxrdmu~j;CRXSz-(0BMot*Jc^nx;|1 zx=*K&;aw-_Aqb-zi2joKS74-Hu^jJ)|2H?s&0G^KdjQTiB3K6%=1vKNMsb4QOzlOdXF+{kl|j{IJN|q>fgV z+#%I^OOa8*`aa(iPnaXm9+TX8nE>WwlhIM`t$H~S)#L3vM19QO!0fh%Y&87bCHU-{ zDy8xy4Y`48qNC($fTNoEi_K5c+S`(0&(_kNSTISUv#Y-qjLqr*j0k5#M*CrRYhG*9 z2@}9ufZ5uP+s3f`v(jBkS0~j`_gcrCwcg#{9HK=w^*Q75NoFfaAMf(!1u{ugEpv#@ zsYp09+l_;$>a+}JYAy3+dSQ$uK-IgE%;=%q`%2wLWQ(jnPW8 ztBgKCdq(YM=5TP-9ir~6^jD%*Qp)Kbb^3C}aO!N|_!-lFC|EQg>)D8CaRB$4%KrfR zU$us~>iH8Q+97jRyszJvwmtw+Ivev-DB>wqRI`fi4s1Foy#F#?vhH}XHYYXFsV0bz znl!H3_}o_6Y?ef`s8c!nyhpBBHjz@8eRfVQ6N;!%H96ND;JRi`s@5lQ{2WL7d5-r# zbjf@22}gH3F9HxEOB{7vuUdwvZEkjP%{Z!&@>PNIeK>T}k*xkcm(U)wiD%Pu@&0p> z=kt!f@AZVatDxh>?DI!2OP)nx_K@+ba(G~kYUrnW`{0=Xz+atjp1OqIc*aJ0K)yTq z`$JbJW6h#;>4B*#jfd*JwaI24N!3S-FP^P6(Ua^z+K1lqO~@h%A-Qiu_3U+|nLpiF z|GTGCPfA0`aSVbyth~~KEfWH9nvI8O;i=qr`0RUK#O}q)^Aim^k(RP(n|Je7n2Z+- zADGQ4?$=<7b(B3ZnfsBTs9E=6$D+kLXxsVZI%3(*4$ZCJg^PulHvuXRh>xv~v2Yo$`MaiF|HjK$rzU-pj$q z&%0uGtgy6m3cxAbCQdLCCMbkW7lEQtysw_lC$$5eyl-IY5ESfvX-4GzFeC_LJBi#D zMl1rs)s=$e5j~qMWt0dG#TDXn8(#I9fvz`Ox`3ffZq3~~%FIYjrU}5Gv@L0#BwhJE z3u7ArsFE&q-UQ@jO#z>`9gG9s%QyNvoLU7NG?t^C`TftX7M=7#~P-|?L&c2ak0a%XA<5ht};Nh%fTyBM!F zJl1Q;D8N6p&XgM)BP}u%_+~XH6ZEl%T-kLZ9D9~Pk88)x@MEEjd)iFjdy&RG`8%lX zOaIJ`>M>{5cqj+DHsbYMn{e%`5$|8@Ln1^B;T+6_N+vx<-p)1HC_aL%YQnjk! zi+!fM9EPN{wNkWZy)@uEa01JNz*(WdoD0AoZm*jQ|?)#yJEoT+U1o*LfldJwt= zXjia#2(L`-u|zmvJOUa-T{NE)N$a!*s4w|b)#w6)vOIHfVe2c=0y#B9A3CGQ)aTn# z5T_6N{%mOvCq!t-e>ZD8t26pEUn-{}>OjCWU&rPtrLYfacmgv^DeA9#DtE8h^q_3? z1i8taA$g_(T)2kKBKAqeN!*9@gy*mdjs7_n;of*dD-0{dtfojkA zG66g``kZQWGzor(-#wzo^lLjWxf&=RAi48lw5NSmFdU$|)($6}Xa`% z3mLhnKO$sH?7tb92f#Gh{FwoosE^7e`g{Y8mSm4fo>7T-erXOf<&O1;H@vT3u$*ys zV79Yn8SFs+{qOsm^mpF=G<{O8=<{68)0}L@$QR4&rj+03PJNU4-@cl&XF7$AKJvc7 zk1nF_M*#9a&TW0hDE5y^1}<)NQ>+5RpYSshO@5mbvDO`WP=x7spTFv>^tBapBf6uZJ zddlXlXP*DC%TkG2qQlXya$deQD>VtG6C7iErh)Y_5j9pInC{q)AtY z@`(ccn8tRlV=vU08>6kqvZm{C?|Uu8_Wm2|j_~vSq$MrowoBI4RUR(3_p0yu?u>dz z`yf2~D$$1R5*t3l1Em%kqF}Y_EsgH_3RuQKmalm3M()da7^(Jlz*B=cKQIH~ogdbY zrfGrjVyUR3@fu^0Or#RTAz3Ki?aihZ(f!Nq^1%B~U+&yx=f?J!9l9u)VMd!pzv*!n zdG30`c8PT8^_cc2M6{Z&v}mwGo_g#hwNk@XQhURhF)2M6K~vI)5B+IZ?fxZdfpL{) zI{eXNbs?i2U+zQ`nN-qa{Yb67{(iB03IEY3d$(65GD%~S6 z>gHs1&8b>C9f>yJ2`WsqGZabf4&&`~-fcOdrdyh!q2$~Gf`3(o(9J-zy+m?3||Z55_j1f0*J2JFgL1jh5f!1*20?F zGa}nFO=-*Y*yVLpV+v$DM7e@W?W{XcF_@yBD1_34D8PiYuAauI6TJY6WJ@Ps?C;*; zMSuDkuC>)I5FITI@Ca{fBT(kq&*L1|7QwT_{T_LqW?ETld#Ri2bkZ2N>~}R|l%$Y@ zk#YVAq8l|r+e!Om-tI@ug4Rn)yJ6Mly9W^ccik6zq*wPkKxD#KI8%}K%fUt!m?Sz} zKxUzPFsymq8dGx2^H=xr)I5?s#WHoufc{qj2Lr|PW`k5pplETH29r&P5zY&p53w5U zkhWdcxNM@Y9yKq(d0D$>r1RvMvTnU-u7D@(Ns-7dE~!c+0420*V0=VSc1qVw9ETxA zy_I{}h``S$H|Wtxx~O2JL}QCX!vS8k5}`3b0AKE@j!)1d!jH~lHZRw@ADb~IdMd?!B^1m(j`A4>w^d-K3m#xO#AM^e9>ZI;o&oKBV*EaA^ zm_mg?*Fov(&H*-G3Hx5!dC36$k3YYpKe#tuEQXOZq>z=usYQXy!P1I*y|kWDDHy%B zE$)W5+}4W_X&xzmQv$F-I7jY5Op!+2?@N$1^>w+WPS+`uc2^jugXM~TH96JO4-?rQ z(Vwx574I-ZxAaki=faTPjgh*35%w9iK3XOxKjO97!F?7|196CGraPN+Duq%mmrY|r z#t@GVTU-m}uf1zdYH}AvCwKMLm!<^y6nWT3ted89=Wixs@q|^^GxHZVzeWFp>%S@A za$5!-82wEOiqo59QQk5q!+hMW>xmvkuyI_|U~-hYu7xv^4}h9s2N8XiErGu0S3dF1 z^w(B$6UV7uTe)Y^MU+MQvTvIpcmvanGka{S7iSnHcY z!$qb;9x2}zbxQl!uYZ|-_Tu;G@7(@N^ibULsY|1cLwv~qLmLgYatU>QHps}UoP!(5 z_&^2_S*dpemxl$-Tp{C;lmE8Ms1RMpu~0@|eZ`2U{| z!9S7gTNBm*^iBT#5qIi4+=fu|0}Fh6Tfi1YEo(Kw!L$^lR|H*f5UOHM0HC`-tH6uM zhxlH%y|<^I8JOtcLPB(@0XB%dm;lggyXLSG!snp?v~a_eO>(62lqs7)pzFd6CrymC z$(#jpgzH08u#ZiT5IxuQ%1o9Cs8Y*F<@Br01(ZTuOqOp#&)y;#jWj-ZI=&Z! zJX_ApIy!qvGUS$OPvdorp2@{0W`%zl^rShAI{&n_9GaA?Y57Oh!Bdn@@ouCLeG+Dr zr~{500zyI%sH*JRUHizQ83)MpFw~lCZ|iU39_olv<99w& zGaV=73)czI|HyKX$s^fP*bh?Z@-2lrXsKq1TE~zR^fmhqPMX+%DfdhuVVw5sGu8HXI44Ks zHtBg1JVloDW^>2HPS`Ts4EXxNz~GNJ4gmPQrz*%oP(pxlgob!Vomm$v@4P3 z`yJ9H=dgh#0Qt%Hj?ib7`}gG8<8(2@**H<8Y2J@*k4qYM=O0d{$d^7*WHBh{)2xJ= z(^jl=ZBdG~->cvOZeOn5F)(16rRB$|GXvx+&l zxi2x_n^o4zP}Ln~$@H#_XC|s0O-f43MoH^FS$2rxbDk*ZZ`&gny~_?K$DGd3OLa%L zDWYMWEo4N~N?)Xer~C{mxoj`=TK{wTzMePwmD_iIOLdyt_rK1z!(&&&IQlj^rQpm{ z)bX%ZTGXHG0B=MWduGAV3H7F>9!pW zw<+S;+Mgfr-Q1i3`*m%yG5GMX_HVkrbh3o>JLIubbMwF+sS|+l#l0@`j7tNreh*{!a#Q1PMUuYCYAg^ z$`@LrwGq7J2d#FDEfaZ-6^jf{17fV#ES5GMdh)%?ZB>HzYn?-XF% zBEvh&R6WIXKFPDb`WpFq@J=e^>3wrNC9G(5v2WYN1sYN zOi1$;Ka&jb-l>s;$3K{b)l`bADb{5UJi5q({~o;3k;tL~heWE6l){*tp^zH@QN!3| z2KAK+q#s{D)4%Vvmb(cq0~8=3VyYHPq&owVuZz9wYO_{Ae?u}hsoPf+G$%MO90?=6 z0lUBCeV&%6THluU1+VHKJJnuDY%WOD*e}(iV?)uXz3ElDS4drIYU(MQ@5%!L; z3b^`$nW6x?Vph>4blal)Sn99e^52IZbkM&Apq(`0cqvm%)%LZtAk}~-I&HzYN65I@5&9TOr zZ?XNUELn|~rg(}Y^@Y^es%G5x+OP_$)V8N3lKxfRFz~e2HpD4K-gE(QWMakqrtCG9 zl#LfPY91VA+h@KHJYqrCO3sa>q;j0CrSc_!xux+9N&kJ=(J0Zu67L`KEClV;3GTHt z#lN5P8Pb~1u1rEYvl>9_;*vQ>Drg0!#f$yOnazwbYABFEZt#Pn_N4C;z3l4Z4yn+& zO%;$(^SY+B(l-U151`SNnz2yZ$pA|VoJp$g8>J{>3_)bw>}=`7JLnJ`kD=Y`^ewQ6$@ zkhRk{XVK}tY(fJDIG$|=I9R!IXnioJ9&1b#PnA3*WxTgPwCL#6gX4qmht&Eh7i5-} ziKIPCaJ*^3bf?w3IauKLLT&)-cKNnGqH_&sYv|6JIlHwt_;=|I^vYUdlSx@@+epIZJZ4lBMYBPwjyacs%kV>fh%uVuJkY{uD2}tMlw2H z-$JgtwDzZW+?J$!-ydjocR^o%c0>P-SHD94$?cz}8_k>lv@25gSF87}bdrCU%s)b( z4#Ka+*Qgp*^D8Hx6AFh8qqoHX-)d=w`*R@gP!XUaZlRcS^&jwaKgjFw5kE0PP83Ql z5#k?Pa|(9AqHHXHd*_DC%GPDCjH z-KBKVOHfG_FM%Uz9*wsdm@|5Etf-@AUeq!rGDu|;BF6$0iB!pHfwRK6 zDeWM-Yqo}1M<0Khi7{1ya7gAcDYln0H7^i+-WzCr>@;_1X}r7kAJ~1V*E{jge^)-^ zQ9?)!-;FW&KF#GYd%%oz6uM8L*`l0^_70%81B<*pr|C+XM4po~!*sFSFQ_cVKq7kU z6!36@nn#pj>gF^7$VP@WJjD$XWERMQ zo>f7kZZ*xd$Ba6?_L6}FnV;ppHNfUQ97Z?mu7;n~pzgH*#t=2LNhn03NN3 zQpo($rpV&%z`H`JrrZEAO~WfXnr6|$yz03}nsPt;l2&=Mf-~^FWrHHfC%WA&i6*<9-gt9nphm!u&cdmGX*p3jxQCJNg_aE&sMpiUIJWF?Z?csdppLK91t~pE?`o&FKWJ|1 z=0!48N~&}LtTXJ=6Z6sggG6Xg&FM_!UjF$a=4MNW%6WxjAuN6r9X*bbyNwyO3h z4dNoBUp^0Fqmp2y5snwa?{^2QPv4IX(LkZQhJBR^Jtb=XF}>TI@sQboeESS^w;$R3 zwl_Hh?>&2+w39z+Q6BvEN$dKBT+5x@U-&F9>p8n@QjL~Gs(jp&I-=gwat}15S zdz(xiaht(Y6{eW_^w`wm``maC(ZY6{PBq+pw_NjdrbG4U#c9#nyh)6=o@q~lgq*I2 z{Vy9ptZOhHJ>~n?>1<@}pdlQ!lr~pn22Oa7IDri)t5(6oy_>TsSdRbHxSw`uEAsAq zZa#63%JzE$zSa4z??Y;T52lY**z%9Hz=zJY$v~>>G;Uz+s?1f}yOfuV_G?0xlEu5c z?1b`;&RNPF1tE_TWF#s1i!*hqhbaOkXR~5stp52!d-(HR-=!Mk^?`$X^4L6ng%J5& zq^2`#_8DT}bQEcwnkRG(A@_XqPN34!XQ!|9U_185gSS4~7kAB9ASeue1UlZo$AzET zYN&vqXaKB`AvWkfzr3Osm)8t-ZmpKLq%P+J_z{EUmuyfL;P#uhw;K7nPFCOXo)5@d z7RoOX1?zRfB|Wp%8m1F7!v^K`mcDfPOxv(@$d-bA$L+nje@8bA#P4f?XO<7@dv{6N z=V$psh4z9PE~-~@-`8$1=6*@N?RR4AKRr-2(0}sjr!0f+=}XU^Yc#ez{c3Ze0$(M9 zGXN=Iev5kMm&^=qZf|H@c+<6dvaGB~1g)n-hS673ax*cO&)>4}D?p;ut2s>f_PEHd*T6SBMnX$a%8p`Ga+h1XjAz^z#EXe|1yjEEU$nm#1hS zfb3MqiR3)$4@7UeAz_$e{0+nf0KGlHK(pN2pj%M-#Sjv8#xTcm9}ohq51i%#oEdG3 z)yAzQGIGoZ1mJj!6y`DqhdpZ6HG`HZ*Avp!k+xatX@FFX1_dePcT!V)XM*b5Y7QzJ z8N8lxZU$7OjMF_LqKfc`?KT8Q0jbUK(7LNo}*eTs~R;{XgmTK8PO zTcHMWtpJLLC!G-t3=TyrqrI}nr23%EQSDKAL_o3E2M`Tlhj3fL<>Lns2V0BPYW?_{P39~UHnMQ(RFZ!|5Ny^GQ zvxf)|=KLb(Kx+t-@ga32Bawv)efxe-J2@AdD?WZN^xdV1^Uxi?gU^me0a#3x0TLTK zw?0#btdQ$21`addDN zB!ux5;g6H%Bo?||dVpL1;jAHzCb@IUkRsENc4bH*k3_)zG&FlGZU;hUEmF=%;U25xu z8BQhjHoYMLYS<@yZCexo~)#bUI9p>d_Fh|qt(VVjX5%1Yw zk@V>Ru(Q+dh5kFgDqZrSyRh7Wx&z5(=o3)9dhO3XeY1H|kb^o#=(5c}bR~}xauCbNR%xr|;!lDz2X*v} zI-pMgQ9%z1%7#?Pff6N-g*Lrx2`Zojhy%_g-b~b|U&Q-n&&Ir0)$O|`DWWDte%8z= z9_2|i&lqE2`SnQ014yepd(;P$d-zm$bgQ#-X`dPI*YZ(yn)esqi&0jy#OZWon-`H6 zr#%KgwEJrh!qcLy6myco@afU&{TLU|rAl5_X3m4KCk6agKzwBpRSM3O#Yp7Ywe5@K z!4ye@9IBTPGB2R`u48nNApyEqq~@&1a3H;h98g2IEC36wsXB9zx)>i01Ft%DJLJkSzu+&38e|PI*dkgQZ)X8C0g(XjiYffYy ztylqqkF6{h^h*6(9JAF9f!gD+OX!}N7JEYUU0oy83NGf%Ufdp`?XX@X>4wySdSha^ zKQGOR9E?3~r=>QB0_a$#M-RH@+2!uYkXVkkPB@=e3SQvtp!XC9-b*)OA10@ZzNUWm zve|I;-LUi0LY6G2&J*Uc?M1WE9(!aP@ z&rkj8<(=jZ61%U<(lc+Pzx+(C!p_iMS!w1?2$_i@!w1p%IbF&X56``qUPuT$D*Iit zao6$$tSLSEj;CA!K2th(2T`B(D#hWkXT;v3CS`iAa_?~MvKwqx+Dule0R7m{48x}CX$pG#;n<6LAO4{=Sz#kua zq>kaAQp5Vo&tA~=YHQwpEDQ_aB>?m5`+Kb&UZ(MZ$$Vs9KKODVQ8KNLTF*wtJ*tvb z*tU?#eY16}>a9aMXCwBIdKG%#Rgktc>~HSgX-#oqe$ROxf8grcfNg+tGC!i0i2YL1 zMejq{o?i;)@mgOp$n=cYYopPFrsT@q(w>0t0xDiGvbvXO3x4k%zw7q)9hGq;S}0&i zYnPfcL}rGzb1*3-1?yL+wrAk;*Fj64?&u$s);AaP^iLO!or0KvFh#MUouSB!d zJGEnw=my57-==)LG$2n3Y6<1@2#kleg17GnuoPqy8yb;L0GfIRmngt&9dv?3?uK+% zT95)v`u&pE;ZLnD)oDTuO)E5FIv{{DF;;WmU$Mbr#R~Ix7_@wgy%H&$m?>#&p(y8L zX(<$4LDid~i0doTyyFA|glS(G`-c$QZt5$%wP#anirG=iqUi9vOk_am3P9JS=V^>c zA!%*L=YF%^GCsKqVBDjLq~7`~p3@h36^<8!DhpX%2lmB{N0qMgpbjZ(6~buiwHf@4aWwITJuih|x|RG8UZkya*&AS-~ZL~D0SQ*vXdI2MQ^y1PfT zzxA_gsq5W>Man*swAcrn-7X4wIj%5@Afj8-r3)ZD9$-`$ZM;Z@PkpWNeqaISkQo`Y zoxzl8aRe$`Sn_?(Wi#Lq&W%TGd(ArsRX1W_;*41B#4v+Uhq*oRs_1SrQncEM>Al%j#n=OM zOcch&dZsOnq7~5E9Ul(x6!oZyV&3eMj$Y^J6s=uex-_{NggnjT28h}d9@pp|$ugk^ zE`m|s>2ry_t9_0ro-Ue2{^Rx5Wj}5{oXL zsgXDu_^XlQdBScVETY?uYA{Zc1IH_5s^L94G3|fH_uudb&$ny(coICUDsO4Z3y^Q3 z=)a|cO&UF=duN4q2TRi$1|DW0%6O5?0nCY<@WKh_J)TZB&WA3M2mh6e zZ`1$e+25d#%eUba1KKI&OFkpRh2Z>`vw=2W>^0|UdclUTM^xVH)0Z9>=e}20WKK+p z(k$~AKG!odr<+UQjyg3Z(l(F9NfV{5(BNw2H-PPx;zsWG=xefP(+xkkHbaJhm(ftn}KOf_*0NkkU75@90>C3;ybo;-`^zFwERbfMskA9MW zAD9mPD$|nP2^Ju0dC9c&hj`3C%QW|=nO?qP;O3Sa{|@)}KVrK2pRNTQ$A%~gYC%O#!b@)VGv2R%Ym?}=G{tER*~M$+YA`KzQ8wLik!tIIjtBaq zJhrd!Pp!Vr?Z4r_|6?B8CzUiJUO~ldgE1XDg>$FUy~${y>|>>4T4pCjc?~l>QV6d$dDe&^Lmt zX2sHM4gr9Bb~bm&G!UvpP$fZPp6&Yx2gl26r+@V85TB8qBLTxQoKvGckD}??3qZM$ zr&6~JP6uz80u;ym%;&9(&xoypr-v2YPEZ9+}F}CR-295aV+|-s><@FPqOq z{6e&Fcx~Sy4YP3#GCGgn9gM;H=)5P>CnIZF0x<^-w~RuFuuks0mDB;QrH0qsLCqK* z5$wj#rG3d#rjJ&e`vh4qYP!N;YR)ik#?6dRIcaAeDc$}|Ofgrt?;(bR$|$mq7#rFJJEWCC)h z6&*LC3sskZgRa#|M}Jm1&WzPshfX;HT&aj`Q+>RxzdpZ1O2sx9&vj1HSb9_*3SEzu*RuYI+=$1WV1Mvv+sTG+Lhr{ve^u@ zT|;-M_M9!FjYI61l3DZM4!C$u?8SF1TS%q?-H$vsV_r4A{iwUPFc;j`^(twQm-k8R zxFRauGoO|BS|CcEWpiqhdp$Xq#&Z&qo2B^Nu5#3&9{4_oDMauEN@@*5(ujJo5tj!_ zY@WU<{fmE{7(>eB`XmLdcZWdN>$~UNbQU&J&?fMsM9aP2ez($ukl(sp@z6C_)6Up! zq}Kh_a~du#G#jX7<*lzjVfub=_*8jd?P9MjH+|~%*YWwoE#x>48tLxqey`p4kc(Rb zM00~^H2@qzEY`)Owh*pa}4yethx{jU>-bmD`Yx zhEo^+-s6h0LO#5r*&E$?sNHwmbd^4emcLHOu9(`*PU|&WrIl4W)y9LD%x7IU48ZkF zmqQ^-m=jhoq!SI*_?aTpFU}H~%{!c9r>1+<<+@{N-j>Tvlqh63FF$KeVxVDZ>0sOU z>;38031IxOgIXW_CYJ5QexKi*PQNyFKRTiI z%-M2|j=F{q3OtfMA||zi5{@XSS(ZGg5gzaZ3+^9XT+xf|m1U_YMI*vJU8N8viHeqH z1hD<`wg9*<2UCG_q_`* zqG(O9V})Rr2J#5z>Vicjnt2sZoeXEQ*=Adm zc&4!mzK8Mh_)?)w0QBv~fN>aPHHw&lXu7|*{ve`OK~n*`-N3WteGm$)HZY>FcR16U zvlNj>MkXo}J~oGT_@H)v*pM7^bA|xEPY$C_|l~y)a(5!V(`=7xM5=A1#zR+N3l> z(y1p0&+g&nXmyb4FzHw{0$TcmsEq_L->5?h0L}&Ub61EBwc8W+3qWy1A9Wcp;;cS) zLAXtbHZe@*f#-B%OP%qx&6B4s-y;ROMpLY(NQs&EkTydKlr`P8% z6K!haQN8QG-;>%owYkr;?^KrXRQevVgVc^V^ewxG&%;HsbXz`lC6x!8%QXy+4y;!= zv4nu1lplYU_sQ3;ujpfbUj|6ByFbt^xA{hDyz!oT!v@7S%mYVt)@cUi7JMh?Vhdf! z&qIych9MtK0OD|#2u4v$t(oaHfBz{1?3diHkGGY+#fF@Bhq060F@EI-T2lb?;Zcay z0Bn!cDyS`4us$X@07Nga8JJAh7sHsnI6j%7^#5ScK(01D0Z#2;5H1{hHn(oGaKhM^ch!Rh3 z2krN7qR6UK+GFh*@4qXB?J?@C2Rvm)Cu9c&IG)|z%Zw^c`Ok6g6*_S-jPyTx{&(pY zR=-N?!`_aatbynOZ>!=$PL}Q5d=WCX$wt*9OLfaF+Xi?mlRC8sCv%+a=Csb2?VrbG z7*@hQYV^o}36`qF`QTIuDt`Mx*&_cn{HSLqpl{6|cC{#h0o(xXxnlKet`!%0lFogMipn!}&v zL-rRZ$p~iWxwjj=86;aD ztC00XhhG7FW@M^LiJl1nlLKMx%}ovrhpxuEViqd?Gnr$iMm%eDbw(3@NYS32+XI}# ztUafnHjQ1>V1FiN^tJnCCac!gA02NBzH8z4lM)5zcc!oPfI{k?H&C$wVqV|3MGpHr z?Gey;GRImi{Zq`@dnQZkfe>dwS^se%dk#>&)DlAK6{e1%djMOtTXdYTelCJ%G{P1R zIJL`gw2hGoe7^A)Mzz&!K{I=Rd8#HCt9EQxDyMd}vM?xI4UYV($+2JZhXb zT?BeG9PTP2;7t#o+8BNFARW5|=lG7APpbHt;kuO<7+lHz3}}&`Q#zcAfyZ z)~Pv4L?7iDfbQB?lo&H-kS-m&f~U||PT0tTniQ~_tg2?!E*UIcJ#$%eds58jm9tKj9JNm+`jkq zNvSzYI)JOR^TomktH#(g8hxL_kzAKzK>BvKVLAC4;YftK?8+Y`3&-eZ zDibaAGqc5%a7?!hBstbR#^Ur1jz}@izMY_1NwYZ?*L{8bvHHOU7FV}Vly+ioyA7w~ zFCib4PQ zs=;iBgRAiKck;h0e%FhQt=j>$>P34JaQ(n-9Z-(MmZNDBI{M^p!9D-2;qcZZA5&y} zO{lno)(KF()}wh!z9(#=@U!YZlgN5WIbZlZjDEOlePBTz`|QK7$7~nN%(%6l+KuP- z==)v1=T&zuUd{p8X5DGZ--9Cx=0MFk8}zOm+sCc%6(uYE`}}B+{CD3OdZmSqBQ$5j z_`>xI8rarQ)JDZ}+Oy~Uh8I-tZ>YTe>=+zReOu{hCL4yAy4R(}(44M0-cx7yAHB~z zP0;Di-K!YG-fV#Ah}j)h0KJRa6w>u8n{&yyx4wXLmX&NwVxt3JFb74VS@K+&C&7w5 z9c;ESut8;s#uF(&_nhgV+xmSezN+&kKtYc3ZOrrN6^oKtdS1)+Dp|17<#pfr| zpYK|3)}zTkz8#OW)V}t+rFlEihA80K1mKlKWnNs<^NUMu+0vPlwSzi3QWIOEm-l5- zPyWFpdyq0t*pNhvzm!zmtn}QWPPC_!b;O|B$z)LXf-YAZHPuR*@Hfl^?j+r7ofLTA z%l;4CjNt`hE2xXMt}k%=I>^|*KvwNf&hdYR(y6+_m>n&)pTk$wWy3m6E-?dg(yh#Gl5m;!ml^DX^Op`?|?mMHWs2I>{0A2ilk`$8(5 z8eJKZr!0a~?O+87UT)X)$8T>mSmnjVR>%47aL>H$K)s=+?cGW>g2} z*#xQy_inn-zY#qu^LNE_e9ilQWMhStCJ^(YoQb_cy!MoqB+v+cFduK!VP|=}N)(<%^atx}}sx$|d3|21X z6BLlhcCHUgjgKJ6EH9Y@@q`qiZiUDaYy^w87f}1&K+2gHdYfO3W-YX=9?-p`Da!Ro z#3h_3^XO9roau4Q0cg1jo>M!QdY=I4lKsPtk^PmrK6)+Z$-E_1Nmw_TVJ0VMc#CT2 z!3aUwz+E%Ez`!#NEfYaqyw9c6_?Kg@D+JTzb5T=7pawVxfG)_v?#{gRyXVbth4Klz zVyWUK-L)?d(!VPZt8!a@l86x5QG#kUbL9tJFcRudfT$<+VON&rUI0fxxW93Z@KlX3 z*lSsY5wuLkv@K7TsS;>x+^V(aF(!Ayc5#mFo)YYH1xt+iEOFTzE!o2f^v@JGK_g-G3bcRGS@VWfX>$ef% zKpTCTHCyd|HGwGxkjbO|lG74(ZUXN@{Z7wcAtHXZ+!mUjWgG{3!v;L@Ko&==FYy_Y z%r<*XftkBmTiLkb1sO*RXEeO9s~Z+``%;fZQE)u#KLEv=PL=dbOO5ghY=Dr-q^8ce zfQTeD2l(FtHn~w2YZehY84dv=_zg63-gMBE==?TKN52rAtMM0~f}fq!?ZaSD=WSJ6 zHCjrf?t|v)o$+S-Tzm)~I~|$?hYa)&NhI}E*_`U1KdjDEWlH}mn?Iue_SG-aWqC{B z%=YXp|GP^7^}G)D69~XlE}u*X0ZXD5VS3b2E8ju3g_Ks8&M?!K{r$Sob;DovxiSAr zbLw56#0F;fHxvxdnxB^K`Bj=nOMd8eUz$UX(1~l(Hq+fme`foe^wYd2zH#`|B)e?| z<49?FMD=n?3kMZK}Z#eRmZ`RD2XFc?p8iRiGj+L$Z#bt2YUmL z6=1whQ^yb zwSDcKG30WAVm@{+u`}RtFH96GAus z+GvwI(z&c=Ao+x)s10P#aJ(b*N&7e%Slrcwh-K1qgD88CB!(k&$Z;wUV1N7Xxl3D5 zZMflhkXm+$)V=vqz}Avr7jmsFS$OYkcS6fI7}#UR*vd z0I9Ivu|E{hDy>boJxyjONnV?NnwpN$JHa~GuC#TF0jxkfy${s(?u7lhhLeN>K8OUb z-D#hJgYLvrXY*7sPq9bzokX6!Y#B{#5v{&P6j=nr!7%7}rPKD#?)@Q`B$}t3rr=4- zXX4qE=>4*%wtK~fbFsCW;zpxu1WcqJR3@{VX|(iepdP%JCodT+Kk!=I?O{`LI^^(I{CG0E+wixIJUe9s0E;*lbFGvHFnOF^8FR#Hm$) zsDrsYXVa-TLzojRkwlK4wE2LoN?s zFf*sq(gYR>ATNMA@F44{{q4^5$!pBdR#|^f&JR4h2b2nh43DPr_% z+Zd4r$g`@-rvhGQErdy{>zA~7{)%?@?`YcH+BgK)Pz(ii;f2pcDYz51H;I^*=;#h9^1;n~sjS(=mcU zEysp4TWfCSg4vqDv+!(C?=$sgO!$n5>W41Q7jX5Q_px!- zg<|S^jEI_?GjBupG|#(up1r!drWacS#m7zv(^@lNTD}Z&U?c;h`09;FPhxdxNrmGJ z77)L5^^88_58g2dq2M12j+g7L0=a&^}ac`(EGJsUbcyS>#(G9&SzDY*?yB&}U1k>bxTuhj4) z{~L>?wkyV?NF|&Dnxa0M+G_|@1e2}*7>6U>GdAr7@RjVN{(dbgw zPn{?Rs|PK0PUYunl{D4-K_lSzbbqr~aCprE?7PDrH5q&1uran201v!o)oZUbg|l1d ziamC;kDb|fO5WUHLP5KlakfHWBK0mcMa$C$k_ovQga{CCY2fG;n`{muvc}iU@UPT+ z+#KD;<|s;l=hP{7mX?8@k;iAD`uEC%-lt=U-4R9N#*P!hDHWFc>cv3dtdkF z_<(d@9#N^O7sa#R0bZ%iN{tE1nG)~rwMK{mG_Km@;XWSUIxaqM4diTFFI;W^Ezn+e6_3wmew&vH^Uy|N{1RG zWHJt>2;HD;dd9Krw$l>CD%EHN@Py zq4KyNMjLb=${H)sj}-i>sB}WEdTc(iXZpek${-vgCZh-G>dNTS1Ciqfj9!zaQogr7 z=^8^(&F1W+JfI@-!@ccQZ$=%>YQ{7X*oznl*Jh}E&h1|?TKkUono(%R6) zA`YcC=;T=^9K6nUb`i;yfDW(tjJ#x8^lX*Y2~WP+ACivo6+e3A9`eB>eS4rTxxFo(cd%wtt zkG$)}q0n|Rx^=~AwYyCsiYPiAPfiD0@KtI`NgtiG`DWv0*0i^W3Lz@?gHn4IkD+IC<%h`^g*_n5KWc z&h!=T*E7E1j_2_^JdfY}mgx;D!z4Qt>g1)V6vtNc5Au*jigAJGNAd}Fnh(0_ z;$O@LemWRxj#4SWx(s=;sv*(TG64E2P`ft?G>_l`>BRd_T!`GQh>WQxjGGnNS%Rqh z4h26A&|GUZXDB^xcpnX%QGRQgW8C?mlCOH9V*N^SE+o?4 zQ@z_t)BrDq-dFLcgL6g$L9>;@@w&~GVqa8`8UrD3wJtkCDc#cA-nA_mQOL^JEO!5d ztXdi!yta2B7@&sZi*JV7?34*ce)W)S;Bu;+lWxw)sDpb?WOg#$YitgyItKvt03=KM zR^G~Jmi9}Z?too#xy>oBN9Sb#ZPblB&HI$lwkf8dC7@#ioF+qOtnn_PaAE_@Lf1vd zl*sI4vUoUQyIi$ib?@q&Oa_yAt!z+ffVTHD)LXYt_|@57bUR}&4v;I8JDrm`dyk&M zfahbovHJ2W2fHQ18+7CfT|w8Sb1JxO@~hf{CIoMImNl%u={?@|u+ZCm{`{=b+)*&b z+Sze^e;_Dkd3pb$EWu14tysrI^aR9Cc~KJ3amqwzmz^u;1;?Nkh(;9y>VP%6BqDlH5uwl<-;~YPLx8YV~*( zpVxIn z)BM{Uf2eCeH6A)^@#&XlT9G-IfT+Rr%hVY>2F&%Xma8)wP$o|~4mOFsM*gEx0O_Z+ zh1S)2u2bZtIAYgfJBH(5J7n#r;v{f3=;V)jB(IS1XO9%G)abtc2mJh;80BZ*_rUC+ zkY<0)Y|odna3wNfxLm?|(*D4EobiD{GQaM-dFW&lKW{Y!yK|}9os2!#fy);2`S7ly zug)iD_xfS)KK2DX5;EJ^wfv*<2M-Pu9*$!=Dgj9e!CuR#@fwbnbTo&L zT_%4FbX0yeLl&gY@h)|JTDGJ5j?iPzn(1 z<7!yZJmSJZbpyIIDoH1D$LT!6r2L;6uq3;d{GG0lkej_O&b>kPSVS_r_3PfEFb6Szi*eWzr1c7n9*Q^K` z0)PS@3?_cU^K!^G(P@C0R)jQ3>2*KMgkIYwRSlO48V@V-TF{mb5NQ$1NT(Ins`Z3u zXX(FH$?nNzY7R=ypX{A!(TYt<0N=eAzXQht@H*f)A>wG7AegMq^7k-)h==@$RCUz_ z8Z)N&4nG20#jtaLA&7x%GnCY3*sONGY)+x@FZhL>Z~R%X=k#{;7m@MvYzQzy0@Sa` z>P>6Sy8XVJ8%w8E#egDo0x9P;ouAy##*nfRV;1UiuaKf|G0a}1^ZN8|GyU97UHRCT z`Pd1_w^y>Loy{6G#(l5)on!{W(KB^CL6)gOFyWbR@{^~Z_x+wuj5AeB%_+6L)loq~ zW5`~;@lei+MCcQQ^aCP4TrTtW<=MT|3O7flEz>3CD*XLcq5*_{?v*|br#mDTD z`?_Vil4-}AL|%8#;}@P>#Ne+BB{JvMWbFwC7C)EZJK|jQjPJk5#wSKNZyp%n{8Z|h zJCGhnKqA{$wB~dCTojii_0KBk+-ACKyecAOUDzLILRpPyoSENm|B$U2Z7@&I?(_0<=>#cI{bY$VDFS~c{vAq zT`h(Bck8MyPa&$QQfKfat$Dq>$;w&M1I5T z^9l32%zNmvNaS-R4?;X7iQKk|#i?~uBg{V@3ji8(e0a<4{2t4*|8O(VZ!k@GS9@my z&;!0_Q1WhsK=;2#M~!e|Wk60q`H#8(f0;jfC61K*mVcR_yU1EaTYXzsKp?&%ecUAa zdqdV#@2|OU{|VU{HTw^^s*>a!4mtYiV0x%x@&aZ{8rDOBoNH%Zof=$sJ>t;VD?Eme zxJ_ZVFPM+qFkSxRbydT$&OhuRUu8P^^USk<_JZYi?%#L#UBANjesaB~Jp<(QdNgo6 zd-P!sewzdqh9+{EeaVk&$nf#c4L+Y!L^-~W=c9d<;g|^LumHvY+IdO^mt6?@UKfRK z|ILrTD=v>3@JO=xzBRsR2Ek^)bc1;Y$ec|NRhc(ai*QHAC!Nl$;IX=lMC!>AQ=BLa zjv0Wr_dD!ilR6J7!0e8qp7K8Ww>CgfcU=J!8Vs2Bsmzg2ES$i?&}qb4f2vcSgP6J= z0LI;k%=uk{UhQdJL@TRZde91)yCRwnOJds*k@p%jKDP7`v&-xRcHr`iS66^n_J=o| zLJf#i^Zi)kVc$QQqTG~>X;?K7n&4bm=Nu;-=n~$ahmh?idm4!Gk7b!oP34$-$YGODT0T1_u?n+77F z6W$%h?qP_rs|>B=$3T564_4d$awlupQ*3?UJUZBXTLi(uzW0)PY9q+hN091&yA-nq z=$pey*vXuJ%MIbAip*>t^)9wfl=aavCL#y{j7skKA#vxT5AaboN$~B1bU6ll9HC;98ZA zNU3hi)u2H@8BQ)$mv3V80Wuoa4$w|`sOzuyNomATT{6lMigm5O=xN1|qx1;_Cp{f&*Cc3DJ@u{M1G$7OXi2v8mgR&U0UYnaTB49)2>NpN{o&`i zmKiYrluO!>boROrU}p|3NY-HGykf0oBu8;BV43N#KODX5$UgMJwvmL)WT(CXC_nqs z52Eu#U_V`dj#dii%pBGewScS>FFnzdbVer8HQHXV3E0o&*RH`1k=GT zs5162nH-gn;bobttvc_LdgJS$^)=!Y(wV+5N9D|8KA)%WKK%>%hkv5hj( znay>&Y49)d?0V5AXhLL)YI0KT&OvL4XdXm}Jp=w=4rCM9`-7uTig%PBRsiXql0oYa%bVaeVo{Y5lubS0DnZsIg5={_3s#zf6VlA33>4sEh=x5&q;L_zwt=RLQRNChHw5_olerGlgoY4I2| zC2<9T)>4ccAeptEwsu3naLh%4G9#XlD}L^R6}Kz?C$-A&8N40GJw?qZpD`%kQKy`& zZgNEua)JTEmEAgZ%1r5n$r_4?DVU{2EMh{;E0_RazyOs@XqSB{ptw7F_?-Ga&ap^I z8T*v6*U6Ilh~NDc&*5#gGh7jgyH+CyuVb#Q_L5Cj(1Qd4U6hqIYR_M>uyw)Uqtve- z;IS(EVJaoql7QyYcM)*!@9z*je)_y97LK#fL`v*@SAKJ9Cy4jwf!FPpf!@n}i70lP z4{?+k6M)@FKV=3`iKZ7C@sb4xaS{-(UIDxm&y~5uSvl~W+}BCZ+a34$?r?7g3HKaz znl8o!j#b&YMt0XaXL zHMPqCig+)Ec+h109chmfA|6opPWqK=C*wE~ae*jneM@UED^O~V2JrMxrpV~C z9?hEltr$b^{hJa6cpe5P-;*?B$?g?g5n+?WDk8M)U4qcB97va+>wOnV2%i>0=b z=&Z>VOG}}ba;9@Bn?r%0i8tME56L`du17_Zv=G;1++qaV4`zhwg(um&BcjcQ6@5q# z)X-Lpe)?)3Uoeo0(UlEN60KdQJJOW(E_ioFCf)xUtx}bTNErfxLsG_`)BP5P!HxNx z2wibHq(bxJ3-=e|+)^y%F`c)mI|;b4f;$L2Qr zfs2hg>wL_#;fjq1h0&-(U1^G5ak`n<2zbY1cr&dS5VEwJ76~Qujwmn}4uHCeGfsvA zfq+6JS>?8b2MZ1CqQ%_^Ak<^ae_tjovCcF#>zs_fAB(S}8Re@B5ae~P$ZDOdt>3+V z-MoZ-UHmv&f8F@1baGe`b;jYkh9PahdlNN6>qZ8o!tS$1Q&-%b<`ib}DBXFVu^9{1X0T8hYYo2Gh}zAT?tS53b6-+T7U^gq7- z|I+37hN?%P%XfFYU^g(-rT)neqeaV0_k$QFH6^8k;x;oPM~=)d_jePr#XyqKy#&wn z!S;g9?|f|kdArh67q)+fQgb#T<8O5l?4?HXaH^sQPiulJL@;Uy+t3*G?{NhI#Tz|ndM=DWBw7A%< z1jt^i{+Bc&RF3&aya%p}=`E5r{g2p4{SPh~5NCPoQ!za2c-?q!*~yH{qpw!0$>`e3 z91_!DdnG9yo#^|xA20a%AITC8o|V3C`Id`Xv=4*#k^A(M{Qa-+{Cg zr?}|hfVj#;g5zur{A6^bIT5L&W`Qo~d}Fa*B98IBzsHaM5P$GuYbn})YhUPhCZXe+ z%ZZ+|tohSStAA?EAo@yl-$I`;ef~q{aiduBUtXHbbyF;2k-{~bLO6%+9$Tu`xx9{_ zHt)rvP4p87-6}m!w2sGl{+_hBzjogfMd^(h0diTu!RJIRQlre?-3-kGQdhYVydQE=!W~4gml?{X5w`3Jyxvo}C#)Yd3BO)V%zbBxKerDBsICbp2Qx$uYa74zaRL5Bj&PIV z9UwO^Ip~qq`KdFrM4mauBJc(PU(;gVyZfom_U~-^-1f4R+g!)*cD;jG3j7Oj>2o+C zRkdi~gGCZs2FV2=4}NLG!CrGY%@w5Lk+*QL&E`a5Wn(hUz!9ydHv$x%LJkTi>h;#< zU%@Q&U+)puMx%-5Gzur|$+7@yl$|@6Oe3;hnM@X0dOYe*quvocJt4whvr1*n+EiB? zFm%s=kS(fS986`N^bA=0$#p5srZrf4dQA(P8@Q|XK*TX-L<+0Z@n}xYx;Cio?Y1p9 z=ufTmSY&KdW&zs{90O9+0rsbZfB_%?Ue|VO)puwX1?WH#q~YV}wst!N_)+ZaCSh_p zn@u)Xd~S67QBqD6HrS(-?Vv~UA8}q3Kr}nUg#C4M!S)=U+r$0dGIF6kKSRl*Al)8; z2yp?^Eg0JZ63ng#n{Wqy*E*M>JUk)8qg2iMU z@5hVAlGJ>R+Jv{W5yu{m_x=<$0hQSv~SOwM6q-s}8~ zhQs<&=c^BNoG99CFp=}>?vB-#S>d43#1+7Jlvxov%o8i+DzrqSKXYpHEZ$1g0r<{8 zgIUh!{(T(FXYUEVWA`|qV>X6o|7HRyiITvu~*CNuLM(JeskFE8t->`x-Mj| zrGZN>v4_jtK`u+sXk2}2ff`F$wC}EOGSD5pGy5-#%Lzf(R_)}2=N^PGj%fO+T0-3U` zEx=Xyf%5RwMrYkBw?VV)8t(aAdPPws1i9Gf+5fq=wU0*b4Lt6k#7r$lD7 zw3&y)v>@6`f@OmifO#h=j3La`8B2EMF@fo3RqiW*bY+gk`H=_@Bi%A_zhxk5$N#)e zfdI0%`#ZjWMPFucT!1l;oR-$7P9aQPS6f*FV{Rgty%LX4zP?2_n(}xnsmuYCt`vML zn(F*s-anmSh>uOR-kzKC;mts{X+HopP{UXOb!gRNFBE8p^9RvScKr)u#aBB|=*E@I5Pu z0{Y6zNaVQ8$EbDXrZz@5G9(+ziUlYE!(VN$bRTIwrew7n#X&{(hoyCI=UaNKjw%;d zx`*!W-kGsF&1W_xfRY$o$_wwxlp^A@Me&o4>Gtle?$vd^()63UCe;9}G_)u~m#>8` zJd@hBMaB#ze@t3OQcx9f&k-j95x75LkoBDy49Pv(^ITxmb*`c4YJKbgknEm&aXw(W zvSHzrsg^nziEyw|gPf$TWKdm{_tk)?Z}0%=x6q;ywSYRqnyx(?kLz}XqVEI^Q6@w) zrEXp)isw@52&o``&F|P+%^aO4uO&IBX-7&_G9gRA#LDMokWv;a6Bc(o-h(oel>vgD z&JUoYMoO!3uhAt};##x`L0+}zwdSU#gQnRtI8ypvOI3w^Tg`c;8AK5gGfea7iBNL- z@s-6`A^G}+_RJ7rMo^nydsk9}->O9k9H1B~5G!+nNEMkc0rMuzI}|DPC}&=#DdDFr zsTE$FBwYEY^BiYJpT3LN{QapJfwFtsw*9Z;I*bsM9}p#b*{3XI8JypQ^h)hZmx&-? zf%d9lPokv7Q6>D2T7#ZGJ!#a6MDRRlK0KviPiqa5bt(?L2k7apxNt0{N%N z5?4dk3>qQ}RHgA%vyfyt$H|N%Li_Kir6Y~Bl{z1#8Lzu76RQEkZ|Z$-Ym;Ft!peBM zWo1YPW{Crkq(qbRB=o!o{eyp{b{?EAX9@=^?coQXm-ElrDx5f{wa)re`&MRj=;1y! zLtcwqeadC>iv1k$8jr%QPi#XZk)PjwLjUs@|1bKn=??%*o4{3hPu5Sw7;WICz9OYB zj3nt%5xHsX^m+#&St#ATW8N)&n4CsfzcgcLlCn;`cQ=WK_wn(5pZ-1a{rgVC2Tfb; zU2$z?)u>H&&U9@8*Rjvv=RKiMI572&=k^nx*H_I*^P;?=zqI|2>6i9DMsFqi3E_O= zT^aj#!Ws$JxaW2GC0>}{VEyuIOppIG1G;}^H`14@mBP8gb1s5ib9>)ktUq^rp8qL7 z^B*#e{DYO~Ni37DKyRmH&KzVJeEa~YWId#yJ7Y43a9Co^S#-3$qooV@-fxLxDUB zXh$QQoEMAkVs1chxv%ed++XJYKjXGGOe1gh41A*;)&)2HaxFg#z2?FF)B8fd!h`y{ zIHF6gSDr(9eq{{l?K^WqaV8298R@2mjDo8{CUPA7`gnW^#m#|>tCkeW2(z8fzscrd|17IjL=BgQbC zdd!c*Rw?pq9-wc5AG_151MaI~Cda6Jg*aOr0*(*pD-A6M>VE|&w{$r!dS zmsx5pExI?saT)Z$`>1Z zn3_(=2yhGY| zkwXL&UnAp!*waSXcr)ZH^X1DrCxvZlnz?aACd%6PK2}9-_nXaH1LNc>aJVUbYHfXi zt-X~yHkwn*)W&)=SE(sIi}zCh(dnt8W^+0Xpc!wSPJ9D;CgmjoG(>{q+N}W2Ep;W` zs1tFXejVTJfm7;mG49|v(y|+v{AhAz+1*&Cir|lF&L`s+UyOxJ>oUhvu0-#5)f2Be zYO)$2OlAj6j9+c8Uow5UXwx~EEuBxCoj%yynqxx>9OAeS)q-x^Rtl`OwhdzciA6rs z(OI8UHy7!_JKNaP(Z`F9s=Y~5suO}1<5usj%+b_>^5~JiVo#)6&fiy;sd@Y?E-$t@U7X8!KCX0PjGder`~4K{IB|8x zjQ0e_KkWK2kCOi!UZ>~2-<=2pg@Ih@0OQwm@zQ^d zwkM>E&uW0)qt3I8agS)kJXqAUMDMQMdr=+GKuD~4P5XDj$64wv-)UX%5kv~g8iY7W zQ~oi7nOe70nN5myzLRLv(g1v0Q1dceu7@h96M%srTuo4Ibz2Z6=f=#GW;{S5l`l5t znR%r^K%!@?)UEdn)?Qw5e^>O`?w%rI)#q9tHg6-9yVb}~TDQW|ix28~sH!=?^P{V4 z20{-ChStSc0+_@LY)4tJ|Gj*(-DA8rve|t11i(yqFHC9BVOIZOnSc${Sg#ejIcfMng`ptB!SrzVhw(g}SyJ}13f!Kl~ zdWH-|7mg4qj8;bD4m_`tS#~8+8IyUr4Jr%s+#mQ`0jZ_#9iL^bG2IhyF#t$pv3mVG z=vNKYlL*&?E7bsM-9Yhxpi?0@NqtQP8YN4@%F+WVc)8m>ZnQ)@2>{tMe)so_a>yFy z8|G=>=I{2Ybc#!Ddp@!z%;`mi5;j-P0dNbA)p2_6< zCRtzvtWfe}u1cf;(izOdT)6XghM}cH^$UAf(~3LLy*Fh<_nkxmMCv~nzR+j2jQQqr zZ(glmXZu~}O^jG8b0|m;t_wY?cf?sDdXRTNemReW!B56Fm^XbyFX&iC8;|a@Gs=_G z*9p-ZozbQ39i-LnE^61pMb0vmP%^H2LAn97*mbTLh#UN8mZ-8QTuDd;PMOR zgU|FRF>Pd8P$qL0lE{E@l2qpt?N-Lan;bp|yOqC71an!LfkqXoVj+)bMK`0H5<&2C zlA5-A=JhfMnXWgPzK{3*mo_Gs?Rk9Pc(>P7)?d0@)61)u;S4869pR4~Hb{KNveI5^ ztcw9rjOSIHnY02PSsrc6P9XGif0)!c%2Fk|fxOTq)4f;1AM-||#sxf@ilsy?yv{q` zv#&L~0cmvkVe1YrjSqVrN{w>X@X3xgX|0Jan?q+XXbNYF%(F6wURyK4IPCoK(JQ6- z&-b|MlTOv*8SMQ&?SDIWkRjaY>R=-%kJ)j|n5Nlo(56Lkn7pJiOC{7sPN#wR6Ibc@ z%j9o-k2(2x*wg>=#s8iDwfbw!(^@*VD)pMb#lP$<@&^O@LNCdjP!1EK8`UMroOJhW zq-21vXw7lZ$7CP}QbZZe7{2f>&HMLAX5FP+4qS>`*8nT1f^j1XR!sa00Vyq8r zW{^!%K@De9^5GlX$#~WDMcvORYnM75p*qOEPB!-_C8atfQsir@3GZ*}BVSJ#xbSI1*WvJ9i8gl>}MU!qQve>9|0qgbE0}VXm*n~X=r`2$n zcbzKRdlIsE=^U=j!PwINy1h*v+M8}3C7)a-N&(Ii>{t%Uns{gX%QB+ahX%4I)8(^8 zw$th|o~J$b0|A&2$M`$gMb>L-;&binioP!a9LReVbSKOHBDMpcA9q6U_G~V6 z7O&j_p5VOQro95|w|8rxj>s8kYt((cVml*ti^(tPh%1Lu_mJ42s|18vU4!Gqpa{CO3qAte%+{*I}KBwm&)>ao2W?qkk_g z{;rGLdV1yZ<)n5EnS;E((11O2#w=E^UhF*(`ekj3k1Kdlf^3jFnXl`iXT8i@lSNWn zdvCY(t1f;XUvq5evGtz2W<2Q7ulDE>j*0nrjWP@>?l9%Af9MJ)f?|6*^^aAeB?g8+ zQ+LmiqmI)o$2j0LCU*P0GVE{E61RpQWlABtrNBk%1N{wwgecahhI6m(K|XuK62W0y7NuD9CR;7y0m7(9lumd@M*42~>>VrNclUQ{ z=-#PU8h~+$+>%r}Lc}5HoOv4rodob$0RGOa5#XyIQBU9E5~Gam#lok)M?=ayFb+iyNKaQvt%m6}C&G5!8tSAIIfOw_zd7O5bSW4BD?E`>-` zQwAlrZN={v{>~oEi<>{bt<(JT59d~3&sM&rKWyDYN+L2RO7a+u`3*IV9@$d zIo2#g7#AT__L2O2!+jSc*1@CRlQFwvLTPg>vnqOo7`O%)5v1m}%+p#GAxlas4kCBA zHwuKj&t;Lm1OSeja)*eLIQPq|6c`*TMQw5SgzCJ8N2xW-|E@O!1agD3BdXsO_=;3d zRCWKX!nlysq2P)ik~-Ua{(DzZ^NR|d0z=hk$;$jI2IXF@E;Jpx8RLyMO&V!lRQNUJ zFwJP6pD(XJ zo|Nod@KcgPUc6MrLv`fy^^QTz8wS`V6UF4`()Yil8(L#cPo;zRKFP;JJ|a(&1!GEx zo+(1dM)e?vjGA&ZCeXmytX+uD40bb?)&6av2+RXlS;_@@A z=Te3m8Ic;WTf|6($9>Ps>fB(My02WmM1LyE zItVpi^O}zt%1VDBQbE1P4=|o+3g_JDt@BuCx?x=Gq`V3P8o4N%D54Pv@4&e{Qbygt zST{DW;~0({noj)w&d#?Oro0B80Lr6#V^R~;v;>71reW~NF68FNWmtNjtI~&Qld(vU zXR;aU^sKt^2bY`;*=yUWizcZ@9aR88_PWedcg~EK!dOrjn}&?*yMm(%;7UAu*|47^ zU8ESL?ua_UOabc==?v?-)tiKoPo3ppgp=NGcr7%6>Bi25=>WaRKbOJPNGpa*$*Lnp zs|hJk&nS^f|J9bqeEq;YNYT!sfYPh=!2dQ%hi{o)ygi7MAj<@796B)YeV^{>nt`FM z$V9nV)?{Mjn(XojFHU2S)O-?xA{CGLct}*(gtf2p~U~HHWBd7! z*|+QLvnTF*SMWaMm=Mjt@kZaQu`te(@iUbel{8iTWfqH|(^a}ZQ7hRENKY7#rOgMR zZVx^3M8f|nJ!1p%zjyif>EGS_ExH)*l#J>=5H#@HRl!!v((*L^@zhJ3lC<3iSL7u^ zoMk@-M-L3_O_nhe{%V+D)v;X$hfXAWb=2)`4x=Bqp8rB!ve1%p6;b19g&7igrX)HU zO!|bYlQx)U^V)oiKY5-l9XNmblf&2P&uxB?Kt# z3-OPc2LA~oxPOZK{Y|EA^6z(~d=$6ylJEaA@A#i(`u#Dl zgn{5+Vg2SCgOybhX*k#8=(g$11`vAumYpsk0b)5Sbg!1^shDKg;*z*z~YQq@wLG1e6TPEb>on4j7&iOQIW29GUT zX}M3;VP%@I4wx@QtA}H^HV>yzS;woDBV{^Puifr&aHUR`RK4BoASR#Yu;u9eD*&&) zPT6Fv)MY+MGg%dvrZ*p;f2=SKmE1EXWC)~-S5SMirT{~v)L%HbKz>=R17!C#YtG`M z>Gb+;WbLZ3_oy>{j|DUMdxSzU7Z+2P!m3^N7c@# zM)dFZa1^jGR5ODXgloj0FzfL^DgR+m?zv-Gl~jeU78avi=vcS9O~o7)Up z|NgR`*rqNoR%&xCwUM=2n*&aP?NnVHp*L5_u> z$-fD91S=Ee(o#8MSq5b$jbXjeW1iKXHq{9<@pxU0A1&4jzc*)F`oJp`6!f^L9bBii zn1jKAWy!38VqU_t#`Z~=3kAk?-C)j?Ep!-9>^?hF5`eY4uN}XtXd%JZDT6;-po`m| zW$mIq`&og$o*Cogm-D;S@j>ey997)dd-NazRTlC}WS7uCLAxf)G=UGF+BI*H&h?zI zXWcF}O9~@T3XR&|Q{CNmedzdpo!=kpQo#+*u(o7af^IK2YcKW^exTq)V zG1_TL6`5i8Z1c47 zgusz3g+Q|1+7XCEksiI@L<{AvE>RXqIfGMocbalVRG&S!yW8z;eq2b7 z{~TW;@O*avP7l(TE}qj?n06MZSJI@~yb1_4KpC2fCAb@qE?y%@`QB$d4_7=kiKG?a zyRtEG+*^w1JyOZYd_3Q7`PrA6di(XwXY=&KGiKt1C&eNeev~5uks{v5Jm=JaR}3hW z8sbv(TO-Jm)u@;G+(;kCgSLLhbGENL1&ON^{#==XmmQR4-!RM-Fr860vj|K1+r90Fb`m7 zIOajx2>D*qDVq{1Z+zq3eEG44+pTLjd{jZARp z>5q6g)cSoYm>8XQa%~_e03xLQ)s#OKQ9+_0uUG16Zjl0@!Qw?OHOn;3(bVX_M#!3C zt={QjNbG3M16OiBhk98ddoJYRhs7_Zr^S>cp(_Gh--_bo^~Yj=n{l%(V?qgsnT9w6 ziP~I}3SIJ^kC;A7R=v-Z0xa(}hZ-?LBxLcZUJnhKBocN-C=(CpAjxm&X23{Rn)hus z9}wOU%^{xrW{fM^r-*ovYr7?j_Anv5!m(!FU=145Jc=`Yp_lK2r^q#DFBoWL?^ZYj zs3ihzRsiEtMnEFDsnOPuF?vwkjYWMotJ8&cg~2+EkfPWe3=qy2Jg02nSU)3kDA{)u zgOHMWGUFycC#lijN%~wVGa`4&S!J+6qEs{Jveryf8Q<%YLe)z&Yuf~i1S4Ou{!}Ss zG0TMTs*vBf8}Mbjkc}$KT%Y``;cWbJ}9seb2vt>wZU{XsHGR^bb5P zF$5hZQv?PE+b^Wl3IE({^g~h*K#A5MJc11}7gmqzZZg>~d4DP?P<53Be6p0tcjLX5 zwDH{{PKYU@FhKj^5Ev)zNRh#WNnbRjs1Cf%T}D+~q&k*=1$O`9QR0arV!9D4+s9G; zpxe`_ql-QLKDXhNNi(q#9gWM2T;bX64W@ZAFsjw^!!}w2)=bT;|-u^ZOY;C5FvwJ7=%*JNh@* z|B(KJ{9ogF-_CZKi{Emjf0`HYuiPEzOW@UV-!F)~%gcQwI#)7B%-L5^&~FOpSCZ}3C-2Loy3Rl2Ir{QG(+iPv znVvr5ef3rT{5P2i+zzI*zu|ws55n~{R_gLwZCNt9sH5655-AmNu~uhhNtZ5xw^R4M zoJ{dY`8GH7yqeR@n&(Bzy$gljBjebYSRDC*)k>rBFR5rrThbuU75#Ra=$p(J-WAi2 zwGX0$N$T2b)-(1Si)yR@1rlUdHKb0<%|It5#&mA(dr6a;Z0k|A@|9=ziFV)Dlfz{H zMiujk?%De+Lr^jR&w*wbB9nu`C&yyD&mw@=+J@CqKGRpU85@QmC&+x3y&0*)FTkUm zacHX5(528HUA7&XBdQapRGU76_p~(TxNmUX0e#A~=>}wHFS}jJ^%*h%TKZ+Rv>lu` zJ|BEs0BUu(6FUl^64bxu1{4z_z-&GeKuv2OvQ^5E&8n@Z*Lb#& z&&ZW*Dd2OpN;T0g}<8}nrInXw_XloV-7THOn=*0n{BX9qV^0Nn0ypmYdlrMmsefu@+Z z9DuhuRt}Up+gpw4Ox>IU5O*6zif=*>tU&|pogU2{>R`;d?O|~`xAnGk`Bb_r1K9Qv zfp;))-9ULV8-qIy%(Bx}n}3v3tSieDsWuDA`q)K$YNkx%#^t98W~_w5QKp=%AM()yl7Cz~}kO zZ0`|$v+De=d=33kC}6^!B%7JIUF~7(O-Ih{r2ARgo{}qriz~MyW2bI0GId~q?URly zL%s^eH&2GhK5SD7dZ91RG?PWj37}AK2R#d&6YreaypTzx9>48mKT-=eaT}|~_ZQ2M zXpR?2hI|@@59!q@eij&Pt7(qzUQa37Pe|cA97E`s>4WM~;q{p^enb&dZma zjYwZ!O@>l?&dOyMB*hZkM$VH&jc+fg+}~5!3qA8hEwfH(iupdHbArQaDd6oQa~vpm zGM$^Gj?X-Hh2f%qo`_ED=*O=Ln(4*X=8KksR@xXJRgG$sCEaGxe|P%%(!I5JF0sGe zZW7eW8$l4HVTHvoGSCf)9T{CVvkgD|_vgDlWbD<2 z&PQ+Zm%RTZ2e6hB1RsKcTbe>*Zms?j>L|!@KT`Y$d-n+vic>89xnZDFKygbumqKu; z5dJK(8!~V(TzmG4jr;d303I}@_X#C1k=7&Gh=G<2(45ew3smw`YLLIVeHWfzB|$ds z4+{>_12fA)&5k~kdM12uq}F&sz055dx8$f+AJ8a3hygwHO9J8fbs2l62u^0FmL;6zJ(h} z0WNiUxZOJi5R!ro^3FSrZhuENJm=!La9uX^oI%tJH8Q~aPmCoJ0k_&HI4&uKe5*+s zAx$$bt)tdnn_W{rq_^wshITAu>n+(lkL%0`ZPE81U0%^ksa3BA`$<#L%KN{=3|VT_ zx2>D31~8bD9m5urqG^Vb816@Y7T#L$4)y3VbtDjwjwbR5ry9m)-PAgd<7iR018OD> zk{q1dx?^zkE%)n&_p@d!ORF|=H(Vjb*s|`Ar#jTTJ=)t96gfXy$E(boC&Gx~p4Af! zDHYFpgs2N-Y!#F7|Ngr@eQEQYUTiLDE5-@bJMxI_YP+6FCv3=10kQ?K6cGG^l_*I) z{ycAWrX&^mJ6`r1iN=*wePH(21Mi>B1+7K7o2=BqSgl)|$; zw+cMpTAiU2bVAp=lny9fFkznqX}dPzHk>x9JvWIX&3aD*_nG?jujX-j$x5Q6gO?p} z!)Nw8k}g?j4e#ZtOM4wjIzn}ELsFU>pZxVIluyxLcK}EoK}d+G#YxhL&3Z6^Nz^@Q+DulKK^zI5 zYjnLCVs>(lc|VC`fw&-ug87=C;hCqm;%Gr#Rn3S3NMZa5o8O{e7Afhh37-DR&d!(k z!5>On`h-Eb&mLdtbDS|o~k&g6a9Lj;XaBN_mFFEdpft?6mw?&rFWL(-5?PTk3!0kD zX`|o&676}vGehiP^Bso2(SY+Rpg5mJDhnCQ8*%4?I#84h@HJNrU6#`7E7?*=RK+#V z={-dqsi=ii?7i}DsLEe%rF;U6u6Yf`vQCf-4=R}Cy5&z-%G2ayNwZ$6(_ox?z z^2|{T=?Z#FTdiKF@MMwWo~0ZhjJaQXR_ROp{e4-}?=hhC zsQ{hH_O`2vQr0E|)PKvW=0T9yjJ2sa8>y{F9qjko2p-Hb$~Uq$4XP^mq^cG#=)Sj|D?mgRvzW_jzL_wXj8(#6wSe)y`+`j9Er&R{vP9LevT4wlI!Yh?hT9mxzq z3Vzu8H!G`Oc`x^uCJ9yW;=$`~e-E#-N8!79`F5176+-&NmNUQzJ)W8a(8))7X^tD_ zBxwRB&;KX9^)5vvC>rhcZ*2cD{Y?HN`sKq9Q=c|afExj;f0!5dFW-;!eWGa%h_d26 zsyTCNRr}VO_rMSDD}9}5*B>%a{TZ*_pJ5sGlE0VCKr#%K8#LNVvfw0j_W21upZ_gJ zd;f2jiGG)9p=$-+ce&J|v>Ve{U30U#%OM+2MvK=dMb(3@0E9)JF9NoXW=IAfj)>S~GJj}>eT6^zP-FsgZMHb9tl9El*W{RX}34#p4CS=QO+f6rQz(vP!!vJB!YUvNC=kEoJl1~B_lJkh=_a<@7>~*d+)X8)cC$J#$0plvrlo~yZ0rv zBJMlq?7fP)<{Wd>;~Q!AC6qeYm`M-jg?#RqBo|I}3ntFCcg%-KBP$yD6Z^P$UkX;* z%N*pcRYg`hYj#hqXcy`%gx*g5ymwrOBy!m?`!GpO)|;K>sjf#!Rz*JhQ{1=4ATZW+ zl;|5#7OO5sXM?vzVi0VsNKb}V)621Awk<8_-SxKqu_?>tz~+v0&oB&fkI zSXni2Knu6q)N)tCZfo{%*dC~!Mq)1J4FQm_!+Nu^QX_neIRrR<>TjO3%bRvqO>e5K zC6sYq1DT-d1)Ti(Nt&^U>2tUz^}3xytBcdXlxvc6=ptOs-JbMed{d6=yd~< zfvp#I@_-@xEUO${b>`PFkbj6)_nC!FUc_whz9lhFq6zf3*pv7Utpvfg^_=sSp-+;_ zdkf31&h=z1^y<3Wvn*dHSAK$>xbDsVVXLEZ+}2NzBGZ&_q=&n9X1N-pRfLb(=7?r1 z#-;mYQhlsbA25;@SH%D*%unO~Ki31oH2_q`VJgQv_YkR~k73(2-M!b5rD}C3@5}6C zsll-4A64cYyDoT{$n4{ZA2|}a?p+;q(2|XlY9DC*-i>N;@F_}L4S+HGSDxI8Ce9hePH~}xLdvHU=^NWCe%Gy3BD3W zYW#IaFFN=xu7BiF$@CAl#h7;Fw|hru>4-R~ba-+>zQHz!E-Py?R`>)d^Y_d56c3h* z>k0HHbe5EGG$Zr$)(5~&rHo+89Jc(HYV#P!vd}3xo&}&VNYf<6ZrOSZ^fJsC3uD0u47nojajpG zJ{)>)dY^f<;{!vfmxG@l{-}n`!E+B|+V_a;eT7MlCOmUegZ873XmSFT$mE@~Ai`kq~Nbwh{fW1Ti$#HjNY)Q^H zCsfWRW_yS!IVpKy%>t%dWwndcWJv2I~>Qy=3;OaTGPo zBoZcM&eX#nSdlHO-BqzufxGF@gTXRFCl`LjuSf86ROW#y@=G1l&1RI(HfOA$hrWmV z+>I8jEm7S_9%+HYo>0>r=kbuw7aH_@MKp0U5x@b53ArbfpG;W~i(CkmECyN@+N6l5m=d2N+9L z+C1yt`$bWi1pQBA{hr30^s|yw=FC-8&i~2&wY*UpM{xX=DosR3s7`OI;O?qI=T@Pf zv)ACxjXoC;>IjLS%0L@<$IRJLBHI$Qi8*|!YqoL(1MEpuB1WGjK#^};SPdxWLqd0+ zYLW^5AsctA3d)rR#ZmF~RPXBI!K;)S0a^lSpqf~6$n)wt>3dA*l{4C!_aR`xt8~0; zRKe)yZ?;$R_U>Bu?ADSR!YKB!%jD0*vj>Oi^S<=ySjBD_vh?D+A$czXB2uC8t8Smhi}VJL{TJi3~%z@0SC5;;07N{a2~M1sHdqC|~?+ zeIhUQ=gJWbkYsVIj*%<2m`L1X?>eQeG%GTt@;0NxIibMY9aPe86qh1Wdm!-xgKPur z{7apq&vgwi>2Nd`T6=`d$EPid&YYz!{(K9nCWrpvciDTMhtsK@3z1oGa=3P@=s%pl zsJ--)J$c8f1)4izozWu=?+WN~1UQjXjXB@vnFloYwY?v2`GJGt^)W51(EA?2WBk2i zy-UOMK&wbx8Pp&-Id%OfT(F*eG|kZS$8;)lF7AnQvlX zV`kbmfnCd+BbshA6;b(OP-7(ixPJXsc2V_-kwlsaoJtJ4~ro9>sU@(5?}Qall>2 z&K;8>cjU>DG*UP7qGLxfhh0hOQAt5=qYwV`!!P82asKbif3^FOK}h0IIaR*Yr)~9F zCvuOMf1ATrv@lLIZ3_#`;KRZ1;uYfTH;;~bbnKI!tYPh9C%BnH`qEE{i`J>zq1+SpR9X%t9;<^DnCWg`+|_Z_9~V@ zQusHxtMM$6?UFW$9 z)?gN0A%2oaq*+hn&q-RhNb z&zO;a41(RNgQpnqay%{{?~egv94#>0CgYl-F9!FJ{hVx$&eXPNDT`ahV^h~i8rm-& zu=Q$Pv-jq}Ht+3_@-+xv+M71Awc0cGy-jt@cd0*8DNQky*|y$z%jRn~24a##svPSo zP0cn%w;WHso-adQW3bsPlM_QE6Eu2dy*$3;=#SIOJlDl~MOWzX$y#p> zrqLO6yeCt@-t0YKKU!aGYYj70`+~{9xc-nvqSBJnGBo=m)%UQjA(kMW)LtvlwQIG! zCjdtaC*Q9%slQg*TM{{S1Mj_>k+lRK#DtlZqg?cLtx_NWq>vZx!@{#sRWFucQfTk2 zBoZeOykN@#W#UK%pgkPCwFaM^cFX+Nf=)o+cpqF3U!T)tJ;U|E+817YjIl5FZZ8DN zVCQZ8Qe4v{QFmP(llgZ_rQsl|YRlJPTDJSs+%Y}^1dy84P;Bk&wMsSb!jG~bHK#Ww z!z1vnb~%$WV^87)z=xw9;>An)^YGy~SrO3ZpMN1YH#c(m?)9QbqaMfPSJ-l1wI`mG zv9Rf5PW>LKaX$0)f)9pWm(0%G?yWJ<$;NGOX|;5(itW1UFOR@Gd|QL=k!fWuHkSh3 z>S}DsQB;F%xc;#i zcl8w=yU>$H7J5lpJ`ZxfCh7ZUp__oeZ%(a{28a*pOYf5*;PydRJ|0xic4h74Iaxda zBndx>`U}Z#I+F>Et019i?`_uZ`D4>OhGq|cD_See;<`h^z*lP+yPrKW|hscVsZ1^>q0 zl0@@kG#Nh3Hi53(e}(piTmAOgd?S76z$L-HDlLi8muWxT8Z?e45Aa*5X7c`wKklC{Z4ZgW& zr7@nhQ6{rqA!BKrjrKZT6Oe>lo}#~aX-1hCT-_qT`kb|hHA|1rGX%st4Uhp^eAMvY zsVdEz&MJiW4#^G2Goi#C4jNTa7piC?%g~_S8A>Hg&Tblg+jwqS&edrIL3O6V@vC%o z&%d!8_)-`c^o%QOb-w1aaiG8Wsxye5kpbVXg0TYT9X*oeh=R*mMxS=Q<|`flwFZ4r zJtMA!Sx~yL+5;KNI64)=8x_Jk3Xpt1{NhR}=H^0!bRdI2QUzQ5jSRLJkgjX_{^_ZF z0>~1~BgWy1`8n1>=NEAG*BT_rpO zxQ&F~^1kU%nlTPQN^ZAz`tR1@g1jLPgO#-{MyWyZMIYdU8BZe1KuugrE#=_+?20(P z4VdJpN{>_f$g+~zuysiAN%tC(3%28(T;GyvRXSXgCh>l(x^s%1TtNU0?Nzv7 zJhlG^F#J9i$M;eMvZ6$~p@pL<^)I;;Jic<-7Sia@#b7A2A?o`uR`z3=Vr z&Uy58T)^U*8){vs~+Pbn213qkB|vKL{%CbU%-%ZZ9tAk1It+lm?=&Pf~JViwUuCMka?9zS4 zzu-vc z@u>>;3sr@0bteE84)r;pe(x{*Klx zoMTfN=Kv6=))m}Ns-qGCX27SHC@^DQf$fow$!&e*lgR@#ZDq$}!l9)5wEo=VFgQ-f zEf5h#hh4>Fj8jeS41LAgIpj*i5u^yt*z)1S`(vv5xDU>CxI#19?L8s8F$SR2uwopm zOkOQ5X2Ifg^{#y5f2E+51+=tZ67ZO1CHs63pM?f4ezB=^|v?`ExJJVOHZk8<2-z#1B{hvZ) zJjO0Fk0nKXxT$-;L5Qt;di12H_l&uFl`q^XUA)u3&%qDWHcUJDuWx=!{@v@pA+M*i z#TBTmI%i$^ob;8Q9>44meD3LZ_&s&#{DVy|uakYRx0k=S>d9w+LwVyl5{C6YJMOnc z`EETvt>5@1oU^+4FZJ&WC8DpDkKBkoC%Jm?(DX-o$&E6k-%<}Rs!o8oG;1#|yUY77 z;9MmX$ukFHZ$5DQRY!k88GE*^AsQ2Hg2cFSnXKv%bAa^pOYurIcT!n@ZIRbZ1TONG z&hM}2Uiq_bd%e}qf2@1y&9t<_iCSdk`zm+!8`VoY*!_)KGN0^o5rGm3d6zt^$Dw#r zsR^+6-_>uNA_+>odZ%mZh)Z+2Cs{fT+cF&2Eu|dTS4ZY~4$#&Qq$ceVF=muS!jjAZ zj_M>O9p?ESar275l0@!RAs4%MREFce#UaCaBmIu>)1%aYc0i&#v@g$#bt&`ck~sQG z<+4_l|^Ac7Li8xm6~W! zdqB5H1P6;&Tqf4PrIE0#21h0FMruo##!j6kGs)W$bkcEp%1?Mgix+kv8UAEs6@L`! z;hoVM^X&A5zQH^C-6ro@o#jGxEwIpwyA+vp*)lA{j=bbduQ4gZ3qN*_*vTw(;1Z}pcmi~VpA)Wx&uNL5z&Jk=x; z+-fqJ_};3-hdeMJ4yS{{<1Y4WGTY32)>h!cVv-5{#?h-ns*7VC-@`Bwe678%Q zEgeYEqla(DXZayQ|H^KVJ~)BjaAG}4C@t<2a_%5N6ZF}4Rc|>q4r@iTKN8^c>opG1 zp%4cAP;Gj&#N4dRwudG}d(Tlz+1@tUIOz{}!b8i|eQyaTOg2YSBXl=p7_-3UA^7w* z+3lMit|Kh&>q|u@{tVlz@_A=&kDYpmu8jADtlcAd!{&{}m}0*FqI{4ti^&7~sxKZ#5}kXo7tW?KWwU?y(1Nsxyx@uz!`B&l1j9EEf~jK4WT%=D-gvbfL&2kmEA{V)?q!^xkzrQdX1qX$aCP+EA1s;(}S-Y^=h$Rm1Gwu zJbL^Wy2tnj6EqLqh{|L=Y586Eh$0OE?Ae_`GzQz{85~FHv{eWX7rixHo^hn)#z&GH z1SyqCv(h$M@0XmdqSqi{%$Uj*{>P1%Vo>9!o0aPM11nNnMF{=7kwu0|+)*M>V=so^ z0R?`oL7izF7mC@VG+F!|yT@q~f%==fYX;^J$XNq^M>i+}-4M_SA|klF>MW}lN*JrO zTv28~Fc$_Dht7?3SFYhynLJ1dMeB?e%7aY1EYCf1?KPBULFD^6s_9W3{;39-(c=r1 z!t93*xK(}bsvFopC`Hh*IwY3Uhv(b?ZgnpY^F7FNeg6~o8=GqIa}js)XW$LrYG4sn z;Sj!K$u*dArUvM*y!?c)%ZYuB40ayXx`4}1X-|52sR6#%I;VH}30Nl|TNqh=SV_g4 zRs$i{{j^}bzE0?;6fcn2e<|1Ccu~jb7Le%>oMCXfQIx8+6QmZ(@Y4dL1}y5(t7RmW zxMNIVKsjufRD;5myJ?yithnF`m~j^zc{|EAdTVcWE>AAxhi9)iC$^R5q!gkupt_gY z%b9RUF!=7&aY+StZ;DdsZLYAc=NeQR+#s0y7NK^~v)pwQciG^Qsh|ll2AJq_qhq?$ zpR6!%9Rp7ubI@lyoSqLOKeD!1sr zyoWNbJg}FgA1kUwn@Uqd)>#?^Y2g%-2727)2T*XgI-VEGcU}~mk)qiKez?DdR$_f*IzeucU`QW^1iWwuiR}zs~`uQ5K zl#%_|ZvMII%s84EGS^pVma6l=vOQ9ZS5~%u;A?;+Wv|YG0dhiC!nw@n^;Pk%4ob)f zPsT|N1m;@z(vYo6>sHYJ4GBMq&K&3kC#VRgtE`jL$#k8&-gyqz4h}naBETsognEqm zw+aQKaqu;)!r@M3@D$@D(uWtFIP@uJf-qjOw=w=mwCP+|8!5{>hY!b$qQwDPw4Cca zZ*Z%E7BNY#cBA~^-Co|J>e*W!kgD|=clw?`AI+i1mNHnksq_9-uKI%i``D_ZzU7g9 zBmcw$#9bp(Yhr{sU(NBG2;Ij-`cQ$;wY{QI+BC&Di4CY zGduLu>TCbQ^?xY;gVp~TAf%J6TfGT5N_`*aGok_H{GJ|(LSnc&8|PyW7ZY_6pk!2 z&wC)Nw+0>`7+?gCu^&4mFuc)!pX>P>*5JxtUH?e_)&58Ff1du5wCT1t`s*JnFZm0) zRx8+1NUGF_{6yF1|8cUCpR*E4`K|8#+hWau@L$-Ge^2TBCwlF_u%G1D)#ic}c(a1N zh6EZ*DnZL19g039$zRkB^H)`_yij@Y|I@(G-%*~tJ@zgo0_LWtOj1L6Vs*UT!VVzq ze=~>`Nzzn_l~OAtkLqKC^@{9vs&#>;_imdrwv>Ex9C8mIUzMHqA#~sy-CtkpeSYj9 zZ)gn<**4bLahmUkgfS$YTzK%~=E`l!bcDn7Rkuh^H!VzQw2MnAkhdDSklMLP&J!sF zWrj9y&-X;f`gZYsC&#^ES)_Sp@qlB@7L%dH^}hz%)$~E=2o@M`TXa;NmHvT2Y9)4v zjCCH^x0vJ=GQGIz+4)-6>~VYQ0wN_Q!4k@;t8|{=k(zUYFu8n5YDIrn`>4qM zO;HvfweFMo^W;9F-l~*gb7i*?K!0se+;@4P7$v6<$|5G;l}eM3*|K4CF-e;K9rr;@ zO-=FEbkImnsJ+D_xD!eEr284BHBS!B4a%Rl6mGy9I<1NRcx;zrQto1@jP) z=2+`EKg}{W_C!tS&BcozI;&=$%>~s1aC? zvy)RfTW{14vn6Vz*9EdTApER#ZChGy^}pt!i$sBXLbLxcZ$nxpfViA5@t*Db1zJ>R zvJ`&iyIb|e0fyWIDbO?7ZUtm9Sb|)xzQW`tBiiApz0{AaBn({^|5}YJlyQEC=pVbzlcKFM7yE#S1n~Ew zMX9dWx$>U1bw#jFM|`ia^`1Ev7Y)x+ua3-5_$>KI*R$@0YPZa2M zZioI{>2}XP>qH?WO`Ctl_(*8})$_G{P5QnqF_7(37kuuU?$>gt#C({8ddw(GXnzsY z`HXQDndW(}V_4F#?J2&zv<5WK^rDvHMIYS&k#9iwkV^!B7bEfh(UXn!JU>8Kht-ZheLK>K$^CAQN=f&Q zdrj)+Z^WF5=CqIA;-<89{sP809~KNr?q@7LaHsphAnS?N4nZ_W6$=MJo9z8X)}1nsNR zxSy;)jaA8KZeRp?*?WaB(IcVg2lVsaobh+-F})<_)(}iS-^`MY<$&;m!%pY%B@|l? zs-39ubE4xqQ^)>>)$Qsq*XO;}K>xe_9Rr?S1RzFt_$SZOX&lJQ33+Iu#HydLmU@pJ zdz`tlCdM{vpEv#gEn&k(W^9fsXaQET(!j$nzj!IH&A)DtR?&rIh!dr=>)nYiwF7L-fU3tSu@Z6D0s6_30xXN(v%;OXgVr|5kP1qfA?R(H ztiL@Ve|LFg8-zRk2RL>p_FK%W_aIzMms>4Snfow*E^>qj4*pILUYn}yNcEZMIfa%E zFc@FoqL1(r<}d~HtzWYkAEpI-fPKBz4)wCKweX(lTpL#H?YyUz5BX%XFenL0DNzMo z8pnh~rpL3zf*$GS)*Ukr??wkj?{K!I8Sg|RS;`;*^*+NtHNBqaX?pl*zQg`~t%~Ed z@|P2LJdouUb0D+ly#BpKX1ACz%F0d{p!hB|l`N5oT0~OI+rudw@biwE60HWr6K{~% zaijG1Di89Rpn`1AjPEJ~LC1T8l{dL7=B$Z*$wzyYLdmnD&Z(R$xGccy&Je0H?tJ9C zO!QIGsP7#zIiUPX1hU*I6XVH2BZu>xYqCq~Q+;}?2*sz#t8+vm@c5obE>h7h+<6rD znN{0xCiVV#GV~1g#q*$RHiMA-dK;l+qp%7)cF@P%pkLdQyX7r z#w3vz_ASI$za&*^%ZWX^OV$Y8er?qygCPN=gz~l%{mgob8=Pq;i$0Oz42uOZVwFWT zv-1u7f6ZRq2FHbV6T4OMKS9SiPEZHrOTNby`R$f^hFA2c0mi_F%1LC)G6K}O zqZvKhn1l#K2_&LARa6W(1Hrh!Ae;U#FO3vZ{ny5?zgrIa(7ZO{*Oe28gTY~g7Js*+xbr< zSEcl{eR8NjwaFxq1^w9WYy5X&HD`&vgio_qR#ZozRL5YwXLtYpddV2W5sKOY#G7D!-?ZnfX1Ch#2go5cxDCp*+-@1aW^9MqrM>s)t`2W%g^NcaB6 z0*iw71>x+hBcHD)JtZ?1vaeJ2UaQIF#dhlD%g(A@BGKNstr4RoU3v8$dT*a}HJF#s zhkW#hLznF=i8E0y*&1*t8cgo8)CAS!XgwCZ3de44-@y1cD?M$lOKK~bTfU7-Xh1Wc z*ymsv2woqpE_N;#L2JHm2sD3B*t|d{qE6G-sZVYfl&FLWRzjJK0IBzRn3EloIH?)1O*`Vyt(HV6?-Hm(JF& ziyoF~u?Os3omo<^URi(YYFqexGT_x!JCM2&?U!+`94>RRr^)A3a~G;D!a(NefmbU^ zsQb*57plF_z`sZYlhIpxhTaaEyPse*qaGNeE8gZUg1TlWc>igv8Q`;-_?(z@=c%c# z)BAJmBSQo1ErG$3A+n=VM$&{d*LZSWB#5T2_Q|EK+6Br}LZ1?`)aW4Nd7WxYDv1Q` zWL4q)oNQutj?xwiJF@d_R_~^otUx;j^G=&O{4~@yofZx^xgq39&^u|@lQ7-aMs3wm z11eG!_#)qRkZ74_Xje`QeE)3sjS6&6IpK^@S$2| zwZEgUXh2bywgTOCV6HWS-nTa{YiwMduh)(0r|`>+;*j2Y-_E_j06SD+vK>e48kMvYgxH<2&gb>I-fvFU-=5b~5UeVEF&E>w$!FGNV?P&@7O<#;sy(AZg_-txKk@*EsqyXDtqW>Ff z((yJ^FOzU$31W)d0sF)PA}p-IQzO4nSH7yUc=^(eom=L{U#6d9H%L>+)gbo z4c(*q1iiSU8lA33gfA$~cKCewxy4&s98Ll3HSojD36bBr)rPzR$t*c#*WGemlj8rw zo}PSO4c*iB7kuzQn;kTkFu_L)d084{(g!D>gS`KF9EVlzi`VqFH*ErG+)|D$s?*bA zJYAiS`3AH7)(qsx{c?Shp%dOnIz6Y4g++1t{)kz?UdH?k8nY=UXF4U9j^q)jM(F_> zj6_G{*|m7BvxLZHgU2A8^1$D6@b}@l@!5N9h6fIlYm-z1dhtq*TIo9B93yOoP{&|= zmn|pygVg(EezxR3R}^io)n5+ZdlE-7;C=#cm|Vv)%y^_YR7C?pTtcer z^FC3-h*0GE%*(s2n6WxqY960&@GFG!eZE(cS$}}EU$0gVW+`$l{CB{-pDE+p5uT;6 z*Y!&Xonr8n_}{9xAUOE#N)6b%E&7{}-uFHEbb0cJ8^}vXQ>iq%_JFK(vl1{s2?3;L z85`CuNB5~2=ZUn2Am3%V_4%@Am)eU>miwwSL9!!9S_B285#omfDD%Bzq^*ULmP{Xi zu`hPtQF$Lc!xk0UBP+2pY1gt|EtBwex|4T$-Ua$W6N1NXhW@ckOc~9=II!}2uv!Gz zSiSWljEDDBYP+MA^0*~}L>R|gRXlFCce)p%hnvhl>)aeyvp%MbNDUu^kOfVzi4M{8 z-4;4laznJ@kr|zs?KcNG6F@4V=_3`kH>H)Z&|~yYxBX3n8_?#-q2~ziX7ph})5)OF zpc~*Gde3ff#~IdhoGin8==uGq_unJv?M{{o@zwA$Gfr?{ci?3Y(zNF+Hpuf2?06*P zATWJs9D}8up@Ms}V&?i68kofVBKQVJ_bvbRatCCIp%^q&F#{|lH2d`+u*2$FpC=?E z72~ffWE?`#M{iG8JWs^>$FuT2kMkPA8MU{-I2~Q+DIW?SU&aIJvG3}fw3E|JP_b*m z>BM4;Z2T$>*?ESz)6M6``;Z}HHSHXcp(X;9y3fN2l!Et^BQ>6Gc#^)Lgb(4QkoP+1 z03s?xR6`84*CCubo{W63@RSG{O&5aM)7fzdITdS-$0gmUt|Cp&o{HXJyy z#>Su;rCI8E=H>B#ToJ1E`1+2HW8)vFutY!cua(+Y>D)lR^}AiyxI(bMfx-g%*k3zh zi5ab*>bw7$lZ~9KWBp2p_~q>=Uv967Bylnowhq{0zE@V=1DT?m~vbO6spC#y|%ML&3`mW2Fk^(Itnb9^j2}37B^ogF> zz^Js>+1*gJF<97at$l2J44#)3yaR!riTVtaVw5-Kla<+n{rm47&Sfi`!Hf2@bAx_- zS*jf2L#j@ik}B#$@Qk36aC9CsFDfLc7{AD&hhRUUhsEBLYZ_;5a)U9J;vpUIVU^i* ztAFj}cjSNa;(sqc=zeBS$hZ3ZuP4f-aGJXEBo7Id=OR;7am^Tj&8xMR)Mt*lI##-k z$CcnH-Kb4*raRLE^hMW%MeTZz9Rlkvu5zq{fZeF02-Qs`KYMK7^+8|V$5f8u2)dfe zfzu(?BuJ?uvi*K}kToDtc%0}I?UgA`N+;bXYlE%Vd;RtGKbC(zf2I8Mm*t-fJu9(S z`l4r(IhoD5E^?*+{t%T`$*Rq9-sqex4(>JA(GVJgGlhJ|1KrjC;A?)a|2~`CkqPxp zKOd?ib*5h2f|Y5db$*CBf}Doz+(yrj3eSV};uw;T=!h+nT^~q(pJftwS>Dh0yP5Ev z>!1jZJDj?ds^dg42X$9M){4I&qkQf}_GgOB!Muvf6hXeWlFk#7*rz~G-T-k+^_uNu zG8Y@IYXZX_Pz_r-m7Q1+ZBCL5-$5!d{?MO&<2#a_1(muc$uoGo$q)8gW)Kzk@Su2! zcRoBqFgm}ijyey7ByU3`X|^9?8~FOT&(z-&3ydDWCr&F7&~bfHOuwS@4~YeV4%qn| zNs`F?NDT5uL4jRsSOs~0pR}6is1nBfd!667hd(2g#=-0X6>E7H!9st}NMc3X7a-(x zCJEa9<92(moaZNuX;-`H79E^cxWd5Mz8k=_)hGX zJXPA6qwh0NNulN_ts+7 zZ|nE4V1D1w=d91n(n=f%V%AwLdD7On-jDBxclKwEmT(d<>QQYj<$(Vt4?1IPqgUNE z%Nl5C(GIA#gNmx@VoAv<(2!P+>Qm)Laavce%u4+e@Q12x0O(}M3HVm5Uku@D9-Ck@R-ozvIq7$OK@Xg#%*RC*?B+sD1w6UGomjr{D&K$bS3MtJQdrQ z2>RLnld5aueTh^GzjHD^xokrgTu8E5q^y;&SJFc_Gx4E&>Q?y-is3q!)l;_ikMqqw;*m-Xew*JmISsacpZOh9 z6|pfe*Lah^Yw*ct;B%Y81s5`2-dVv!ISBgLU!I7QkE|bMit@|ViTTICYX(d51RsFU zw+6<;#||25)`g?QT>CBIA0N=ltw$l>R(AJBRPK%N>7z8K`ntE5nld`8TQ%9I+|$ik zx_b0^i=Ri1@KMBIJSl~9t^6SkoA!aB%~1ZNl^1u=Z|Z1;X>Q{(CqEp#Yq5ZBZBw)G z|1So&{CUjKUrwNW=%a++B~P@f$Z633iU^!JoGVMip_ zokA{1gVq!_K0bI*JdUG8-99)p zrurWnO?e;##ToTs&)QJ9D$LMBbLv7f4Eg(GZ9iWcNGX&?|BjWMsQsPbRBDWiWHfvO zWn;CGGgY!T`jZNU-wTS`9h5g$jFUf~feln-Ghl9x%&#<<_D+KafLeIDI%8jNRB}Q| zKm{rkmKTEtsMnJ!h${xscewXMu-l<@_wT>vHSDLuesg;*ukWsO*yonvrW+F#+^4$H z*GvqsYD|0%r4tJ5iqPzEPTy+K*T$I2k@ZS5Q)M92GdU4(|Ni+a`RwAQY?w_b-X}zz z?#LYU%6U|x_i5C5>^PQFC@n*=z_4+6=UE1+YC@!WhI8RSz9?!%^K4rnQafnV!duDnueJFewcgCS5J0E_-m97pg)LczFOo#g*On+jH;J!344=DcCs*5B(yUdUg!97o;k7y#&Q>OD z7~~c+K1PRs#e8kl(Sqs-1Zr<}-(9H_07wByaCx=aFh&{hN5uo=phrN^BPf0~ZVA(q z^TYkaMpL&07zJ6UJ1|-sk8(M~z@c4On{JP@G8G0KN7O&4<2q+{<_T ze0E|9mD;2<&gYzz3cW>#)98sE2ryxukyVEzhTali5IpNg+uPVfsMh}K_KN-9Y1~c4 z9b5BJgUyj3QX;5#xR<`|v=)~)rm(-%F@36v{EMV}TjvW2DnmiLwXe#``I4mphxgZTE(}cZA1XJ!Xb*tvf3`zsWDWtXL}>Nr{A-U zfpo-JcU|3$8zzfweEFK*USY&VHf_Lxhp74&pUYzUx=~OOua#2*z&@pXwecotr97%!T0g-(@ z=-9tlck*jG*WW+UJ)wKyod%32>^luSY*j}xy<%x#1>EE{5*~H@8+YoVIm0{MGp~0O zWp!K^jtpa;iB32o{rBb|xKKm=S9Q!6tHSt9>W~<>Qu0(8l7x`&OSFw_2mnBd-8+Mw z!XcYIKna5k)m2k1OcC@DMzRf70S~&^5Vm_#eXt9Z1_a?ysX*tty}PRg28WF2ds2Za zZ&m&}2a|7d7_A`yJ2LUesnGX|Rfn_PLhnvOhtQYa>AUwTqbb*lJqZV4C=rK43uj}{ zBpj8Kjl*K; zEQZg0rc0z-;M3I~DNX%T`Nh@u80h|8z~3V2v-Kb@-#=3Vp@@ zSc&^5gC!w#2hTUlK%WgqA!r18N%3CgV!Y^Df4R}Mf2kkte1EOV>>NXa9r~32s*e3r z9qS*e*!pAIKT;h)pii7<9c5$0JK zumy?ov%J@NyY*hTJ`<+nnB$#eV~{{R1;B$F(GG2K|HPML1$_7%ToJd?zOq&s zyBh2BSQr>~607mNavaqmEF0U2RUt?4HeLolJE^T0+$o6wY6|2wtT1~HkA`C6ehaJK zBpivIle~>kdH~`yUfO?}zR~+ITz}-_JfKTP(bGOMeXE~0CH0lH=@bZ{^5fA1BtZ+1 zIY^3K^Be}ct6JeZih8Rj))s$;&y7_ZdoVVw{JkcrLLvoKcwji%CRx^|RA~1ua82N( z^uTl=W+ki2<@{3z+KXiu84s|4U$YJ+AU7u;W1Dc;(7e;VM zuagJStq4*g@sK=^Epdi9NzG}J&taj{eg8>nZ4CF?#50GHsok;QFWUdKiAyialU&lZ4!&=t)!i% zSSYr3BqlQj$2#&8D-g}}?%L9!mdBTV3%J_5beDqGok83gK8wAByo%)ss`d2U) zdq*@F(uVId?b%6Njt8L2VzP?J!Q>T@hwO{+_j69O7ckn|TL0%jw6J0{@jmNA@8~vo z-#vooS)OCU90t9QzDn?=X592eL;+Wd{_JH2-+K6gc76C78=vlsit&tre}iL20d%<- zq$lo^$)$;>h`(+`04l}R@0gU+-+xX`ger|5;}1*T`fNu1Z4VF3PvddAD&E=xJao08 zO>M)q@dBZ<_aqX;L-=MXRbOD+x{mZ!`J?)Tm1j(Q_pyb{3i@t?j!)WbuK(Oafbe+; z8C*4iu6|YLsab>M&n)FoCwzcLl3g<=Pt9{KsI-SaTcRC+RR7Sd!kX;sqxd2l>aKy~ zxs0R3WAL%JylctF;{NbQ?P#5Xr z@V({nEUb->G>}Ie>B~n4lMaR;vm?iDWZzS%NzK0Tt)INQWZ_spP9n(}&%FS7Fr)?J z>E?~l-nPscuB8?3#ikp~3yKw>&)4fMgX4gtUaLX@#o|^S-OQ}*OwkQqWId*>S}6i; zFE^*E_^mBS<-$38Pm^hyBrH|*cMV=wrThSl5$L%i3i1U!^iMka?~eR|8_{&%w359)_LrIRZ= zBn_T1vR8GMKv-q9{FDh>^uvn_j(v+NPY*mIaiR}LyT3YueF&`n{PK<3LAyG?5-kO~ z?)a`P>}bU#i_Gy@A9OI#;t3d6sM0-hm>i!fbon-0cfkzbwC$eXkndsRm;Q$9{-_2oga) zIX#n4HdX~OIr;;PkL|Q4asiMYn87T;3ZLeM1X94KGg4GTlvA}Y$aFMm#R4D#;A!`&Xu1YsQMr5pp#gCUg*4j zra^Hg$LJirg%f(*%4Y=u@x+)E-nUb}xWO28t^n!3FHNA8*6wJ1cq2=?GY1FTcIf-; zz<-m`H?IA~wB?>JtbVY7aq<-5-eJI5$W$VMC(jX}FwhS6+-$%ds<>$}$D!C)Cp6X* z0rK7KNUHZ=z;?PG5Nv=Bm6ZkV=;%^9+jkXy{V<_{&OBDukLHYfq@7JTBo?RwDSA@Q z1~>v<;t=U6oj4SC^H?ajYePF=f9LBPX(1mu?>T~-30YFIP;geLC_gp6yNxyQ@l0Oj z0>p*R`yo0X4JYfI82H!`6rRoTUiL-{vT@lMXTd>t;?Y2SGB&|+vA&Ov+E6`TE{i9< z^qT%%lYQ*rMW^!#Wsy0=CkD#d_#D=BLYl}<4A>pL*Ocd|zO>D#Wa#D3tuHzAM$iaIZlf?g)Y!n!xBU*UwYK zzcJUD#aMgDIgEG%IcN?UL(eMQUmpLq_b$a@Ju{7Iw3GQ%-|YnZRNq%!iww5EQ(C$L zS)q!tMUaDv3CP_$cX-klUC^Y?o!8L)MmpjNnT09c47L|;cS^Ebr61*+pI(?Tj~nk1 z2zT9!{6i!hyUg64+~C6RxEKDNu4uGH^2Pfe3(JSJVmznyZ?lJC^4`DbzZqm1C_YSp z@$YYk%0hdoJM=PhJ^V zB&778JNZiftydZpPyd93KfO`fxJ;IyFv#=f>^cUBn~(e;x%ZGcaAzmXeDvX)pokHD zJL!MhDlNWN8FOL*y;Zr9KYRWU<I47E?Ib_U z;4c=)eyjBPd*dMgK=<;OJ^<{h+L)^Z4>LPu@^>!)K?9TA^rR6;{DI3~-8I zck=d2)X%&(bOxfESDqJ3V4!o8%Ym`%I3_;3v(`y&=NU%^IX9z zQXP$4&x54S+M``u@ff@YhdK@6VVDe&Qmmc%HfH3fMkiJ=?&xwJ)T2$~0SP7$bfpIOsT1`+K|c3<_BhSgH}h1&SLun*^}Ckm zGO&(0GxUgBXyGPdrqrXk>Ayz6mLiLtifBQ zWw%dLtrAT&*zLDh-TwT{`~dK80nzVFZH0}a0?@iC)^>AJ-kbHibM+hCo|!Ljt3HO^ zI6C>-IG_izy%O3|0#Wf!gW--CcC5GY@~?w~bM3yws)5S9PL7(=NUcS1JnoT7S*jYG zM+@MY&SxkUsaA{^B6gZ?YxjVj4Rp`Zmv?d-J2k%aD1s4_K$N|#M%1}GS*7Z0MWs1O z1isZQ-uf|HF$t1#C#%ZO<8-ebut@$oVl85|o6|p7FXB%9y^B31~h_h45g9KwdIFj6&d!^YH`DjNv z{$VZ7ss0#0+4Ze@L{eFEztr7tNy<4qEOrR_h2o7sZd(k)<_u_X=|SB@EHUExolu9; zxIhU$2fIdftwJBO`D>?QRpV8HCM)JC4o8j4fHt{YJ|U2-WNv)DUnbn za{T3r>zpfz#L2GfWG=N$1j}&ce^i^T=OBP zr}l^Z2jDhxPc~CqhLGRnrJAA^5f%_YR{I{iIBw zu)+~Rj=_v4C}{|aPi0p4B6p;7$2q4x+x(alx|4HM&#G7K=jwq)w$xE5l2%|pnc8-6 zsq^q_RUm&n{#@=}jPm)}g$A$I463cYYIh37Jq$#hk2l*}DyaD(ftT9)B)+wr=^Xs> z%TMLi=1ii0tm*M4@Zh*%C71UWXTpFwohSfMu@1L%WDUDx)r_OQG4cvwhO2Saeb~zJ*r=C(F?^Z>4wPK6wB(o1njm3Rd1DE0Ohn} z#;z%2!HDNRFAbeHN{q!cyx+Bd70JlxFL>)hK1q`W7%yK+?Nb3K>!<-ntih_cUh#O> zwJJ5e&u^aQISE*()VDj(jCBO!us;~A-fWm8a>oP$>k|ZMdhC(O4VTaWX80{P%pH!Z zV^I8DgW_kFh>^Xz!!w_;KKpE*E+inFb{h>ypojaKW57tS_ghwte|c*O0Dv=D_2xjr zUc~i#QqV+03=Wma1rX2+E>v+sJ}!ddNQQuNb*t<3=I&Z;%3VziF}9(y0g?}|NGIw#Y_pgD#yI^^>CU@&+$I`=?yFw*I~M(B7| zcv=4WVP>?HY7B0ap3ayVm{}}wssDMK5(8yALv)T`Ogo@%%7zMr?i1bPSDp1zw&b12 zkoL@ae7-fs4ey0U2kh0XJnmAJr~&gap(@xMIn(aWDnE)jG~iOgl?dRSYk(1PU+|r2 zntN!L;01DgZte$kBDmsoBCZU_@6KoI&8GPta|OauPDf2{arsuF(wyhI1HyS(%z0Gb zu#&_x^xH88++qFGGy7*d*Q>6&sp=Vo{8vtZe#zqSe%09#LubO?U@(HH@ZL>TzE~lG zJ4FDwKDr~eW}_x^9s$M?PKN!??I52I1Q(IqfOEXvfc4<35=$OGW@0y}KRCR%q$@(j z!#QO*cm7Tqq6VaCc89dje{!eUwB1YXNzGfYsr&&=ua{2HEn*-z|WI9=bEP9kWNu#pj!7oZh5COe;VIF)ry6WYDdq1bu0 zdQV7pgT96Fy0vwJ(T=tf=#>p;75L@(siZTV&rOp|Hdz%UQawTkVL?(!UM+1hbz&Cz zim=0nh)m!3a3^e_Qbd5cCUxM`aauS|7|88?k9rk3lA~C;MdJ0Ime@OkRh*f#RjR`^ ztZ({mizB&IzGC`laa{s?b)pKD5_Urvy`L{3rxAHgBf27P) zKVju>vKAMeR5$`=g!z+a4KUR5PR#s(sN(w zi5F%I{Ob8Xk?*a4CSTqDdDRIlxB%XB0(DmT%rEN}|5cSwt4XSCK@9c_J@uvPR$nVm z_{lIdFKQe3oBVKKGY2 zF#ghess6I=&EHTO`GdjeEmw8UD(0skLARZ0r$+T(IC4sPS_f-wozM-kG&WG0<#4^1 zKXc_RY1jifo8FY?3P0*laqHr%L)+XJvbL5%la;0=wJOL_!9oNO16e5`o5)p%?WgrvnNz)}eS0 zQt^PH!2&I8UR&3$28vUPU_h!ofe9AShbSi}vBq18&ngRAGUg0tY>t35b$?HIkfH7Y z3wTXc{w{U|TT{6%>f;0|4Y!e`S}|4;jbICV5Vo!Z^BPj!x5;g=62VDd1FM2EMwoma zjD9rOFnVDE=Bzgq1FOt#;FLY6ZggIx!s@g7+>&K0LIbJ-v+J5%!@l|qLawDc3&oOW ziO#bl;tt`piBMA{`f*HF7Me&!?x_39=|;Sz82xE|Bo<2L*?~4u8XqzI1-3WJ!oQ0Bb9#Cz7pE62 z)Bx4PUL|TIP)l6b_YT9n7uYHNIcjg5tX8t!oTyH|m8)$OCUupDFt<4>@h!8(#a3GQ z4Q8M7@xx?ImVk_}Ibj`ja=p?(_NuS@uJ_~} za+1!1gFr9D+yj0dwg(~RokO8Q{1*CSvFgLz+@G^aGKUWC{ox%gmHo|qUJMbdC&1Nq zJ06IV((rki<<~P0u2T!q465V4GP=h*u2z70@2!WrCmv*))Sb1I3WY35eR#8^&WjE{ ze0W3$KT1WNVTdT?dJdGTV~0;fne~=RhqOUw-@(T`+SHB3r)B1sRiwu+)koRQ<4)=5 zol?$6-XOXB4!x&-D)ZWU^{XS3G=pe{S*$SP>WxX;i%%-r4{XidE|N!l4<&C1MD=KD z5?{dP_Vo2;`pJwpP;QeIuZ%DCE=91ugD1mzq970Wh$fdqPD`dvI&VItt*V!_^K!sv zrJWpgKR+FbNZOu$~6Rwh%dD0Qel zpRl1tqF=qgYjptiRZc__Rm=n1fhaCwdssFb6^DQsU;{IeTBu9Ss=CZ5S% zGmVejz70I3!v~1ZL$f)X;CTHw9o*iPHe{@Qp}{gJVCW@{ioJk!?wmpGSP|ICCmQI% zfh@kQXJn$%`}OUud~$M1p|B08Bew~<%H$(JUKYa-(FDgbGAeKNK5r0!eQI5z3jaM1 zX5^{k_a|Tfg8h@fIDaX>^5PRR+Ssrd^H|I&Hv z$-a*)<{p{J#e`C(0|u{US+RRn{&om{mg0dB3z#gXgbdrETQndjk2wW7{La?w>PlXn zo*7(`->|Per|i9_WJ>5-jmMp?H)!AlNfgNX@r>OYHAKGJ-pZF648L)RFc@Sdl#ynz z)wl>Hx;Z%49J*CLGtk0!D|A%dj$?K9ghE(v9huH${(e-YVTa%VDx*EU+X|7C&fqT7 z01IL9-RWG70WrahKAS*Gz&}Eq>-R4ZZ~%0?UU$=3G6i}?-KwHhm=(j!QEu>$=1MvVh~uFgFwy#eG=B^(gPaBFQ#0P5TKNTmce&Wk&7*bO7k434ENr{_PlM0*}Jh>t@6$n(+S03zl1d@=629-H7qm_N?gMW0hF=xT} za9k9rQ4Lx{W$w5TvZ{Ec#kevaD)i*}Zmswj%hUAFfx5w~m_f z2y<)`rS9!)*E_n=4Qe;&dA^RltOskUP>eqk=9K%UhpJ>Oy{1HoM5LUFAfRi|NYK3NdijVEZt^Ty;s(F(<|M5M8T=1h4|F)p_DO1ulzY!Jy%`nad8;&flRe?U zA5+Z6Sf8l=-k0Z(@1LRLJL@@qaHOzJ>5-14xbh$oU~Z9Mv)w7b*sJZL>rvk5emOTP z`?UL+{K~~|$=~1qx?ISK^g9cP{an}j3w^;8+%|_}#9!Kq%9tQD)T(MbjQ)i@p!)G# zpZ!a!AN@B}uKbDy#_#l=zoq-?AM4&kPjgg|gZ^>f-&DEuo4Oaz9az#fDm!qFtKBdM39oI{QAB+a0?WaJBI!CI+qyNqzF*NA$rhZI9=evuMp^ilf;g zc<+@x5BeShupY!`|7Nv!_Llfs#NhMi1nSl)o-B!B%HFEQ*4yqsu!@@1q_~EazLQia zeqVej-X?Cn@j$rhSV)8(9il&Vv#wRgW{b_%ET}GLlH}w;XnS00 zl3Jn{G@l2(Pc$ND?o(*#nVa!)LoLGkH=00+zj_Bvf0W*!P|& zVE%di?rv)d01Y3l!84!h6!ryz;*RoWNfI^(>}}nf)R0)V-rp}4zOIRwpN)S;;3HMN zfP00=3hwJ@m~PcaMoV^OvY;mh*u`nCUnwNfPN9i!DH*QW1idjRD|s-&7KJu^8-Ea>Zb2Oj@F z&@~VA0S1J;Vm^wZ$m@s-VufU@p)<(mnH4!&O{u}q<^lCFv0m+ur`Gn^NAy49S)=(H z*mJx=!F={Di(}@LNuD{NZ+SF(KKOTzD&;Ud%DgWY@spXa)x?@b?4`)jcn;5xq_(se z$>8g_-``3=xmy4|&%DmZTE_=|tUmKhB$1)+59(Q?Ay%?QkNP7slTml3D^p~9f?F|v zQE~nXcy?JkLZK-JES4BHFIX7CI7HB8ExstOZ`l4$Y<=p8Y0c;N=ild{-2zRbGWF$d ze(UA?*9+wMVLU&n@4I+!>_|#YzVDI;UBwgGlKaWZ9zManqpLb^ojgf>X5O>>Cp@?z zuS7e{sv7e(OI>%q2mHT#FU}Z`uWu@?UM%0~LB0e&o($C})r8Ar{;~X+JSfZGI8Br3 z&cP?d3n`2BxsL>Aa!I!{N~5^t#$;EDkh)10!#QRQKjw@nu_0Zm9*jFG zsLJBr&s^MA7|)iO{aqm&i{G(PlVA?7h3aX7CPexLL^cyGt|J@9_0 z@_l=G$zDGA9evPWtPNhHRGrxzj1e4vdRdGi0H*v?4T?ipPPu(2{OnnwjvnH})Kgg9 zWix^cq01+J2EFXf^%bkH={WODu;W80o*lU-lYbaav`E1JZuRHwwBnji48kSX1x;W; zF@u5%1s0z{fduUL;Pi!_)jzwwmAB}H#GtBOXF5g`Ax<$fHi@OB(Po&eI={Oka)2cO z+dW`JAk?;RgOTFN1#W0Eg=0tyO2>16a%zw=87?=~F>p0CP0woxMiBqMqQ+_?=xwlkx)I_hZWQinh za!BpF=n5O=7~@*|y)N%=EW0)tTztwWIfPkb_^YIAbJzT`Nf zN)G$tj=gQOJRWS2XKdE@IGQ;;{QNLcrt95J2%gi~*s&hx>dg84V4+)p&-j5kws*|Zx_`!su5ik#6WyTBvj@qWeG2ptb&w^Ok92g^tm?+B z2z}+~w7Zc5zUGd-n(#@(X=igxRTjZl4K|Zt+_{`BBrsA0W)CiRc0K}#`kqL(fXqXZ z$DPgxJ3ul*;j$vxKjRgU2&Y!9k<<|DEpU0J&T?cj|4f69a9(|~c0>t+_@Y$+l0YR?od$O|MBf}BIH-{7!XD#83LgmF- zXH~Rs_dpJrD8n&vbSw?%dDsz1U{ zXiUfGF!;U>5k6OSqH@wQ%;ny`4fWgzMnvXGXgvW)!yc~N!}Xw`S&S~ zWrzE0uhE8SX^^pv(>f7GJ*9^fhxb45s^eryvfqUm{?2-ix6dp!W+QV7_r=GbFTaL z9@zh?yP{%zI^ryAQ++YIS32;&tk3^}uFuJ6ed_-?<#EFV| z1(475Lg?$zM}A*_{(hPrEznCvgV(g_ld}dFYM6u=l4b2JU&FM1udk$a-cpPw5GARJhN+9BBDaUbNnSmO~? zf7hURBn5a-@eqo%n4VZrHO^PFD&5qsZw)}({kUemRV1^L6i#0D8MnE&B;Ked_4%sR zP{r42Z^0s`8J=(b*@S39$>7+diY+^=JbOxFog$VUo1j9kMFK`KUro?him^wROw-M@6_ESkOXKsB&qXisB$J69tK>KhQTZL~NXLEW`dC!3tDVthS8ZI$p-lDU z&Cp@|9;u5KSaHu*uShik7I4_qi%TRN#rq__Uvd8hc~FH|b~5niGNGN7^_H;51XDn! zpoNhqV9>VcL|W#OJkgbRxw~@+a`%WscOZOwF`DVSnf^U7P})`x7$1Y{TPEz%o`J8S ztRxCvtS#770~cZYP$fmxI_zNj){?>4jz+I$yJV}NWTm&$rw8IIoNjNeyvXyiqwhdx zTJNnA-}he)faCo~e^5R zRqPRjzX3v{BNWh2Kbf4z-B!MCTpB4%? z@NBg7gD)9~dw1KN?^*Xt15s0d-oRwldjX1k94)DI%1a$TPhNE7e%vaqUFXJqro4<6 zRX$#k$Lw8Glf8H^DBk|`XLIl8DA{l?p3|WvFsB-14}WuoF)vT)vNj{%>S%ZupPjSF zvkGC_TezIbQAQSH`_RWs$u{?Rmh=89_g%h-98AspeIz=}@_spwrWj`yLs=_)PE zV=>=+Dzh)SwxqFYH@W8<4P6kt@ba~Yqqnl%Ali{aw#Mxc(Ft4i>vQOoqOkP5j8fUaUDX{BT)fKJ3DXvv#?u^?aPPu>r?yu zq5C~@HVgjXx0{TYM_}2ASZX5ZbDqgUj5T!^_^~1X(OMVsY$7dX`kDwZg#W>h)46s< zmCWTS1L7KUDAvwmEY?o4>I*SOvPW;9l;oaoBURqm=v@5O<#hF#JY$}o;q~}uFEIX$ zGWU;ir23!x&yVlQdl2fOux#b2gdt^W#J3c45;qTh^8RL=e?QT{(f5>zo~<_$a7v4Q zwjNMp&NYd8avL($^LFezz9S^_*VmWw!xyjQ1uD-wt0>Qni=e{Bx>A+yjXB_i$|5-a z?T_UDPfZ}J4vKxSzq+}SFEtpIZU3|i--U#a2qnf$( z|E|1B9mW}Zfhxm6py_73ldIbsd3$wby-2(0Pu|TmbZjV-WyrJ7$b)-lHhKUnpMV0; z83gy_kY~kvQoc~f`4{UGLkR`+>ax3{;15jQ1RjwmBIf(g&_z4*P^8<^wQ z`pyWBU#Rj71hB4HAZVMi^`&>#o~SUdnWWJNvH>e|J;5NGvU@jfX_TO+_6v3J0Op-p zyQnZyIz=y|dtxaJ)~>gzLw&{u#)&wzyqLkZ;o43*7b7cZOBc|_O$ga=V8iBXrs{!+tP~o_ew|e0=3}7f*tqkTK z>6ETcsB8h|7w})m<_u&iI*^oJR?2(XuLb)~tVhs9$nmVk@15H0`#&Ao*Bqd|HwaKC z;eN+nN!hA=N(A^T4U0J&C13!vtaZ*_0R~R#27Sr*wXQJ{b>d9t2+z1e8-g?&JWzyg zJVTU~uME~rUNsd}<{nV3PU1L9ll&X|Mr7t2$KG_lhdGI7`L{S4nYHL08s{c+phZx*^BH61$elgIv!iF{ zr#yI6{ip`K@UD9gf@eAnBM~8uH+J9Q1iM*I^t(a#|E@TXS4SK2sQXeF@B$R5^hgLB zsQjL(!xVde)te)Jqr3vG1MWDIkh{i@BhdmfW~+08WTaJR^a?bUoxaykZg=uy)hqgZ zsq(Co@11^6r|8_!M~02;rmgbbI~`|XyAROJJ00VXueS2~dPnD2vKn+W#Bk$xYN~pQ z(^`?}$4T;N)aL9u4-%Vyc84}6A}{sX7_Xslcbuc1$N)6EjgMhC8pJGzopLxk`2ajjtUaJ_KnWv zPxS+hy~zljWaIk_y{cE%tDJjf>b&wyETeq1V8C2S*U(gBPc3MT+tqavWRcTR>l4~F zRakyr2N}tJ+4?&Wj>e%PA+Rr8oP%3rL%kWCXU?$ah2Kd)h~qpsnE|KQR;~92l}=Pt z@Ws7Vm@zR3bnd>Ig^RQVpGtC}>+x@P|1bHUcYj-6?61{X-qTso^=r2)AJ=P*r@vo- z*n;BD2M`eNEwKL>pwaOgVauzWyv(w{D+ga0?Sz)Q|sX^cn=SbC1MQOPWK_`p4?r{)4W6^4ZubXx#!diQd;6p-I4~{{?-Y z*LsUDbZ`8(R9<3l{XLawzoT6A&#DYP)r-H@G5vjg&YvJKpQKhjEDWY3HDD~R6VwD5 zI?JMxSLQ`~$R>O02p(x}06S`4u?0(t>Yl84*#n+97u>ie#t5IdQbCp+2*adejIHBBxo%PKui&L=XW96 zfY~EE2`JYi)V!-#L_b@_;b6u{{Ihwd4+eR|e%fL(Rc_BiN6g z>7zIG^R-OT13YC2>K>?%4%NcPslMnK}$A0 z|FzEhPSD8HMhvA+9IE7AP>IdH!R4|KzhHC8+b{)FviT|?B?i1beK<12K8e@C&}zh z9)%tJ=V*Noy}7k%y1ze795z+qss6{`tt`%$#*b}sPJCaNB`r1En$LH%yBv_iG4k}` zG{J}kEPZG(Lk)cwdHRLo=V<)O89X*GZU zq*2lEV4piA;#mPhH~X04UXxX_8q?Vs(UNA_n)B#wF9$xC1ss$57+5qpF?dcMH`@IwJFSUACRcj2 zHbxSHSWZcH|6TYpI`_pzERS?c{WeCNo;7# zpNArF&%1X2vXT!Oba{Xw`z?;V*rQ4ORVX)`ago*JKWmmPDq;uu{>xW{g`S%JNS(h| z2l&u9N8Eh2G^Z*RP?QUxd3#)x^S)IF5=6uo_)b_4q23$+=s_A5gU}UGqoETH< zNc4G{4md!xZBFwIQ(=o>;%kE3N}GY?5O@R!$b8Cd+{-1?43 zwe94A@rTxAIo8a;*sIf1gC(bM3US(1C5v+w;=|t`S&#^@zE_sWQQn$6083{*P!XA8UVRg!{|?ROjqNM{kk!K zGrW{%V%FyskrsNe%;!}NHBNO$bgI`ERx>>cIto8y9 z!Arg8E#RdQFpSLO2#$sMUBt(t&(@$k0@&Cvn z+~7@%SF)#Ejaw68?mQBqoEyEW_(I3>)%9L}e!W%QX0HKhbzd`(r6!~X6t|6yYylP_ zZ!%~_B<6va_SHa&))j=tEmM_P90Mxq!8551rg5jjI zD*83hCwN(rOP#|zbt?Rc@{DUj!Wi75Rk2uwTv>TPQSa%U`q+Dgea}(FRMtA)Gjmj? z?DoWD@~>kxS7VYE)@AE`lOZ7>__H59Q$2ZMU9rfV2Zm}V1L1`0^J@6UDoV3gIXUSf zMm1N187wqz*Kx}f_9bV}cIXtj)#YujnVAiz=+2U7_zc}6qtZW7jME&r0e1j|@~Q0P zzd!uHMqwVYg_)VlfT+1Ew7(3xc52qc6U0**LS1p#=XW!9uF9|ZiZv_8=bGvKcaQZBeo@V zzK^e7)g#n$E09eKnEHnf=&DHO+3S87R{HO)?zJxv?}Og-M*ixH|GWIo<-aIb>0JIq z`Rk3I|96#6e_!|LKd-d$E4o+C=sYg+75a)Ras6Y}5r7KOEfPnTNA$x)Nam09njgCQ zai_okp^oQwbRYavrMG`c`TSqi0L-5tkf1O2kMz60k3zvzEP+zouHZczL(V@>jm=(% z(r$p>ocp%_b3G^8Av`kMhj*2w5>saR?tzx5um_S$(fBlqX3$%*YveYL?4|!~-Gctz z+V#duQD_ncb-X9)RFUu zC0V(WowEnkI7t?aqj>15{!zRavub~~CIJhc`nvb*d=H5FD%J|*ZZ$i&a(207z6Vp! zJyCC%Wi%bxVwLACaxNZNX2RXdbu4oLC#P2<5ZDGD;AVi_=c;5!lJfTr1GX3}JS*Qj zLw~_@`aH|c&R27afL*o(?Wm4z3~9~}eFmL7xxELtCGhpN;+bQF(~vRxImi`>-`092 ziM8$#R&4VwbOiTAWGTHp$C4JpUm+6kz%0#n+~Q8hF`ySWHn7TMAm&umCkBbEe{^y= z#opmbJXt)OoL60}tjer+dQxN!STxSmImqe075|QV5IT16s04v3<#JaVKN)&*C)ek5 z2r#_6>awDCZ|x=Seml||{qkNtPM(e+xg#Tpg}3-_#l~2gvGEC|%mH}#nuc&H$9^(B z!_T%Y>Va6B^O+_sA##~e6mg;CdyGMD1iRHg*X{KutG~S$ZfcSg+^0a>A>P|<;u>4R zeKFSU&iqr^1Nk0=20ikQwe5oGlBO7lt?5=gVWXJs6TM8UA?Zi0j?B{fkvLuroC?x)G{lsn0*-92@v z%y!w)BT1EK9fP&=d_^K~?30w5O7X*IC#gwQwqNXfsN1OQj%6By@B2D{AEKS-$_qK@ z!>PV1(^<`5G15oOeF1e@Z}3j<`BDReYanllwcR1wS2q8vl!k7qpU!9^)nr$*vsyo9 zTJVZ)@jijB5j??yJHC$IW{UJR`Xohit;{lyEKa;)z0O8y)ZD`WRyWgPk>y?yx#!E7 zTd7t~G6z8G4a&TCmRI|~yu6>Z$s#@nGRwa@SM_>v-@HE~9%*b{o&YGif28@o^*u`Q zL>Q?_fwM2@z)v0lwJ!Ye2k)NmPi%?jdeT{nPn~e!6E^#_lhDcxeZm5|rc=kb%?}mq zki`<=v+v4*ikR-dy5FZ3C}L($R53jNMCH{P(S1AB75mPTYv$_k_I~c?_M|WH^UhIK z$t&kI|x^?lu!))uC?u98_e zXAu5{`~&`0>Kr$hgq~0P8%b<&I@ufymJqwXJ+U3h;^T_oh{6d^)Z@I3C@>s7 z&SvN2y>B`sgFvT&?hYpaeBilhDHM83viL&k48<0K^+ElOC+ZufZiLTLcJm_pXS3eM zBY{2+{QDBg&KGXc*2nqMmPYJUI5W zkTVgmhS_JU>@ma#b_+iqG^^l@$vTO&%04 zW!|90Hw=g!y}CnD8qsU|@{)bAzkhbYN>o(ZcFBTr+=|)Wvv`Fkg%B`2D7xI|~=}%Yd$`+tpPSZ-C_YF2f^nGa_>y8H(XJtBQr{2Hs6dE5bWIOwsmu7 z8=2?CzP!8shCwMhW-w2n6C{$1-UFVFsNO2iS3}JdCgfHK^p8B5tXfsYbI{Fn>#$@; zjR9%oHAz_&q+^cr%B#%**7p|J#yn4SW+%=w&iF+6@r$T#7Nd6_)uAXn83Y5v>3+-y+GTv1-!mC=QxxAO{Czl%Ev=wuHB09@~tBGwBq zc@>iz=aB_d90G||J>JisZRGS^*Qw{)q8D2r4TGw_bfc_t847^fVbgu7zwnCcLO3urf>!V|fKPs>bMh)%LKCj(p%WRQkpE`& z>{GO5OXAAWpBlk#@8d1&c@EHv7YRD%5t@lC%-2@-u^}TGOfICs%Q{gz+5LJZnY{ySLS z?jApyxyQ2efO>lDV=A?H zlKBD10Uhm;xO82b^Qsdn7rlzaT1X2YB&}6~ufI0TyzcEV>kYbHgzvw2@^*Yzq%@J=2 zk__xisa3O-o2jm_wXG0yg4YdARIuW~&cPgiH2~l=6>MU%IVfJC#DH^JxsGI&;?}#@ zWljSX&g8bR^CQqLey&7dBN>GG;DPo&Xu7pUJ!nh>oWf+s3hT;oSwP*!T+Ad#(qc{) zYgXMLtyYq}5}i}fB;nFjmgMge_ifKcYncfqPJc{x zbzRrDar9kgP~G<&cVZ+z*QB`7E3bVmJg^vnHBK9X4oGT+p0wXOT{bpXa^1{>%yV&s z2dfthvs6Dq{43&mvf5opQ06!>_9@LycjsNS8*-^^iow6h$6KF3LNGg+eQ(Rmr>K)S zLRLArt~9c7ba>oYhp0l&5xn*9-2brv-tPR)1Te5_`7m8kL<~q-PtApp&;3y%~JM&jbnxCaVuT-bsC-ZsI&oBaQ$b1kh z@OIo<-^XCr$q-2&?4hl5cBlT<0F+=s%`|Wn4>+iuk>}_g-laIyth4}TUw#6fbbuZj z|MsKy`&btrWz5H+&*Xk9x(A+j;G3AAxa4^uJ7TVu)KsKw=vF-D@Nasn7Q6_MPnByfHoTf8mlr7>fIoCKhb-?UF zWmI1ic`zT$e<(gq-|ZyT-_!EX`b)Wg4(4jRCG@*E)Ojkwd&K-f(YDX`<-~%qRONFz zJLBH%88BD5pniMm3~Pgxk7Uj;#Ou>5Z;i3!mOxA|!S^?6Pv2fP-=~9@D^G5xk9idL z&s(uXIB-14D9!Wy-Us=oCD6%%Xyy^Jd@#N7C@pva4)zQEJH=WAppeyM%Pe0_qjjGQ z@89{BE*@j!pd`?0NQwD<B=PdZKa~6(Lk(xI2t&Z4ShYa)S zJGbKCS<@Kff56jYRmPztiPYYL&D~3rNm`XZi442W4S|EvR7E8{{!(ES9E`6DXI8JC z$xCD{<|WCNn}7!ArXU#al<^-sT$PfyR( z`MhJlVD>&P4%v+0tv=)3-JM*jFuf&QvnL>cnIOYw8fAv2IebZj{&4}V9 z@vK5Z);FQqlKk}cS_S2fi3HR8Fd8c277$+`CWPVBByY4zTJl~Z{w7N%-q5~5*p3=l zSTX71YR@_Y3aPczn`O5f4D?%MkM)V!bX)I(W$^e1vj_T6g#x{)0rkAXy_j09R^KR*fV)MYzWVL@0@0>vMa;<=|NhHoy|R9#4ACAo)P$cr|Sbq zcTfznZ2{4Hd$T2k^$*WqNaQ0^m^h@#R074pocj!lmux}&m}mZN5MOM)@ZuFK?cS+U zFz)Z_o-6M|8z1;UW+W85(G`?#R<}79_#8a z12|eU`rI4TT#kNfyhdhTMOe9={fU4k={=kPMP_?$vPyPVp7fR#*-amPE32 zIK3t`@7Kzwey+}|@iAlB|C5?Md-QA%W`uuxuYaQtIru8(_NDU4vu>z?f*a+J_!m`I z#SJGQjoi_IN4t*l!REva&4*-noFnxe`FYDr1GZ7Zuug6)_p`$8P6IPQ&CoHPog9|2 zbLh*CL0g#`2T_b;nyS-`f$pxGdHcbj!|7AJYMWzY6;Wg0g&_cWjedhrK;5~wq`5Nl z86b9`vLuX3uYiyDCm#*^qUg zPB*iW+BnLrP&!~rOZ5epqI0=}5w)k|b+3ly751)5_c!Vw|25SYey~zGre~aY)))6~LaTvJK2_Zb315G3J;_hDnPY(imCo47l18fG z>~tOQzoU-%GTZ!KbU;tZa=uZHw^JvqzAF==yvoOl@Q{7&$U$7I-pznyf#=j!XEtjk zeIHcF(d^~ZaD2rUi@uJav9&t)&en3Jb8&U1JV1kLFG)(7mH9v|IqxhyumXIdj^|GA z^FkTa8AuWR71zBkZ|8|bMho!uGl8&c5?;c=PJ{&4CyG=@UfNq5h;UvS&o48bmv9cZ zx@YVkla+GFlW=J`vy#*#!O(kcu4bC6ff~OBbPM*_1cdtD5SR?jvYR2?aXP9s^_*_+ z0g7%8(sNr$sqX^g^1qY*WBFgDzb(J9`-xQzLKaHbIOwGsli&IX=g8iJnCovB01h^D zcd5GCP4Rr5dG5itPES>auV)Rc_%I&U#~wGI%y(%4?CaZ1gp1qjJ)e`l#UwFSse74f z!)Otau9t6h&*vU7C+~fvGTX5Yt=6xxwIRN?I$!E@D!<6o4WWx|x}E%&&;OqMpQgVc zZ=mfMWCyv_U9x{yAw#9%srAt_O@>_>d!BlQ{^v*F@5&F+Z~XU^o^KsD_H!ka&$G47 zK(5TcpboS*y0!kUIxcVCm(sbF%pslYo-I;)sX`{?Qj3hb`2Oh4(&E1Ua`p2Pd?w_k z6Kk$cAG6=Bnl;Sua?ge_8Ll!!&p!u(na;)6dXJq*)r;$JQ2CCerD92pnD<`gO72ZI zSnpo9Lmj3aY;f3))JeL|WC3|!p6!X`ke?x&3A30@7vS0+5M&Lq)bW|zD6LN?0X|UwBzNTZ_J|KvTr0U0sm+u31 z6gHV!S4fWNr=3iD-#=kUgdWv6oy)=jooWIplS(Bjid_dDylSiJ<8fU-%j@DaghYg7 zs9`k`m4Rz_6pPChPP@}wI9MwZfK>Xiz3FSrb}?3gmU=^iy9~Z2Aj(Y8?^w8D)pP?;XE21AeT5BFs2Q%w{CBz)$;1eYTr^kcC7` ziSJ#q1wl}xlpVdaxLh>!Dz%&T=AXIP3`C*=r44Kwm>C3&YWI@Tj2MFiT-B)o!QMR5 zZR6x7rt=f0i%43s1e?Z2sBh&*g`Urq)~f>ufjn%jsSwGfk;>H{e6Q{2!BKUk6p1u* z41qo+A5CdvEZn2sw$%fT)&o7>zb)YL^=sm&viPFLXvVX4s`f( z2Tv)@ePV6m;^IFU=$xeKA0RWc6bYFxA^Uo}-<)7CZp-Jzv~zfY%yOWxXV+{M)w2~m|6AhI%Y;eSg|A-jvc+jHyhgFSUK#o zz7`s0dnWvqK%~SjLGggffPQeqkz`1jkqAVjP`$^Lr;3`?$_8sg(@`gy^@nt@e(l;6 zIhaW~kRpCXqXz`#G5`-gw3W(d=KqLU(Mz2n&I6o06Tz?^Yt@4H`u^8O7fF5l)&?Y! z{DQWMuf-ujCNXqSF<;QA&$v_H)Xh7S_X}b%0rMQ5`0V4@{&?=CY?*4lsnQ23l<6mj zy|}|KvACZ8AdlmeQsq{O?+%Vsb+5x@0sq}~1i;ew@WDG;>p+@av4!Y<99{qN;tSXr zrOfOT1zkvjDB$-}%QWjcBKaW?=9??eTL~+|>5k6zj7$8%j`H~DEx-K+hoM*;ZoIf* z!$=>yNB!EIV^2njHIp`iTy=Eiz5%gi{6KaU*`RO9>n^p(8YoXRi1 zc%komV$jXH`5C}f$IP8FP*fRX&QP_rMPGIrHIb2Qb7;_|lPt27>cZ9;eqbI#Ve90Z z9?Y77AlCKWY)<4_jiT$?SLA(f)+o&_!_2O{q$Nm23izQKNa3gRK3d+|`jLud_wRMh zRx(3k)4|@Gk^sheJMO7e5X#sUIe?18aoc5wj{|JD(!gh%3pqvqV{uqrK@fgofN!Nn z_F8G@ZZIXRg_Jsa6f?s1YP@Y%J6QwrJk3=SZD6@7CH}j3@E$^7sF{b}fk=Pube{pz z{z?tO(T#=VS#x6;MS9+=vor29SDjgDKYCyshj+QRx$eGR<4k~Ao5KP@y~*gGf%K1b z0LJ{+RcS;U0s`d~gOW#}4*kRr54`uv=jIG(8hY-X&hHJAho<|zxx^GKv_sf}zju~! zfww=^YhOVj($6nd;e9v4VZ9^zKx-HluG=JEl{@a#eP~2~ipRajhanTncpbd=UayXq zGT$J0x}$p7wR0wCoL8LY=)5EC_`SSkNje-OC-+8*Qr5Hp2l`t3XPHxh%s5R*T9_4TbhEJ)vYD zie7zgs&nc03C9~8Kzfh9A7$96F|^(gIu^)I@PSVLy_IE*+;6C)hN~KhaF?nJ+yNq< z{khhrD5H+C&+dqnYCQ3GtPOfsajk?<;Ge2I`2@X=i}K{Ol@oQ^uZy+eKrcK5-ba;v z*ZPbt+5@b!yimOai8r?l$`@7}Y}pS>1MM2j{(+9;tv=!{mV#AWDmS-X%~KFJ8k~F8 zIlI;Cr?IEZfb->g@}BIhKE|Hg`MwJY&=`e%l4uXWN_foKs&~V<)TNxA{=K091TUmz zJ^`Y~{+(?kUu@*<$y$C_`Q1sNZ|dBVC(^0l7w8u#6)9;UB;%AkvWFLusG_sGxn zx<5v698mNnI-!<%|G6BMJpVHkj^$@eR>_TX(RF(MT0G3*{k>C}D<3R}qd3hTaD>+J za!6QEuF}xI zSpGo%o&3L%A5LFeP+Z(8)z!tD0~H_QnEd@&g!s*%)7t~SSRb#Z&mU+>jvW=k z@~QKj4{*O{*U$6P(Lu7*7eFz_=8f*Fm-x0JtihNqgn})619KP-608nvTzqgDUAd#gcb|Z(H%5!9u&1+`PD}IG~0u62WYKl3_scItu`02Kr6TL5E7U|6rZd(l>K1 zo=|9z$CUYm6z}bM;wU>DparZ^{hhprb-i!M;E;ztX!hwwCWFJXC!ed%X`XYI-1!=# zqT@1Eovbp6RI0PE2JWM>9dp+C_t}C_P<*fkQ*V9H)4oXUVLFBWBn+5#{hH6oaH0}o z%pl^!DH*fXH9oV-M~WfnMF05s8cFsU4p0<>48?RXZzc2`7H9DNYfJKU6fO()cP1B8 zBu|LbLaUD#vA~)44UM&OxqDCcwSkNjI!vDR^VpJsB7jpI$p}Gw>eIti6W7BwO^z_Z z7Dv2qAk~CU>~unXOYA)Zi4p4t8(V#83;<7-U|b?G+ab;?S|2}~tZz3UZ%6B2TUINH z{;B35zd!r2hYjj{Yi(p4If~ zYEaHgXFf0@KfwOj`gx=GDyIz=YdX4p-n))9dd0fm4?ZW%SG+^5s1E)csyZw!B1q zkM~R#>I3D&#}lA?D2B@YGC7^dLenJAP|zfbhp-*7UC| zZ8F;8zmF>P^SjT!+O+&Cem?bHPd$S_8eY!V1uaju=j$+!@u6~LK=bL8jZ>CGr962e zR#d=75Rr)`StN59)|M)#!xLYIx-0Uo)YLpQ$;&dG~vZkPbfd@$=Vqk2NyE$LpJ->Rnwo%+JKTOpe~k zmV=h?mE31m7Vy$wv#&e_vE(}WJT{48H&a1A?gv!KIxtpsz09$)zgwCrYTR)rv6Xohuz!n~@crg#mG7 zQr_$3o$7y@ceqb0*jyK<=kmQ*pRzx=B=M?ugWHDU^+JOHC(Keo)%KnO=+|C-E`R3b zr*ee=uo@ER5sGu~baQ@vdn3QNy|%z`WJw(iZlzA@&(2@U_cZwbgYyeH->fZGP(0~C zf4|i0zt;P_zPe&x^U^B(q?fU-K|mDE-#7E%3LvwHb3n)38`3vo%(apRK}BY7p2;uk zzc&M*?eDAy&H+i@KMvL=l-GlA7&NI><8DZonHQMj`hkFRBl|E{P#6#Z2lGNTAe?5U zw@hpFYezs}4cb8VSc0>MIrDs<^>88^RbC0j>GO*p(Wwqk*|XX;`}+fWS_93iQz}F^ zs*?*& zqk;6`z0pLfV%vG!hu#e&y!%Se-^v3H)(BwInBB`VVAAkv@2yslJw6!3Vti)FF&}3( z&y*HUJ9j)5sR(iB`h1`&99BsK-uZ`{GyQ%IL|pQVcdwVo6jsxJDH+tSs zI*IOnYwz#=M&J2L`5@6Ua&~bQve&9gh}40sRheC+ew#{Y-?X~^aHl??4j!B|%f6+7 z7m6T$<{3h<94hQ^Wb||3&a;*89kqhh9i8kuXwI!PHFQy$IVoPXm1oFF>$@4ur_9fC zr%_VcG#JQaWq)mJi{_VFk;;2^7L=9QP?DOJX|(GRI45_PWyhRm5pWE>X3`zCz0|QF zD6WRv`V$+%^jZj4o*ZgEG*&XS=9MFBVX>Cyg{J2n|ozP#cFq$C}g04y$1AlO+|d7!V&dylw?M zHbbLqr(4x6R#XguT=Ivvdsd2niU64!aTue)U`K|u2M(B+phoY;65rU*DQ3EqCfKnz zhZuWTLJsuuS`FPdJFmJd=IoZv(Nd;>f9s^AaEZ(YGmpWH`Vu{o2|LkhB%IIw<_-45%oGA4W_B7J z9Hq=b@v_wKBUqG!&D3@GYC%sNH1*IJA^9&V%y*qt>#i_wMgCR!NAho#e^-8Kd`095^=59hz`fJ@acTutGYPinBp!@OUymusx<@<&1c1$!pJ+jQj z-FX!bddgG(8xa_P-g~to!ixDzO}gW2fYq+idMeBQuCU_$yMk7q^?Z4t=X9)oQe6_?A^}cEt9`3ky{>oYpPlaw*A+}XihxA%ioed~ zVhNRqKPer2UzK2bX|^3I0#@CVGq2&g5AW^hu(E?L@eY(Z}J}_YGuA1R`UZ>vA`A;mI-4&Z@LJTn#=Jdq=hplIq_*EJAEa zowKnw`;O+!wLRUaZCH#!3XF{Am3qgv1c#?5PV zX4hETgS>b*>Ygq?XOvFgpEeY>t6L}Qdye5UM_0ew>U*HN9c>E%o4y*lutXfa^Zp!` zSPg#`Oj2Aoa1kaeMo_zcoM!%9_ksVOO7K44f5nNjwIQRbJB5x?Bmj*cJd6=Y8)R+I zpOFTAz8<@mujAs+%114Uub$)n@^TmitG_#sSg`L@kq{~`4qlxPgW|>LvF~e(1nM?; z<`h-;*ryiQ!)Kt=&Bh8qh~6m?Q#sIaohQ_)Soj~)#P(+^7DFX-6QPI^x$w~j1qXuS zr>9&OB3j~lPcA{B;q`7$o{`7U2a5UJZ?8Jc8P2hv`wRZcy)a&u4ajpR^y5-o4`4c=t$1byV8( zZxj&#;fL*ZmwYTr$tp4g3aQ{DMH1EItvlj5yrw*9Qyn{sU;EGz{?Q`eKX@;zzq6rxQ0^o{pUU*P zSwf0OD)`{+sDOcNol?W-it7uAdjyo%Vr;V1X__xe!z1GRC6xLHIm+`tFUN@f8Ap2J z`DtFs^w1vitldKf`c0o}L=+4*`Ts+)FIC~X59?}@t1A7u-fdnnzcwUq+l=0Lk_*mb zFOtm6MMg$u-_4GUf;r)?Z14tHSqoH&++VV~~53glPceI^b%O z2FR(%c^~WIvrzk*mzKfCCOlNS<=%T?tmh|Z@`IP3$my`I8B1v*!S^ZVy7+8E~`D64lzq?~Eo4S5gA~%_Vfw0a{l zNf{g!3+ih)PTv7=j>gggU@uca?YRCE=N|#ym3*;2<2#MaR+<=CSvk%n_C>Fs-IN`f zH=PlB@0Y3|z;Hxxy0nJnV#-sk;OsPjut@`}+A|$dv*UL3%riK!m{6fVZ&mmrQ3Jj2 zccUeaV82=sM_~nbg}-;mrj#sbd#39L`n#QWRwO#wJCSB3Ssz_0YQ~S4sq01_VNLou zKx|a%y^tmg2C-coD#ur+8nC$2;QfJ-_#GdWKZ%j!4SRW`wW$f<-V-N~l(Q?he24vZ zQoU}=%JDN))FT^H=VjAdKl+nyRUNQHXMOYZDkkytu7q+w#|8*zZLDi#Q!l3EfJU+f zUnr!(6CGar`9kPDkK_psQME2+T;aFgjfBSM!Ts|C4K98GB@%MOA^y9ExKx!*wjYqF z!fuJlj7zkm_*xw{H*8H2eH86pk=)TLWZ?*Gg~tD^GuUo*d1x=P zvNi6u`nmN>70;z$AIvoC!ts4p`J}mF56? z1Pl6rhc`Wy4zLQdnro0Jw9;I4>#|VCvCh_J)h3AdneyypsArlZoUoxIDhyV>uZlZw zCtf%C-pih-K;7IOthuuUHAjJUVM^% z*<24C>6pI$K1b!5=5X4*EBr?>o6FqGUH@KR^sKhF_nY}(%Cp|`O-4een+ET0b~*g$ z^jm$l|@e!F=Ev`XLJU ziS3nQpZUgMz#scb86IHmI`x-zyTpEf}T>rb-dnDj)ojUi8zhHG)zzH}{<+CZ|$Gl}M>PHo#_k zCFhSe=B0UL{jM{00lRK~Hm)10z8%hr1OQzC@=9JIA1`Rkz+0gSDM(9RfWo z5*%aI+$~|f&HY;h)K5S^;Pc6_OH!Ks3?<;jV>KGbdIZ3YHwu$p`()MIux$py!FPNU zHc5k%&7mXhHc<(L!;-U7?&k{RZf(iia1^JIuR>YcslL&9E1;Ulnf<4urvPDvl|^2a zUK|xJRZG;KTSAVc?Bg)of^(f6(W_YCkcqizVC8+lswZDZm$o&4O`DEY&x6UN-m2*{ z?C9)4=4mHQB*bdHeP057D+hEr65qPyLHRw19=$v*j-?W!>-22!U zCDp)Uk;XT0;IoJ)R(RlcD~ZejTK63$Z`z&H?CT3e7%qEm16cF-vqQM4N@LK_(N%IM zOXr6x#aJ6u>pseU96gmbhv($KdbeYdqz-(z$sTCK!kA+F45?Ik7|+I^qGr4#caRXWhu1 z@5$k?Euna1!b0&jMD^Wc+&BUq!2Lg!=2EOdv2#MUSH|BfY`126R)o>`PmOY{~q@vi#SHBJO}S4=>pkpw>4hIAx6cZSni7VG_KI{MQYV} z3Y)WYUA>#>nn@k3k}U^|cl^LWKO9ONgVH>=`;HP!2hy+6fxsJtD1W!;qXF_E+ zqssGKNAL87vX|yWS1t{7`29#bEi{Ob?aunV?M12fPnA-X|2|(`SLey>eW^M@)lU3B zHqTZ8yk^yUsmV~>G3d8W8>AyNJl3oylBJFL5Jo*U`+~ip^`7uit@;R@8f_9SGxye( zNy>2@%lCj(n3wvPc`y1`;fu0o8%jn=ivczFTr9%8e;Z##NioOA#&&eH&DTk0yVT@t z9Fb&YMqDrR!pf2+gKekev|Q@DnY=&jo$W_dx5B63viO8m;OciC46&qwr1h5UumUiH zuFs&pfV~IrwxI7LgNn8gfwF_^R`@;HyM+&p@07H{It3J|IuFAeZkg zo7k2pnV%m8EvS~>sbB9@;~e0H-d>ARpmPkK&iR1M$rxz;H)(MF4#9d!jaD8zr)wtL zzpFgnmCi?z2V!oHRn{NQoygMX+>4%19H#IUM#8zuZ4F#{n8kZBZNiV6p$2d5lof~7gQIS5mloIGvVz#F`JTxGN>#Fz zl`F$qt3r3K&xbR6WUqjU73Mov=u4iScVivfsRnO;@Zu9W)1LuP-NMogL(k{f(_I;r zR0A=y5;L%`Enrm<@J4VPm9bZMHw;9Yfn^!^C;F@t6(|VAU+7N+-Lo^?J7u7+^%?{- zcX>3JW*4qx)INr9!au{nA{?1`a5=uie;8r1YHX{fi3Mm+Iyl_OG58DX)eSiONxgN< zT+?UmoAsb#2)K)2d_e@rbnW{_!IbJqsZ}5C9w0o2JCmvCc2z;B^W#c7oz<=cP?2q3 z$82&7j^p3H*8nD6b5yWy^hLq!0CUg!46cig3;n#*DG^*^bYHUeX#DW zT3}1)Z81eh$9-{f$|RHh1E>@xQ#$by5)L*XzNZ=-x2mt+vriE)M8NeLJ>8kDZb};} z!^fy-tZOE2L%IUn8Kflp%4&cYK_3_zdo`ek_2AGX7?1UF8cM0jBLm^GJ$PQk$7QrS zdM05c3PijF^MyUI+aqb<qt_a%7!pGIbvP!l@*DB-fIuu#WVt%>-zdijg1xC zD6FubR|vKxn-j4$LgptDUM4!%yvNB?V=B-1-eI??W_WPwV=7j+%EvC%DF!HYw%c>X z<1j-IpM9cp@)@9~T}`mWj4bca(|+95gr>#&h%2DU6mkS6N#E2jGkM~^!eTeiOYH~q zePJA2pf9=pJ0<*kV#WF!1SXM`GEE?_^PS=Ob@o zH=Gho9Km@&1XwZXZ_W*?&}Qg>*MyUyh18eX^uaY<(7V$ojP>F{k(_6zN0}W}O!hfl z+rO3TEpc@t!0SF}kQV6H(|NlyD@Prf1AD2`6@Y8tqyP=BdxM3GfH4B7qnTIkO0b7O z>_LuC=J=%Zt98Ief=llZ;MsM>hDqW6gOh93Z<_5CyxY{GQk{#F7@w_Z9865kVF z&jKRdD&6gV9DnBlNo4k8js`CWX%cKhe?sQ}Urb-g-x~h|`Rn<&9yE}OD^=gp#Q6wE zssG*IWVw4&h}ajsLclpt(s_Xqk zWz~g#@|6<$AGg)g&wTGWspgT>Qd>c318$v0U76oEKEpg%XM@sIzq=zzJc-u>=Mlu_ zuGL@B#OTkey!fH&K9JD^9YkvL>|uB6yQ{5>06ESZbzU!3=v*pIUGEC%tVB>LS%O05 zc#T^UcAVJwhq|DTKLUl`rx~`?ex2EFpdUjtn2a^GC^OjHxg!n#AH50?&z*3;WC@dF z)gOYhK7K?`amWLe+A7P9Q0bK@ohL%GMp<_H{B5zAiiICK4^+q6S;ZAoKAHTXvJ!#g zviEixQen$G+5}R^+Uk1Y6ej#JqfVwnu?n2M$cI`Ak=gdkQB87G$^V<&_5jdO9T&A^0tDTu?!q_fB(B59mQl_z&>h zo#}NNYZ3}8$GZE^3i(W3O6KGP(zLHZqsJ$=-JrV@t&C*jEukE; zoFrQJzVDePXkOaH6C9xjS6^SydXhj~sHn%q;lL-?5eKg>F7<@@2F2&R>W5-}8gI{1 zdJq0Sq7ayGDVvSaLaWDf+yP#H_i-n;0c&Dx_R8qG*Pl4tf0{xmDwfGpzHa9vGtl##=CY>dNhd)*OWbk{5^F}LX5q=L_5bYh|7wJ)DJXmt^ zSPL%P7HHqASew9;^}J@eZu^elUhox8jcsr^4^r=UBnaFbl#P|;HN45kHQN{6{9Tzx zyM*eF&mtMD94yiy?L0HgQ%SJB+}-s}4xUFSj1&UhowEel`zd`WUTv-_FdoVl)$ zH%!n>(Hf%ARy`TS{iIfDJ#-d?+;xrsa>Un`d@puPYP0ba_jALSIZj3wK%C9+-4U5K z{Dz*$#v;eg_GAgUnr5~h8-qS4RFiKd-(5+E;JES;(lZh+^mp3P(y_RRXq%lSeBIq$ zvw$qs;;B|=vlRT&_`910YJN65)tBoq;ryE)F(ykCgD-vBT0$h{Q0S#NwX=TdzJu%UPCF5!5qaz_OWj*Y$V`3q zxQ+W>#EZ1VP)PUL3jG!|16~L^g`GoG)j~Q9KMP`NgFV3apV1L9n{*Rh!~aJVRC&*% zdG~Y(rT(XO9AV}k>Zoa?&HdAyU0Rj&3fGdp^-yYMO$dt8W?{Ob9*i}Z3%z39{T>Ff z`j4%2V{j~vGA}eLqTb}U4oYCBA_z3pED}>h%xF)GYj2g%?vRzrN- zQ&cUzI5}eg=Jn+pR?`0PBtX*p$@%8mP2Ib_@rECLMLAw(T?1!NuihET&^YsZDHpk98H0s=;)QfUa;eZfVrC6JT=4 ztMZ!tXzHyg;`kVIa9hmaLLm4oSw{5T?Uq56^OF+_n#t)FRn)=iY|NpY_znzye_67SD>ASyEXW=yi>*FF(X8A(SQ&6euS?>s-t@PhHTLBD}@AaLb zQFt7RV;FO;^oIk9N8eLkde+ZXLj7bFP#@xGm+)CjR=j6mYO2ATHCxz=M{gh!5Kbu{ z@I-vg0Cw>zcH>z#pWPfdOpUhCIH3%J(LxO7w9vH$ib>Dtiv{2thn6}0U=-Zhy*9aF z1bKE6!~n^Y+!@z%i%-`X_~n&2d7_D?Jcz}OCXvdF5N@Yxe-!4S!(it@}lo6Cry-z zN_larV=);u+nV8JklCTxIJr|h239624_Tw)ydyLms--{!dsJziTJOxdkLkEA72SaM zpl>79ec4r=+zm#^Vt+n+SJm>`W+c3a(-8ZSOwA~zX8rSz$@CE1Z#*z(I796HI6JF3 zhv*eNdWCo~$0g($92FT5={=GaZJs#RfVuQw6z=(h{FVGWyZ^QPEBoK(7wMkj7ZV_} z)B0Q5Hy`xiSWw}kM(v-dGw8;7TbLopQBjZS*-MvM<3|vdI{BA(8fd&yUb0Ko{Mp`N zy;-00jGN43LQrteLOykTo*b_@U%5kc8vQyr06s9Z`nSFtoDXE3)>fjdjP|$&omeie zj(OUu?f9i~VBM=peQm!qd@29N>3<@BfB$RBe{2*}8-O{|OnsIN53g=+Y~k2{HK|4k z=1cvDp4xC+?!JMu>RGGYyhl`=F-bri@UKJybl7et_lQJN9ZmK*cyXjLPhtBu*Ag~9 z8Sg()*|=FvbAS<0w0i!9uEjZm+}^`6z2#aBoA2IeK_7g*$~%boKL6J z_=#(UobjB_1xv4cWsRyerQbYc@;X-8I%_QM-+=SqP&zCymb0O;028J2%!V1>R-`<~ zlf^;y7LF|zR4GI#vNh>kDWh|j(B^8Nr|hT`4xMhVTi4RqcgMR;#2y(CcmFp-L5m+PtN1b?z9T-6>Y$*KS#8$$m~C1fS+@Y_1%*eh$PL*dGT4A78RGJF6A;Ycj3rCkil`pzG8Kk z`@F1O1Jh>apo|xNiMIiZ^5ZsHwbV5+-K2P1q=g%etiP}D$>MuBIbsbz96fl~TmN?^ zkVcYIO3ilm0Jjt`v`l_YvVxd$#P4OwzQ6a>$o5jdGsWiEQ5ATJp6RF(MB<`k(>I@! zc+2W|RwPdIvk&~W7435J;B}x^^}X2?>}_py@~k5__JX4z`G923in9Gw?HX|#EO=+5 zZ~o`h{oAi?-IgB)wcf{=w{_clf0uLWoGRBzIVOovWD|&DKo${7e8Gtyq6mS+AAkf8 zNQf6A%tIt3;0=ifo)F>%Axk!egdEJPNvOiP$1jQPvMc2}=X|$)S!>Pf7`>7;ObR=Y=U|X zN?Zt-)~B0hR7?L-ak7L~hr*tPJ~lSILEz1+ZA(!slK8mhi={YOVQ+#S16$`DwkLLo z-)+|P?T2^lC|&6JH=PpqVl9wCihxNt)X9SRL5H_e3UhC4$ZCkoIkECau4mfVJjkgK zxn`@i$Mq@7UCourXp#ne?BM(pqM`4>Hi1JCcGb~oRV5gIO>X(08p2KfYo8CDccwFPE}^EElOFi2;Z&FeaW+%~#Uvg`Hip?w6*34IsanL?-M ztWfwVrDiWTsCcqPG`Yn;^Rk@D=pXnVY^7)5Kg-kkS>W@F+v-7&2=42Chnh~B1?X?s6Er}hhONzYN zn+*$8c`vpxonNe#pn+N`jxjyp&+tG)(qQF1){WN>x-QmLA@?=NPPz!)S~BB@N^=kp z1c)mu3zLHo_Jv;Mat6*{q1*?so$*2SRrPi5Eje@~E&VeXg!)kYCyU^`Z3T?w4K<&P_P; zahh_{vu)+G&wkY996vW7oMeuhz!OY_Dk0l#8}yN{&l>q^QG+=Jm)b~`(PR;6L{-r+ zVa{tCoV-7r{^~;g104-6gp)?8La;hTLXU_e@+b{BuX<9F;1na)MsMfQoPI-Neo>hrrMKnFn3j}vKxF949 z;*3re0iXydBt%b?56jLb+w&oXqPSw-05SXK@=Epy91F?5$676-Mo#|x{*E2gYjO5s zP7k~v1m@2&`J7QBs+$a6W({a6CbFIFiJ1pHlh%JLXOx0LQ>n0v%vG%Uj@wm1wbyrr z)684^jk)=3aX~lpl^8DIyoTd86`d%WFieF>$ZVK$qK+df^Oi%yqB2p*7$;MD013~Q zN-wTosD1u!&_P3i-16MxUm8CSO1-^4?)hvA^h7PZYaG1m)pi*~E4qeh0+6 zumR;ODuifMy?Q`$5o)FOAp)8lI+D+b!fOlx3n$R z=8+9U;d8M~9>#m=oAMiEAV9IZljpOAs!6gG6vcs+IAqC1t^EiGqj@-``|G4ofH4o2 zL7__UDAD|Yz~g^2=4qFg{BI=@+|KV|k{_92+`PKxwj#ZIf2;2zg+PVP>jVFN$uh}L zt`@Z6HMr-t0kd`wsNpr7;ycSuLC{SkHMVP{bGE(U{C2~?-}BrrEo&=BcXlMnJot=x z*=u$n-?5DL3vO$isgW(R9JLyOk}?w~|Bh5q&ti1q??@d=RV{1{A3+?zB4hNXWQrVV zbV?NFv7j3SliS6Sea(i)i$&Q>9{f_oReY9po7Zv#_4Tr+VTk9p^2OYsN>#y0vnWO& zsq1Nm3q01j<=J(btN|uo16M>3E5V@7DE+6|J7Wn{F+0xD)@8cq&dMR39B&Q4q_S?& z0(=VFcKP09d!cVB+j&X`;b~5oY)*UhS5sqE1ccLnuXPhcaxqQ!$3Gwc0sR~4Z_vMx z|E?Iv^0f1Mv(Ia6KBF_g|H`f`GRpdEmXEe|`+L7dk63o92+L;5FXOk*xWHd-KLBo! z44F~oFVq4bhd?e~oay@652Y@7ATjzv73j}}pF{SPz!#GGgyTVZtR}W-mW{Obv15IJ z$%Xt8{7)P=B-!9_-it$Q#C}%~l++TvWk=fw{{E8Xt!_vE;>Ev9|ChUek$ykFvE=6} zQ-&i+LgZ1Gt4R4;3%%ann;j)1v_n-b*d48-(FSo?kKvpj{%8)evv;yEBYNo4Bki=W zN|KW&Om{0NaV^4EZe&=?xUJ{Vop_Cm!2j9sB>IXp!62zdsoA3=)U97|r&l}3ZXgRB30oJMTc;&Or zS(xym=^^z~m|MenVPw4>?s`|qHBdpOIT|7ok;xe*U)lV6{nTvPcJ36DUO*;@6^$q7 zhCXED&%uo3W{8*d2-crip?!nzKcfM`&UkV1TNYzJ=NLbtfTiqUKC<|=#3u%-bTp{E zW-!fCk`IB)heJcVOq0mI1g)JR6-TeifKDAlIa8&qjePC_xCRUD_8)g*<$OA{b3#bA zK8vtOI_b&RxDgO?b&j?Em_qCPZ|P@mHlWVto!i4)hy%Y@*{wJawOz4_m;;Nw8-8mlBnV*wqcDQe}j3ZAMsQJy- z!fkvuR~{5n7RNHJ)#t7meh6Sj;M`$QT#Y&D`t<#r6foSP?+R}UXXwOHuUwW7u_ke~ zwi>b>?)G;ZW60j;RN~XbVQ)9-{!;p)a=Qf_`&J}9pW?jns7_K@Nn>aX0VKet%$lUw z5H-tD0;cnHAhM3UUcJ|YZuo+_6K!8+o!c0*(HgCtequ{HT0h;Z#snL`hvoHa--*tc zkBygF$&VKCWpZoqHge&&x-^yFlO+h&m2Bo&ZW&73m9SeIIW_B=n}5wCM3v5kaAq)h z@|fHfl~!ci3sTQ`toK9T>_QfME^Jt8C)6>(&O6vzX0z>PJ5SREvGX6ymoPTLgOZ%6 zJ#Xh$A4?`bbW{R=Ku7PkwqU!EIYCmHBueOe^!>S>H}{%;{)yTONQj`e)z)u)%9S@kc3@~6zvIG#RuypCl{rMjmI|8+WG4q+=1bH0J2-wRJR zzV39p=q7dlP3X{Zch9`#>Ee^1 zlkUrE3mw%p5Lo)qR~|@u77hsLBr1MDxr!ZV%E6N%SPGtH)FjPuh#ENRGLad1q@oU- z@8hBJq{&QJQWH(bJiRFtQqzYv_30(cQ4S29Hhyw1J@2a0*~72RbT+v1s3Cg#HJLOL zv6-ySy<}!GOh~ongjZ$^z+r zuo_+v6yVtWobUho!+WVom5TuU@C5-8&T-U>)=Y8x+?2FEqUaOgP%UCSs}k#(<<&Tm z#hC_2I1JcbD4tTua)&_r)%)*g%Z{}_@#+h9kS~j)DG*r%3>l9~;^^73Gig5@jMykq z1q1yNJ9;7H{`~eky4|dGgo!9m_I)mEDXZquzFBK9)@a9Erzm)IsvVBxW3x_1uhVVB z(O;9vpwg@l0*NxRGceF4E6hK+yr$p3{U8AVa0bs%vz>y%l1CK`v0fuG=J|WTjHBNO zSh(-@bl63y`9WU)DOWmEG9NoICFyuSBQp0A4CkXalA(0#Y_Vm z;DmU4cT4NtPFFRT8L-+ij5+p2)<@ScK(9g(GLu5M)My;#GyR9C1^!+B(L~&M5mgn*qk*;9$o9 zq@~--1R#uO zq7p;%vk=vAG&7H!>*L$cUAg{}#Nf9RB@nepWF9G79h2%LFA@CZ{psXoB3|;??>2W7 zb{Z&Cf*vsTq998Mf$8dJC4|Sv=NAM%7@xeRQ;gHVtnk3|Pq64<>xSDdS;71aK}nKT z56AdkVAbLHh9UmWGcQPy20ouHWe?!K?+ype&ds^%|L5KxfVlp|IP*IDQr0M{Du(*bJ9A#G_d9kdPOpZG{YtL7?Hb`N)bA!!6T`H`)F z%<~;G1pq_1n9&FR?xNSV)Lb_Wx|#!pHQwr8tPPb4 z!#w+))D(>p@r|XqFoVp26fFeX>Vg}&l>4n7b|_M*y+0JA05u@6vVWpOa@87zG7doe zU97Zzqr-JVN0(ZHDqjZ6e6GfEjc!+GfT#kb@^EXkt%lkv^A zjjS<^C7?rCFYaAZm z0*i1(HN1FcRVZRdev-xhQC=W1yZ0=IeMpiWU$Xm*LG%mMP!GOrPx8MPz1!sTJ@dlh z-ZJ{d*Q-2v0LsH2w)4{&I~G-v=@=qELZ0MjcAF$67f{ye+$CgG_BiippiJyX$s`A+ zsOl=Jr+&&nfTu((Io;v>7nmP8DL9AGoW2L?KFj*7`+UQ6=hsPUkN-2nKcs(Q@ek-9 zZ~hxfdkpzVPClIJHl|YZy1ZR=!eiAtH~out2$i>mMy#yHcsFaL&3p(nU1ct45`sIYbt?$P;E0NciEmiaWeX6!kBG`}N-O$nmiYoKeixgJSh8?c89L8|z$%X=&^#d9Ta15EN*suqV*QU{R0q2S zkGNmRjpX3X!QO>z^~1o%a0F4urJ3`BIl?=Il}9G6JM#dg3bdUtR~}=sy6~B-Xh;Z> zm*8O(Pl&NjicDh`8AdbBsm^~nlipXeN7Oso1JVR|X?r3AV7=k}q z$^dm8xtt(ZuR#i$k?-|l;y;H$GyiREQ7<<4yJkN(1ky7OeciI3i(FTt zkr|7F5soBr!bEk<;68y259Pc}grfE;$0}EcgCjp=%>wlA)t**O;$>F^qKCzTBKRn? zk(=#IWB*twK=;9AlSg%Qo_x@b-P-G7rQf;vnQ{~SYZowt@5^?i}+zRSj^Tz_zxGg#0KIj%>iydAcxt=LPg zp7H@DL)2=9av(iW$%;)R8>zN2PIzRSw4wV##?m>`g9V%yy~DVk(~M~0yN;}tjK`bZ zRTGi|RhprDS?g1Wnk7LYw2tX6herbu)&OCBf?^3mBhUZVjFR6&vgwZAl%No!^^cJkocB+%5> zsWMfneAY6LgX8SvXm;&bc(iY4P33@K0SuLPxud-8tGy5H3i>GNyF~{ZEph9Z zau`js$3^BC+~KPGI!7(nD7Pd{a&&umI!aiBtgNPbMedU+Gdm)9i&VlRwPhyH%2r69 z$z0Q@@Y2ZYj-A>{R4*K@%SN|EhO-h#CjYcTZf<$f5nT8w4RzVtod3qhHTayWKLJTL z%cVfA+oVvqzXMD$g^(Wi=h(THz`NBA>v{|Gb*SDu+`ZG}iwFDY3l%DT4JLQWuZAQO z$$0RfHmot$#63z6G<=3(g;2Ag-R5AjKq-%TmeC!5Y&6XS_KLjwk}K1xzHoF$Hu<8I z#qhvD$I_N1hEDXHT#>cplE9PUbR324E6+`~ zR@sq6+D!l87`?gDn3i98zk%xH_sNj0bfmvKRzmj21WNsfxH3H=Eh(Rj$qdgXgommG zY36M+$ps6)iJ~Zs@~+Rq8&nO;y9-(0_fOO68-4%m9+P6b5FP14c%?GBnGVfnr_%3yDW@Wp@8u#pn;HGx`AMeH+KqkjW&C} z2N~o2#Y~LF|0sRMPTWluLeCMnvR}p`5}d1*RquD@Dpp1zdy2|FapGA1;Qh9@EbbNR zPzRErf(7^IC+x_F^Yjnb_W~m?&a=gmm3f5#TpzS{u)xVAg-k;P>*Z=jpIuzg9SidB zZf|Lixyufp?}AYx7v3b|7}?G|KX0xs*}*>78YjN4&daUKKsrEx!RHrC`TG~QceLaF z&*wARB8#}Os%aLqDUfg;^Y>q;4>T^X=*{xNj6vLQIA)w|W`*cbU#R}XzC~}ZS+Q7< zW*x#+ayM2d$I%8A#De?rK*{#93(0Q8Mx-dp2xu*PnhGiI6n}{EnH5&_T@xIoJ~*$* zo~@P0`cF3JyKzUm^?}}R@5L~Jat4@dWJB+{e^@hQ{7XIQtVjTzuZ;;PYP!mj9fI0c zX`MeJg$zFJqTt}3IN%m=Hy>?o^?2V)9E3qW01(RP?_r_ z_^90VQA4zcvl=U*;C7uEt+?;wj_4^Pc>B^b9q>Ql4F55o)rHj9$wK3Q99QxPXrDl% z%QNA{}I{eW!lx4WI(tNVA#R}sy8b8#gK?k<_~5Tiv5W-*!q z$pBBkJM5%Z(U-jUfZ8B_uz-5viQXO}JI0Mh=Z~7zXI&obQDpv4{w@{3sI3{>qM+n6 z_xpeIv8h}IdNH(S&+5qJ^_+?VTI7(dS+D{H*eiK8*nGJLI|rR+7W+QbtmV$K7x?}G zo(}BGL#c_UNFT@|igJ&%fs6}-8+%5y;>o2j@uLaiJsDS*{kr3E?jleOuK7H(F^Ap0 zIo(T8+LGq90e$0lFGh_PJxCNc5DySx&juID1%W^uy^=-TNfz1OtgCsy6{j{nA5dNb zWl&%j2HYa|=e?9bQK;>JTIl>%4MW2Mr47|PN^vSV)UaZnc)A#E9QfX6}^vh`iFqMOi?o2MUmriUb3J6%VkIN zK1+t%jDKH^9lhuEUGQ37b6*yzGs8F=-oIg6124(IYdD0cKu+BE}-^hcmiBRRafA0x?1 zU(O_JJ)i_au2~&Z?xAv48b&)O&Hk=;=Q|bmHqeG#&KPaM$SkA^=qTDg2 zpUu|vzkT)B>0g@t9qQ6hRh^*5uizcD_(`)*{qegXr?dTJ{T(T!cydKUbuzXA(dsJH z;DPYz`2wc>emw{rc$b3NShDDA=+16C&~i1S=ZGf34JA>t!T0PKhqD{?(Yx+pJ+bez z&|jdOf^Gtbq5; z#XQiT*)Rp)45F9)>@G{GjDK*IG;^HW8DIzmf{!?@j9({503p%+puI!mTvRK%8XuRKpR0^ysyz-q`}%r!3~3>vhT4rWBuqVgFsA|Oe@e#y!J z;a)lj-kg5cTmKb8Q=p06v008@GWdI{XRXP$JbT$!x(&2_cd%6b5zdT2MMhSls^x!% zhOWrkAUkzdeIeQ82x)$h0E-fw5w*0NtPu7(g8qljjPB|@5VW}Dd(01y?I&|mD0+f9 zH4u4aNfhJ`Y&X7JKZ<-nK2?f1lRI|?)xL{!sZ;oW=mCkD3gme$aiwTGL9&l?%?Qg4 zy>f?qGRYKrL^6HVg%!WI>2HYb`O1PuaH3l|;!#5n&l%ZE`N^EAg?s;K?r%XMC0N4) ztIT+>fdfjz9SxxEk^E)$7||uf=^D&An#`tS^hE3>qs>ogqDh2m=Ao1)2x0@hnJ>g{ z0aU^ZDe>4_%yXjmY$y7#TeF>VFMmg-b=&nu^zWYa?|D>HKIk&+A5zjGfb3@pyuo(c z0R@xwlMB{wki3H+V%?`Mc;@E!Q2ALi8=>&D_QT4fz03z5p0R$kWQSQcJMSWBlENTo zsTUfv3F;U^>AG1~O+zx=*)bjw_?67*M4_II_Vw+&Hv39^)=_clh^feQC8AYY(fXmKS_Bu-W%4`VSR>Gb3 zY#$OtQy`fMVrA0#2wqwPi8Vka8Vz<^`KhkmaX@8r#>GC|l{q-IA%*6dQ#!09!1Y5P zq0`$+gUbO>0!GJgDYU*MXJ(?u1nuJqZQFY6vcQu`3HD)B!vc(#UK?67aI@5=hRqY7M}rNORxGqR>tzlv(}RmSGjB2(u(gv{u=-O_sb6c+LKb<|rC1az@yAh~ns;u@ZTK zh}CW@b(*6IeNiA&Dxe&U5-UVGI>dNZsF@pNtG;YC66fAjmS>J@~vbD z)+r6=Xxif~QgK4Mpx}a*8SlQgLscNbcanu6in%DsUCmT@xNACs5DMMTN8f?|{D>7& zDA%JYiR1^NK)Y^)D8j2fWr}<0PirtpibNoW<*=~K zam&VTc?WJD-07{QEy$n+WiLwLS0vH9@?epjI8+DiGn|hC&FB%*dFpI<#*r4s@W6Da z->cWSnPbQZsDQOb?M)Pj0Gub!;}WGTW;fi$g*c(fqP0QnF2pD}7h?f_J)m$`zn6IL>2*&m^o8l`)iAKs9(+E(5GO4ABIx(Ho!8vn z3Qp{#nKMDM5TfL33m;(TQGl~mYJ+asIhyUfD_;OV`ut)+KUpmV*(1;SjL05ICGH@y zV*WX54Fbs?{o!|f&27BRon_D&!beh`250>&si886;X2Z;i=v>5CvKU=Ih>uwxgkJm za77K!1nCppSN?rFsB>Jk9o`2@Q&6WdZ+9AGiNATzAuC!8h?h%+_8rFJ{1jQG)4J%{ z71x>ZtS!5Nc7wnGBV#*m_F_zy8mgF4WYEAs0fmia0(CHF%}_^svuNUaE|J`l{ViGO z9eKurh|ZmzonfpQcHsZ>4nm)0UXvQy0u|IR3_rP(Yt(Gxll^Vyp=8jw(G;S>VJI-} zf<6+a=U%9fWp0X-BCBljr{-_zuipGW=`SsQSL)q0kLYujt)d3rY|6af^D9xr9=!JV zEPH&*r(>T_^bT=~zf!1iWacOftNs5}PIAzS`@2!=Wf#5L8%mhZ^LE_) z=b5hF@aNZw{^ixbLw|bxFVXLge^Lzga`Ihaa@H|;FCqAAi;`&k-99Mk{VA`-E40H-&5rLy&GFyZW+v-_?wL2-bHDDG z7Th7$P3VtNuc*ePc237ep3KEItbyl)1kJ*EVFvf0bT|PeWM|;v4q2UYp|Rp%AEq*G zyXNXVR{AZniv$UKE%j)Q5?zaujaUp{O%Ral$S?wm0Te;$T4Og9`%LqU{MNwonN3DV zZ$SZO;LB#WP$T0(-r-gg{M1%5xg4a(2--#{C0opSPY(I62FqM*IJxN4$)1PPJ9#EO zDRL0`+F(~mbG42m9Hl7^=D?kk2eD{d!DK=HZczC|{_Rz!%g7ubdwm0JLNNSh&j7PM zk3Klxng=n4hl+k`j`CEDzHMz@N5#w8PaBmW2cvGbj7=2($!@8pwkgc4*_PbS(dg@i zUS`YuqlSih$rVSJDS?2gyjL^BllfI*nMc*tn;=xh^3?Y<{V&qJWb}3l*^OWWBnyZv zFen<6*a&B3FS?v0j#wG+SoDeDvUuu@zlZv!M$Q+RTuR0a6#^e?V?m<9Q5?-KAUAZe zj6-B4gU^@X0_Y3aca9ktfny(5Q>E${YVm~3)=m&_U8 z*mR0fB2LSw^uGhy%XUG6z;p4EDeEy<)4qX6HE2Eqgn2 zdtOhJLBn&iuIxgse+=0K_F11G*B!lItrIMtQ|QicZ9h~te?8k1R;x={zk}$Hqu7x8 z2**8C3#ILA3Ho7Kk2L5+%HT!VT@6vnX^G3UPh71Inwm9Jxj!neN$%9O@i`+eXU7_| z{aKvJK6dMr*AI7Ij&hGkyn?JF8R2rQMynz2|J;_KiE~ zMSei=H|s5PL3`;Wna=~KV81{T*$4-Z_l1mupBx9L5ehA>_Ty~iE=<=k_&E*dEfcxP z%q;ug=!fV#HAtrX3)Y&^e4k&1x~Asd_GEitI~D$;d^A6L-cQEurO2}F52R@fr&+4< znphDdj3`v3Gef>fF)4~zufaA5?h;-|9?%(t9Ojg(9aMznPR=;CU}vR1M&~umYlWnr zv;RpD7Rw4d<{7JN>e=Sd0cmfZ#d*9xunz%_d#vYRS?8%b{_E+l<2<`X9=!6j1=*Nc z>_wT+xxDX?igPtPIvbyVxpscuoWC}GVH-_%^_n`i-41M*9@2pZ*7H%$5+z#u%U3jR z?v%$o*-f*v#m;0P6;343(}E6FNJ%dkd(&40D$Q3+KQEZ|_T<49K@fa`^2~fF=Wh}K z>Vj&ff-qEM86rAMQ$NLJax9@1eViE`?MitS>m50&LKeGN4JPukNMh40+3n|MuRW8| zY(%lxsU79l(eUKn;m~C5Kfzy~9%%Ed^RO)EE?D4O&f`QLgB4FodeDIidV<~1f7A|n zX@7s9HGlG&Xkf=*w#;8QhC8Um`Q{9AY!}X%fgLd4)iTC>D$I*=XM&Y6-QdxrWc8rM zV0P4B5l#XC;0mL+JHQJ8v{i5+-apZ` z9qA$>UXuz#=yIQ=%WSFw3@TKMqHE4a84|VG$ zx@E$(85Cm*nb=pec`-x?94*hsJb7I;Galt^wO5dtr_l6Yyt<)ZG6P?44yBLTnRisf z#cVdSc1aa_=yOfhZV(4UlE_k>rz|z$5o~~c@C`fO0X3D*2uyz7(8Flw1;_|*c|Q!Z zQR*rOsl}{yW)VyQhg~0Q26+w|3IM2lIEdl6$2c)3dkKhWG9j`;q#|2+J!qZsK$TV_ zau-nga8SF@59j{Hf*t8&64-t?%%#3fWBi^lT8sV$bQAU?VBRlL&zWX={vcqdy_N{b zrvg%Hood#xQRFY)&-;VaH4LWcA(IbKsa}=*k`cMB51JfCF!v z)0z1Uk2(TMl>W2!P`37Tzaw}6!8`*~74VLf9p*LAiu?H)6nhK0ddrUHyJ7!~R~T`` zI-+iz)rCXgh8WOB6EY_PDN$&kvqG8tM$l}2EkvX}zenRlkWM(5Y{AZPfsXPJ$gI2} zxE$d7O^|9vH55ruOjaZ6A(rQqB* zPU;J+XF{MHEllS_FkdX$fH2m4#_RdIL+x|jM`KdO769+iMZZo6hU@7^#zTeIh@pg? zMXW4sCD@M?#{OcZMnNe6=+mJ}#DeD>?+4d~^W&0F3FZJ}x@P0q!0Yt&?Lg~0rgd-} z^BBHk-m&R*y(P=l6mm6=iye%_WQNZ$A8dr$4x{iGIYS6QU-U}TgcwDERV1-@n&e`} z(=eD4;f~j=0d@in&iq}R)1%fK74r(5(L4e*E|`2$grcN|9?3dKZFF|DB$m&1d&_R> zGy{BpD0S1qc91zl9eC_L;g5r5V0*d+#^L*V7_~o`s!}S6$ZJ++<8iWx2KB4PZ#AZf zGk-8+za7qKLXgxu#~O@!roGOjAQ-vAYa(0uV6gLN(d{CYggg=H#8hH(n8;Kn_x-GY zNB@iKze)e<>UY@YdXO86;V|0Go&^?y?Q`2+pNh|Z?@K8IoZ*|dEH~|p587l&NC1yz zbs6N`i{uyR5rzEYFGa8d;tb1j`G|65&G^`Flh_ry_>zV-TdAM1yu?n*!vPsk`H`&g z+Mmv{u=7FT<8}h&9_3$rVIMy6bZN82381WmI)#IeR`LTNSi{#m{wtzi>%O7Cy!u`G z5BI;x25=2FMxRE>Xq$GfmbNO**LP)yP_4%9Q0V3v=enKKa7LGEZR@${7L(*YJ2O$_ zD|Kh-hr%03^}2%5o@;BGU{UvLbr4dq!&koT1FbyXW%LVf`!|`s|M))9XIsq<+%s>y zn~(JEWk)~1i1dN!-)9L<@PXwR>@A*s-Yd5=*43EJUGv_#;P0;o1k4iM^Y>qIJGbTl z_YB75J@hR6tfr!}3PwvH%Xv`H-s~QIR{EZS^05t4i#`{08GVilgs{miM@AVTZ6*6m zv!P{LM|DW3NQEG%UU;%kW~gedWp^7tLJ(OPsRoYfI=d6LrX=L@w~pIns%-iVX}#^y z_JV#l5?R)E5XXDecV)BXkS@Ar<&QP-!XR6V;W+y)a#`9PWVy*wbjOXNw4~6hp%=k? z$uq}8J%nXkelSVe9E%+(>*f{s<{((cLF_Pt28BT$l0eFt$fLr;Vm7@bkRl(N4F@XA z=mBn|Xb@q#u0#zQj_o72hbXU1&HPsxLmXFB2)+dJwU<~MLe*OeO`bOX2VD>{ zL>{aZgllykIPUu{mqS~#r`&dzb?ni8mw9ygb+6@C;Hc=VZ_Vb+|G`l&Yvi;b z7r9u@-n=U)Q+ZcqmlE)oO!hA|yrU)2T2?h=+rBTf+IEg^Tj(l718HjQhFG2U;S5A= zKGuJ7KC2JPQ|K3xCz=E(UB{s1rjYQ0??I@O|@#~MrkXl5iXB(sgdW^)kvPBT-J+}qgnTvp_FtZ(lmL%h4bkwA3} zZOH2Q>x3;St(b|E8i^63Ihl_*XHev@+y?%8Uz_>#Y0oDK2lgGtGn)woI2bCD8TP~> zKZ{CVV7EA!qeMz$2%<@l1f^vAzntoz2^eMmyc5$m>v|i%Q72IQyq)V{96wM&?ecPa ziY`{|AY?W;C4I5#NVfKR94oy53S_iWAh3TO4ud$klL{||XE{yLZ6Cx|C43eMUZbOH zsvZO9Hv%kYU1z}*S!gh9byAbMI8z&1O76{|^3rObG5y74Hg)bNKk&`mhSRn6_vE90 z<(W#KveA=JsJx$kDt&AW8`76B5yP|XNjrOuuOxf_^W(^}lb{AOaBFa2YUV4{SGLcY zPNzZc<`gu2QEZzCT9IJ;o=Qnl@&GRj5F9n2Dfc$MSp5XaklaMw?2U)J?wTvDFT7*W z;PX6Nv2V7Mc7QG+vE5=NojAJ%d8VdlwvX7g=|b3CeUI2ZqzmN7(v z)tHXw>3AldvtOGbPHe|YXMzh~B>=G68C*^bR-RY!f9n{2xQy}QY^8FxOP^mh=I?Pe zFDjO*qe~94D}a$oSuOipd6-2&%Kf=M=MBm{x9zu$_n#Nk+3hOge#uZwROJ z&g!z71NnNn6elB`?BCpdpm6nC;OnAg$;PPJ&oKH(7JRmhS#t{aC3>!LnrB`0D;BU1 z=|Tjb-C;+^#6csz$(|XNI3-<=b1b4d!dvHye;29%=SmhxB%;`??sRSxC}i_*nSdex z7|y%f@m}<4xDyf#bvcVO_TcgIGG2|Jk46Lm?}Y5#JsZ0(mJ8Y-OWBndiN?3+EjTav zP2b&CI5e*dBJkdw&LiNy0i}z51V_DOy)j`!5Cwt@&N;i$rcI`F8aEFwuX z;Z&Sv9ld6TeZ|g|c>v--Z#A}AsbHqPMacou%-gYKBxGeKS^JIv0Z=3>WTe{`>AIC$P3;U&r$x7oYtx_jQE}0IR41XY3?8WKa1Cr~C&+1Y# z%*__FJUTH8KUh8mAP znEomK6QQ=Vh~rES>-D`e# z%+vc`uN_-dqW;jM2itfNxpDE9m5mF68@Rm(6bjC<8(tFxlEFAU zBI|(XcEN_+#DYE$54I@7Aum_qHuJh3*omCx3l+80?tFCd;ZD3E84<|joRis?C;PQ{^jbBEzTg&odhTy z_`IoNCTj(w+DgweoWNeE49226es);)GPV!ARo?PmMc5pSA~^F0{`t*4g3R^`*||W? zK-Bi0%Z$MYwg!I$ylvcT1Tgn6_H&wNg)_Y1u`Uvv`aBNMYfJ(_X` z7+OZp6_I1I-4w@)g2%a+b1_|EJ0X~vRfY0wAG>rc9O z^jBa1HvQ`tzeDr1ae!J=aHHF!i5%s`9SlUzvx)o>U2wJx>?~e?!^Yn=$==IjBir-3 zFISOfURT`Jm`oJt6Ai>hr^+gB7ebK8+#DI3uLkPAWW(J} zpnvV+Z`1#I{pacT_FoV+;d963Qrf?|?8Zfv8KS?}zSqF@isQ>7=_!`WPd%^!(vS&;Vk$^qh zb@|Z9QIJiv9&{+q97VdxUKE*BPFBaySZHPKO>$9Dtx6EfpmNtR=m>%017|R@18q*S8B;_K?9@@GnfDgBBBdr2nI}8cPH#}Ix#}+Z z&Y=4X!Na3D$VorTjy^8a8haULa=h0k6mI%oYUju5YNkF3~X)F40ZKhSTKzjrdW-jGFM&x5UP#`hoGw%0UV z;m#isW{T{ra=oH1nH~~MZYX=yf?dsCTG1_tyau$Feh>$EaJi>YaVj!KCgY>3qe!{$ zK^@kbNaFKboxDyK%|S=kqaJ zoQ$=NC`I3sA>frc3nsHfTbm>@p3tw+P;7E>kXXC=AFcD9kEXu4SKb#i$qOXK0-dr; zpjmmL{OE8VW(v1Hnv>P%)Z`@S$h-TEFb1G{?vePn-I%c2m)g)Z=-XxK<{V`W8Vkja z=hs8)ee`+o^B8Fom}EcYGADPqxME(zc9^$cH?_h?wU4p=I9|RM+o30CipdPZ@)Tfi2brf2Gmu=0^tl~qgD z`pJY4mC{dEZW3q9?NR-6=k`Tce&X+6#g(7fND^s6asZsB`{Bl)a#j>J$|rssm6dS!OFrQuef9;S+*fsb|@Yv1dy3<<+ZFCmD_wDE$Ig zC(x=vBU8XchP~A{Ggj&fw_m;%A&65P*@7jrnmc(KS03*GqPe4?A0ywr|ZExo{l~ z*sq0gYBTMQnmGCJXy2jF8VnhvE-Pitc19MoWW!SyNXRt{(eL@|IWwsabzE& z5GoOL0k?{^I^MyK%0POI_iPy1@OUxCIV%}}*IzKxkat_~0J6&wIB-C%Hetpi)tY!3 z7yt)**NB?;fCpx$IQHd|nd=oRWS9IC_0k0{YgBkV?2tu3R@_qRx^K7-aFC}GC=#qL zy9$O_BV_#|djaEH1kL!wnHZ>MNwikxBD_j#4v`XzPh%Iy{9cZc@fMYU4~A#EqZ&Cax>^HOo*|q) z_bSUVsvw>ockd#D`6ul3N12K)s7Y@rO7lY2d23PP=xraUtTBR9zC(TQaikI#Lu$;x z`w+x{Y;ZWKU$GIPx2!|i!=^;tCZz>YprbT6MeHb~^@>+a$3&$7y%Pmj`6!g$JwN$j zNaB!AM`!%}cy(V#7H${Z?t=S-vna4+N$KnX!6|7h3h865;R27jmcSZ4k#Hj}qt<^0 zvc;VlF%Sd*^n)$VD%0z44_k%if5BBzLu|4`vwCk2J<-FVY(((1ARA7#8 z;bZXZ#3o|;?4|rATfHAZYKl2(9O$?Xm%;>s-f5(8F(NrH8eV!n;21-iA$!TX3!0w6 zECCr8WH3$=oUxQ=5V!?k@UvJZTZl>cCwDUgIhtqB?8WaqaSSuk$qJyI&0 zOm2XKmdDp2%X8p;J`Yk_1!h6XD$VMU0c0U&>tI>oXdAN42b`78qQ#T)wsO8(-ZM9- zQ;ZE!-~#v+m_G#iePrM9yT4-3#!igR>VQVp2>9s*WQOg|j9%*W*9`bU_^tr4hP^4Y zW_ZVZF@J!9jy4dm1wOH1z9y_w6#S_BQA)P-qz06k@z9+r)Hv4)$Dz^UFtB!A31o9; zZHY(@RvVT=$)py?v&=$N5txig}0f{B*PU?6qw*y&vqtQVDuBuiX;9Jf>S; zGo85#^t0{{=r1jQhyG88e}!2?7I`??xoh1#BGS1|LZN1c`tmzc4}}sV?dMCy!9Z=0 zxZaRU+xm+D0o!M}pfY44YB{|BE^IAM%v;tM8*|PRYe31)vEK#i-Lu8)ysJSzQ+_}% z$1{LK?>s2L-X(YQ%VxYEUab?|@EjwI7O2>F%%3)^j((p>@y~&)wL8c``;GM|nfdOU zy5_z37J5eO93<5@CK8S~5O~jXe_nBauX(Ljs8if4y@5R*6;zgE5PM_7o<`XTyw@^R zW3X}CI%eaYCp*y~E=8J^;43p)`~6WJY&CKvXnUkiec?^XLmNmpVpfN?);)G3;`H6Y zqizBfokw|%)zr33Z6(6im*6`EGd8GEF&i3KYUn+j%-P$qU;*6}`Xeb{Cehb=HP}Yq zT^4B~??0#mP`%nkoFuAF8-1qQH#FG89T(Q;X8&nTa(gbBylKhjQhz%dU(1%YC}TAF z&fZ-%kE|1qb#BjRb&Qi4`%BufL*bX%f4+1q(GJ8EJ**e0Wtt_yO`*ktyR$YAqR6l*?t)HMe=Y#4RFYD{4J2iqd+MK z&sr`HRC{-^2hxPsi%q3ho0aOPYOj>}hBLZkFPn3($nsH~1r`=#YdWZtACT#XL$w(M z&8+q;X>rs_ATgO8f|@LE<*oX#1pxXwbhdBBcBAbobhU5nY+3!j_@QRQo8!AB#s%32 z4r{z0F#nZG>mGsLHMeqQPVnW6P}_%-hV^PWFTFzK%Dx^oP`TRPqGpmWEMq)2yVJ%c z`c|qC`6gV}wZl&fCYEgVUiCj{09S%oNb+~GVA&qXT--mDbYhDfl^~7ed)~G-_w{~# zFX(O9%Sg6(joQCa?W?dsqHGcn=3txoZhgnRp!WUTbz~`RKBuy4sL|(@1n3{oqdTAp zW{tZ@Q3K*PyuV;Gg^q@`TINpdi9;M{%{Gebx$63ws8i2ZJ|*GJc?grQcVsIunms~qqF2}g*w(~j!&u7=Or3fDj0R#$5UnSH2MZDhm;)T1 zh9+4Yjy|`>XU5`Ci$-hdWG<#bM*cH4L2GRqSuW!)l=_T_Qitq(C)bJ1{$(qmo!?v8 z=AqEqV><7AOPZ@r&XP1>KOZz{_|>Vi+uN7S+0@ur+*V^UQS|{^P5ON56h9qFo_<|| z?!1pdZ7C={la)8b@_kE|g4i!m9(2Fg99Av4X!P71*>IZg?(ZZ(UmT1=PaW5Ybk8)K zy>+5a=PS~LT(&61lOt8vv;-nJl1wuTCo_Y2;4_Vk@VL65#CU*$c#3wg#(?xo0FFyXHq8F%~qhgtz4N*3Ga#Wy@U1s)RRSl@I zRvx%QeUJPw8GY39n+Hiw-HT3;B+%q#Hr0>0q$lyHUnh51ur~O)*Bj4@K>3M#lRs|V zeu!(b;lkthsWpl;DzOvdmd6qa#M}`1?a4P?g!JgU}pM1%{&Xn_A~Q(u0&g zG{o}!tDoo_(Q!nVFcGN@L?3>^|V7TqHIRL-?1r4U50xZP|_cnC#6cql3dM)Av~)+}#t zQJCumZTVgIdv*@9a~w`@I85O{f-@LVp6UcOC$YV+Yob*I`dezQC;8kNu-KPpTI=*g zIIvMyVv~xKzwAHxwKB%1R!8@o!)ai-l@JINBAh`i*rT30pjH7Ne94CMH|)6I?6%_2 z{cg)n$FNi=dVX%+cjb&AGe(Sh_O>CZQnVDof0zo1uDmxrGufbQ-l|XNSjXWZ;&%QD zp?+WMLD@?}4cMTfFjl2W0v$lmccVbG!`XYm`{0tD)#4b$_dLE0?+Iio2SW)U6LLJO zwKrvPFth|X-EOX4iL*tHnmFclPhdW_<6xO|dLfE-K3hq~`ieqnx%#lyqZ3VL*!o_O@V(md)e$hEn&pCJQMDV?i}IdmpJI_ombA88-|_)B7Du-swIKjfLN?Akpj+#Bgx7;Xnt{bknD?t_mmOLrOGYiVfR*NZ{ zvS4yZiHtrRR2lK;+SEjK`~H_gxb7I$dRJPD;Q<(_hc4+W8xr>Kd5#uLAg{@t$OuKc z62uM-#E^Q+EL@MWPQBEpJDA~YFSIrYPaeAVv5W&`X_Al=~nnDJ*zQ_?g$TlXR&&$Fz9)V&kC0)n;%f!Ftf zy8%YKnbju`8iiaC9vrH%)6ZiWcaW^$WX66tb+x{@W<6_tM_#otm+}TWS+SV66tXhN zzD(HHk}(+@IX;&&C$hZTyra>5?D0|OVC*#L0Q*>$5XM_Lu?@z1K)+Hi+4+Dt)bE4P zG_OY|dV;B}(fFzSj&>KlIE~W6;P&>cAnpSlQv!L4+Zt!lvXOL?{4?EK`k!C@b^0G& z{M%v>8O=x@OdpY6hD?*Xcz;YU*cUh7CECCD8l(-w<3AU?!B-b%Xm7F<0)67kHsg*R zho~Wb&URN^Ed1SeGtkwm?qyKsq@&8xL zlwWBzO0zwf|T*jbdX6xjp#{}S|K_7s&>TPdntd51|>$2b}KTh(!`WA5Y)KIdkL z8U1tpTQkhg{|wT^3BW-%g`Y#-Yp!TXfe=ojGBM!iXt zE26qD#J6G3=u{*_b+NWhpF_4eu<@nu-O^sIVa^glhx>x;a&iZP25vdeOe$Ks;Wg-I z>gnMy{24){-7-QwZj`X|s0SA?Z$-ihTCa zHF4-1os(Fck$IxWxIRS2gKS=(HgyN9VeXE}Oa>pJnPpyM{h$!+*#fCG zTh0Re97(7+q3leCBHq_?A$yXvZ#mkU7;1#gl`MnA=#HA;kSxH}Z8@DLE@?@pTv?+E zNH!s%Aw4=S(PNN+1Kp>TOUva%7r6M~@99+D?q($rAUO1Rh!zy2fzBm+om{>P7EHjoVo~Nn+2sFvh>% z?P$H*un&Kswa0lMz-Ady-fwfSNicG@X?ivD^^kp|h}hJMZ^o5Dmr#0)?Y}eD+o7L8 zmq&oqLmAZ_I%c$zZuV& zlJnPhbCXfAhXv&+UYSS8-y(;f?6(=fUY|pko=p z`9v;8sXUbrNk0>MlE%iCoF5r#D1kMly=(zv{x3BB?_%|*;JZU_vGaF&7Z9F_4MX#I{nWMc^g3+QP`B)7ROZtmV z)1lNp*Oj#3ISD)*=&3DMRyMz6FP0wK&tw5U7HmL9U!o%Z`TRPMwP@W~9iIz7Em*+1JC`6M3dy2k%N0yyh-=$ z9RDyX43D=hFzQ!Vl9hOn49Fyg^9$SjXy={<$M>5%cIIx#(z$dN!}H@Ky4YDA5mi$AGnO^Hdp_$X=lSe} zo>LUVnfuOvNmJoQjmx2_PZiBE`;GX) z#tl_2ME%YLM!2I}78nEy&=^fAM~AaS9*{8F-p{S}LevPgA+%p)YWaqKG9kw0i=G7< zC^W9_``&dXGo*CFgr+TjpDP@9^8A$_`{3z5NYkMTqGj5$!EZiB8=pb8Cz`uCGLP9w zp7cJ`dv~{L^S?Vb#!0}Ao#{OrK=A!f5V6U|t1Y1A4bnfk zQ=XI#`Bw3<$;j;tAOie#x1d+-1XahHI_<>x!r#Hkj9TG1=g3M;l*~7UtnZoZ$1T&A zV0`urM`XdIqa}|GP;Y{~0SIkm>vmes05y{L!Gb|ZgLxzrDnCBm_zq+Kir;_PjZ*7; zW=>)m8~=tN52;BH1PuOr$3i2_ki+Q4)2AU<}SP|j5lnFI_`!-GU{J}9L6vNL0z)kqvNy+rs` zc%?Ok?ORb`sJ|kI2i=1I=427pye8>ZpvxhP?cl)eGzdgs;@O$JAJuEC^#V0hpC-Wy zfwWfN!7{?g9I#4v2T@@7r#Q!%hVBM>_x_&8ykKXP8pF0JGA~GU&ra%nF*KxO-Lw8; zd-iyJ#hDB!?iKd%n#c^7l29g&*SYcnc4p7G&wz0U4@Sw2H!M@#4S;(`P54~1bO38V zSEwpc>f_e>N8%uc(^r6S#mLxG$p9l;H;UC546$XPYDlombrB4rI+K$HTsR*n*-h>w zx4or~aJ@;5oh0%{>^iHB8B0BLp>57nkjrMI~x{#fp(LOD9qt7?UlIm%t7Dt zb3n!Tr_=Y{0aL(YLG?d)cxJT*5QmiU@{r@_F8Q0TTKUG=kdG0@e^GewT+Xnd$@*GdC!L3`ID{fz^e9|oCQ;x2NbI=8;re+4bqnq&5JD$J4|GKB& zyoCXg&&CM!5+)7%Tw_W2QRW!5;XUxxRit06db&eKcdrhmfqB$dEbF~v-f=k~kWhpD z-@B92_JdcvP<~rnw(_6*E=n-Kj9Y}Tm42U$C%|nlTZ6uJl*)!_M9yP-+C|s}a1)ViJD7oHml8^jT zf2gfoEBEB`AF9d@4D`E7ceD0CTMcqW+8LxTMHdRSsajU8)68=3i5MkOUS*^3oHR4r zx1=0MpCOrwqex1BC>*=?!82P&4gPZ{rDxbnazZi(1xZkvmeC=dE798y8Wh%P7LiFs zRGb$rY9c%9atG(ZOzNyUG-hQ*lL41cYXG^;`-!5T8#Bl0cazWE>Edf9a*7(AHCRRW zi12pM-MwYW`zAN%c}c8DxtapA>GLIcqAS6zn$0?vcjhr#K+I^UHWplH_1|@WWh3Iv z{xTSHm$76tl9}9V&`0Y4mM1hc!ZX%N4R3Rh7)X#2D+Jj^qcs*#1iA8%0hJ=_2sm4D za)|8JDNMK^*9D>pebxR-wz%}Sslw^!s4&=0=$tNztwC8ElY7s|!`YoY798Wj7{z!` z*)nm*N!taEJt_?g#aU$S`rh*_bvr8(!~+;&*rc#7aMW1cbvd)h=w6s3+H6DGWKcQK z0|Lae4PkjKdW+MQV0$$9_@qWTJB5}jX#2ZGd)Ws53x^LYs-56#k5{nGv{=QNzGmph(Z zpOkjYrVD4@z`9`^P?~Z>9nbF|PWvSF$2+zKE_n{}JPGP2l8z4S2z+-xienrJATl@5 z4=CI3Z2v;-awOx7>O^!ML+k)S?R!8P-ETH5V-A!3o9iDm`880n4TjFn7peTF$zsv6 z|J7;ad!RNFEHMUhZIg|9X4?Fb5HuM}?5>5^D2?t>suE~rZJD`XNINeSh)+vXG<_;Q z7khVT_+6mM_*zHlWWUJcI%j1r+Clr?2(2_nML(=T_sO2Mz`X4Jrz*$gWF@r5qc2W6 zZC4~}v(ZzcX~uc!Ad&0Hr8x_-OXCAG9!{Spml-oPLPq`Rh&Whtw)ty)aw_~rlFASq zpVc-$Uo2#b)=7~Pvpe}pNv3SUMAQW7>ASRce4qy}*XJj57LMjFPrqvXQA*F+?B{cB zkg`7nlCfDpueyArB+-aJ@M9MGzHC$iy*j+Cg0SmDuw5d?#%5&_T;kZ(B208aG1ugCV3cey>=c&EQQG(R7_ zY#b-;X3a7_?8R9!GdLeO)!;xybP#Gr_f}uRBi1~l0FIa|cIIqYaNRco0)*brF0LgT zeJgb+qSfw;BF=1BFnPz0Yh)IR`NGb!I}QpF&o27t8ZKE_6~XbyIp{xEcwbs-9b z?cE1)d;+rQk{$S$iynDdF;r-1FVx&W8lw`We-Ovpweec zIBt8XVb<9ij-xr&xNC4Iqn^6YMupdV;Pm8&NAU1N$6rVLZz$`oubg6dDzp&{V}Y)C zEf)f(e2|*rb8!MH8i4?B#9*-0kzOq>#c7@_gIvr8S!q2`kRf)o3z{f76^pvI%pr3$KF`eFM6G{A%6~?K(S+@1{D~l zEHK7lq%k+?w5FQY*;5526dG@(T}q9t(VXMv$ZIUcVhk-oDjm6jK-x>~d59&`#1YJj z@rm5H8k%96@b4MosVW5u$%KBMkzMlijQJVR??BU#`470jOZgl#vPq)|se+cBHOqg` z_oR^xB;BPMGBqncNm2Mw4J2Vf3cspG#S-K)*(z!-1`^3$V4VRsUga<#gbw4HzP-Dn z+i^jwSFc#1T}WN=&Dcw3x(-2we;sk7PzHlghY>OAd^#=G?>jYWE-jMSpzPrkhr>K{ zHTwrVb~I?pdt~UrNDC)7qN}@B@b5IZAgV!0=D_xzINR|I;MXM`C8}KNbh&JaSl4DW zLpY4Qa0qw$PqK!rZlu#fQS31fmi;62#OK{#VIs4PEt-K*YEXu{JtVT;cJ$;-sqsti zC)6`hc;7Og4Q~t9?%B&xplaVj)L^3Gt2M{7(0BwmIveaN&(j&Dk=y z>vQ_2wcW^qlagI(K`TAc4hH4Bqaqgg+Rym#qjvau9_b(41lk6zC;Doa=z{lPNKeRL=>3HoJEJQKSLuT z<}%5NDtXhruBbO<5k!U%$8I)9u0$Zz`jy2Y+6vud=pAMhEPT-PUfDT~Ze5)0Qu{mC zcau9xEsIv}HP}vXr;)dWv$$fBy|!{BckYvAp+eJ+Nnj#W7tz#WHLwf97fS6MT!_;a|@yXxbSiSQ=QXfPG@o4 z+xx(z#BoeCS^Qoz(V^Fb-B_}x#nuwL;&Afg=rVK(V8wG@j?Hv&%>qsai%u&0w+?sH z6|+ED8`0^y;>f7ks@xP@EzBU+_83K%Lqn0Td^Q}c?)?iQk&)LXHI@d0HW$W z
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
S#e!?025-G@Ry#LN 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 z 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%0A87SHzYq9p1j9 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%0A1A+`sM&RaQ2<$b96xti1j9$8TYGe=q!-8X0w~ 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

E0&b!J^?FOitz7T{q@> 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

yC$ATz3O%FcQX#p{;qy)P~pG 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

  • uk@p2ANzPvEZ7 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%0DfpzyVXamHGFKBB4vqGb);9@`BvyhMCoox~(VNVA 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ð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

    Ctct(~(2;bRc!+vl^5xV!shu+mkSDn;$iZ|Cp7M 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

    kRR6mPeZo4xjZH()M&n| z4ZQb>O1ZM9&)gYs1y0YpIdu;vBj_aYrlBB|D&V*`~Sxu z_QyYl^itfiL;%nt-!Gxn{G%!5!J&W$p3D(H{%f!bG6eaVzV%<=OYvJi3?wr-Oz?S9 z<8gV!%a_ke%BQd5&;Rx>9DnB5e&%WS-pA6v^F*AlMVTpT?gm~*p{s0i=f${x%nhEm z*Ire4>}RvY%$48C2{-a=(TAkPoU0%1eekRrewKEw{>`4M`5K=+?_GpnrqeA}z2VQn z4tP*}1^23%H4s|4%t{}@z{wIIct@}f7493QMUBv2WygH3@`aB#i>S0=0FW}A+S?D_ z$C>MIR1>!{J|f(xOgwrCp5)`fUS+g|<_(zxSSp8~Qp(jcbr*E`)qn z>=W$S@xJ~5lxTl4M)_DBI*9NNpPT&5Igr-9c267DofJ=5SiYXGGh2kcDJ`lRyl5}A zD9QZblR`x~O-$t;Nh8`R6%XOwLke=L0I63?Hnf#WVLhLU)#x9*XIbr<%BaQKi4agU zsf4cnSKP!igXg?TQ4DiNut2&mjF5Q#{UQMdRQgJMhB4klB1C%sP3ni9V>kL_@F2-N z*dT7j*#;SA#z%GDCD`EVE$+c*s5Qtp8w_KW4^*~rUsIPa^?aiIf|_i`30;l;Vl?== zEDuhKx}^LE?SXsC7O_|!k5KhL@R0K{BKi6c|J~2Krwo^|)1mPpDYRA#iGTtjT&u>Z zp=MNYnKc3U(19@0l8dm3hU9W|J^U7>e&B`5FJFg~2h98kH^_MIfJ>KiI9h%$=~&>9 zU*~~z;LJcgD!4~uxSSFvrql5=(41xNnVsv>VAR=>RvC`G)SvN3>5t8M-;XaRbRa0OvL0T>@r}FPsEISXf^qKJxv;4yIRlsOu zAR?;lZpxg?|E_r1xHa8BuX|Feycap>h>mnW@h@u)f^@#g&z?#nrchq4Q)<)vR|mPS zY@OfB6cgKu;zPHn^LpOL{;$s!0^Nv`&-~`^`nvL+&@8OyNJl?3T$0!6ex-C!Y#x^C z&C2gN0OFcQDde$KO?n0=KTo+|BE($4bI@TGtx?98XVcSyec!o8=OojC$3qpf+`kyU zx$=4v)i%A&Qp&t3HBDPZrp;i)Q{!u`V<>6a(}~6X{*GtyAOBz9+JE$a`e%LoD2;ti z6@QJse|iSt*}t*H{;WP6eIp$!&)x{i_=xHiA((SU%ZXq`0Ic6>Es?Gla8!-Bz-JV zdeRQPN7@9Knw_rZ1C{s*donz<&ix7WEev=)T<#FX1$*KyV55sBsLwFP5it~M$D(IlaDpL-eU{C6IqN*gV$i zWs@mxGlS-L(bAgjp{o?8|Ml5K?SO9QtSOvi&mF13k9tO?kDueTn)SkJ5^3abq}F;L z^hE+51tN2QV~>cYhT!mSl|2L+1n(`w+rkWu0*Ww2eMi3=MiZDW<{_$PWq7^MXO)VH z>?N{vy!T3-@6K2tJJ!}qs~C{+rTp}Df<<>x8qa&r)rJBvBg&qcHmjapRo^r>Ouujc z2JlZwcr~Y=eOI6IyxvFNqfou-j0dYfV#qEv0;*7GlRUl^=n_mesO}1fMQSXEY#TN2 zi~IKwfX=Figd^H);`i^~r9O6O?v&|~rcH-pd(g{Uu{$a*Ima5K_|ckGrRU^lB0zwk z%MdVmVeG#A-M{_!e{bKTxf#dJ(w2e*ErN%$p_;uvzpL8AYLk=lUv^>9Yje}>*Z`(q1XFX z0Tb0K4mNB(9x5xZr-Unv9B>_ymNAF^x$?o%+c5Q0?_p|>DPwN3JwI5Kc~#=1LW5*Q zn;Majr60}Lz>`bInIdID0UQdV@T8gS zG`cF)9<@Jtf=HQKQG%Q$(IMz|m$Ft2m&HfX&G@-2;dZ^hhDG7`ybeTCztL#E&gN>E z{-OyAHErq-Axb0Gdcc;4u2MR!qip!y)kp$Sl#3&j?o?2YKx5uCP?Vou%!9R*0{L>#j zookl;pMm}J{nwY**q*TSRx&Z^0QLd^`q{I|VI{%pEfKR6qU{%4fAirHAGEC2eh96$Z1zj!9X>+_6U^H2WP^O>%s7s(f3z+jvE z*=J#b0kqY*UoO`!M`vXBAvLT6JHU)`(EkrA2R=h-T{geHKQro*3`F1bt0 zWy;S-FKVNtohPN)bUr(JpwLMn+La8nA!L22VEWk0e&eDoi%-scj~Ss%8W7Jf_c3fG z=U#9>>0GCgyIy(i0Iy^x=@&ecz%-aiJ8gEmJxch)f*baG*#9X2B8gu6_31~sl~&Q} zd|jq*k($!0V&mB?A={VV+qR>`A~NP!3BENqT=#F#ePIJn(%gsW&C5kJ&@rj8g`ThT zc^&c%6_eCjvmqOa?b1|1HuBv|=z`UCQi$Ei$h8ywP5af<^2NT~F@)?VDLk@!OB2OA ziWcO3!(iJqA^H5JRU@|Tdih3Crz{Y{nJ-WPY#L0Ab78+=-_|X*bBr2-TZ!IX!Y7?W zu3d>?)wk7pSpwbfOG@#KcjkMFa=e_%&|y)Z(X6)I7)wc03$)WUGs*V&Nfa+8!txEaFD$E}pUhJ1E@Sy9Ia$yuaz;TI=>8#in3 zQG7oHxHi;M3(3#RYkmNY>UAv${>sQksj;X!(wvA@pH7Pk{ON!h!1q(&NraY$ld3PQ z1aLyNRi9eTLTJsiI`sODCCNjo9$A?YqC?}pR~4v1e)stJT$=(g&O4c0RU6?$YGj+r zq?3z0Kf{O96q=-}?1z*r6v#SYh5Fb|^yVV&X$3Y4JYa;>2f!?UDo*XH?2zBt+4y-d zi1uDq0M(2rK*3~KS!$wa?mx;ebH$w)(J>7?fA^SZKoG9&E*^Dp)gz?rX6`W8>agQ^ zOwP8IdBlUp`tauynZz~63>a;+M3=(-(6&TP26g~`?BW@h($z$d@-yv3&d<)OC*Gd` z5l+v=@6`JLA*autIEP{eWyZnlOqoJcDuFWR z_pX!s&S$`LID=+#s+~x2){m6NBhaurkhWAiA4emK86g@z>(Vpi9^WGrsg?n_`vo-^_2rI}T zOWPG>?^4lX@JnA*0g;hWH!Tkb%%;OJn6W=x#k=pW3P^3yU+O2pw=UOt_I#aCT6!3i zI|^)3Zy$emu~MJ?UZ{sNs&~waL_nS8vlXb7&)-#@!rBI@#|G65Qn6}11y#BdDEr$* zfC!bU_&p~H7fpxvi8?AFLP)GQ5AGl zyN^K;KPA0XhkYXb6`#yAsD271JW5&@t8l71(&Gfuj__Cl_EE6E!f~KM|3~>zDRD{w z1?-;~r3eSXlE;3KA z@4hy$3Uq%omT7OKhRQvje9Z4UDj zuCp}f@^*gRUY9w=)@$+L&)vt8+fN8EyhGaOhx&Z>`97)Fjp162XT+Rx z4)>cA#f>`n=kIT`_XudM?!~(2{tOHkZREduprmO8Rtr;*RDBKSv*UAr5v6FH=#X{_ z;9G0RXYTI%o52QnMA0{+f`G1Is%Cabm8hsSZ&P)s)Oil~f>Gh56x_5QO>Hpk1I|(< z;Z;h1vT)73Y9f;k(!_(MOZRrphFa|h1~YzN&wse9x5NlI)%uQ)XY&0_yZERi#^5bb zkr;H0q-ee!B_^<(lyVGWS^emyIU~Ci-7+Cyz_-We&u{HVKm01*|9?IHKmX@{(%*jY zDYo~QxTK<0mcQF)bcQ@vm{kgY;j(mQpGn8>zulpN73~%vIj8OM#B))(_@(dlJE>lu zo;K*)Tm1T8|Ec4be&c)3jrE2G^Xx{)uFcO?4^lUhzfL;T`Rvs`Jn#8F{l(e0crL`V zF4Wd_a`dUsFS^^96cqa_D&)25)36%i_LvGzPGp;^3ZCWQ^J1H_33X%@FZTrE@ z|I4d&^$}Rt{2@Ll1F7?R$I5pS`^opnoV?8|qOSy@- zpJrc+ky0bHtio$j_%f*{pz5lcJZB(8u?V>DgGz6=*)N!1R+NK+*xN^6?@F?--)G+c zHZ2UjA{cxqN|jYEH`2UqW6Nf!FAP4pc=YEuh(r4*Ff!46U&HzD`6i~)E++-2aiXKK z`bEEHdds=W>-Tg3=jXzG&4jn+Z85+b0;^m(9Zo*oKT~sEw9gA*l-)->F`~dY``uC; zbj9)XJYe^=|3j5oRwv1Bv9gvbIYlj9oH(}laL?=ko-*V(2PgZ6{dI~zJ?HIV#jEQ_ zik^SZ&nC|g=jad!dXbV8dQgYvq;$L)-`=}{21G@@3af1CohU$!*SMS&I(-q?%)2M-?P$>t-Llx3j=yMJX6>EtooBE zYi2-uWqU_;yL&zXlqhz$ZO%#p=Uu2I1-l}ORP}&Nl$ND1e5+_-btsQk<*CiioVSx( zzfh2t1J*7^F`H0Vm8-)vFQd@Bb_V=(h8!+KWG4|TA5H`vM!B&0l%X$EQKFEyGO|Z0 zx;P6rT9y?a8Y3xH0kP;hpi@hG9A~83jcZgqpx*l_%Wp1^N@Zn{Vgsb?r0Nq*I^;&L zq^~_h&3n+8V<6Yg=&TzZTRxWLmHp;r7k!Dp-|F}C8Ev948QoFvT=$d;cLR2&`YDmi_6NU$DFd+;}8mAkp%@_ zM*OfR_3TU&bS0pID4`l>ghMl43Y`-8U8qi}3dO8;5OonH-7x&WAU>6_yY-|^>|4+|!utG+TR})=9YibnV*Um(&yTYRCX(CFVp#iGJDQ&;8Y(IDYGI{`~mz`$t@#&-Z${J#Fmexn3)bzN9i`C!^>n4thK% z!U3B19xI^3&yDnrb)xGGmgRF)38bB)j~MDv%*Rpck4h@4QXP{9S1O3Za`6B{!W1Dm z*yE#3D=KU*WF zra!{p?Z!78z)4-RW)EpLhR$`)f`Q-etsn*a-KIT!R4f* zRg^O+PYGbDS!w9$JR$k^gI3s*qy z=JL4ORnI8O4;M4TRUNCq<>!v0ofCqZ{e4%ymsTC)V z87nuPKic$SrbNwZS>~EMSeNtoFjwZ#TpWXGjypg{Yptq23Zs=U&b3Fptm+17*eN2@ z3b4k$Tj@7h@tdFv_Thf2*l;g1K2&wkGk27fG*^Pl_eY40AbIEKbF%WAt7M*$SHS1r z`Ct6K-}5Bo8d$RN;vGo2d*2UYX6UW>+hurS4h|bCm$NL_#QE1jJn{A1l;llj%7*(9 zScaZbdq(BGfzMjUFlwSssmjsl(1=Xi=(dPTIIy6{xy+@f-zMFsm*JcPbTmr@gMk)N zrf@h!eKF6nDFAeHl?Sug2sjY6f$gi61)|DVe%M4txkiVE^zp%K0OYa^%f8_j011t9 z%q-`t&tYj=FK!a|7GRi~`e)3obvcylz%pdde$?KphX%;YGG&$_pC_t{or)7EJEAe2 z-wY~FfyAx>ief&LbLVx zs~TS0kdyVkw&W)%jic_(pE(1pg8`4}baJ-4&sx5>5{4-u%X=R}QcY)aFjQLIp#V%s z1@=&ziEtd#iP{m8rWQbLj*}#|5o7}lpzExYk8cNO%B4BhzV8SjvqD=eC+lPi&w6J^ zo&z5`q6QjY2BnKA1IZg!Df^^eA{t4G(cb5CP_<175)&xN0uCqvDM%?`rE9=x6MfNx z$}CMB><{Cd2qwgEOwW5yJ~e2k7bnjO21I>OL$MS_1j>wI1t*F$oM{^#7@;glesKF+o`X^^&sw)0ry4gPbu&%^fH zbU4_%lO6RnHN`Vhe`=agUi&#;XI~O=_PGOny6h=C<~h4hiSV6CRtXWE{fC0maMSyl zZE^m2ezu#rt1n1^py`B0=Plc7-)u##gYg#b_3=LG!Hh3Vsojf)t)8L+N)f1Px)*6;tzsANANm%?K<;zKT5s+j zlbFh&AB7P)X57UDa8fF9J^#@^c;8$W-PF+Mi`pLFEPqBd@Qm@1E~RH%1H&kfN;-zA z6iq4~G*m<;>~!GtJ=mnNdmj8<4ZcI=<0@%QaS2P!LQ-P88e5K&glQ<~cR9{9A)}rT zsfRcLGrc6g60PeW4wh9J4kR4hUQ)lYWT*l{s4%>f?sK_Ht}hSeWy)>3GJpfwKdLnd z$%92qIANaE@sObqG%K67Aq?$vMNGn6LY#IJp0&b@Rb}of_ z7#Iy^R3c~vBC194^^h6dS(3C2T}fUJau129BqfYxe&0`h_AySpaG?EFk}SlUJZGWq zlNRIaqLK^^wg*?1^BD@bHeL_a%G3cG^#y9c%a6PN9ZeKkW0t`x#2gT*fywaVq5TmOVkfO8+Wp=YCw5 z$=N>JPFAGY3F&n`m*(9Jzg(=66+mEHOuOLcj3(l)Sp~9Vsg#vg=l=EMX^Z#x!5{uG z{^&p0+dud}{QLdo>u<;M_UTy)$V1;y#eg}M@z4D9NAJ(II&$*gs^NezuX%S!P@cOY z#_fpLpSj0h{2N~$-}{vj*UL+M@vWCZB`!`+cLMD5q5vpNak@&i2?|iB-zf#VlR}v( z8+<0DZ9X(y^Ddcie5RC~OkHxoRx}W(>olq!rud3{SK3DJW9$R`2mN82N-;hQ-pd~HS=F94_mF9(i|B!vU7&3_^gbRQm@hPa z#?=iaC;0pQMD@hplU#5MHs5C7hWnRFN?YoBX+L&NiATV6LVjzXN%Nkfvu~h>D&J^q8D<^_k>8%fDOVo6oB&@T;)^@~e(F zJfP4NIG=IbX3w_B^XHhztcgv-=}dnmaK-y`9DsY3I@wlARgdSzl z=Sd~iYd{g4HvHb-q-wcpb&g-ob~mZVNfmaLzwBf%Rwd<9viYJ&B^BDT_@d3bu^w?l zUd!#Kq;!zdf4}br(N9#RQRj|lmGq?ZV8u2~nc~1{4^69r+UF~WX9HYmeAZ3=*8(g1 zBMRWWXz*bv*D2n}!ITNGdSEetzL$9s2GAm=-&+u;i*9_(*v{*j@BJ=c-t-=}@%el) z^zz}jX|LhqY3G;!^}qS7fT-)=G%7mphzfWQUs$UElg-9caVUQVS-jSYelf)*a9sooXMG|x>)g#+&9xB*`{z_G1oEzPo{Y@nVZt!Y~W>w(I z3~8w0%=8AMy-mm^OVm;2xBSvQuynaLW$`RyFIS@bmfLih6m+0A5qDE^eAtMt2&t7J z^Lla<%;xvL3}vHjs*g22yH>$)RV5sx@!po}xYL;zY zPs5QA)CwsWQe?uOSo-V@5z3Y8Wc3ACdP*fGqN+DYE_DCukEn*(-ly^dwXE5EtupU$ z5FIMf;xF_)4SC;(ozB2rv(+I73|2zj^jY30awbjYGQQXD*#^*Qe$S2a3&fCK)522W* z=ny%Jq7Ur%DSA;A6Hy#3N84(20qc%`Z%G%5g+;kV3&^R55yEGl}OO}ZmQ@VQ@xNt6sr{6 z&$J5{GZ}^g`0MO*$>FlY&B?c3`?Tb$)%4rq<5@s|%^LD2qKY-sfw{K}t@ZuU4HKo8 z-#jD~V3t88hplXS1)Z)+IbkbW<}rgqm{=!=E&kXLw@KY*A{IijjokD5qY^**R_;qy zYdM(DYDH4)t37Oi8pmL!`}&zX9x#;@lo&Nsi&EPPxHw&#DVw;*m`sB+zaKW$ettv^ zz2(|)EkH?b6Tm#jJUa&<7ubfue4^EQaI9Gd#pLL$?zee|*w^UEh$%qhy~F1HsXl4Z zl}s{GIb2ROplvdCT(xIhrM}O0PMkt42GXjAhI%rd;<+pO=E@$KA>o~-z}2yseL&Ha zj@eLN)si;jXn?W+nj9BK#aFEI1p#6C_0Io+y}7?@jR#{a+mMQV9q%3%i0SjQn?)3O zz8(aFnnim;WJOm%N^NqCdX0Oo-PoS%3Ewy7*&)bJJLn;&R3)1t1vs@l$ za7g;=g{59^G}2|r>7pzcO8bRIxy(sqIaC6lL592gYq*pGrsrp=1b(8aEJnnj>)vW% zw=n~h5ygYF1Io_?wWaBR_i0!(9T}FETIYp!Hgo?b)X3d=)HKtmlD?%=O_A`m+qjw2 z=s<6rf?NmtSpZu=q`w}6Qq&;@30;e&8mpu#i|4?@2Y!}Rry2_f02D+c43hrwl9qwmPJm-)W+?D|}XAzIOy_vc19ZdmhdP5WV>kgNUv zH61jlP+Y?b_#H6MeK$(-*N4moq7)|<_oYP9itMP&KlNvz%pFs;ELxMgO{-w3u0a#R z$u*q^*8NS{bhE@CGlPKfa5$3IHshcxUc&@12OM$ zAgVe?Mq&M2wrvKmMn6tUAtlS`KyY1YklC=^<1D*r#0`#SV*tIlX|9xMCiSBlXoG8R z=W5Jai&wIXU z2pa9t1aq1a-H-zZRZ&V?PtYK*9S)>lkND#IYy8|_`d)l>zsK7TG8nz0kK-5{5{!&+ zHdLC@k=+t%cveWB_nqhDQ^YU+<#qh_-};&H?O)o*^?7fvuP@Ks1g-7O{c}E_a9n}v zrxGzI^ycl;-Z%i!TqfM-)4XBuUmQALs$`oQ?ER#mx`IRSkrg1iuT3(v`LJ46rP^Xz z1p_3ap!u_opvsk7+b^FBuQ!l((T|#JlO;)M>n9~gv_#kx)4uT8qJ16mH6NwN)f_&e z>@pK-ajln`u)9)N%55zQ6xeo60`K(K@)u7)qN?}J0fK=-K9{KLLBli5->6{IdoJqt z)dwN}a;Q0VEt%aZh25Q~!5+@{aI!|$K&y2=+ow`qGL=-*t5t<*?nOzkj5aX}P>c9T z1shWR96N0^l#J9w44_~m>tH)6h}rKQ^7Ho7y??arrUe7kx!dPN-7BB}D9}&?-UtL$ zB|2)7{4SNkBLS73f&sku5l*H??PE{kChc#SandZayx&EylgcBX1>=*vRxo3vvR72v zHhrn7uXV5YDL?Pn1-9|Q^JY*O{Y;%}&A@yn&)Z}6O)wUn^N|QP&t$EV#0b-Msg`%; zK_fN06=LrM#58Bv7*+5*tsHCj#(QhlgbC$Z#Eh}0{gOGydl|4*#paSw}0>d@p)%f%RmZ>OfPiMY3P^JkiJ}iyAaJ) zL$zX@2N#97h*L_o4&Y$&a#^3Cfr$OJC_|n$$4jKzNkz24>^vKEIOIPx{yDhaBvr zWi7fcU$V>99#)0Q&`9)fDy=1&yh?q;Gy*w$SMG+BVWNKi9qt1UR?Hg%LMA%KoILD? zZax$9y{-HP)vCtxA2E%p-yiobPICUvb}#wkQmmoT7qTRyXKB);)nR^t`kQXARI7S^ zzK>Ae?+_<@@cM~jk*XC2XFNY)*pLd98s}<(t9e!}ff}5L9WJydsMuV&$4eUYG{~)# zV%B+2a(*)84rur}rcLcq;mglqnOn10yiXpyrYdLaKCteGXh?BJwfzhx)k#<$o`?^=SvzoLa5QCFvR5 z1EMWKQBBR4$0(bXHlM>9oAwSVC$I|_Hvn^wMXMm+!Qb$-@2h><1C?wJazs8l7x<&;=uw%zXjXB&xFfgu8!Hqu#vig z^0005z4n|GJw{QS-1o5*<#|+N?*1?(dHU5uv`+|RNGTKa$H!5O06yXa@kkKM)}#0=YNZl)e7P(}zJ{dr^e2=6_G)l!VSRJdZa}ku^Bq1YN|da?6q<5Nq`QV3 zvP>tn7$Gw#(+}}9x1*lpoRm2VMPgZ>iP)~n&)leCKdC@YNsCe4Q?Td~dj_LMOg2eX zQl7R|QbnVyD!?)kOMVs`sWLKjAYGIy?dJ+GgGLWXU8jL^WzCYeP9VeR&%=EoRw-%4 z{V#*!hT7pK_ExA1k!UxC%PEXA72znF31=8+PYYcm%B4N6?;8~a^5;QKZ8nsWs)J@} zmO-~EfM90_O32U}NIA`p{PA`a!c~;8h!3dkqB3{}KyVU5QH|{N6ICLw`zmg@hfiUx z_fvEFn273mn!WBR&ef>H+~F$OSLLU;(?(aVGD1mdibvo%9P#+G-Q&OdH(!t6{-6Ks5x1}7)9V*;y5@CEYzUsY2QgyP$RTw%PPcHd zn>R^GVHs^#aZmoGb=&b_i(LaeHS404vklW%O{G=f(I?dgf#1eTh}UDt#+s60n`WN~ zlyRve2&&TkP8$r4_~)ap8E0T^b$_Ornc}*tf@sI?W@%7gL{|XdrwVUhCq>Hp6?S8A zpG-f>tFwJ}g64{Aj3GNLf8#2K_Pj+5Sas`F*~dDHo&sgW(PTGr!C@@OfaRMv1;`G|sgu3a&0W2|L?otk;FI z-8Im5^OKI^Af8hP3u>ajh7@tpSaa%qziH%KK6-G`-L9SfP&;DL-jH;`lw+b{Y( zGXPr5pcR!Q^^$Cl85@$Vz&+_oml9-w!ck%>B~G-2V*y?lUfv9HGl5*}Gd{*q_RENK zuJc^Gf`Gj(+R~xfYZf!AYhGFf-@LxrAn$mPl@8jjv!C^|I@IeTrMnp$EbW7h!diF5 z=XgyMeaRptV-uVm-J5|KpKVtty_R`jDGFi%Cts&+N64nG>R&T06GwkhRj8-J)^bvF zZRLyEZ`IU0GUu{&?HPe^q_i(reskB@c58Ist!+Lctc4AfW%Zc&Ie5yMtI@p-?H1{x zPc%7gE)E~^Xj1|zBi;Gll189Z7IN(@dQj6l zW*k-jO*DU^+<9N4`c-IPxS$DQutGsp!?Y}w0S6F^J17gl5S|V-2RjZ+x?&TkDGZKI z6e}PH3mfOjMMm+ZXdXkTtLYv2S&uV%uZFHbGp~>$HO1M0H##gd`xR;s9Zl89;Jb#8 zHFGs7}90 zYbElXW0v{%yOc8O{u=jBTh(CrAfg3i`jx2QPy^-ZqqR49tqx`(bE@ZX1RK!d@ZLrl z#jzHrb#S7&4%b3m_a@aQJT}sqhO2~wMhD1+_eOsH)8MfOX9*z++#*AXU;bMh&`d6H z&VZ11e#Ua?b&h4&u#QyV3C@S;3NnP!qF3b5?3%1@QbL>iTWFRML{~ydO^6Dh^1kw% z7PX8C5~%|hbKJQu`$NIy!U}{XjeU=(?t~DO(0b`}7~w}HX^+n%&Vm-$cNrw)IR!E) zbgiiwl8G}by+J3CPd{^C%U06J&WcpY7%oUqh!la2;aMoMA$O{qxgk#;y?~e8t*#9B zMS>rC{X=^`pR194J0U0Q^IQ@cm2~nT;!XR6-jRHt+vLXA89r#|{QFGCpX-yL#uXtNwE@4k zOCVyIs3@NCy(WQ=Q7VGmGX((14%;r;26|o$7y?4DnY{Bg@1J45XtyqH_?)C&VM0zD zg{nhQCPuhP8NP%Zc!Mtr&@(ya#ijqr?GGPuXVu8}$AndI+h`vu-T3T8t#1If6wvU$ zH8ba-eR(81B4*%qXx7aO5*j>2_N$GmW*nN`lg~W2Gr)yyaB_^KUNLLpGM`xmTPt4+ z^qn*rpttzm-K>h{gq%LI)A#diigAJ8Q~aV+idkEqxt3VR#4z9UT;Qtb?33IB&u8{X z-|0kuqo3T5qVN!n?kNPKGw>iNhJEfk>$7@M0F|mH-bbz&yMZ3SOZmZBxupv2$hcv~ zp{=$lW2%@X4X_59DZ+u|W>=hmnJKyVHu(Y#;e!al3V;gFbx}12f%IL1GsE+=PKs)n zZNoL#sctyxo|g7O#G$AgKS=&kk>@{_Kt!B?j$;C-B2I#*%6L?vP8{e)|Hi1Fcd zI_82ANM!XwLkbJj@B=IrqQ++k#*k;c9lQtkhx(GRE_Z)W8#w>o5Kp(C=N6PEeamau zg%?B0{y=Cz@VxQb92-JSJZ_R< zQ@qH`p!1qN_snolEfm-|gM{IY_Qt!I7I@8n{14wZ$_0uxauiC0@{-@Y=mG~HbZu+} zB%J|@2JATdA9b)@ZpV9RnnHjE2%* zI55b&s`^l0G-9Igu+JsPHCFI+Os8wj@qBQP)BEImBn9Gnn?niV(C$3orWQG1cYy8* zq>DM}5mmLI;)B-M)HWT+{5@0Lat*zaJQ%LD@udZwhp+}EE|ZH&wI@~z-apfjw9vJk zsYJ)5cnv2smuVbxvllgMM3oL}Z|Lu)NE!Lh-!(Pk!&jTeEblw7E$=x$M<@Wl|E9rz zH=W--s+xq1UI+N{;$)b6A<@cJfzGvabBMmB7m9!ju$ ze<+#z`7a9e@BAHCk>C(7t@xisxfxQ*dWUueRcgX&VRI0m@6mrZooA5@Z0ob!FGMcf zaET6^j&BXE66Z%674Oz1e;sytDt~K@^ zXZ0z>kK);ag3R+xO*wWz$|ma}pB9C_B6!xG@_;o`W~7X`Xx&fGkm$L5w582OLpY<; zLsUjm0|S*r&VO-2GC>(8GaXrhf1W-W3Cl(R!v2r%AL{kcHA#^#zvh(is49Vj;--ZC zY?JZ}*RJN$R3G+jPFv{;QzlWYsLl!-lmcJoP|NCRQ1XGS zs%TQA1A6~pP4}6cmhElxvwilxZbNqc;sj1~F2Bxk5Y9CGF{m-3?oOZPN|*sigFm)8 zlV z9OeDzb4mX|MKJ)?eF9dd#aeFP!FmEA*Hc_z@R$jYDRJ~kXS%Mz3xFt=!oFiJ8hlpv zPN(8n(Yk{+;!F|r`IBi2`|GjG?jEen`+1ycy63$Df6S_?#}G`F)=L|%f<`e+yl1=A z0_R!GeUW>-FOyDbJ6g2rF%!c4xoy1dm%+q}?PVLezN0Gqi3vDfT>j4A`g^};PCqz{ z7nWug-3Wp>X-2d3?9w0J7!6r?V+DNpfEE?tSYg46MVl^!4p$9Vr_9o2oV*}6ln#~s zT!HAzY|hI@O3(gSG##6P2^X(%15Cp*MC}MD8nA2~+@RUmsLAg&z-kkPhNUQ~4dEv$ zrRPJZ;!qT|#=$HaUe{JV7p23zoAT63&BJ=~rUqFMZm_AY`iW>9K=Yz@_K9w1dY}Ura#-6m-foZ!I|A;n%XK!2+G^K~ zmZ8$9doG&96;6~KI%jY)vEdchFaSI$xVTx%LBmi|;bA}-v>Z~WF11j0b*Hvmx)gMws zo<`5gM4DmYNzqio=}P2-yk!Sw$84GdN}UQk7aHN*$G-oL_2D_~vK5}xKB+m(RaIqd zM#lxJNLi+h5_ZsQc+WHN2vckpu6YS6G%I_gQP+T`g$hepV^qtUk-BhTXtfvfcZc9s zQ^XMTFLVFxO6HDlP%PZb1e${aZqB1n>AZs`g6rdY^I4c`qPY#jP1Uf8lD+gE!FEu| z+==+phO~9bX7#Q{-P{q&bAK-g)U(GUawwtqVdL}UWa5L2kxmC_$H_T6gA_D5#iXJ_ zrAm~U^+L*=gMg;lKI*|?pN)F`yI+oALO_Pw^mJ*JUM=Pxr zQb!ZpDDzC^9jiV$Vdd-xKF9Oh+ zJXgxfMR812oz+pA*Q#S{ zA-&B^2pRq2(!-u+QYHULM7pVWiF9Eg^zdKPFFODV+t`(Y9gaIJ-&>+8;>#bJZ)X3| z73Xa4qJk?9*)$8w)h$zev+B197-aA`)r~d@+d$Nz&EB;xpd$CMXSd);9F22i6o7_$ zNnN^dvQyO8PK7p8FG1Up->1}ZsSOce9E!;r=`;c)QGK*vk7+PESLM@`=+kE@9?E3K zDoI{9519t_PIj!6l$5xg=N`Ffel|K2K(X4Y{Kcp5B!}s&P3s!dI+h+n4j(rDMOm17~wsURL-j0}*+uq7HG*iG}$$%j;7`}_BEkg84c2R#{YFaW%`OMbUtaCh3%%r0vS^>qa z4&%o6P}0{~9l)+L8d;KToxFFTE~kBPMrm@h-<5ewHWf&0h_1#2jKA*L4+wZV-zc9O z0_AO%NA>9_{mY>RtX3n{ZnxatuBuvhax;VolTMc3%WBCnWW2kZIC(t?%np}xBkFqf ztWCYbe1MfGBb$tQF7o%@-;D5!YIHG|mG3ucX`)i#Gu#Kk;Ls(0dsom&P|X>I6ompg zC%U=!5xA_}-(5~;UCEm;9U-f6wkJM=y?Z7L-y3sUj-Vz~V?esAKPF^IaP4xys-`s0 zSiuZ{o0=#oty_(&m+P#~DR3Z-#sP^alKWYHw-G^s8q_wAWbRL+s+oA^dR%nY#?H^r zy&l>@i_oP!4pog*vgsk6xF#Xx77~!Mmet}09SYYB!=I2T^F6AvN)4LuSDuT5&J(5Y zrax%QCKA)!N=e4irCua-fzVp6hKCwPZ=z;ih_Ks+k!5|UH7F6z#TT_81 z_w9WqNIkG?7?ZvAwNV7Fby!x#36A3 z0zjY_42q|a-kXk|6r321=>-yibPQ8;G$48ha&z6&48(!izq}+;F5B&x!*$l_vGl##3*>^}Es3F1V0vF!aVC1YN?qgi-lQE>UIx`T96SiV~3zwVUxbr(Fq;; zaM4VkAQ)|teQy5UH0r*1SaLXN(26N>YN3J5p+pQ+#Tvfpcp_hvcF(H0rfv1ceP6yw zwAk!SCbc0t@{ZeAM1e5x#K62ZGlDN2T})MSLh;6Y^bi>3GSmyB+&YGUJXl@?Pe zqiG3FV?bLGRRGPkHwL_iXl1uoKC`5vTkQ(QQ%EU$WoYDbO}0niKCsUO2RL*@c~D6h zDn3AjM-*ytr|nr4yOgY;ZKgCb1oECZTBKd40Fa4&RHC`T`|f<+WoeOr|bstPD!lL8jD`=lVH zZFoq549|TiAX%ou(9Q;*@Nl(5cGUdZ4pgU=eY2{Loj7d7OREHL+dRP;ym%^PSW&0yrxYucbKIbR1o_f&nkpozP3h(t4@Skrt7^b9<#7%ny9~yjL?l z?7!{BN^s%!>i$Codlx1`J}g#kbHt%Qs}cBkex7_1XuFcFhOg7Cr$a6)sUrk^(*BKb z!kp*Cl$W--kA#bcWM~`JOK1uggL}-+D1f8)QB^~O6!|=I-}(MbD>B^&-+R91Jt;G4 zdS6)mq#w|bz9zr1Jr@-INJ$Qo&Zj>x6}gGsP%3(Sro)x+Sk0$r(3@*vy6IH@AwNCW za=lFTKhhJ0z-oKYkNRFu%36L-pdp7;C8Gjv4(XfVCHDpW3;R&Huh%719by2sKYw<~ zDw!x>R#OA`r5&9?S2t3Js8Kir?3q=ibF8EfHiELENXqxM zgRuoc!@(i0$E4J`nwhcTP00C~c5YfA{F8hxk|b58+d`m7& z!4{QJk*c&y7=|y)-*I2j2i3Ry-l_@^09M%A=qhKhio)Q5>l#v>Yn*@%8|ir^tti}1 z@JTOZY=?97M!9wNW$68g%gUELzpt3c$vf%Kt4#-R zDGnoi(?C?K~X1L5sJ}t{k`MZz% zRL{cP0|hQkuW3YL%kfiji*%nFj&tIG!Vosmq$IQEOdb^hmK%pQc&Q?=oK5*wO9S^7 zmZqfvUrxHz`bruFbgd=PdA+%5nx#z-(J7>HXK5CPPvv((c+$iseGQV8p$xWhEnJeb zs*i`rSp%C=exzE#*6$p61d2{;H5JoZ+@-Rk@|zI9N;IyPc79iBREl2L+li-JJtPrU zkH|73%f3P~b$uUZt*DHu5_6$?E_+(p1kdTH&tg?)6RIe5!%~8Wblx$Wv6$|nO4@c(l$req z!(tiDffXAtr`nio8wcctXO&FaTc|p`tBn7lQmmxds$c$D(;6C?EM$8y`1cT608j6t zpFupM%^r?B?PFfKxyb38*OSchdYLpf&rV{)^{Dz1n);uWj77G`v|3UQdGAPwclYfr zs`PQ~yLb#mlPh&MYHpbx7z22Tu18PR2>qnBS*#Rg~7RbE$*R#A%L@VXIn zIA06T6W7?E;iRj4B6}}OMY5&p+AeFYQye`uI<6uO!`mi zo!XlaPEenMV^LInAAF8b4jhxx&LNQkW0oGKH%(hO^Lji;(Se!gbV2QGnM0MkV);a6iryZi zxCszxrk@$KvS5JM*D;&V9pc<8Ndl(50i=09=;Kz>@jD$7sUxI192FcrRDNR9YyKgU z$ILqu2$raTZmEn;H3kR&L`>W)RSh(Un;lv5Eba0u`D}eLEok}X*4Qei;xY1kGI*7m49)$HB^FyK&eH9S(lTiyf>&9SsOzBXwX=fWY!=s~G?YQgoIM8AO*Rdp9a%b-GXwl#+BoCbJ>5vWlrI7F}_9JuBBkSBYRYSuGn z-$WFT_7Kf)R!>Ily?l-7k%>eSVPzE(+;FJ~9jsu48|{#IZA6YNIh@Y-VZHp5Q^Kd@ z5a)yFX#PFVq^DLp@HFVc;L(Wp)8?&HW>mA0hKD;@ctz+XSmFO%w zk)LrZO4Ub2!iSok_uX=uQ*ke!6X$xg53dD^e-l#X>er>s97BK(kTnHgI5&0vCY>Z- zgJkGId&s|w$`Uatd2&QnO5xrz_0piv^Up<%{IV%P(kkh8VBX3(l6y>rx^#*eG_b@! zlXv%Gcu-jm+oNwv@MroaRyIg$L=|3vm8p+R@WPZJ*n{X%G#8&m_^$ha($#@sco^JT z>VKxHI>97h#{IcmXGJuPga@gq$BfjKF<<|XO`;kXeJ=Z^TB$xsCKP3e%gq8HQI)y; zzfE*#4|t<5oXH98Ip06N5g6iZUS;3)vt0^eqQYD|$|sThnuN1x&p_L3@mluQ4JhHx_46hWa}0xgM4KsF&1x=fu9T^+Qd&G5 z4+)HYAI%hAvkqL5^k;7p2N0+*+_RDQaD3r7qFZVW>1im6Q1ViG>Z2-=wzX4&A2_Dd5TQ?VhE z55{S!fK{VsebrU|)eJ`IT!l0RZ)NLFk6945a+> zn(m@E`<{})fp5qzXH{k9 zL7Q}lUdA}}q(&*9o5>QdpEmBMDrb|gSno1yM*atb-&k&~%D36ozg&c#vQZG5jZ+O- zUUHCG5~|Al7SW|1R@dlojKf2A^0h9NS!$7p&g7@IZpww_f`!(Av%mD zgWZ%f6kxfjEf1q7CX*|it3}84d~i=E#zSQuV(Ufg7%3xL<+T$k4Q}76ph_rjQW#uP zPH9+AS7lX-B~w2*&6y~^dOkD+y(;CSvZCx2EyCKJs|Ko_s{)p=tkOF5od;NwJo^Z$ zJs?L0i!zT9RsJ-k1k^39e+&(MQ`rDc-W6J0{p3cMkZ6|JFz6;b~3H{0V*&gn%;a2~G3sue6l z%QJ8}m2j_;>jb^x?xB?@=b@f4I<=|n=BdXIE6yxa;mWE!{lasXMt2c%nXkRQX5UzT zjuU5o=JO1MX`TqgUP6X=4jc6!2X&^X`dK0=Qh?*C7;KC>zd^5pkQW>I@kHj(>T zU;usUX>v3jxzACam)m8jybzS;=DjDmRZBX{7Nz_xkas8b>YGG+z#~gbF&_S@ zVD(i4_hg?CUmR1=V>$J9D!DNrf$Pn6#<@S-x1?BM)BLJ_QlZqoOxauX$2Ibw5KJz- z?j<-t4SS(Ef$HizXv5%M2I0E~6{qiCZ@~e5xel8E$(YoeuF67Qi)CHWADRA#$u8x_ zckU6(V=Fly77n2b;+&C2+M=tO_C2}A{P~jp9twX*>g7L<>H%`8(X<-V%OJb|h~n=1 zUM-alTe7mZE0p{^G$`4$xco}{op10W>N0#{?&U`fHPoCE#Z`|9s^y`8l=78>bXQQW zRgJsQR&&jX9DxbJSJ8JEJVToy<`NL=} zL}Rc~l$<;lt7t`We!eu!&fxQPlm%|!LVFV%Ar&GoRW__8m33TU3pIi-J z^ejt_!*nw5U(kU>n-Ulys*oI(_|v$@Mf=A=`CdO#wU*}tHje6dqh?q1nZ)LO)nF!9 zM>Oyb)6diINw1<+Kly^t*)L_hXrhy#KgCpBUxT0Zvdrr&dC3JqqSmOD`VJ#~ zE}4hBxq@|QFL)2q-*r4gsnV3aFwgtg<{(YjT}n*K_M4(igX3ok$NHE90lg0AbA47M zT2H+q#|H`=|4n5ZRovC%<@1gJ;5-a%AF6)Rra}^)KDq`G61mj}G}1d9dAS$EQs#$- zk&4EHd-NIcIbJS&vbz&-sco5lWV@fA!$5e_ja&{diTMc8GI)us5b(KMIgPy|UDsPm zS;JIu-`i4EG~LS)qI8jB!YWx5#fAIL0sJT%HHYpgHW}Qb$2JGN`Wz6v<>z~_8-m?M zia*gNoovjc)bzFz{@HB{TdfZrPJ9@0I_fcMP^;p!+H3kOU!!|EUA@wK7TD0++=sTs z_Bll(Q_QeJ`PAYqT9-ce?;^Ge6$nFTpHv=D@)uu&;;vyLQYFj?$S+o@)6hZCkngin zZ8{cxP*k<9h9_!EI9630Q9VYFx1(YqKQ9K!t!Vy=6$*4S<&Uw4;>guBH7Qdn3E21f z%!d7@=#<`v4=H&;Wl*t&{o;X`YQ&_t%if8SuWHPER;tdJrE}hs|0!GVwj|54Y=wDb zW>wG4hayY@AwzEh&iO`}fdMZv1bo9;vnwy5>Eq%ay;1MI)|#`sx+*g=!Y{*z57%s+ z0-rpH+CUa;W-ylaXE3&(6{opH!PQZ#w8?f23-Bb;BQUD~U$4)lGdtzGHw=R->W|et zMxlLl(n5Z9pf){l%cq&kZ6z27#D~hmXhOk;=#1V05Gf6P7;ctLr#bJdfp!(Z0l#}2 zKm(fPui0!pnK54r!fw7Tkw#^aKb#nqILOuH!z||;-7IK_845NJ&O^xH8_id)J_HR7 zvth5NN`DTv(ddN|wgPtrcC>5UTt?SJQ{%D%#p(~xc@6YoK$KMx)0|jEW5XH`sv5OezAe<9gZI>nA^HTG`?VjO;Oyf3 zGSH&p4FVV@>7I}tg)SdL9<@$NpsU)liK3Ns5cZMW^*K0`_bmBK7^kE!W-=K>81CB@ z0iH7>wniXrV6ktHAqmJyj{Ioqg{v$snR5^NK6>v#$z-#k?Q=l;p}>?fl==NBWPY$> zLFx{Yem1)gS8{Gqs9*zb(Fcp$4RZbT{_Q;307wF(SQCM6T9F|z`vTh&FSmMCFX}_?qFGwl8Z#8^>6oBnS zXQ%9q`vOU=QNTL{$P99>z4y3=qyQ1&9cpJTM=G6fe;t~0Ne`l9y3VdFzG;A~w`I9PutvIJ-$`tuEDfPSUQ z>!DsXCpS*4{aR2g<&%JdOR>uK-vCB|F&AlG>-8QK%ot>|4D7vaTm3@Q1gjGD=8x&4 zHCsbHKxQqZO@d;T)}65&{Ua!Z5=%kA6CUfp_1`zDU3q_b-!eJw;fCLuK@;l71gm9R zVvwgRQCO2PYM)cJOVp^pul*>&tU{>Oj$eK}RM`a_l}sgA=ygQYSW1ejo5N+JHwEUu!1Z7ace z0&gA^OuP)M4Gb9<8Y*jKgFCGOYR(=tku%J3_9Cm1x}2X;XencrW6FSLmx2^ZzQ_96 zQRUZ7E-FiqUn-a0YDBaI?(S*4N`9^n6QMNh+bgYH#Coq3DuZ1PIMH3(;p&c^SI?Hq(4u z2MDI7Ist?-j}*$B*kaFZq`#z1!FtX_BJZK9BKPIXHoazX;4?rO$e{8z1x|k#Kvlj( zq8E_kOzMbeBveY1pvNLd=|DIC{6k4FdT)7fqx-LXPGb48Y&X{D-A>x{JSS&Vmolx1 z$r~$!-A`5YL)o+p(y^b5-uq}Wx%!nh^>0m!Yw-E7r>BR9S~Us%kH76pNLS1E%Jaow zq-kE9Ld+hd8h9G+%?$Z8f(x&&rex($4yj+AI*(l6De7^75aq9|X4Jud+g}Y89-?^7 zm6}H7O$D-#{QR3qEUs1O+cNh6vpghtF5udrE#idjj!E*jzJ75)ovRm+9o?eNH2Sba z&rDl>$UXyfnr$n&HgkC%rbl+aYJbgoZBUhO%P zU#dCY=c=IAYh|0%@tV&u?}@bQKAZkI_r8Y-4)qRkf7#aLc=fyK(DyH{h4^ySxI)B^V?mfJBi=rv|R=mG>KKWe?-`p*{(@EU( zbWG+rBouct@%i(!fA!D*uYY7IpXUYx193AN$|qfN=vLn>F}svQWd;VjR7l`rr(@EJ z3?X+6gx`9&qnizf_{-297A@;qN~>J(U=>7Y6ValO3Xo8Q9)MG&O&@Ub^%oA?&#liFD&_aa1TqYr-C{hG9l;CR9}V=Y4F>;r0R21(lNy09g^`~5biE@ zt$)51IBytG^^}T*o7tq`lw3tzuOB*wxQVZgN{Q%g*o3MQtOE)COb-nzgUW=~*_9(4 zd^8vi%itBlDg^{8-_&&xS>3jNk6DzqQVW90SgBm>qv&SjPO>6FWu&Mk-2Ahf|FLh? z>{UsyC^sAmxmDu2?R`*$_@NZ+vgSJP1UqKxIf#zP^<1iXM9jm4>hBb7V#+f@ZociX7v(s`5EY` z73`H^^)w}zo7BZb0eCq7LJjHc_cM*sex>%Gz={q~h65V}07~$PO76X9r7Tt|NCw4} zqzlf8YHE&HRmq|#OtxwHa}OIe{m}|_`|kc1DaeTi0b0+|d(zeS^ubV7I|k_-``-=K zmE9xtViqlo=yB6@J?wG>gLF`AqIxY!?{I3IftHCKCQH7!c zZ1pc`M7mGjW^?JHhhbyjIVXctp*fvd6pPL&klx6dLVQNZpC< z6=7^8r6}H`dpFr5vXNc0(9;#1g9hm;iqAgo^OXM%_6s3KQ#EQ6Aa0v#8}7BZKCL&#P{D+dZf=XosRu?o2Xs~1aP8S z9a!z1wJwN1A1RZ~;ZX^+v74)nZRc$R@5k)`9al`p$YZHwiLK+|#g2g;qd!aRVA^L@ zJVq4zh;yZ0MD(QtT!z37EPrNI4Zn%YDW(QI49v~_h}jo8Js=6l{y90VSO?Fv7fdmg z9x)FjgJCpNO=ixYZ4)9|HXahn~e9(Tg zSd#=U-e`mEAxdcU{KBBDK@=ravZubk<=AA5rv}J~`gOA`y^jhYH#L#_a53PO5gXFv zzF9uqG~>V&nmlmMl%0`ohX-j*IjE&7A!li%)ieNZAPwZwIwDe#9b;esi%V3elxTQ9AQ_O>voQWIz|E1s}E=e&rv1oQAjeC;A4>N-iaCaW$rDmg&W3cyQR*fJz|9~ z8##hOrGQnzI*~|K6?M%+HkPw*xc>8T!XBmu&_UHx8sSQ$Z7JpqfIdh+K>skyJ`7Zf zxwf0C21uUH`9rl1zpLQb>Sr1}JH2PS>ceZWol(GA^qZ_kcvY(BZcv40otnK?yg^No zN|~QqOzs;ee=$241YJ<~m^7nATb-P6VB;)czzTXsMtwhASuzOLA+`n+3S}3dHbo`; zbQQk#JKjSHr-KkEsj1(RTy-TjqU@aNt?(QjQnm}2nzkj+;+Ko&spn! zC_`Or>-i@}mtUSmBdQPfi{691QKUqA4OxAis3yOxj44~N?OpZf{^efN44Ii?G-%fS zR<&=b+@_5trI~)e=Co{<8|E3}OdzhCRSDhff2i81eN_FW5(yfnR886KM?Rvc(8JV0 zt`~fiDu(oPQ~Nav9LfbDwOuGr& z`^r^&j!)p3vC@>J%%dD|H2u`ne%Lj|bJs`Ld~|Xn@bO1QDFH|h_?uFDsfrYScFCvz^E8IngoB<~K^nVdp*LOQjFmF9 zmQ49~K6_IkiFi`IY^_kNYm$G*z|E)TwoId)ewGnY{W-g+kWQAVw878Ex_^0qDEYeH zbN+e0zvQWhuQ?O(M^p|6sjN``q{K0}oz);Nj=5&!%xaEwLW=9x-dq6zCVebtLkVj` z(oed=VGgjIsKJ4~DW3R@gU{F$Evg_j4d7bnCy#oT93&V;Hzg;pDiOO}Co71(w2nBd zw?Q1ex2O<)c5t|V0FXoTV@gEhiwY@8zsXPOa~IWj#C0Xj!gjLvTa+}V&tm8`L;Kg& z5C=@G7Vz9F=ncyhSI<_oDxQ(>P*A%{R+|*fjS|?3e-! zr}rhAvd~oek+apXY#*q6g<@z|5tU@*n_9`v$<|BrqP+g5YB51pugZs0)zNeKTMe@< z2$E7%L@vhwuRnb|=MP8#KuPjmLv5G9KH>+Z=B^oB(}?)AZRTrumZ`eMgwt#bS7dB+ zV>F$_0EX#&rbA+%ie_e-i?56Oj<(53v>S~P)Siq{Ml`5K|3gJ6+bG99{$2lF6UKwR zT(qq z^I^n2zdoX|+wSH*d}h<_d=9gMTZ16)`J)Z$cNA6l z7i}kfA`_?Uq#r`Ec`Q`F_dp_R7K7tJ(?CyALdVk9fE~4*G22y-p70s59Wp)Ac8u99 z=vX}s*$q?3z~5aN;TyQmAZp>wAxHDyJ&K>JiQ5AbpZw77CTH<9Sm`%@``><9)rv6FeK)Td$5*+3ldvQ0awB+JX&O_lT zL=)}fhSTQ4d$VpTJMzB{T8S1L$=&rHHk_dcW^_JZ`)lE#8f8N>-HY7M?dWy4$^t4Y z?@=68Xy$99cr#(J+UfP8vCQ8?b0p;f$!GqkB2y|I%Gz%pK-|CjQg9dt0|3&ahNxC- zAj>_F>NbM^t>%V_H=b}(h5VlKM$a5#

    4g#p?aKZdB_)gm>R^A^8bsIR_L}m`J(u_O z(a^uVH}9+3H_^5UHbzNNh>{@%GX+G;dEQvL9SVvGM07=pAWgV8MAyP#@lmBhm68gM z2ZDi7m6w$^qeKbLJl`$PM1neL+aWEhGiH?2vhhrwI$6|v@pleNm-<{ky7s&PHn@(d zA+NPp?`6J<*L`24$w_M&C7-&fi5^O35}nAs@@iGU`P@yZa>Xh4hJ##yU4QQLjs8y0 zBdIfwo`^|RF$7UeKA1S%-;1$W}X#LH5;K1Yul`=P$~8kM9^&hL^x;M^cT zSAG$t=lur3M%wzCb%Y)t_t0(KG>=N}K|qz@<`n8as<%j04xj14YNLCZOoI*qvYgog z`yso0NVeI267-(CXK|P=vz~jOaZvM2wr80?>z z9NIYBhyCnFb<$sn?lEe<7r{~juZ;N$QJ)0WB!M05%b;M-ETIJg+PqJ!?bg7#Z4<96 z--10`5S36h-$=i=w3MkPWt6%8n|#T8k*>9IG#DXZJ$%i!Nv=kPVgo0bP9k01j4)l7 zX9)LZ5h2;sT+6g;rJfc93&G5IMI|@ruT{_OjGnhjJqTj{R2h=L2V zia)R$^n0?+qhZh+@bo=c643$Asus`^XpPo98XV@H3#)Ei-)suv^z*1@RF%Ap zViXcd4s<7Y)f7Euan*B8SE)xf?F&s$gY*h3bxa^+GCrYe;z4KMh!GGB=lY9-rif@W zXqZoz;5?|zi6;!9n~}sn){nYmrvT1Ff`*d9On|<>IbiX{L4RQhK;P%B#xj(-zZm>+ zU=qu(lMRpz0M>y)mxtrg!Iomt;LlkmX9Y~+1#tYAhCkvEp1ckun}bw=TSJZV%LqG? z_}4a9B@vvti+dKRx8Bz@FFVF~n!@Gxa$tHa{Q8#%DosB7G#pSq+dIjCv)f!6mAvO{ ze&@ECAI)vUfGT38Kf&K{V9vJ~bE-*OzOZd&KAEUR3XHRnUmcHH9f+ zl<nEw(DkBW~@NT$wyD_HUQb9T;HC|pn&`b|0}_b;2&jbvXsgGDQmT|+hLra*=F zg&SOrGCDAGMfVu#Su>gEJ&BG!OjVz=&&n87!vfelOdp)pQ-yVrZ?mnVkLrF54+fUt zj;c9)yomckij@x&I)RkKXAA!N3sv!9f4A+eI5sE6C5qZiU=1-UhG}jcH&qo>v6qz< zxkjGL)s<`eJBu@r0!JVafWKlnR^+M|Y5F~we1?_AIP_3V2KTIBFQ!!g-+H(()=Xp9&TEODomE!_uw#{i%F9weoIny z8qLUSPGjXP@w8&tTbte2rY1WKaXA&}t2BTAxzIGgl$|4&bbGB-B5=uTSR44KQka2b z?Snhr^Ke-(KotV3%p6(9OQZiLI%$OtD{>(?`Qijg>EbT~zy2J;f6~yvzmX$LW64r8 zjjB~ZZaCFE97sAe;EB|Pur$?NC;;`0)x^fZRv3Z_bGG{yy@TV#HND(AL=VKoD1(* zJuqR4m#TDmtxB>j6HG%+)D)FE(Q{@wOb@Q(41tg6Z~IR5828#Bh|#(AJcey+YKF_r z6(foL5%5AEhvYXY(}VoUV~w|%ur@pqueR*pc;4I z{Y>CXqNzsiF)&@$%mW;sZz=P=2f6>B7~azcXz&cxK%Z;qd(Sfk;3p}u$WOWdrVw8O zY#Wi;VTsNet|EFO`=kBF*N^ghD~&KKc3&^qJ!Qe@wYfN8u)q-rh0qasz5nbR^$>Q| zxK?1|g`1k`Gr$)}f?hOL_Dz2_1(wyG zSqzW7{-%o}VVR5pWCLi+%MMYJn`hXK%ar#f=r>he1+7kv)TRrzN?7kPE5WVtiTeJg zt1t#5v~~hyw#EN<-y(bEc)n7)^$7<1*X7=*DgUxfD~!&F0&+G#i=(U37X8V=epO{1 z!@)9C6yXPyjJR2xd%SyDn9MM?yU@GK=VCv|*z9I}@V6fN%DFYXP!GJlM9HI?DuIfO z0WIcqX>jD)Lxi8}THH&j{xQ%mMipWBg{-`+R1i_w7tf|6Ld+NP3&mCCre5x@`c z84S4sH+QSd*iFla1`r|1yEH(HduVKX4{^+@&D78~Q}Qt3I|`gj#fz{im!;@-DNcB= zaG+RT!d6tX`;-dP;$)@_f}a75X{j)&p<^Z=G}u~*yx>8aQi zR@hD|5WO_;O9ldKn*o*j2DBMN_e4(j&{+h1N`b zwiN>Ylv++$(zqy0c@CL`kz&ap%soG>Xj(0Af3@-y?B*i`Pytrj9B{>zeAj%RG3wb{ zk;MtH@85x50VOXh;qdvDD&Q8Sz=OS`y>VSnohereg>sfs(3El_?NtjwAOU_+@o30@ z*nzGyCSC#xI9PCC*x=B*csN?|<8RJ=F+%Eoi<@+TuG&7mMpkSCJ#qIn@cq5!k7eJ7 zD`TMcC#0Uc{T<|bhpMI*?E}u6 z6aw?S>?L@jcag90u;KgD>SS)xRiy+#<>ujuCojbQ%}PM`=_y}8v%}QHIR@#oV`Wi#BUpomQT^IAmE_CufshFByCi*G$9>g=uHINLBN>A6Qk){Qw%F z)SpW9K=xUK7>k8qhRPPL-sCf*9JzsL&#VyG%F5bsbz@M0a8^%m4})xbf@^rwK5vQ@ z=tGncZk&zr1~Y((CjF7y1d6$V*kZDkgg)RzoKFdN1p=qyJ*#eNW(wmo2?}_BAfDN| z7OU@-eHsc?u=n$`@w^W{Tci62L5ND^nXo^lB)2W|S{_o^sD}DQWl{AJ1r^Nzq>NSU z!Zz7r3wh?Clo#^1TgTk?@&1SG6WJ;$qT2UW^UK2++#7rwM2bN0SsGK}+%I6%Ol zRbm;-(FW&h`P@8wQZ~txFSCbZD%+n@IsjS}Lfe%!Ju#Q2un@&697y0jrg)UkHH#hs z4%%>R5=X}KL ze}A>^eyBuQrPWEUU@Gu%gOac5hXO9=Ek5rcBEPFq5Y&agZH(THgcEVV9D`j-TSHF9 zY92mVpkAmN1q6Aj8Sx=4#Yi4X%I4v9f?R4IZg4{2uME`OX=i=U(|@HAEe^iuL8PP- zRc!RZ^raaN+G#Az1K-~^XheKnC38lOnChXNt%I5xdbO!UC~mire;ZU>AJ>G{FCBuj zXIK>X9ZA7^lr^~|A8G?-bPJsH=te8*hWqClXeq@SE27MsC}GPn4xJ4)SfY&n#p;BE z*AM~%b)H}%LYfEn0MPb9g)Ntdjan$6slfg9)%1@cG}bgc_X~LtQ24QL^k!vTj?vVG zOQ_4>Iw?TI&yb+21iTJ*%r^p(9Z|^UEea9TIyMI>9;(#8YgLgcly<7on5cH1XMMgT zF4^xO^zAi3e{pq@$xl?npG^xWTH=^r0yl{8H;Tvo%RLOmtvB~A=|0>Glj!1f6FLze zqGmZ)WIcD7h^;+_O2M1^+54M&Je*wNb8-zit=By<;Xpg??^zP3t}wZ2({m+k^!FE= zF_i@WphfKJ!AX>#dtPUGU#K2flTnonHfl%Ns%kjZTCoR^R0{YDHi4TaIZY)jdaSVz zRgl4RcT;N&D+nogWdkY~OcgFwFrd(<@;<~R^t_GGVxK@QagGAGMpR%eN|X!QUcYJ3 z0dJ=y!ZtjgeXc8qd_@g~6m5pI$;YO37TrZ68ax}8&|G-+P7?X|yj7`wm46)SA+S%R zO>@F_iUC0Trrrr%o2xmjoQOtqvo{c^r2Hy+CAaTMf8Q)D4bU*$MvqMUavGe^G-g zT``BxP=!ykn!^11L&~1T+m`?Ho=YmShw2(or5~qyn1gu-$BqSz!iV?WAVv5%lvsXD z{hB|(r;7=w)GVWVljifY7XbE0>R7q{=kFdQi8J~vNrkA>Rz5WVVd~KRG*#~ws{u6Z ztj;)g2vOfmgB{b(V&FV0L1zrw6i%6j(E@4d8wzvo72f!seL-JnN)gQK`h%A z-sCW63G0v9CJYqF3NpYV8e%Mm_4)@KueoV?lPL8(Y5u*57M!O zRPo>suA_~6$;m3f<~{hG6{KfSmMDUL58U2O)Gj4-ezu9|u=EQdIO>m=ai0BbrP#JD zKX;;H1sV^W8ww_EmDm{UX|5wIPboxkdR|DC++VG3=3WXL^m7@I<>Wk;r0G;LwoAFr za@ywdn!7rr`sUL8uAye2pxrcla6keCOvl*8EkC7lR!(uQ0uc%%bpPIGUQ;1gCEMzN z{tyK!ZB5=Trz{Us45*Z(gxb}P>%-@)?xK2DX~bb)cD@Ecf+mUQJ6Osy =DaZA$ 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 YcdVL5uvxteyZ`_I07*qoM6N<$g7j=cZ~y=R literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/Integrations.png b/docs/.gitbook/assets/Integrations.png new file mode 100644 index 0000000000000000000000000000000000000000..9941a5ff08a28132083ff66e758f9a1a177e7c45 GIT binary patch literal 514935 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�~K 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ΠFZF_x+ajryo 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%0DKT1hj1}87?jpoXMB#zi`{in10tTE=2oYv7NA{r` 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

    lq~W0HaU26P7HS&6m0dPV5(QDB?T_vVKZnY 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

    iHd`hh3k#=( zg=3S#7vr7?I=6DXCPJoOXOc;-BzVKH7SE`Td2k~EJ$4=?s!fDh6Fx?63U;ljaTkkJ zzlzQ{a4Mpsg#wu0<8~D}0a{0}EQlrmsUZ`-BIwa(Eh5Kx?Xd))a~q1Xdy+|G?9vj` zSc8!SI|l~OenhMSgaOY*Hzr+UiBTd2h>6aGizuMLafc@!x;_-538ai!Lw?}H0~$_# zGz&S=nebnV*a00XL8NI*(2z^ub@}x}a0bO?D_kd#WJajv&kUWUh3ht z;Q`FyXvqaTN#UUolL@R|4DLqQdIZdRFH`|0mO}xBK_*cmXhVP;?KR5zEr}2qqpWV9 zL_Ff03CY|n>A9U29-Oj!wogNg+!x|JauSRfF}7tr5Ro5Qn;?V?mDK^Vkf=tJyx4RZ zIG&(>r67I7>UUrSW8q)|B~}vRg+&2rUa5GLz~gc=nuYQA4oN(SWhu=WHj~sJX zH%4C@&P-yoVWzB>ejFay9O}>a+MFG7SBssj$_QsLk>rd??sqVYN8oKrCM--Q%CwU2 zq7}zWFKy!mPWVoW4JjZ_a$5AKB4^Inc)fcQZGJqLnMo8nZX9O+E!;0m96LgW*!xTt zDo4#MQdJ(Pv7MwIvSG_`(#8wuUD8_7eBfqg7F`cetru=0r9U$wY=cc{JpcFkbC1d+ z*OMWt4ZZl_AsO#QkUUljgEWZX9l?U+rRUPj3d2xpo~=bI2a!0@?pGzORZ)!V!t_i% zFtIb&`4Ew4m0Up~WAh7$12@s6&Itn}R;*cV=%NO%vH2meN>YY7)mCP%5r0i=?c{j6 z^rUt~_H`qBR;z;td;R|R_SKtzvS+7T`_=Q#e)VKiE2DT2HBhae)QvTOeOD8a&aO`1 z+10z9UEN;V%kjo;PaoNxJ+b?`=uf3b55Q`t!MhnVYBeo4Q z*EZtd^K5txDc#4HFYU?YxAtiJ&aSs^v-r9uCMV+XYq*Yj^s=eba9;!ZdN0do_Wt&_ z_J=P9dwE;G+kae>k0*AVZ)yen%G?FT$ES}fuLF-tj8E&VH^*%ql@G@9+^`B}YU+YS zM}%gQ*_caq^h;U1>*Hg9NET%Jk3asz{_WrW+d7^b`-lJXAMKm3|7hFc$__QL(*iNA zzPLbsX7XffRFqsGhA|)R?Y_46PIse?clUPv_>o=LR@Q#Ex2s=&WbY0qo9g4<|JBDf z-5>1s?r7a{vd!dPEp;|c+#@5&0onbRW&nTY>s*o;MwaQPXy8BmYU`+!A5A=h5gOGY zbV(veQW65mbl=Z zLZeVAgFBp0d9C8I^2vL1j$Xe#J8yiyRhK1M+yfI2N{*`1KZHCiE8YlpCwg~8fEb0L z;OiAOei4I|7StirFD@A_&xr*=nAoNBiAUL!27iwt zB9II{l7H}X*ti5C+iJZeS=Wk3h!rLkp*#ujJw22YqZoxw$BAebf5FI4#Y&jfx_qz_ z0FTYQLowgGC=Maz4tNdA0t&LQ`o6nR7gyaDbc$vsK9L-V%Gdn69O(jnQKsUTsn7;8 zc_wt*2it%4cu%B(BYL!1_}SOaSs-f4dXI$I^YcOl3p}L;vC_HRk=K)gizMgv6&j^6 z&FoIZd!E;VP*fN23FC#>nddTo%wxbKE3DpO1E;2o?hogm8(E$XVG_z%FJ2)`)2qt_ z_~^`79{3vhK!S6GV+M7Of2JBIj<{1_&X5Ib5VKIds9s;Vu7b4g`~{yBnFGfP?b-%~^zMmC3<6cDR>Ax&+Fiv5dKNLB@en2% z#(`3U2v*%lDM`XKi+pn`Yg;NMKvOm_{Nsc_9%X2FAr&XJZ$sbP6ET;e4avT61Pvp* zNnHpM>{#KTJR^hU_!_D?GNcJIcsm~zgh!%*tXS$%zPZ4QWa0#lDi69Ro74!*sHk|Q z^FU0aZ_E)en_B9sFv%>asG1TT9TK>k{7jA&-Mo42E`R1T{nEB!bi-^j%(nO(mDKiJ!bpej%tDDzA|8w)sr zHiaw*Va(_4PCO`oi;hHhRQFW<^H)Fv2wx=L+2Ojd)i@ z)eE#>sis3{yre!->Jg;QC@C#qrl$1$5RT(|GGunkU~|oi$C`wsysOV^G50vyK6z$W zyT7&D``_7ref5QX{>Lxu?>^qzjS+^?)CB&RkjE*6+Qo>*}T5T)(y_ z&tBT2nt<$vuWH)x*1S2@mwNsA$b0Zkj(d2NCpOM6>YrcPVf<_R|Nn=v29KZC?#RY& zYm|6!(tD~u>%0vuuyaVy`ry{Ud!+}Tz1r_&La;)C;=#)yX4HmG&MzrF3Gij(Vyfu2 zJbUtyefsHN*+(y4K$h6E)Bo}R^gr4kpZ?lD|NM98B9e^l*EAup6>ytvYCyme0bX@J z9A4Li@aCe<<&C|&yR}zed}VKHH{{~wwLO0E+%6tnBB2?swzjE%@^NR=`+J+~pXqk2 zpLgWFPmAx%|6P-h)@53P^H=PbzT$TuklImrSsJ#TFQN)&BmBxGtic8GbT*TdH~L=U z#W+tkyz)3?@I8(jLlWYN$E-xNS4N5ed@!m1@f?J>$Fe#qhuN#YAaW7XsLu7;TJzrW zmps1OUVk3YhywvhF)4X1c_PRmN?tUiv7|aWUKo;uwdvS9?vPKfq6WI_&%od0%$Q`3g zBm~aku&m&_`uom9h<{?t61jZryw~UDJ@XJJU*J!>MYgyIn6vr0QX+p#F<4} z4_*=DEn)s#pV!7@q{!zMoQ+u|ZFP@iH((Ko<9ZRCn>s_{EQrqtw167nNJf%4zWVG| zCJ0Le?_v=q&255J^SODedA#CC6(lty-*=QX0_OqZJY+?i9j*%B@R*Ho`qV4~PLjZ- z;;EIGV^Qs&<#&=H@tjJa971Y30*Zk53AVjb4+fswaa|~;iWdrjfQ2w~zhC}NDyvbT zpjzTkc+CvSWw*lc(D5m%oi6LRMIxOAqXR`jJkyOhz#dHaHJ`*?*`O1`JMtLIp?ipV z_bk{u_p5c2@R=E6L0D@Nc0g^pBOfQ!*SLor_m)lTRjqh9tRQ~AWvt3 zu>y*aO%4BrWm;uOJwORK%`#JBH`EPafHLr=`yrJeWVNb>)GeF{1=mz}VU*i;VAk2i zp!}={LWyJ_N|hDDV{+G~1-TRItTgw>o>}BZ3(VCRB7h6+7H+Vq1TlFLHz3^3k^3Ti9VL;eAs$u8(nJpe&k9_&k{VR(^eoUN+d3>p z80!X)*j%%bQ1Aa5za$P$fm+p*gL%O&9@Up(oKic)pKiiYXZ)y@U z*Wl#7R`~8yY7pn5^=a1B_~gHqauJcb{7eLwji1$AH$U&p$zs%ID8iMYI}Nyo43x4-#Y zB#m$?2hz&@Ot$u$kFM>r=fAao_{aZjFJFCYZ*E^3ktFqLr6WJ0uU#zHa&|Oc?G|m^ z{rx!FRlQk&-1@COs*~?fOR?`>zp=0GYrW!-uUg{Q{5;ATwD2tH zSog%0MOq-OtNkg9EYTELKvlBOzy8{;pF9FId3Sk*wc&AE-gHPn4)q2-`9R_!SeC1P zY{XtcNGO=22erG)zThmIDgVk&C)*=Y{YG%UuyVTHg)qxHFsNp$2o^96AS(iQZrr0s zRj#{E-W>~zE*@KK!US+;pai2mf6iO(nN(7==JHL5N-CiQMQGLP0F9He@cki^uk!+N zL1DEX<1CmH^)W(Vg?qX7F!BLsDl3ISU@zI%(}AKlq5OA*tUiNtj|ZY)7tk_4ALGoC znjx-tJcUq_>BOrW;(w{p8uGK&67$3Dt#1FIju%Hdj`2^9&2AV`axiuA)kk3VM zleieTA()8O95P=t{%|p21SyKvslOtCHC6Be`w4Z1KI8*A08xdH)-Z97RE_92B3>t6 zQ`fbu8!h{TIvw1Qa*3cE74Mmc10@F~Z(6Lmi55)`5W7rX5|r{2*F^+iRfSoRSmi$b zH8#bh2-=wR;77U-TB)oaquLB!tXGx2GBTAW>stbs3s{mCjwGR`Le&Sqj%J!vv~kN5 zB6uE94^xKg8y1qCi`=qc&Xv-h8#ioWXj_Yti#-f^dUXLp8hI-|joN^``a;hawDu$` z=mt|sZCtch2>}9j9PY2`s3ExZ%BO#fI7H#qLRBkO){=0sduHqr1nB3Pyeatx=2Xeu zc%-X5Odlmv$c&yzDH6GXF1Zj*Qil$r2KTGH;v$I|%*TO=OeneF*{<`S5{DsC7_$I@ zz5F^-w7Jsl)!+Wq>Z~iLu{bAWB1D|Bc3SF3tQdJnQ$4F=$bsFB5YRl^|c*0XkJ`Vsf`!*|vLRxA~RV>}udrdl26)_GEvs7ne1d-fWEKOK;(> zepB1^mwB;g^+fpi*Vp#HeEy|<{oQR%F8->f50CAB+1G9h*kCod-PS#1u1Vv;_FWC8 zkKXBcZ_gfmZI2#*YggA_)vm|OdRtSy&syzY7O6PZ;J&-6OSoRw@zP$sdV=KR_I>?~ zyU%LE`Uxa=CwIF=8O@ysYGFf<>?1U_EH?dt^1lziSZ@k*<`?zZ^UN_tr1;mj8PwaN=Y{} z=*91VV2&}4_e7PyM8UJD>*Dv1Vig_SQ=IQE=}XhT9F1JObGXAJaXG{E%hxG+z)N8q z@g8RuVCP9t>#OwAm7g>M56s4f|b-YS9%{efo#zZ0Fw?(tD(iL$7W>d8SQ&){I<+9DJQ!sQ zE!6ev&mmrt{J)2`lg?^OD?f8mvd<)p_mrfb6-M5n;2B9oF9LZWf0jjs#lh4GTEM%; zBWHn;`_LSPai>>w4bC0vq+Gjj*^?W*ZSKmfZUOCl*e>7wB#Oma3eZ4V$3MEeb+O}kyI@-1OW8i@V6sCpT( zEXS3M6WKQYdx41zNp+fxvB|^feP*@zI5Syx$eAkXs47I8E}&g(vxY1j+qO6(gfATi zc8Jo$BCe!=)oz@*8BZhCulzlyk=Hbys1fdq=tzt$6&^;mvRQpd%_03LX}NmV+y1hn z%9A$HIA>3S+xce%gr-&A7Wy{$^Mh%WTrKm+2*oGvsErF7?FF^9W1)se2Nwp_QjnZU zf{h%R+|;8M5%+UTID;guIIBL--DM=7+_aNOi6;@QC?z|yWvPQHL<^u);)nNXZRf6fncPwFCIN753% zug+p5vYxj_dwr))MjS?i)H^zLD`|Ea@Fr^4U-f<#LF2^(S0%+1~tjxgn2Vb z@e37>ok;!;58P)aNh~%{g-psC@gAY_*2xG82WKNQ`WW=SVM1xDj%$6N8lX=-G8VuP zJ!pzUtwls@@a7A@8#buCdkPvfm@!o#@c(kV%PG~+^hMLpPt2%aZcxC_dXIJ*!lUMflzxzY|?PoPO{&h`4 zKB))(Q-__@_7dd|Ha8&7kgh9>el^H zrWyRUrM}w^8N#}Mo zVjri2Ir{X~bYF{d2YYn$yl%YNA$5_NbA`QIL3juVxy zD8H|+#g_Z{Q7TtqhS-eRG`Im3LgkxI-i5_GRi(E9D_tSBquxIysYRWFWE^M%5wiD0 zZ1~R}RpmxNDyWZtt_Og-2hbGxYfO-~C|Mm9c!9`3Hg`e}oEWIZ^%IKh1;rp3BN@S2 zx!pH^iw1S`F=Z0T&bu%2lbo@4o_HK6CmiQPR&g1!xf3~@KE{*7xK4rzDW;&&G0%Ok z(u3T5!LCdc#zOrwD)>=+4mcJ%2ZClp5yJP4*mLDbu-; zI88b{TXTF31+A^zQ%UTyHi@{o=9V;s2SxB2qPwyzE52`0>nu(VuRQdN0&~*=F>{hf zu#acB31y^J_KZZqwdx)L|GWtHwUG0WR1t@ptTr}N1<8p{kwpiLEygVtCAu7S?0qAd z)V-Ls0fgyfRC|KJn53rVo0ngEY*Ky`Am0U+&^HwMb^zbI%}tV6+S}mwV1f8OdRrnm zU{1s?)R&JoF%QhBDpC5DRXHu5!bOM;Xb{eJ1Qf|P6w2_ytWk-Pdtf9T2uei8Bkvbj zU( z5r81CW8L4&)JTN@$SJysVO>Xi`ORc?<|q%$`!lt^$&U&sV+S5hQHwrB5M}mYjzcxX zy91fQ4P_yH1DjXO`-2KTOYT1QE^s@+>%+MUBV4sj-W?8y8C@|8d%>oD?&JD%^-oPs zcH3GlPrtHP<#QWfer~VdzOW-3wPzQ-{XhTh*1mfC+P->u zu$OP&+hKlI1G;N_-2Yd5aWmP?=B+*6-&$Y3vt3O(x|(z>^F84+4x?IXfVf=OdH1CL z_Y1q9KC}PypX+m)e^c-M*LIqp)&%K-0kZQ`T=v&1X@xCE2o+*5P#d*#Q^B8ESVt10 zEeEf$mOGu+0S6&`T3+9O1@P)jQi?UxB24^XQR{`}*wqnn*s{+x6A8U0mJS z^4+^Srw?^~pCA?NCXk&cxQnr~Fs~|1v6ucBccj6j^mBFwn~F4|SnS{UFZ**}KbVY| zt_NHVayDG8YVkGa1tCvFe0mHww!7Neqepc$)WmVD<2PoL`ks`hd`~X)dh#{5sZ;5? z2G*Az2zUYludhrMsfpv`L&Z)-9>Y+3P zxl+h=WMa@u1u3|hUT71f8zT~MrIP}7nI*#D%(wd}ga$mwXDa?%@K%SYPIC*;p)M7W z8mc^nZwNV+@JKrFj0{feAm?s$%$dA2Q$1HV1SxpCdP1?Nlf-valBPn>cA#olFD`Dt zgApVOhmW}+#iy-=QaFAq^euOxxMk!x7=Iq`J+$#=p-YGfkc&5|p%plp;~Zo%G2ShW z=i&Q67W8P)x$I*H)kpCgqMM!Nn}R~%RGPR-*As5M6m|go-wgKabKI@!psN>2YE}Il zVo7C9%w;0UGgaz~9vtUQdSHsljtc=L-aE6eX zq|Um?n0T4iJ+Al4MJN*yx6P~#*`QA}$K-eHYWUHYx-)pv8IBU(1s5Xs=mtQN&6+$J zW-j7vJd{o3kMh{YPb+M)~HOQB$y}q%g+S)1%yw_%WRBhvtvvO`Rff&%u z>xSv_W31|k{jb(Cpjd^29xsx&3dlHsyeJ7mg z!P=cmzDO}u`rvHXgAFsJm3`5|=;|yW#x;(ZBWMFdFMMRX8I_6>$sEm;!g!~TIirm& z$Yw$4SNoOSktF{cZ#~{eLd6Znk`}z39TEp(tNk!#r+~>O6us2`1r+kc0|dOR?J8*) zEz?i{iK?OB#YX-tP){>%Mu0Ddn(%|0!L`$`*k3*XYdvHx7l5-vcI>_Y;QNVogdrVu-N&pa1@Utq0>^FMg8&uNrE?&@XN-=$(OM4WK-*-qb*S zU;n$NGV`^)egDi}zI<%&-hN`o>7)AIH}!_D>e}1Yd#S(rk-REUs=hDXY!pUim$%+-kYh{?KKMb;pl58Y2zL%4uh)M_`mk6oVK4)0IkR?x_>(}xRI5T}ntKu)DOY_(2mOdBlnU)65N<0p^p>({@w-~Zu1 z+5O?mI)1lyI672~?}@qSVQQ{PT%yEpUusvwjYDfPab4f%qJLz!^-#KfGuCna%5JaT z+ed%!(06HkR`NM?mC>(~oyRq6?AF5*llt84uJGjn>=Z*;Ny{#XB8-9`CZft+#Zyp_KL9 zQ(||?b&zg$gdiP{BK52UOgHbFz+I6z#(E zpqbX0iammQcrh-^2zB)z$%OI1R8Z%b&h9AO#UqWl2LE1GI6Ap7COFDEONOmr${qj4 zxw&CCfJIkp%7{GUYVvc>XWrnoMXE>o2hKys?bml0qy>HGEl#-j5(3Bs4pIGQ8QV#aMf(G#@JSl3lIq{ihb zDk4PpGm=WbH~7;jwwl#M$Y=ar#BxY_*o}jf@tzHbJ`@;8kam;1+!nkq_Q<$sthR2H zNu(&x-WV*Kl&eZJc>%#y?#(p%2}#cdJC@e~{9%QXQPM;2gq4F6dZ-8_ZW;mEf!W}8 zCH;7?hAM^JwwsjcVh`Xe(G_UHP2xRcanIp;U7GGPDj|9w=r$jr8GY8$O^s02vQbKv zCh9n^=05TMAy0rh_N>Wj>jQuDX) zH$4gx#db9p+UdA%nEW}0g$O(glZ~#Bpcg?-BqUf6)`(~{rDzveg#d~gt& zkyLP_l@od3IoOU4CA7iY&NDefzKIeq%cN^}NjQpQPd(rX^$1sUI7tSQcuna}`?HQ~ z=(xE_l?g=rP>YChaXJL68r&3-*wi(#9m3(2_Y#M#3kYmUPzfX{ z(bjzfvWF@MIx0MHGB;hequ1mt99VfhA~fEqcIy+*jqqkxFQY9yi4((DB+DlFWI>@J zWOcF6&e6(Wl`(vr18W_E6}gwmrZ#z0T%-g>`AjA_rz3H=ewcWrRVJrvrPn({wJe!4 zOG-o6*$=<8b~F87JUCypZ;)w$S`B$DaB4^S7)g%-e=$Jvb}AQ063SAm`Iuj=o*i~0r?e!qZm=4sO9 z8nma!b~kS9<+~azzTMlq+ZQ#^{pXAlJEpkw0@CqL(6xU|nc`7Knm{`q(RKl|?6`+6;xNCP}L zcMp-AC!4_j^>Lv(ns=p!+Op{kn8BJXZEc%t;$)+}zq_}8{)d0G;c92Y_1-QnFYM9& z${tVh6yeA7C$o}o`S9jMB`L|N@tze=)%PQ76DxplA^c; z*lZ|m4)h;GY;)p`({R_CcS9&%#;aF>F+@tjP}d8Hs{}gtX(T@JoJFqpIKe-Ady$(T zmKXl!c{S~evm>Heo-On|^A~*7wn0jdbAdnWv4a0hQY#!xbfzJWPl3hk!O7HP6 z&POD_W#vV?IE{b&rlVAHEbO5_>(mHpS36W~Zz*NvG#A1EEs}H;L;6)EmU6iTD(FXf zuwlNc*iCAVY&gpuZW&3LUqEmOJUY%+{0u)M~;x zm!x~_4+0u3OAzOnSpp9!#h;{!7Fj=T4$%*xDW*yUaFY}F`-Xw*)(UNG3WH4V7PT?m zy8*FEN=<2tL4Dr>$RNF=EmTx4p2d1IcM92_%MyT%0 zr74L745{yf_+xFt1-aYwZ*(3OlB2OnQ=XN{52F{OgSNE^j?YoSeO5f4Ps`L0(Ff=oSF?2p-8}>pRQK) z5=mlO$xP?+zDE}pFpfPIY}O{?lXS5LRr6=)@41n|P%Lg8tj(DmbGTpu(^Ew}4^%ji ztrG&)UyxMZ5?GM(rxg4l9;!23ef?lj>9IXi9tf=TSd#O5qN}`L!!S^iP(eR7^w5F# z-v@+2WbS#UbTYkpQagk^@ecE?AS|+1pu{;kR|7dZlae>U^2Q=Xne;%lCipNuo~VYN z!qh82Sodxg=06kAI8;C{ybClpIcDF}Z6O5YaJ;sJye(G}V}QMptC$^I3#; zRxl`Qc(}A0Lb4T)R7`^9fPDCbLa+i~iv>IdLbWzEe7#2Eb9<^s&drV8Pq+5}{oU90 zZ!W*F&z{Y8^W>tA+fcVF=d8?jx_f7b!+THX&0%6Wx!%xF*X00%LN^i|=jV1j{;CGX zPwnNaYrB1SQ!9Iq>jhlZ05XyWB?imGBqEm&(u%VPwS=Xyod?Iu+5Mlr4}Sq6{F3xp zIM-`P-%Yl&x7Ho+Y*(uykDq*OpY9*q-+ub3-8{a5q-{5E3H=f)IayvOv@wxsSCE?4 z#o2WePQ_lQuE<3PJdvtZ&Ru$L|MS29f7|QV|EA85|5zW&Ki;t0!n&3A{__U`2?dw;pJ_t#gJeqHZpzk?=4t_y6c^J(^g zY1`X;JRuRTr({h&3W(U7k{*!OmvRQA`XG7up|9~kVe*0BO)LNJ+@B*0&wJJ5H)3@9LQL3rn;fevVr2ZhtV;H@c{2-o6gNg~LZ7 z9Iyb6*9pRr+VkWK71#Pw(NxBRJeP5%UvN)#7=;JfgbxR=k7r=xpa~X(m`O^2Ku6B> z`3OAynS!Rqz=ZP`yk-y|vsmLGK&o^v8PkoFW@Ca6_bE{SIGvgybujH`ZJTh`>ZsQETtxYaJJ6Qx|pw4}< zG=UuFX}H%`%H#wLf*}Qw-(SspMX`|Y$&Nz7xvzlHpT`_$O~1x!=VJ*Zi2qwLSugLF z;B`bNVFonP8ia`FQ9|?Di;H1I=!&ZN-Co{V6BWREsh-BUA91D&lR%wmAUC(EObL>Q zxmVwBx2G~{Bm~PUH)oMpW@|Ol~Mgk1ozyoGv^orL=`J76<`#C=DELL<};v#lrpba693equX&l8_>E7 zSyv5aSl>sM3;Jr}HTyzghQ9JCuyBosZWbqo?v9kX$DTuCz8mn3JNuDxsFpXvr%p*9y zSaG4Iv5oIBn_d&iF7aoxlu_u`ZmPm-P9_rPA}RCM{35=RcQHD_4E&GpuS=j#j`kPaSHNYqC44o_nB z3Gf0Ri)ILz#N&#J-5sBouSaU4n;hJiXzemF4=CNjvF$oa6&qy|9c{&mh16Hlc_Jl8 zSGd3{iOL@|FtCyOHFR7{K5kK^SxJ+w|A{Q2cK=GrSGMfj$k3%3@9q8V)|T7R-juiY=x(v6H#>WB>FfR0#=Gxo zm+_vJD|ceIi<%s7>z`|zmTUZde|&1UhvzjQerCthiyHVoLUJ;r67wFs2af`NtOEW+ zJOl}m#Pt8(tDFV8KlEPg4ym(UC(&hhszK^#pFVnSfBWQ9`SORdc;2ob^!@7r$wJ*7T^Ihh!?$+M$>}d^fLs$h``8{muj76Ey-mYRHM8Op z$-XfxkXa5G8B$7hejw9YCr>|jc9S=@+YWYDNBDj@`MR^0pMP1uSLe@XpV-Cz!rtE9 zK?SLQdS%&=6CN zv0dHEc6IGu9tvSsz6Z~XX=(o`b*L3y1V<@KsMv|MM*fX%tO&d8=AYJXY!rID@DfmG zzCSMjf-zG53w~o%c*C!OU0YS~^V%7VZUR0(3p#>WfjkEANxc|2a;7$y^}Nc)hh!`j zJ%v8-Tz4u>qLvcqHF!RW*ezAAEMhRaz>wVsA{Bt1d8w+cAa_L^s&FI=*zQ^u?PxM zDOn_9p@Qn~gP)!W51p0dWQ{4&DoM|Xle-l*RUE~=bQ%ZB!ejo1?^{5XLKLTn*Fvsk zEnaPCfS5ZzGbns1mh)GrYkIOuh%e^>kvbyoGr4XH5b>XPy>e=*kGa73Ihn*+))>J^ zzl-Efoxga_p$v5n*P@K?dbUNNi9OErR}eaeuSxiwm)M z?9xX8U$DJMTs^1o=jFbD{@Kpgit$;Q7#*JEF{z$w6LPu^7C`l;xYd)!MRUcT|_kHU|gxL@_2~Fx5iX@g| z;|(|%HnpOl7nO9viny7&;ZZ;=3e|(O4R7{x*!JqnN!^&j%`KD=q9Wwde88VllFuS* zpN_NNr=(CR;Hk^fS(DX*0q90prfBz$sVtWS=MPSkyNsnnjQ;d%Qy%YX!J`7PD4 z(1yI18kj594EzjixD#D2nRt9i{-@Wa4~)-^MTbn2^i6U$H~pW_nd8i=MBkwbgV`ko zCF0b~z5es$Gsx?EXaP)nV%D^X#EM zl*+q$KpY{(8`r;vWV!v7ZS8*Kv~mCtxHY&azdox35;&drCf?gvw=)R01X zJk&XNtcg(l%rRk|j?<-eBaDMm*GQ-eldSW53+UBSiez#-LJSu=OcNHA`Az{ltXr7#mrkC{`71oW?+Nt*{x&8p{`-Bsp23ybykJ+)@yk;k8~?W}^Wc13@Uw1K z=s%Cs5=(%ckenZ;k%ScU%o@&wP>52Xf{m~32zGqa^#JUouC%M!v9ldKj4Tt>fGU@! zLJ98#@8AH|!_Q~Ol*P?O=g9FGP-qqkA?-Wy9PkdbVk`?aMig$E7lTE;ijY&^*9sM+ zB3{6=)|+_uze8m|HD_$ey2d`QM9BB}Ui&8D5WP%$M-SLa1lSDRd>+i%jS;>7F0Mxj zBnPj-Rg$`aMXo^}C$+l(iC_}0$rbd86i{HA#YJa8TwWAuatTq8zF$f5(a{Q0zADv3 z1Bed7%G7sRuG z^eqHbT>XjZHqS54{qPF&7h=(RF2P%4=GolP4}$bzk!7-XcM4AT4Dz| zv7-&9F(GVBdg2UT@%yaK$7ZrL-w7mt9!O?Z!`MZM&XW#W#UDYgPO3DG$H~VDSA*a+ zN!i4M@S12P60$Ilpsp~b6p9d`b&YE}k(}l`AqamHtKzuUBP$n#-c6_!p!GeODj!Ua zArU+>6{Wc(H#{WJx=&(5naKLr5ZHH`A17x2p+~-vF_SuHt-^~j6V4G@+r?VtFy>$b zb42B^W98)_I9vxV(}IQ1WQ&yw!X4Q~L*UjE;MrS*Kq-kzr+i zDeg$#0aE1-`hH9wsu{knH|`p=waAld}?ps)&%6uC-(0CQ@fpC*!{e- zvDCx^KjBqrcTM-Q)d*E9cN9;65PiQg{x5%JO|jhm+sW*8X4^13;e3IY$iBO;U5~we zT%(&8wXAzF&NboKB1vN%Zc$RVzUN=$>ROgW7j}}@d%)IE7?`iH&s+bjhVE{u{dJue zN1Jl(IOV%K?5?jqM6QeoKU~9W4+f?nvjTmb$4%YN5gBKX0c93>@o>+4~_e*RC+>(UYpbh=Zd z*Gw9+Iv=5Cb?m&mVc>kYWBL19TyoREz~Fa*#Yb>hc%bPsedTVBRI=I~>htx^M{Sb~ zqhKMXwVckL!w=<$#=K^~XMjtnMN+pb6cKw5zz|?CcqW{t6F0O$G<$xiU-qD`0C{^1 zzQVAKg+H!Y7^Su#%J;@81)l*N4MBGxFK;|YBB+hepQwg~&b1eP{J#Uj%8rS+dQx8s z1x1{@BNL;XJFtB{5XAi!R(6Bi)@7n5hVX?FtU8LGfV}wrdLm&sx+Q>!cWV_L@Lj2Y z`qh)4pa@*ajU{XR3`(9hh^!?0bzTUz3kVGTLLeUtB*=z|;H>UB&WJNeHsMJ;&4^H8 zXBo%`A9I%rE;3bC@{032^IY?8_cSvZ;dxQ#VLj^^C#>EtD{LpXBDTqh5Q##P+k6Di z_l%cZf}f;zo>LJ_>+@>tMN>O+6!}4Tj=hrGaTW53#5y2YGv=D+qvjp>M~IOcp&b?d z;4`N};iIVhN0$Ud^QiLADxNd00C(5Va*Scmcya);hxCAeErz)>)wW6qJP4A-IFQj6 z*U_=Yjvj~h5tkLlDgN1$YyhxEMvkA4XA}~6CfEB~mX>HG6@bG}1Tl@zfg%nGB>J5< z%ego>1Z!FO-fm1d$o>IdZhi2hCwPWozfu=$Q4Oa@g?HhG0S^EL)?+v%8wfrr$k@Vy zH^QA~*SP3y*V!-;vbMGueH7S*D5%}teMH~brvK=vX6A~_jI zRQBi05AqF>M{nR#)!o6#7SNz1J?W^>Byomj&B0u+AN~>d+JvN%F>HI>@1oMAs`gS9 zP1p!oO-Q;2;vli%Pt5Ye@5G-gaG1e&*boOwLO%};C`ysbfw7b#jJhu(3#Qc(9h+q) zys6$B30Z8#qIq^MUkne7&WK?xL2CD@!sM6j&$azLO{~TYwH@k(fTB(tlT51{^DI2G zA2JijfE#W;)D7QA96+BRGQ{V+EV{|^LC(@mFQEu#lB9NW--&a|D{`Lv9S^e;t@=^b|a*)fI9?Guf!5h0>cJ^xC+CE*_O%0AOuHMy;y0e#GclPp| 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 literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/Screenshot 2025-08-11 at 12.21.17 PM.png b/docs/.gitbook/assets/Screenshot 2025-08-11 at 12.21.17 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..87cb432f95b2de913783620e858bdf333faf3847 GIT binary patch literal 1073011 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

    @E=o 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%0A60$=WVAD?e- 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

    @paE$OQp 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

    =LIXR#-Sxh{fqg)veD?}#tGELW~ z=uN%)`%bMQ2Y;>gC(`R|?cg*BXYFlcvb403qxdbJ{!ji$3j_Ebc&fw^%G;>kFovxP z@c!F}hh!=&Xa=HUjB0?EXdC{=N7EYQ&bq%$JFd;u@6d@#faXOJM5p`O-N!^V z4t;cHcNKj532%anHfb>6W7cRw1Rb1cgj)ii8umLv-N}$VE?gpQm?H8ik_5h(MNN%a zfrRW5D1f(*xf$J(8MT#Xm40uO*_RW235o8&H-(L=KUChQqr8s8KjwCbYyPN7DHZQw zsS-(NXKlcE`2le!<}+>>R?($M2kh{sO?9lqY}(=`lDc0J8iR|?G1dLxl{A&EcM&Xm}TqrHp%CW2{s%p_b2VwE99jU1lvAe736R-8YquTc9nLg2I`F|3uK7E94aF>lIIgt%3 zd6mB#R>L;MZGW{0k@;*NEhwWihFS!24)O>%n^t=c*nh>^L;NkqoeG@`rwy4q@`yaW z8b$7)Li168J9kFgU-Cz-+ka;~4mq=`=07uj#ce%l*Q{T)^#+^SS@y%Wq&O7DvT(yw-9TlF&O?4EeJ}{&9N2DUw9*oci-{2GII;10?e$_v(4yph4xCnLP6IJt;VA z`xFZQsUpNHJs2#1d%uFtJQWF~hGxy7J?zOj>8a&#HI@vcnFWNA|( z#iArln7bLY;4#ib2;%Y=t%_+L3N!1WZwW|q+^`9!Mn#SMHEWl{@GK)Sz3_i_FD?GUWqKENqwNpRk%A)qG*X`7GU4q5{eCeeuLi22R6ZM2^b;vw21NA0 z6D)9B*$xa1AChX9c2jbSSRLqYBnC7;ha29#VlW^7Ud50~l3q%_!zH(`UHV`*xaNSg zq)R2~i!E4$?v~`24pUp^AAmwRjBOIi398y_8|3b@ap+AsqEXtQ2NHttDm(kyeljl|)XO|EZ6wZZ;Mk4ZiuVH{A?iloWIc2a2P&Q(_Q8FZuoix{N;`sV}cH)DS206e^bze)=Y8*syz9< zckWgXRR`WHfQfb0W|EMa`jq!KC**)xfz3MvVj7`Y#cjAh)1sAf((9q>CShtH<9Yga zp=ppXMMNL~c1Fn|{v+3}4OF$-KtXYRjq+S4G-+BL`5fbap2~jyMd0PV=BQEZ|1`^v z8GSm#n;vAzxz!#$I4TAH9Z9mixLyI)kh0$a)eUgg`6wuA-dY9>e?c)fVo=Wr@p{9@ z+&&F)g<&}>ah}o7wa^Q6`xEKpT(z$0k$`qh%;y}`_etZF+k8v|zdv9FQi4>DE< zAL@R3P9(f@TDyFa~%$IN}NUwL)=UX+@^sMdGYX1{Fz8|dsMW9 zXsot@l4z`f^FO*r&R(+ZvS>qN2C^-QHshbh+)=DI69}r227{!=d7Giv=}7p@Go>Xq zy?*I(XcJ=xeC3Etnb<`%v{wK~vXw!u^G5_)D3N@jHUKS^i12PG6m%iUWqp1PGoBKVvp6m{0GXI63(KhuoF#nC0-x@v zgI|t5*`Y^k#VuBxb(S~ECt+AEv^0ArFG-fFG8i?{S)s8d4?9!jlmaWFm4aGY;>C>W z=M2j5Z!Wb~5%Ilqr#P68oZs2vG3)#czb3}_<}%lOaD)H5!M-SH*QnP5kf6{FsHx!R zATcu*xtTr0;%42G_FV=Yn@wdA#*m4F(Dpa~==BAW&∨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

    ZA>u7 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 u#J%og8+i4i3B7;X`d&J&=Rk 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

    wmS&(P9)JtunjQil7xFtto}I> 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

  • x|aa}giCFMg-yG@U&5~ud^ut80` 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

    AutoGPT Documentation

    + +

    Create innovative agents that amplify human potential

    + + + +
    Cover image

    :leaf:

    AutoGPT PlatformGet started with the developer platform in 5 minutes.AutoGPT PlatformAGPT_Platform.png

    :server:

    IntegrationsLearn more about hosting the developer platform.IntegrationsIntegrations.png

    :terminal:

    ContributeBrowse, test, and implement APIs.Contributing to the DocsContribute.png
    + +{% columns %} +{% column valign="middle" %} +

    AutoGPT License on GitHub

    +{% endcolumn %} + +{% column %} +

    AutoGPT Classic (Local Installation)

    +{% endcolumn %} +{% endcolumns %} + +*** + + + +

    Join a community of 65,000+ developers

    + +

    Join our Discord community or create your first PR in just a few steps.

    + +

    :discord:

    Discord communityJoin our Discord community to post questions, get help, and share resources with our growing community of over 55,000 members.Join Discordhttps://discord.com/invite/autogpt

    :github:

    GitHubOur product is 100% open source and built by developers just like you. Head to our GitHub repository to learn how to submit your first PR.Submit a PRhttps://github.com/Significant-Gravitas/AutoGPT
    diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md new file mode 100644 index 0000000000..d338256bc0 --- /dev/null +++ b/docs/SUMMARY.md @@ -0,0 +1,3 @@ +# Table of contents + +* [Developer Platform](README.md) From e5031261706f7d3aefe78d4918b3b061bd1a4824 Mon Sep 17 00:00:00 2001 From: Abhimanyu Yadav <122007096+Abhi1992002@users.noreply.github.com> Date: Wed, 7 Jan 2026 10:36:34 +0530 Subject: [PATCH 028/160] feat(frontend): upgrade RJSF to v6 and implement new FormRenderer system (#11677) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #11686 ### Changes 🏗️ This PR upgrades the React JSON Schema Form (RJSF) library from v5 to v6 and introduces a complete rewrite of the form rendering system with improved architecture and new features. #### Core Library Updates - Upgraded `@rjsf/core` from 5.24.13 to 6.1.2 - Upgraded `@rjsf/utils` from 5.24.13 to 6.1.2 - Added `@radix-ui/react-slider` 1.3.6 for new slider components #### New Form Renderer Architecture - **Base Templates**: Created modular base templates for arrays, objects, and standard fields - **AnyOf Support**: Implemented `AnyOfField` component with type selector for union types - **Array Fields**: New `ArrayFieldTemplate`, `ArrayFieldItemTemplate`, and `ArraySchemaField` with context provider - **Object Fields**: Enhanced `ObjectFieldTemplate` with better support for additional properties via `WrapIfAdditionalTemplate` - **Field Templates**: New `TitleField`, `DescriptionField`, and `FieldTemplate` with improved styling - **Custom Widgets**: Implemented TextWidget, SelectWidget, CheckboxWidget, FileWidget, DateWidget, TimeWidget, and DateTimeWidget - **Button Components**: Custom AddButton, RemoveButton, and CopyButton components #### Node Handle System Refactor - Split `NodeHandle` into `InputNodeHandle` and `OutputNodeHandle` for better separation of concerns - Refactored handle ID generation logic in `helpers.ts` with new `generateHandleIdFromTitleId` function - Improved handle connection detection using edge store - Added support for nested output handles (objects within outputs) #### Edge Store Improvements - Added `removeEdgesByHandlePrefix` method for bulk edge removal - Improved `isInputConnected` with handle ID cleanup - Optimized `updateEdgeBeads` to only update when changes occur - Better edge management with `applyEdgeChanges` #### Node Store Enhancements - Added `syncHardcodedValuesWithHandleIds` method to maintain consistency between form data and handle connections - Better handling of additional properties in objects - Improved path parsing with `parseHandleIdToPath` and `ensurePathExists` #### Draft Recovery Improvements - Added diff calculation with `calculateDraftDiff` to show what changed - New `formatDiffSummary` to display changes in a readable format (e.g., "+2/-1 blocks, +3 connections") - Better visual feedback for draft changes #### UI/UX Enhancements - Fixed node container width to 350px for consistency - Improved field error display with inline error messages - Better spacing and styling throughout forms - Enhanced tooltip support for field descriptions - Improved array item controls with better button placement - Context-aware field sizing (small/large) #### Output Handler Updates - Recursive rendering of nested output properties - Better type display with color coding - Improved handle connections for complex output schemas #### Migration & Cleanup - Updated `RunInputDialog` to use new FormRenderer - Updated `FormCreator` to use new FormRenderer - Moved OAuth callback types to separate file - Updated import paths from `input-renderer` to `InputRenderer` - Removed unused console.log statements - Added `type="button"` to buttons to prevent form submission ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Test form rendering with various field types (text, number, boolean, arrays, objects) - [x] Test anyOf field type selector functionality - [x] Test array item addition/removal - [x] Test nested object fields with additional properties - [x] Test input/output node handle connections - [x] Test draft recovery with diff display - [x] Verify backward compatibility with existing agents - [x] Test field validation and error display - [x] Verify handle ID generation for complex schemas ## Summary by CodeRabbit * **New Features** * Improved form field rendering with enhanced support for optional types, arrays, and nested objects. * Enhanced draft recovery display showing detailed difference tracking (added, removed, modified items). * Better OAuth popup callback handling with structured message types. * **Bug Fixes** * Improved node handle ID normalization and synchronization. * Enhanced edge management for complex field changes. * Fixed styling consistency across form components. * **Dependencies** * Updated React JSON Schema Form library to version 6.1.2. * Added Radix UI slider component support. ✏️ Tip: You can customize this high-level summary in your review settings. --- autogpt_platform/frontend/package.json | 5 +- autogpt_platform/frontend/pnpm-lock.yaml | 176 ++-- .../auth/integrations/oauth_callback/route.ts | 2 +- .../auth/integrations/oauth_callback/types.ts | 11 + .../RunInputDialog/RunInputDialog.tsx | 2 +- .../RunInputDialog/useRunInputDialog.ts | 2 +- .../DraftRecoveryPopup.tsx | 54 +- .../useDraftRecoveryPopup.tsx | 2 + .../Flow/helpers/resolve-collision.ts | 2 - .../FlowEditor/Flow/useDraftManager.ts | 27 +- .../components/FlowEditor/Flow/useFlow.ts | 8 + .../FlowEditor/edges/useCustomEdge.ts | 19 +- .../FlowEditor/handlers/NodeHandle.tsx | 59 +- .../components/FlowEditor/handlers/helpers.ts | 111 +-- .../nodes/CustomNode/CustomNode.tsx | 4 +- .../components/NodeAdvancedToggle.tsx | 2 +- .../CustomNode/components/NodeContainer.tsx | 2 +- .../CustomNode/components/NodeHeader.tsx | 10 +- .../components/NodeOutput/NodeOutput.tsx | 2 +- .../CustomNode/components/StickyNoteBlock.tsx | 2 +- .../FlowEditor/nodes/FormCreator.tsx | 2 +- .../FlowEditor/nodes/OutputHandler.tsx | 117 ++- .../components/FlowEditor/nodes/helpers.ts | 51 +- .../app/(platform)/build/stores/edgeStore.ts | 44 +- .../app/(platform)/build/stores/nodeStore.ts | 37 + .../CredentialsInputs/CredentialsInputs.tsx | 2 + .../profile/(user)/integrations/page.tsx | 2 +- .../GoogleDrivePicker/GoogleDrivePicker.tsx | 1 + .../FormRenderer.tsx | 27 +- .../InputRenderer/base/anyof/AnyOfField.tsx | 86 ++ .../base/anyof/components/AnyOfFieldTitle.tsx | 78 ++ .../InputRenderer/base/anyof/helpers.ts | 61 ++ .../InputRenderer/base/anyof/useAnyOfField.ts | 96 ++ .../base/array/ArrayFieldItemTemplate.tsx | 34 + .../base/array/ArrayFieldTemplate.tsx | 105 ++ .../base/array/ArraySchemaField.tsx | 29 + .../base/array/context/array-item-context.tsx | 33 + .../InputRenderer/base/array/helpers.ts | 3 + .../InputRenderer/base/array/index.ts | 7 + .../InputRenderer/base/base-registry.ts | 69 ++ .../renderers/InputRenderer/base/index.ts | 5 + .../base/object/ObjectFieldTemplate.tsx | 122 +++ .../object/OptionalDataControlsTemplate.tsx | 35 + .../base/object/WrapIfAdditionalTemplate.tsx | 114 +++ .../InputRenderer/base/object/index.ts | 3 + .../base/standard/DescriptionField.tsx | 32 + .../base/standard/FieldError.tsx | 27 + .../base/standard/FieldTemplate.tsx | 131 +++ .../base/standard/TitleField.tsx | 55 + .../base/standard/buttons/AddButton.tsx | 27 + .../base/standard/buttons/IconButton.tsx | 101 ++ .../base/standard/buttons/index.ts | 8 + .../base/standard/errors/ErrorList.tsx | 24 + .../base/standard/errors/index.ts | 1 + .../InputRenderer/base/standard/helpers.ts | 76 ++ .../InputRenderer/base/standard/index.ts | 3 + .../widgets/CheckboxInput/CheckBoxWidget.tsx} | 3 +- .../standard/widgets/CheckboxInput/index.ts | 1 + .../widgets/DateInput/DateWidget.tsx} | 3 +- .../base/standard/widgets/DateInput/index.ts | 1 + .../widgets/DateTimeInput/DateTimeWidget.tsx} | 2 +- .../standard/widgets/DateTimeInput/index.ts | 1 + .../widgets/FileInput}/FileWidget.tsx | 0 .../base/standard/widgets/FileInput/index.ts | 1 + .../widgets/SelectInput}/SelectWidget.tsx | 17 +- .../standard/widgets/SelectInput/index.ts | 1 + .../TextInput/TextInputExpanderModal.tsx} | 0 .../widgets/TextInput/TextWidget.tsx} | 19 +- .../base/standard/widgets/TextInput/index.ts | 2 + .../widgets/TimeInput/TimeWidget.tsx} | 2 +- .../base/standard/widgets/TimeInput/index.ts | 1 + .../base/standard/widgets/index.ts | 7 + .../renderers/InputRenderer/constants.ts | 8 + .../CredentialField/CredentialField.tsx | 73 ++ .../components/CredentialFieldTitle.tsx | 66 ++ .../custom}/CredentialField/helpers.ts | 0 .../GoogleDrivePickerField.tsx | 21 + .../InputRenderer/custom/custom-registry.ts | 52 + .../renderers/InputRenderer/docs/HEIRARCHY.md | 291 ++++++ .../renderers/InputRenderer/helpers.ts | 276 ++++++ .../renderers/InputRenderer/index.ts | 3 + .../renderers/InputRenderer/registry/Form.tsx | 23 + .../renderers/InputRenderer/registry/index.ts | 10 + .../renderers/InputRenderer/registry/types.ts | 7 + .../renderers/InputRenderer/types.ts | 15 + .../utils/custom-validator.ts | 0 .../utils/helpers.ts | 0 .../utils/input-schema-pre-processor.ts | 10 +- .../InputRenderer/utils/rjsf-utils.ts | 6 + .../InputRenderer/utils/schema-utils.ts | 35 + .../ARCHITECTURE_INPUT_RENDERER.md | 938 ------------------ .../fields/AnyOfField/AnyOfField.tsx | 232 ----- .../fields/AnyOfField/useAnyOfField.tsx | 105 -- .../CredentialField/CredentialField.tsx | 87 -- .../CredentialField/SelectCredential.tsx | 93 -- .../APIKeyCredentialModal.tsx | 123 --- .../useAPIKeyCredentialsModal.ts | 103 -- .../HostScopedCredentialsModal.tsx | 185 ---- .../useHostScopedCredentialsModal.ts | 167 ---- .../OAuthCredentialModal.tsx | 63 -- .../useOAuthCredentialModal.ts | 196 ---- .../PasswordCredentialModal.tsx | 102 -- .../usePasswordCredentialModal.ts | 75 -- .../CredentialField/useCredentialField.ts | 141 --- .../input-renderer/fields/ObjectField.tsx | 42 - .../renderers/input-renderer/fields/index.ts | 10 - .../templates/ArrayFieldTemplate.tsx | 30 - .../templates/FieldTemplate.tsx | 184 ---- .../input-renderer/templates/index.ts | 10 - .../ArrayEditorWidget/ArrayEditorContext.tsx | 11 - .../ArrayEditorWidget/ArrayEditorWidget.tsx | 92 -- .../ObjectEditorWidget/ObjectEditorWidget.tsx | 183 ---- .../renderers/input-renderer/widgets/index.ts | 18 - .../frontend/src/lib/dexie/draft-utils.ts | 79 ++ 114 files changed, 2873 insertions(+), 3503 deletions(-) create mode 100644 autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/types.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer => InputRenderer}/FormRenderer.tsx (62%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/anyof/AnyOfField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/anyof/components/AnyOfFieldTitle.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/anyof/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/anyof/useAnyOfField.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/ArrayFieldItemTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/ArrayFieldTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/ArraySchemaField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/context/array-item-context.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/array/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/base-registry.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/object/ObjectFieldTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/object/OptionalDataControlsTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/object/WrapIfAdditionalTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/object/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/DescriptionField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/FieldError.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/FieldTemplate.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/TitleField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/AddButton.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/IconButton.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/ErrorList.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/SwitchWidget.tsx => InputRenderer/base/standard/widgets/CheckboxInput/CheckBoxWidget.tsx} (87%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/CheckboxInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/DateInputWidget.tsx => InputRenderer/base/standard/widgets/DateInput/DateWidget.tsx} (88%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/DateTimeInputWidget.tsx => InputRenderer/base/standard/widgets/DateTimeInput/DateTimeWidget.tsx} (91%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets => InputRenderer/base/standard/widgets/FileInput}/FileWidget.tsx (100%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets => InputRenderer/base/standard/widgets/SelectInput}/SelectWidget.tsx (87%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/TextInputWidget/InputExpanderModal.tsx => InputRenderer/base/standard/widgets/TextInput/TextInputExpanderModal.tsx} (100%) rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/TextInputWidget/TextInputWidget.tsx => InputRenderer/base/standard/widgets/TextInput/TextWidget.tsx} (91%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/index.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer/widgets/TimeInputWidget.tsx => InputRenderer/base/standard/widgets/TimeInput/TimeWidget.tsx} (91%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/constants.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/CredentialField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/components/CredentialFieldTitle.tsx rename autogpt_platform/frontend/src/components/renderers/{input-renderer/fields => InputRenderer/custom}/CredentialField/helpers.ts (100%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/GoogleDrivePickerField/GoogleDrivePickerField.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/custom-registry.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/docs/HEIRARCHY.md create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/Form.tsx create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/index.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/types.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/types.ts rename autogpt_platform/frontend/src/components/renderers/{input-renderer => InputRenderer}/utils/custom-validator.ts (100%) rename autogpt_platform/frontend/src/components/renderers/{input-renderer => InputRenderer}/utils/helpers.ts (100%) rename autogpt_platform/frontend/src/components/renderers/{input-renderer => InputRenderer}/utils/input-schema-pre-processor.ts (91%) create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/rjsf-utils.ts create mode 100644 autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/schema-utils.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/ARCHITECTURE_INPUT_RENDERER.md delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/AnyOfField.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/useAnyOfField.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/CredentialField.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/SelectCredential.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/APIKeyCredentialModal.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/useAPIKeyCredentialsModal.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/HostScopedCredentialsModal.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/useHostScopedCredentialsModal.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/OAuthCredentialModal.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/useOAuthCredentialModal.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/PasswordCredentialModal.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/usePasswordCredentialModal.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/useCredentialField.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/ObjectField.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/fields/index.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/templates/ArrayFieldTemplate.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/templates/FieldTemplate.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/templates/index.ts delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorContext.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorWidget.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ObjectEditorWidget/ObjectEditorWidget.tsx delete mode 100644 autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/index.ts diff --git a/autogpt_platform/frontend/package.json b/autogpt_platform/frontend/package.json index 1708ac9053..fcaa150ee1 100644 --- a/autogpt_platform/frontend/package.json +++ b/autogpt_platform/frontend/package.json @@ -46,13 +46,14 @@ "@radix-ui/react-scroll-area": "1.2.10", "@radix-ui/react-select": "2.2.6", "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-slider": "1.3.6", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-switch": "1.2.6", "@radix-ui/react-tabs": "1.1.13", "@radix-ui/react-toast": "1.2.15", "@radix-ui/react-tooltip": "1.2.8", - "@rjsf/core": "5.24.13", - "@rjsf/utils": "5.24.13", + "@rjsf/core": "6.1.2", + "@rjsf/utils": "6.1.2", "@rjsf/validator-ajv8": "5.24.13", "@sentry/nextjs": "10.27.0", "@supabase/ssr": "0.7.0", diff --git a/autogpt_platform/frontend/pnpm-lock.yaml b/autogpt_platform/frontend/pnpm-lock.yaml index 355ffff129..82f516f115 100644 --- a/autogpt_platform/frontend/pnpm-lock.yaml +++ b/autogpt_platform/frontend/pnpm-lock.yaml @@ -62,6 +62,9 @@ importers: '@radix-ui/react-separator': specifier: 1.1.7 version: 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slider': + specifier: 1.3.6 + version: 1.3.6(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': specifier: 1.2.3 version: 1.2.3(@types/react@18.3.17)(react@18.3.1) @@ -78,14 +81,14 @@ importers: specifier: 1.2.8 version: 1.2.8(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rjsf/core': - specifier: 5.24.13 - version: 5.24.13(@rjsf/utils@5.24.13(react@18.3.1))(react@18.3.1) + specifier: 6.1.2 + version: 6.1.2(@rjsf/utils@6.1.2(react@18.3.1))(react@18.3.1) '@rjsf/utils': - specifier: 5.24.13 - version: 5.24.13(react@18.3.1) + specifier: 6.1.2 + version: 6.1.2(react@18.3.1) '@rjsf/validator-ajv8': specifier: 5.24.13 - version: 5.24.13(@rjsf/utils@5.24.13(react@18.3.1)) + version: 5.24.13(@rjsf/utils@6.1.2(react@18.3.1)) '@sentry/nextjs': specifier: 10.27.0 version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.4.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.101.3(esbuild@0.25.9)) @@ -2310,6 +2313,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-slider@1.3.6': + resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-slot@1.2.3': resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: @@ -2479,18 +2495,18 @@ packages: react-redux: optional: true - '@rjsf/core@5.24.13': - resolution: {integrity: sha512-ONTr14s7LFIjx2VRFLuOpagL76sM/HPy6/OhdBfq6UukINmTIs6+aFN0GgcR0aXQHFDXQ7f/fel0o/SO05Htdg==} - engines: {node: '>=14'} + '@rjsf/core@6.1.2': + resolution: {integrity: sha512-fcEO6kArMcVIzTBoBxNStqxzAL417NDw049nmNx11pIcMwUnU5sAkSW18c8kgZOT6v1xaZhQrY+X5cBzzHy9+g==} + engines: {node: '>=20'} peerDependencies: - '@rjsf/utils': ^5.24.x - react: ^16.14.0 || >=17 + '@rjsf/utils': ^6.x + react: '>=18' - '@rjsf/utils@5.24.13': - resolution: {integrity: sha512-rNF8tDxIwTtXzz5O/U23QU73nlhgQNYJ+Sv5BAwQOIyhIE2Z3S5tUiSVMwZHt0julkv/Ryfwi+qsD4FiE5rOuw==} - engines: {node: '>=14'} + '@rjsf/utils@6.1.2': + resolution: {integrity: sha512-Px3FIkE1KK0745Qng9v88RZ0O7hcLf/1JUu0j00g+r6C8Zyokna42Hz/5TKyyQSKJqgVYcj2Z47YroVLenUM3A==} + engines: {node: '>=20'} peerDependencies: - react: ^16.14.0 || >=17 + react: '>=18' '@rjsf/validator-ajv8@5.24.13': resolution: {integrity: sha512-oWHP7YK581M8I5cF1t+UXFavnv+bhcqjtL1a7MG/Kaffi0EwhgcYjODrD8SsnrhncsEYMqSECr4ZOEoirnEUWw==} @@ -3643,6 +3659,9 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@x0k/json-schema-merge@1.0.2': + resolution: {integrity: sha512-1734qiJHNX3+cJGDMMw2yz7R+7kpbAtl5NdPs1c/0gO5kYT6s4dMbLXiIfpZNsOYhGZI3aH7FWrj4Zxz7epXNg==} + '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -4159,12 +4178,6 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - compute-gcd@1.2.1: - resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} - - compute-lcm@1.1.2: - resolution: {integrity: sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4829,6 +4842,9 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -5477,13 +5493,6 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-compare@0.2.2: - resolution: {integrity: sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==} - - json-schema-merge-allof@0.8.1: - resolution: {integrity: sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==} - engines: {node: '>=12.0.0'} - json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -5599,6 +5608,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash-es@4.17.22: + resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -5688,11 +5700,14 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markdown-to-jsx@7.7.13: - resolution: {integrity: sha512-DiueEq2bttFcSxUs85GJcQVrOr0+VVsPfj9AEUPqmExJ3f8P/iQNvZHltV4tm1XVhu1kl0vWBZWT3l99izRMaA==} + markdown-to-jsx@8.0.0: + resolution: {integrity: sha512-hWEaRxeCDjes1CVUQqU+Ov0mCqBqkGhLKjL98KdbwHSgEWZZSJQeGlJQatVfeZ3RaxrfTrZZ3eczl2dhp5c/pA==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' + peerDependenciesMeta: + react: + optional: true math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} @@ -7578,21 +7593,6 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - validate.io-array@1.0.6: - resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} - - validate.io-function@1.0.2: - resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} - - validate.io-integer-array@1.0.0: - resolution: {integrity: sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==} - - validate.io-integer@1.0.5: - resolution: {integrity: sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==} - - validate.io-number@1.0.3: - resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} - validator@13.15.20: resolution: {integrity: sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==} engines: {node: '>= 0.10'} @@ -9903,6 +9903,25 @@ snapshots: '@types/react': 18.3.17 '@types/react-dom': 18.3.5(@types/react@18.3.17) + '@radix-ui/react-slider@1.3.6(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.17)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.17 + '@types/react-dom': 18.3.5(@types/react@18.3.17) + '@radix-ui/react-slot@1.2.3(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.17)(react@18.3.1) @@ -10065,27 +10084,28 @@ snapshots: react: 18.3.1 react-redux: 9.2.0(@types/react@18.3.17)(react@18.3.1)(redux@5.0.1) - '@rjsf/core@5.24.13(@rjsf/utils@5.24.13(react@18.3.1))(react@18.3.1)': + '@rjsf/core@6.1.2(@rjsf/utils@6.1.2(react@18.3.1))(react@18.3.1)': dependencies: - '@rjsf/utils': 5.24.13(react@18.3.1) + '@rjsf/utils': 6.1.2(react@18.3.1) lodash: 4.17.21 - lodash-es: 4.17.21 - markdown-to-jsx: 7.7.13(react@18.3.1) + lodash-es: 4.17.22 + markdown-to-jsx: 8.0.0(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 - '@rjsf/utils@5.24.13(react@18.3.1)': + '@rjsf/utils@6.1.2(react@18.3.1)': dependencies: - json-schema-merge-allof: 0.8.1 + '@x0k/json-schema-merge': 1.0.2 + fast-uri: 3.1.0 jsonpointer: 5.0.1 lodash: 4.17.21 - lodash-es: 4.17.21 + lodash-es: 4.17.22 react: 18.3.1 react-is: 18.3.1 - '@rjsf/validator-ajv8@5.24.13(@rjsf/utils@5.24.13(react@18.3.1))': + '@rjsf/validator-ajv8@5.24.13(@rjsf/utils@6.1.2(react@18.3.1))': dependencies: - '@rjsf/utils': 5.24.13(react@18.3.1) + '@rjsf/utils': 6.1.2(react@18.3.1) ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) lodash: 4.17.21 @@ -11502,6 +11522,10 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 + '@x0k/json-schema-merge@1.0.2': + dependencies: + '@types/json-schema': 7.0.15 + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -12041,19 +12065,6 @@ snapshots: compare-versions@6.1.1: {} - compute-gcd@1.2.1: - dependencies: - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - - compute-lcm@1.1.2: - dependencies: - compute-gcd: 1.2.1 - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - concat-map@0.0.1: {} concurrently@9.2.1: @@ -12932,6 +12943,8 @@ snapshots: fast-uri@3.0.6: {} + fast-uri@3.1.0: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -13641,16 +13654,6 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-compare@0.2.2: - dependencies: - lodash: 4.17.21 - - json-schema-merge-allof@0.8.1: - dependencies: - compute-lcm: 1.1.2 - json-schema-compare: 0.2.2 - lodash: 4.17.21 - json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -13766,6 +13769,8 @@ snapshots: lodash-es@4.17.21: {} + lodash-es@4.17.22: {} + lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -13845,8 +13850,8 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@7.7.13(react@18.3.1): - dependencies: + markdown-to-jsx@8.0.0(react@18.3.1): + optionalDependencies: react: 18.3.1 math-intrinsics@1.1.0: {} @@ -16202,21 +16207,6 @@ snapshots: uuid@9.0.1: {} - validate.io-array@1.0.6: {} - - validate.io-function@1.0.2: {} - - validate.io-integer-array@1.0.0: - dependencies: - validate.io-array: 1.0.6 - validate.io-integer: 1.0.5 - - validate.io-integer@1.0.5: - dependencies: - validate.io-number: 1.0.3 - - validate.io-number@1.0.3: {} - validator@13.15.20: {} vaul@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts index df1de26300..41d05a9afb 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/route.ts @@ -1,4 +1,4 @@ -import { OAuthPopupResultMessage } from "@/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/useOAuthCredentialModal"; +import { OAuthPopupResultMessage } from "./types"; import { NextResponse } from "next/server"; // This route is intended to be used as the callback for integration OAuth flows, diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/types.ts b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/types.ts new file mode 100644 index 0000000000..9000adf392 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/oauth_callback/types.ts @@ -0,0 +1,11 @@ +export type OAuthPopupResultMessage = { message_type: "oauth_popup_result" } & ( + | { + success: true; + code: string; + state: string; + } + | { + success: false; + message: string; + } +); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/RunInputDialog.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/RunInputDialog.tsx index 2d9f51c8bf..431feeaade 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/RunInputDialog.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/RunInputDialog.tsx @@ -5,7 +5,7 @@ import { useGraphStore } from "@/app/(platform)/build/stores/graphStore"; import { Button } from "@/components/atoms/Button/Button"; import { ClockIcon, PlayIcon } from "@phosphor-icons/react"; import { Text } from "@/components/atoms/Text/Text"; -import { FormRenderer } from "@/components/renderers/input-renderer/FormRenderer"; +import { FormRenderer } from "@/components/renderers/InputRenderer/FormRenderer"; import { useRunInputDialog } from "./useRunInputDialog"; import { CronSchedulerDialog } from "../CronSchedulerDialog/CronSchedulerDialog"; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.ts index f0bb3b1c98..a71ad0bd07 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.ts @@ -8,7 +8,7 @@ import { import { parseAsInteger, parseAsString, useQueryStates } from "nuqs"; import { useMemo, useState } from "react"; import { uiSchema } from "../../../FlowEditor/nodes/uiSchema"; -import { isCredentialFieldSchema } from "@/components/renderers/input-renderer/fields/CredentialField/helpers"; +import { isCredentialFieldSchema } from "@/components/renderers/InputRenderer/custom/CredentialField/helpers"; export const useRunInputDialog = ({ setIsOpen, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx index 520addd50f..905d1d4680 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/DraftRecoveryPopup.tsx @@ -12,16 +12,59 @@ import { import { useDraftRecoveryPopup } from "./useDraftRecoveryPopup"; import { Text } from "@/components/atoms/Text/Text"; import { AnimatePresence, motion } from "framer-motion"; +import { DraftDiff } from "@/lib/dexie/draft-utils"; interface DraftRecoveryPopupProps { isInitialLoadComplete: boolean; } +function formatDiffSummary(diff: DraftDiff | null): string { + if (!diff) return ""; + + const parts: string[] = []; + + // Node changes + const nodeChanges: string[] = []; + if (diff.nodes.added > 0) nodeChanges.push(`+${diff.nodes.added}`); + if (diff.nodes.removed > 0) nodeChanges.push(`-${diff.nodes.removed}`); + if (diff.nodes.modified > 0) nodeChanges.push(`~${diff.nodes.modified}`); + + if (nodeChanges.length > 0) { + parts.push( + `${nodeChanges.join("/")} block${diff.nodes.added + diff.nodes.removed + diff.nodes.modified !== 1 ? "s" : ""}`, + ); + } + + // Edge changes + const edgeChanges: string[] = []; + if (diff.edges.added > 0) edgeChanges.push(`+${diff.edges.added}`); + if (diff.edges.removed > 0) edgeChanges.push(`-${diff.edges.removed}`); + if (diff.edges.modified > 0) edgeChanges.push(`~${diff.edges.modified}`); + + if (edgeChanges.length > 0) { + parts.push( + `${edgeChanges.join("/")} connection${diff.edges.added + diff.edges.removed + diff.edges.modified !== 1 ? "s" : ""}`, + ); + } + + return parts.join(", "); +} + export function DraftRecoveryPopup({ isInitialLoadComplete, }: DraftRecoveryPopupProps) { - const { isOpen, popupRef, nodeCount, edgeCount, savedAt, onLoad, onDiscard } = - useDraftRecoveryPopup(isInitialLoadComplete); + const { + isOpen, + popupRef, + nodeCount, + edgeCount, + diff, + savedAt, + onLoad, + onDiscard, + } = useDraftRecoveryPopup(isInitialLoadComplete); + + const diffSummary = formatDiffSummary(diff); return ( @@ -72,10 +115,9 @@ export function DraftRecoveryPopup({ variant="small" className="text-amber-700 dark:text-amber-400" > - {nodeCount} block{nodeCount !== 1 ? "s" : ""}, {edgeCount}{" "} - connection - {edgeCount !== 1 ? "s" : ""} •{" "} - {formatTimeAgo(new Date(savedAt).toISOString())} + {diffSummary || + `${nodeCount} block${nodeCount !== 1 ? "s" : ""}, ${edgeCount} connection${edgeCount !== 1 ? "s" : ""}`}{" "} + • {formatTimeAgo(new Date(savedAt).toISOString())}
    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≤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 ZkZ4u(Ux1891c18r4eRTsQsBR){tGvd0{H*{ literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/hosted.jpg b/docs/.gitbook/assets/hosted.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5f275ebf9b6058b92e204c702d9562bed3c4517 GIT binary patch literal 165622 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

    F7VFW!XjMLG1^ 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

    Nt=NSi|Mr} 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 L%(4pfzw`eKs+p+% literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/replicate-prediction-yt6p2d3gjhrma0ctdsv8vp1t70.jpeg b/docs/.gitbook/assets/replicate-prediction-yt6p2d3gjhrma0ctdsv8vp1t70.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d52ba99c761a62ae303abe071c1b9e9acff26d4a GIT binary patch literal 57145 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 H|Nl(@3*m{4 literal 0 HcmV?d00001 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..66d96c7e02 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,52 @@ +--- +description: Welcome to your team’s developer platform +cover: .gitbook/assets/Banner_image.png +coverY: 56.53835084561286 +layout: + width: wide + cover: + visible: true + size: full + title: + visible: false + description: + visible: false + tableOfContents: + visible: false + outline: + visible: false + pagination: + visible: false + metadata: + visible: true +--- + +# Developer Platform + +

  • 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�nVjK1uh+9eq1v6tte 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�~K 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

  • ^}&5u-e`yFsv2 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 ~*pT_zr2Pr?(xPsDWkI3!S#cg?x?k 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

    $t~_zm!Y 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

    diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx index 0914b04952..7a77f7b4cc 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/DraftRecoveryDialog/useDraftRecoveryPopup.tsx @@ -9,6 +9,7 @@ export const useDraftRecoveryPopup = (isInitialLoadComplete: boolean) => { savedAt, nodeCount, edgeCount, + diff, loadDraft: onLoad, discardDraft: onDiscard, } = useDraftManager(isInitialLoadComplete); @@ -54,6 +55,7 @@ export const useDraftRecoveryPopup = (isInitialLoadComplete: boolean) => { isOpen, nodeCount, edgeCount, + diff, savedAt, onLoad, onDiscard, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/helpers/resolve-collision.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/helpers/resolve-collision.ts index c05f00b5fb..890d1982c8 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/helpers/resolve-collision.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/helpers/resolve-collision.ts @@ -48,8 +48,6 @@ export const resolveCollisions: CollisionAlgorithm = ( const width = (node.width ?? node.measured?.width ?? 0) + margin * 2; const height = (node.height ?? node.measured?.height ?? 0) + margin * 2; - console.log("width", width); - console.log("height", height); const x = node.position.x - margin; const y = node.position.y - margin; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts index f6d03923bd..a38def74f6 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useDraftManager.ts @@ -7,7 +7,12 @@ import { DraftData, } from "@/services/builder-draft/draft-service"; import { BuilderDraft } from "@/lib/dexie/db"; -import { cleanNodes, cleanEdges } from "@/lib/dexie/draft-utils"; +import { + cleanNodes, + cleanEdges, + calculateDraftDiff, + DraftDiff, +} from "@/lib/dexie/draft-utils"; import { useNodeStore } from "../../../stores/nodeStore"; import { useEdgeStore } from "../../../stores/edgeStore"; import { useGraphStore } from "../../../stores/graphStore"; @@ -19,6 +24,7 @@ const AUTO_SAVE_INTERVAL_MS = 15000; // 15 seconds interface DraftRecoveryState { isOpen: boolean; draft: BuilderDraft | null; + diff: DraftDiff | null; } /** @@ -31,6 +37,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { const [state, setState] = useState({ isOpen: false, draft: null, + diff: null, }); const [{ flowID, flowVersion }] = useQueryStates({ @@ -207,9 +214,16 @@ export function useDraftManager(isInitialLoadComplete: boolean) { ); if (isDifferent && (draft.nodes.length > 0 || draft.edges.length > 0)) { + const diff = calculateDraftDiff( + draft.nodes, + draft.edges, + currentNodes, + currentEdges, + ); setState({ isOpen: true, draft, + diff, }); } else { await draftService.deleteDraft(effectiveFlowId); @@ -231,6 +245,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { setState({ isOpen: false, draft: null, + diff: null, }); }, [flowID]); @@ -242,8 +257,10 @@ export function useDraftManager(isInitialLoadComplete: boolean) { try { useNodeStore.getState().setNodes(draft.nodes); useEdgeStore.getState().setEdges(draft.edges); + draft.nodes.forEach((node) => { + useNodeStore.getState().syncHardcodedValuesWithHandleIds(node.id); + }); - // Restore nodeCounter to prevent ID conflicts when adding new nodes if (draft.nodeCounter !== undefined) { useNodeStore.setState({ nodeCounter: draft.nodeCounter }); } @@ -267,6 +284,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { setState({ isOpen: false, draft: null, + diff: null, }); } catch (error) { console.error("[DraftRecovery] Failed to load draft:", error); @@ -275,7 +293,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { const discardDraft = useCallback(async () => { if (!state.draft) { - setState({ isOpen: false, draft: null }); + setState({ isOpen: false, draft: null, diff: null }); return; } @@ -285,7 +303,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { console.error("[DraftRecovery] Failed to discard draft:", error); } - setState({ isOpen: false, draft: null }); + setState({ isOpen: false, draft: null, diff: null }); }, [state.draft]); return { @@ -294,6 +312,7 @@ export function useDraftManager(isInitialLoadComplete: boolean) { savedAt: state.draft?.savedAt ?? 0, nodeCount: state.draft?.nodes.length ?? 0, edgeCount: state.draft?.edges.length ?? 0, + diff: state.diff, loadDraft, discardDraft, }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts index 7514611f08..407482073f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/Flow/useFlow.ts @@ -121,6 +121,14 @@ export const useFlow = () => { if (customNodes.length > 0) { useNodeStore.getState().setNodes([]); addNodes(customNodes); + + // Sync hardcoded values with handle IDs. + // If a key–value field has a key without a value, the backend omits it from hardcoded values. + // But if a handleId exists for that key, it causes inconsistency. + // This ensures hardcoded values stay in sync with handle IDs. + customNodes.forEach((node) => { + useNodeStore.getState().syncHardcodedValuesWithHandleIds(node.id); + }); } }, [customNodes, addNodes]); diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/useCustomEdge.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/useCustomEdge.ts index 8d27f346ef..bf4ba3a418 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/useCustomEdge.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/edges/useCustomEdge.ts @@ -1,12 +1,17 @@ -import { Connection as RFConnection, EdgeChange } from "@xyflow/react"; +import { + Connection as RFConnection, + EdgeChange, + applyEdgeChanges, +} from "@xyflow/react"; import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; import { useCallback } from "react"; import { useNodeStore } from "../../../stores/nodeStore"; +import { CustomEdge } from "./CustomEdge"; export const useCustomEdge = () => { const edges = useEdgeStore((s) => s.edges); const addEdge = useEdgeStore((s) => s.addEdge); - const removeEdge = useEdgeStore((s) => s.removeEdge); + const setEdges = useEdgeStore((s) => s.setEdges); const onConnect = useCallback( (conn: RFConnection) => { @@ -45,14 +50,10 @@ export const useCustomEdge = () => { ); const onEdgesChange = useCallback( - (changes: EdgeChange[]) => { - changes.forEach((change) => { - if (change.type === "remove") { - removeEdge(change.id); - } - }); + (changes: EdgeChange[]) => { + setEdges(applyEdgeChanges(changes, edges)); }, - [removeEdge], + [edges, setEdges], ); return { edges, onConnect, onEdgesChange }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/NodeHandle.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/NodeHandle.tsx index 4eb2437b65..99edb00c45 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/NodeHandle.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/NodeHandle.tsx @@ -1,26 +1,32 @@ import { CircleIcon } from "@phosphor-icons/react"; import { Handle, Position } from "@xyflow/react"; +import { useEdgeStore } from "../../../stores/edgeStore"; +import { cleanUpHandleId } from "@/components/renderers/InputRenderer/helpers"; +import { cn } from "@/lib/utils"; -const NodeHandle = ({ +const InputNodeHandle = ({ handleId, - isConnected, - side, + nodeId, }: { handleId: string; - isConnected: boolean; - side: "left" | "right"; + nodeId: string; }) => { + const cleanedHandleId = cleanUpHandleId(handleId); + const isInputConnected = useEdgeStore((state) => + state.isInputConnected(nodeId ?? "", cleanedHandleId), + ); + return (
    @@ -28,4 +34,35 @@ const NodeHandle = ({ ); }; -export default NodeHandle; +const OutputNodeHandle = ({ + field_name, + nodeId, + hexColor, +}: { + field_name: string; + nodeId: string; + hexColor: string; +}) => { + const isOutputConnected = useEdgeStore((state) => + state.isOutputConnected(nodeId, field_name), + ); + return ( + +
    + +
    +
    + ); +}; + +export { InputNodeHandle, OutputNodeHandle }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/helpers.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/helpers.ts index ecacc83146..afaa85a38a 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/helpers.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/handlers/helpers.ts @@ -1,31 +1,4 @@ -/** - * Handle ID Types for different input structures - * - * Examples: - * SIMPLE: "message" - * NESTED: "config.api_key" - * ARRAY: "items_$_0", "items_$_1" - * KEY_VALUE: "headers_#_Authorization", "params_#_limit" - * - * Note: All handle IDs are sanitized to remove spaces and special characters. - * Spaces become underscores, and special characters are removed. - * Example: "user name" becomes "user_name", "email@domain.com" becomes "emaildomaincom" - */ -export enum HandleIdType { - SIMPLE = "SIMPLE", - NESTED = "NESTED", - ARRAY = "ARRAY", - KEY_VALUE = "KEY_VALUE", -} - -const fromRjsfId = (id: string): string => { - if (!id) return ""; - const parts = id.split("_"); - const filtered = parts.filter( - (p) => p !== "root" && p !== "properties" && p.length > 0, - ); - return filtered.join("_") || ""; -}; +// Here we are handling single level of nesting, if need more in future then i will update it const sanitizeForHandleId = (str: string): string => { if (!str) return ""; @@ -38,51 +11,53 @@ const sanitizeForHandleId = (str: string): string => { .replace(/^_|_$/g, ""); // Remove leading/trailing underscores }; -export const generateHandleId = ( +const cleanTitleId = (id: string): string => { + if (!id) return ""; + + if (id.endsWith("_title")) { + id = id.slice(0, -6); + } + const parts = id.split("_"); + const filtered = parts.filter( + (p) => p !== "root" && p !== "properties" && p.length > 0, + ); + const filtered_id = filtered.join("_") || ""; + return filtered_id; +}; + +export const generateHandleIdFromTitleId = ( fieldKey: string, - nestedValues: string[] = [], - type: HandleIdType = HandleIdType.SIMPLE, + { + isObjectProperty, + isAdditionalProperty, + isArrayItem, + }: { + isArrayItem?: boolean; + isObjectProperty?: boolean; + isAdditionalProperty?: boolean; + } = { + isArrayItem: false, + isObjectProperty: false, + isAdditionalProperty: false, + }, ): string => { if (!fieldKey) return ""; - fieldKey = fromRjsfId(fieldKey); - fieldKey = sanitizeForHandleId(fieldKey); + const filteredKey = cleanTitleId(fieldKey); + if (isAdditionalProperty || isArrayItem) { + return filteredKey; + } + const cleanedKey = sanitizeForHandleId(filteredKey); - if (type === HandleIdType.SIMPLE || nestedValues.length === 0) { - return fieldKey; + if (isObjectProperty) { + // "config_api_key" -> "config.api_key" + const parts = cleanedKey.split("_"); + if (parts.length >= 2) { + const baseName = parts[0]; + const propertyName = parts.slice(1).join("_"); + return `${baseName}.${propertyName}`; + } } - const sanitizedNestedValues = nestedValues.map((value) => - sanitizeForHandleId(value), - ); - - switch (type) { - case HandleIdType.NESTED: - return [fieldKey, ...sanitizedNestedValues].join("."); - - case HandleIdType.ARRAY: - return [fieldKey, ...sanitizedNestedValues].join("_$_"); - - case HandleIdType.KEY_VALUE: - return [fieldKey, ...sanitizedNestedValues].join("_#_"); - - default: - return fieldKey; - } -}; - -export const parseKeyValueHandleId = ( - handleId: string, - type: HandleIdType, -): string => { - if (type === HandleIdType.KEY_VALUE) { - return handleId.split("_#_")[1]; - } else if (type === HandleIdType.ARRAY) { - return handleId.split("_$_")[1]; - } else if (type === HandleIdType.NESTED) { - return handleId.split(".")[1]; - } else if (type === HandleIdType.SIMPLE) { - return handleId.split("_")[1]; - } - return ""; + return cleanedKey; }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx index 52068f3acb..3523079b71 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx @@ -10,7 +10,7 @@ import { NodeExecutionResult } from "@/app/api/__generated__/models/nodeExecutio import { NodeContainer } from "./components/NodeContainer"; import { NodeHeader } from "./components/NodeHeader"; import { FormCreator } from "../FormCreator"; -import { preprocessInputSchema } from "@/components/renderers/input-renderer/utils/input-schema-pre-processor"; +import { preprocessInputSchema } from "@/components/renderers/InputRenderer/utils/input-schema-pre-processor"; import { OutputHandler } from "../OutputHandler"; import { NodeAdvancedToggle } from "./components/NodeAdvancedToggle"; import { NodeDataRenderer } from "./components/NodeOutput/NodeOutput"; @@ -99,7 +99,7 @@ export const CustomNode: React.FC> = React.memo( nodeId={nodeId} uiType={data.uiType} className={cn( - "bg-white pr-6", + "bg-white px-4", isWebhook && "pointer-events-none opacity-50", )} showHandles={showHandles} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeAdvancedToggle.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeAdvancedToggle.tsx index 4903f2e020..950db1657f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeAdvancedToggle.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeAdvancedToggle.tsx @@ -8,7 +8,7 @@ export const NodeAdvancedToggle = ({ nodeId }: { nodeId: string }) => { ); const setShowAdvanced = useNodeStore((state) => state.setShowAdvanced); return ( -
    +
    Advanced diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeContainer.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeContainer.tsx index f8d5b2e089..da9c13335f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeContainer.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeContainer.tsx @@ -22,7 +22,7 @@ export const NodeContainer = ({ return (
    state.updateNodeData); const title = (data.metadata?.customized_name as string) || data.title; const [isEditingTitle, setIsEditingTitle] = useState(false); - const [editedTitle, setEditedTitle] = useState(title); + const [editedTitle, setEditedTitle] = useState( + beautifyString(title).replace("Block", "").trim(), + ); const handleTitleEdit = () => { updateNodeData(nodeId, { @@ -41,7 +43,7 @@ export const NodeHeader = ({ }; return ( -
    +
    {/* Title row with context menu */}
    @@ -68,12 +70,12 @@ export const NodeHeader = ({
    - {beautifyString(title)} + {beautifyString(title).replace("Block", "").trim()}
    -

    {beautifyString(title)}

    +

    {beautifyString(title).replace("Block", "").trim()}

    diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsx index a4b53e3ac3..3f0ae6e350 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsx @@ -23,7 +23,7 @@ export const NodeDataRenderer = ({ nodeId }: { nodeId: string }) => { } return ( -
    +
    Node Output diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/StickyNoteBlock.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/StickyNoteBlock.tsx index 5d57c6c5b6..f900b1633f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/StickyNoteBlock.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/StickyNoteBlock.tsx @@ -1,6 +1,6 @@ import { useMemo } from "react"; import { FormCreator } from "../../FormCreator"; -import { preprocessInputSchema } from "@/components/renderers/input-renderer/utils/input-schema-pre-processor"; +import { preprocessInputSchema } from "@/components/renderers/InputRenderer/utils/input-schema-pre-processor"; import { CustomNodeData } from "../CustomNode"; import { Text } from "@/components/atoms/Text/Text"; import { cn } from "@/lib/utils"; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/FormCreator.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/FormCreator.tsx index cfee0bf89f..28d1bcc0ab 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/FormCreator.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/FormCreator.tsx @@ -3,7 +3,7 @@ import React from "react"; import { uiSchema } from "./uiSchema"; import { useNodeStore } from "../../../stores/nodeStore"; import { BlockUIType } from "../../types"; -import { FormRenderer } from "@/components/renderers/input-renderer/FormRenderer"; +import { FormRenderer } from "@/components/renderers/InputRenderer/FormRenderer"; export const FormCreator = React.memo( ({ diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/OutputHandler.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/OutputHandler.tsx index ab3b648ba9..b70a8e239b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/OutputHandler.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/OutputHandler.tsx @@ -4,7 +4,7 @@ import { CaretDownIcon, InfoIcon } from "@phosphor-icons/react"; import { RJSFSchema } from "@rjsf/utils"; import { useState } from "react"; -import NodeHandle from "../handlers/NodeHandle"; +import { OutputNodeHandle } from "../handlers/NodeHandle"; import { Tooltip, TooltipContent, @@ -13,7 +13,6 @@ import { } from "@/components/atoms/Tooltip/BaseTooltip"; import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; import { getTypeDisplayInfo } from "./helpers"; -import { generateHandleId } from "../handlers/helpers"; import { BlockUIType } from "../../types"; export const OutputHandler = ({ @@ -29,8 +28,73 @@ export const OutputHandler = ({ const properties = outputSchema?.properties || {}; const [isOutputVisible, setIsOutputVisible] = useState(true); + const showHandles = uiType !== BlockUIType.OUTPUT; + + const renderOutputHandles = ( + schema: RJSFSchema, + keyPrefix: string = "", + titlePrefix: string = "", + ): React.ReactNode[] => { + return Object.entries(schema).map( + ([key, fieldSchema]: [string, RJSFSchema]) => { + const fullKey = keyPrefix ? `${keyPrefix}_#_${key}` : key; + const fieldTitle = titlePrefix + (fieldSchema?.title || key); + + const isConnected = isOutputConnected(nodeId, fullKey); + const shouldShow = isConnected || isOutputVisible; + const { displayType, colorClass, hexColor } = + getTypeDisplayInfo(fieldSchema); + + return shouldShow ? ( +
    +
    + {fieldSchema?.description && ( + + + + + + + + {fieldSchema?.description} + + + )} + + {fieldTitle} + + + ({displayType}) + + + {showHandles && ( + + )} +
    + + {/* Recursively render nested properties */} + {fieldSchema?.properties && + renderOutputHandles( + fieldSchema.properties, + fullKey, + `${fieldTitle}.`, + )} +
    + ) : null; + }, + ); + }; + return ( -
    +
    - { -
    - {Object.entries(properties).map(([key, property]: [string, any]) => { - const isConnected = isOutputConnected(nodeId, key); - const shouldShow = isConnected || isOutputVisible; - const { displayType, colorClass } = getTypeDisplayInfo(property); - - return shouldShow ? ( -
    - {property?.description && ( - - - - - - - - {property?.description} - - - )} - - {property?.title || key}{" "} - - - ({displayType}) - - - -
    - ) : null; - })} -
    - } +
    + {renderOutputHandles(properties)} +
    ); }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/helpers.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/helpers.ts index 5572426dc7..39384485f5 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/helpers.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/helpers.ts @@ -92,14 +92,38 @@ export const getTypeDisplayInfo = (schema: any) => { if (schema?.type === "string" && schema?.format) { const formatMap: Record< string, - { displayType: string; colorClass: string } + { displayType: string; colorClass: string; hexColor: string } > = { - file: { displayType: "file", colorClass: "!text-green-500" }, - date: { displayType: "date", colorClass: "!text-blue-500" }, - time: { displayType: "time", colorClass: "!text-blue-500" }, - "date-time": { displayType: "datetime", colorClass: "!text-blue-500" }, - "long-text": { displayType: "text", colorClass: "!text-green-500" }, - "short-text": { displayType: "text", colorClass: "!text-green-500" }, + file: { + displayType: "file", + colorClass: "!text-green-500", + hexColor: "#22c55e", + }, + date: { + displayType: "date", + colorClass: "!text-blue-500", + hexColor: "#3b82f6", + }, + time: { + displayType: "time", + colorClass: "!text-blue-500", + hexColor: "#3b82f6", + }, + "date-time": { + displayType: "datetime", + colorClass: "!text-blue-500", + hexColor: "#3b82f6", + }, + "long-text": { + displayType: "text", + colorClass: "!text-green-500", + hexColor: "#22c55e", + }, + "short-text": { + displayType: "text", + colorClass: "!text-green-500", + hexColor: "#22c55e", + }, }; const formatInfo = formatMap[schema.format]; @@ -131,10 +155,23 @@ export const getTypeDisplayInfo = (schema: any) => { any: "!text-gray-500", }; + const hexColorMap: Record = { + string: "#22c55e", + number: "#3b82f6", + integer: "#3b82f6", + boolean: "#eab308", + object: "#a855f7", + array: "#6366f1", + null: "#6b7280", + any: "#6b7280", + }; + const colorClass = colorMap[schema?.type] || "!text-gray-500"; + const hexColor = hexColorMap[schema?.type] || "#6b7280"; return { displayType, colorClass, + hexColor, }; }; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts b/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts index cae1d995da..7b17eecfb3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/stores/edgeStore.ts @@ -4,6 +4,7 @@ import { CustomEdge } from "../components/FlowEditor/edges/CustomEdge"; import { customEdgeToLink, linkToCustomEdge } from "../components/helper"; import { MarkerType } from "@xyflow/react"; import { NodeExecutionResult } from "@/app/api/__generated__/models/nodeExecutionResult"; +import { cleanUpHandleId } from "@/components/renderers/InputRenderer/helpers"; type EdgeStore = { edges: CustomEdge[]; @@ -13,6 +14,8 @@ type EdgeStore = { removeEdge: (edgeId: string) => void; upsertMany: (edges: CustomEdge[]) => void; + removeEdgesByHandlePrefix: (nodeId: string, handlePrefix: string) => void; + getNodeEdges: (nodeId: string) => CustomEdge[]; isInputConnected: (nodeId: string, handle: string) => boolean; isOutputConnected: (nodeId: string, handle: string) => boolean; @@ -79,11 +82,27 @@ export const useEdgeStore = create((set, get) => ({ return { edges: Array.from(byKey.values()) }; }), + removeEdgesByHandlePrefix: (nodeId, handlePrefix) => + set((state) => ({ + edges: state.edges.filter( + (e) => + !( + e.target === nodeId && + e.targetHandle && + e.targetHandle.startsWith(handlePrefix) + ), + ), + })), + getNodeEdges: (nodeId) => get().edges.filter((e) => e.source === nodeId || e.target === nodeId), - isInputConnected: (nodeId, handle) => - get().edges.some((e) => e.target === nodeId && e.targetHandle === handle), + isInputConnected: (nodeId, handle) => { + const cleanedHandle = cleanUpHandleId(handle); + return get().edges.some( + (e) => e.target === nodeId && e.targetHandle === cleanedHandle, + ); + }, isOutputConnected: (nodeId, handle) => get().edges.some((e) => e.source === nodeId && e.sourceHandle === handle), @@ -105,15 +124,15 @@ export const useEdgeStore = create((set, get) => ({ targetNodeId: string, executionResult: NodeExecutionResult, ) => { - set((state) => ({ - edges: state.edges.map((edge) => { + set((state) => { + let hasChanges = false; + + const newEdges = state.edges.map((edge) => { if (edge.target !== targetNodeId) { return edge; } - const beadData = - edge.data?.beadData ?? - new Map(); + const beadData = new Map(edge.data?.beadData ?? new Map()); const inputValue = edge.targetHandle ? executionResult.input_data[edge.targetHandle] @@ -137,6 +156,11 @@ export const useEdgeStore = create((set, get) => ({ beadUp = beadDown + 1; } + if (edge.data?.beadUp === beadUp && edge.data?.beadDown === beadDown) { + return edge; + } + + hasChanges = true; return { ...edge, data: { @@ -146,8 +170,10 @@ export const useEdgeStore = create((set, get) => ({ beadData, }, }; - }), - })); + }); + + return hasChanges ? { edges: newEdges } : state; + }); }, resetEdgeBeads: () => { diff --git a/autogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.ts b/autogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.ts index 2f41c3bb46..96478c5b6f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.ts @@ -13,6 +13,10 @@ import { useHistoryStore } from "./historyStore"; import { useEdgeStore } from "./edgeStore"; import { BlockUIType } from "../components/types"; import { pruneEmptyValues } from "@/lib/utils"; +import { + ensurePathExists, + parseHandleIdToPath, +} from "@/components/renderers/InputRenderer/helpers"; // Minimum movement (in pixels) required before logging position change to history // Prevents spamming history with small movements when clicking on inputs inside blocks @@ -62,6 +66,8 @@ type NodeStore = { errors: { [key: string]: string }, ) => void; clearAllNodeErrors: () => void; // Add this + + syncHardcodedValuesWithHandleIds: (nodeId: string) => void; }; export const useNodeStore = create((set, get) => ({ @@ -305,4 +311,35 @@ export const useNodeStore = create((set, get) => ({ })), })); }, + + syncHardcodedValuesWithHandleIds: (nodeId: string) => { + const node = get().nodes.find((n) => n.id === nodeId); + if (!node) return; + + const handleIds = useEdgeStore.getState().getAllHandleIdsOfANode(nodeId); + const additionalHandles = handleIds.filter((h) => h.includes("_#_")); + + if (additionalHandles.length === 0) return; + + const hardcodedValues = JSON.parse( + JSON.stringify(node.data.hardcodedValues || {}), + ); + + let modified = false; + + additionalHandles.forEach((handleId) => { + const segments = parseHandleIdToPath(handleId); + if (ensurePathExists(hardcodedValues, segments)) { + modified = true; + } + }); + + if (modified) { + set((state) => ({ + nodes: state.nodes.map((n) => + n.id === nodeId ? { ...n, data: { ...n.data, hardcodedValues } } : n, + ), + })); + } + }, })); diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx index 07350fb610..60d61fab57 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs.tsx @@ -143,6 +143,7 @@ export function CredentialsInput({ size="small" onClick={handleActionButtonClick} className="w-fit" + type="button" > {actionButtonText} @@ -155,6 +156,7 @@ export function CredentialsInput({ size="small" onClick={handleActionButtonClick} className="w-fit" + type="button" > {actionButtonText} diff --git a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx index 7d8ead9df7..17800a03a4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/profile/(user)/integrations/page.tsx @@ -13,7 +13,7 @@ import { import { Button } from "@/components/atoms/Button/Button"; import { Dialog } from "@/components/molecules/Dialog/Dialog"; import { useToast } from "@/components/molecules/Toast/use-toast"; -import { providerIcons } from "@/components/renderers/input-renderer/fields/CredentialField/helpers"; +import { providerIcons } from "@/components/renderers/InputRenderer/custom/CredentialField/helpers"; import { CredentialsProviderName } from "@/lib/autogpt-server-api"; import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; import { CredentialsProvidersContext } from "@/providers/agent-credentials/credentials-provider"; diff --git a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx index 01b98bcdac..e0a43b8c77 100644 --- a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx +++ b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx @@ -49,6 +49,7 @@ export function GoogleDrivePicker(props: Props) { )} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/IconButton.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/IconButton.tsx new file mode 100644 index 0000000000..4a7f011b82 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/IconButton.tsx @@ -0,0 +1,101 @@ +import { + FormContextType, + IconButtonProps, + RJSFSchema, + StrictRJSFSchema, + TranslatableString, +} from "@rjsf/utils"; +import { ChevronDown, ChevronUp, Copy } from "lucide-react"; +import type { VariantProps } from "class-variance-authority"; + +import { Button } from "@/components/atoms/Button/Button"; +import { extendedButtonVariants } from "@/components/atoms/Button/helpers"; +import { TrashIcon } from "@phosphor-icons/react"; +import { cn } from "@/lib/utils"; +import { Text } from "@/components/atoms/Text/Text"; + +export type AutogptIconButtonProps< + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +> = IconButtonProps & VariantProps; + +export default function IconButton(props: AutogptIconButtonProps) { + const { + icon, + className, + uiSchema: _uiSchema, + registry: _registry, + iconType: _iconType, + ...otherProps + } = props; + + return ( + + ); +} + +export function CopyButton(props: AutogptIconButtonProps) { + const { + registry: { translateString }, + } = props; + return ( + } + /> + ); +} + +export function MoveDownButton(props: AutogptIconButtonProps) { + const { + registry: { translateString }, + } = props; + return ( + } + /> + ); +} + +export function MoveUpButton(props: AutogptIconButtonProps) { + const { + registry: { translateString }, + } = props; + return ( + } + /> + ); +} + +export function RemoveButton(props: AutogptIconButtonProps) { + const { + registry: { translateString }, + } = props; + return ( + } + /> + ); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/index.ts new file mode 100644 index 0000000000..f083306249 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/buttons/index.ts @@ -0,0 +1,8 @@ +export { default as AddButton } from "./AddButton"; +export { + default as IconButton, + CopyButton, + RemoveButton, + MoveUpButton, + MoveDownButton, +} from "./IconButton"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/ErrorList.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/ErrorList.tsx new file mode 100644 index 0000000000..39175ef13e --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/ErrorList.tsx @@ -0,0 +1,24 @@ +import { ErrorListProps, TranslatableString } from "@rjsf/utils"; +import { AlertCircle } from "lucide-react"; + +import { + Alert, + AlertDescription, + AlertTitle, +} from "@/components/molecules/Alert/Alert"; + +export default function ErrorList(props: ErrorListProps) { + const { errors, registry } = props; + const { translateString } = registry; + return ( + + + {translateString(TranslatableString.ErrorsLabel)} + + {errors.map((error, i: number) => { + return • {error.stack}; + })} + + + ); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/index.ts new file mode 100644 index 0000000000..ccecd3c8c6 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/errors/index.ts @@ -0,0 +1 @@ +export { default as ErrorList } from "./ErrorList"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/helpers.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/helpers.ts new file mode 100644 index 0000000000..327a0e06b6 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/helpers.ts @@ -0,0 +1,76 @@ +import { RJSFSchema } from "@rjsf/utils"; + +export function parseFieldPath( + rootSchema: RJSFSchema, + id: string, + additional: boolean, + idSeparator: string = "_%_", +): { path: string[]; typeHints: string[] } { + const segments = id.split(idSeparator).filter(Boolean); + const typeHints: string[] = []; + + let currentSchema = rootSchema; + + for (let i = 0; i < segments.length; i++) { + const segment = segments[i]; + const isNumeric = /^\d+$/.test(segment); + + if (isNumeric) { + typeHints.push("array"); + } else { + if (additional) { + typeHints.push("object-key"); + } else { + typeHints.push("object-property"); + } + currentSchema = (currentSchema.properties?.[segment] as RJSFSchema) || {}; + } + } + + return { path: segments, typeHints }; +} + +// This helper work is simple - it just help us to convert rjsf id to our backend compatible id +// Example : List[dict] = agpt_%_List_0_dict__title -> List_$_0_#_dict +// We remove the prefix and suffix and then we split id by our custom delimiter (_%_) +// then add _$_ delimiter for array and _#_ delimiter for object-key +// and for normal property we add . delimiter + +export function getHandleId( + rootSchema: RJSFSchema, + id: string, + additional: boolean, + idSeparator: string = "_%_", +): string { + const idPrefix = "agpt_%_"; + const idSuffix = "__title"; + + if (id.startsWith(idPrefix)) { + id = id.slice(idPrefix.length); + } + if (id.endsWith(idSuffix)) { + id = id.slice(0, -idSuffix.length); + } + + const { path, typeHints } = parseFieldPath( + rootSchema, + id, + additional, + idSeparator, + ); + + return path + .map((seg, i) => { + const type = typeHints[i]; + if (type === "array") { + return `_$_${seg}`; + } + if (type === "object-key") { + return `_${seg}`; // we haven't added _#_ delimiter for object-key because it's already added in the id - check WrapIfAdditionalTemplate.tsx + } + + return `.${seg}`; + }) + .join("") + .slice(1); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/index.ts new file mode 100644 index 0000000000..870753151c --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/index.ts @@ -0,0 +1,3 @@ +export { default as FieldTemplate } from "./FieldTemplate"; +export { default as TitleField } from "./TitleField"; +export { default as DescriptionField } from "./DescriptionField"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SwitchWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/CheckboxInput/CheckBoxWidget.tsx similarity index 87% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SwitchWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/CheckboxInput/CheckBoxWidget.tsx index d15ec18a9a..ff93528492 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SwitchWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/CheckboxInput/CheckBoxWidget.tsx @@ -1,8 +1,9 @@ import { WidgetProps } from "@rjsf/utils"; import { Switch } from "@/components/atoms/Switch/Switch"; -export function SwitchWidget(props: WidgetProps) { +export function CheckboxWidget(props: WidgetProps) { const { value = false, onChange, disabled, readonly, autofocus, id } = props; + return ( { +export const DateWidget = (props: WidgetProps) => { const { value, onChange, diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateInput/index.ts new file mode 100644 index 0000000000..3ba465c4f4 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateInput/index.ts @@ -0,0 +1 @@ +export { DateWidget } from "./DateWidget"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/DateTimeInputWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/DateTimeWidget.tsx similarity index 91% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/DateTimeInputWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/DateTimeWidget.tsx index 2e85a610b5..50f6e378fb 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/DateTimeInputWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/DateTimeWidget.tsx @@ -1,7 +1,7 @@ import { WidgetProps } from "@rjsf/utils"; import { DateTimeInput } from "@/components/atoms/DateTimeInput/DateTimeInput"; -export const DateTimeInputWidget = (props: WidgetProps) => { +export const DateTimeWidget = (props: WidgetProps) => { const { value, onChange, diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/index.ts new file mode 100644 index 0000000000..bf7c084f5a --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/DateTimeInput/index.ts @@ -0,0 +1 @@ +export { DateTimeWidget } from "./DateTimeWidget"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/FileWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/FileWidget.tsx similarity index 100% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/FileWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/FileWidget.tsx diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/index.ts new file mode 100644 index 0000000000..e23b50bfd0 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/FileInput/index.ts @@ -0,0 +1 @@ +export { FileWidget } from "./FileWidget"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SelectWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/SelectWidget.tsx similarity index 87% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SelectWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/SelectWidget.tsx index db68a1628c..894004db40 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/SelectWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/SelectWidget.tsx @@ -14,8 +14,16 @@ import { } from "@/components/__legacy__/ui/multiselect"; export const SelectWidget = (props: WidgetProps) => { - const { options, value, onChange, disabled, readonly, id, formContext } = - props; + const { + options, + value, + onChange, + disabled, + readonly, + className, + id, + formContext, + } = props; const enumOptions = options.enumOptions || []; const type = mapJsonSchemaTypeToInputType(props.schema); const { size = "small" } = formContext || {}; @@ -36,7 +44,7 @@ export const SelectWidget = (props: WidgetProps) => { - {enumOptions?.map((option) => ( + {enumOptions?.map((option: any) => ( {option.label} @@ -56,12 +64,13 @@ export const SelectWidget = (props: WidgetProps) => { value={value ?? ""} onValueChange={onChange} options={ - enumOptions?.map((option) => ({ + enumOptions?.map((option: any) => ({ value: option.value, label: option.label, })) || [] } wrapperClassName="!mb-0 " + className={className} /> ); }; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/index.ts new file mode 100644 index 0000000000..9a64291abc --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/SelectInput/index.ts @@ -0,0 +1 @@ +export { SelectWidget } from "./SelectWidget"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/InputExpanderModal.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/TextInputExpanderModal.tsx similarity index 100% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/InputExpanderModal.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/TextInputExpanderModal.tsx diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/TextWidget.tsx similarity index 91% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/TextWidget.tsx index 83fe826223..33a55581c7 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TextInputWidget/TextInputWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/TextWidget.tsx @@ -14,15 +14,12 @@ import { TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; import { BlockUIType } from "@/lib/autogpt-server-api/types"; -import { InputExpanderModal } from "./InputExpanderModal"; import { ArrowsOutIcon } from "@phosphor-icons/react"; +import { InputExpanderModal } from "./TextInputExpanderModal"; -export const TextInputWidget = (props: WidgetProps) => { - const { schema, formContext } = props; - const { uiType, size = "small" } = formContext as { - uiType: BlockUIType; - size?: string; - }; +export default function TextWidget(props: WidgetProps) { + const { schema, placeholder, registry } = props; + const { size, uiType } = registry.formContext; const [isModalOpen, setIsModalOpen] = useState(false); @@ -51,7 +48,7 @@ export const TextInputWidget = (props: WidgetProps) => { handleChange: (v: string) => (v === "" ? undefined : Number(v)), }, [InputType.INTEGER]: { - htmlType: "number", + htmlType: "account", placeholder: "Enter integer value...", handleChange: (v: string) => (v === "" ? undefined : Number(v)), }, @@ -122,7 +119,7 @@ export const TextInputWidget = (props: WidgetProps) => { wrapperClassName="mb-0 flex-1" value={props.value ?? ""} onChange={handleChange} - placeholder={schema.placeholder || config.placeholder} + placeholder={placeholder || config.placeholder} required={props.required} disabled={props.disabled} className={showExpandButton ? "pr-8" : ""} @@ -152,8 +149,8 @@ export const TextInputWidget = (props: WidgetProps) => { title={schema.title || "Edit value"} description={schema.description || ""} defaultValue={props.value ?? ""} - placeholder={schema.placeholder || config.placeholder} + placeholder={placeholder || config.placeholder} /> ); -}; +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/index.ts new file mode 100644 index 0000000000..102db07ade --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TextInput/index.ts @@ -0,0 +1,2 @@ +export { default } from "./TextWidget"; +export { InputExpanderModal } from "./TextInputExpanderModal"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TimeInputWidget.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/TimeWidget.tsx similarity index 91% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TimeInputWidget.tsx rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/TimeWidget.tsx index 032c33e62c..152aae7298 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/TimeInputWidget.tsx +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/TimeWidget.tsx @@ -1,7 +1,7 @@ import { WidgetProps } from "@rjsf/utils"; import { TimeInput } from "@/components/atoms/TimeInput/TimeInput"; -export const TimeInputWidget = (props: WidgetProps) => { +export const TimeWidget = (props: WidgetProps) => { const { value, onChange, disabled, readonly, placeholder, id, formContext } = props; const { size = "small" } = formContext || {}; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/index.ts new file mode 100644 index 0000000000..488e184c08 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/TimeInput/index.ts @@ -0,0 +1 @@ +export { TimeWidget } from "./TimeWidget"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/index.ts new file mode 100644 index 0000000000..5a370422e2 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/base/standard/widgets/index.ts @@ -0,0 +1,7 @@ +export { default as TextWidget } from "./TextInput"; +export { SelectWidget } from "./SelectInput"; +export { CheckboxWidget } from "./CheckboxInput"; +export { FileWidget } from "./FileInput"; +export { DateWidget } from "./DateInput"; +export { TimeWidget } from "./TimeInput"; +export { DateTimeWidget } from "./DateTimeInput"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/constants.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/constants.ts new file mode 100644 index 0000000000..144d850a00 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/constants.ts @@ -0,0 +1,8 @@ +export const ANY_OF_FLAG = "__anyOf"; +export const ARRAY_FLAG = "__array"; +export const OBJECT_FLAG = "__object"; +export const KEY_PAIR_FLAG = "__keyPair"; +export const TITLE_FLAG = "__title"; +export const ARRAY_ITEM_FLAG = "__arrayItem"; +export const ID_PREFIX = "agpt_@_"; +export const ID_PREFIX_ARRAY = "agpt_%_"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/CredentialField.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/CredentialField.tsx new file mode 100644 index 0000000000..f814fba93f --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/CredentialField.tsx @@ -0,0 +1,73 @@ +import React, { useMemo } from "react"; +import { FieldProps, getUiOptions } from "@rjsf/utils"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api"; +import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; +import { useNodeStore } from "@/app/(platform)/build/stores/nodeStore"; +import { useShallow } from "zustand/react/shallow"; +import { CredentialFieldTitle } from "./components/CredentialFieldTitle"; + +export const CredentialsField = (props: FieldProps) => { + const { formData, onChange, schema, registry, fieldPathId } = props; + + const formContext = registry.formContext; + const uiOptions = getUiOptions(props.uiSchema); + const nodeId = formContext?.nodeId; + + // Get sibling inputs (hardcoded values) from the node store + const hardcodedValues = useNodeStore( + useShallow((state) => (nodeId ? state.getHardCodedValues(nodeId) : {})), + ); + + const handleChange = (newValue: any) => { + onChange(newValue, fieldPathId?.path); + }; + + const handleSelectCredentials = (credentialsMeta?: CredentialsMetaInput) => { + if (credentialsMeta) { + handleChange({ + id: credentialsMeta.id, + provider: credentialsMeta.provider, + title: credentialsMeta.title, + type: credentialsMeta.type, + }); + } else { + handleChange(undefined); + } + }; + + // Convert formData to CredentialsMetaInput format + const selectedCredentials: CredentialsMetaInput | undefined = useMemo( + () => + formData?.id + ? { + id: formData.id, + provider: formData.provider, + title: formData.title, + type: formData.type, + } + : undefined, + [formData?.id, formData?.provider, formData?.title, formData?.type], + ); + + return ( +
    + + +
    + ); +}; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/components/CredentialFieldTitle.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/components/CredentialFieldTitle.tsx new file mode 100644 index 0000000000..ca14c8a4ce --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/components/CredentialFieldTitle.tsx @@ -0,0 +1,66 @@ +import { + getTemplate, + UiSchema, + Registry, + RJSFSchema, + FieldPathId, + titleId, + descriptionId, +} from "@rjsf/utils"; +import { getCredentialProviderFromSchema, toDisplayName } from "../helpers"; +import { useNodeStore } from "@/app/(platform)/build/stores/nodeStore"; +import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api"; +import { updateUiOption } from "../../../helpers"; +import { uiSchema } from "@/app/(platform)/build/components/FlowEditor/nodes/uiSchema"; + +export const CredentialFieldTitle = (props: { + registry: Registry; + uiOptions: UiSchema; + schema: RJSFSchema; + fieldPathId: FieldPathId; +}) => { + const { registry, uiOptions, schema, fieldPathId } = props; + const { nodeId } = registry.formContext; + + const TitleFieldTemplate = getTemplate( + "TitleFieldTemplate", + registry, + uiOptions, + ); + + const DescriptionFieldTemplate = getTemplate( + "DescriptionFieldTemplate", + registry, + uiOptions, + ); + + const credentialProvider = toDisplayName( + getCredentialProviderFromSchema( + useNodeStore.getState().getHardCodedValues(nodeId), + schema as BlockIOCredentialsSubSchema, + ) ?? "", + ); + + const updatedUiSchema = updateUiOption(uiSchema, { + showHandles: false, + }); + + return ( +
    + + +
    + ); +}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/helpers.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/helpers.ts similarity index 100% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/helpers.ts rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/CredentialField/helpers.ts diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/GoogleDrivePickerField/GoogleDrivePickerField.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/GoogleDrivePickerField/GoogleDrivePickerField.tsx new file mode 100644 index 0000000000..51c5806ae5 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/GoogleDrivePickerField/GoogleDrivePickerField.tsx @@ -0,0 +1,21 @@ +import { GoogleDrivePickerInput } from "@/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput"; +import { GoogleDrivePickerConfig } from "@/lib/autogpt-server-api"; +import { FieldProps, getUiOptions } from "@rjsf/utils"; + +export const GoogleDrivePickerField = (props: FieldProps) => { + const { schema, uiSchema, onChange, fieldPathId, formData } = props; + const uiOptions = getUiOptions(uiSchema); + const config: GoogleDrivePickerConfig = schema.google_drive_picker_config; + + return ( +
    + onChange(value, fieldPathId.path)} + className={uiOptions.className} + showRemoveButton={true} + /> +
    + ); +}; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/custom-registry.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/custom-registry.ts new file mode 100644 index 0000000000..91850e3f10 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/custom/custom-registry.ts @@ -0,0 +1,52 @@ +import { FieldProps, RJSFSchema, RegistryFieldsType } from "@rjsf/utils"; +import { CredentialsField } from "./CredentialField/CredentialField"; +import { GoogleDrivePickerField } from "./GoogleDrivePickerField/GoogleDrivePickerField"; + +export interface CustomFieldDefinition { + id: string; + matcher: (schema: any) => boolean; + component: (props: FieldProps) => JSX.Element | null; +} + +export const CUSTOM_FIELDS: CustomFieldDefinition[] = [ + { + id: "custom/credential_field", + matcher: (schema: any) => { + return ( + typeof schema === "object" && + schema !== null && + "credentials_provider" in schema + ); + }, + component: CredentialsField, + }, + { + id: "custom/google_drive_picker_field", + matcher: (schema: any) => { + return ( + "google_drive_picker_config" in schema || + ("format" in schema && schema.format === "google-drive-picker") + ); + }, + component: GoogleDrivePickerField, + }, +]; + +export function findCustomFieldId(schema: any): string | null { + for (const field of CUSTOM_FIELDS) { + if (field.matcher(schema)) { + return field.id; + } + } + return null; +} + +export function generateCustomFields(): RegistryFieldsType { + return CUSTOM_FIELDS.reduce( + (acc, field) => { + acc[field.id] = field.component; + return acc; + }, + {} as Record, + ); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/docs/HEIRARCHY.md b/autogpt_platform/frontend/src/components/renderers/InputRenderer/docs/HEIRARCHY.md new file mode 100644 index 0000000000..45b4276946 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/docs/HEIRARCHY.md @@ -0,0 +1,291 @@ +# Input Renderer 2 - Hierarchy + +## Flow Overview + +``` +FormRenderer2 → Form (RJSF) → ObjectFieldTemplate → FieldTemplate → Widget/Field +``` + +--- + +## Component Layers + +### 1. Root (FormRenderer2) + +- Entry point +- Preprocesses schema +- Passes to RJSF Form + +### 2. Form (registry/Form.tsx) + +- RJSF themed form +- Combines: templates + widgets + fields + +### 3. Templates (decide layout/structure) + +| Template | When Used | +| -------------------------- | ------------------------------------------- | +| `ObjectFieldTemplate` | `type: "object"` | +| `ArrayFieldTemplate` | `type: "array"` | +| `FieldTemplate` | Wraps every field (title, errors, children) | +| `ArrayFieldItemTemplate` | Each array item | +| `WrapIfAdditionalTemplate` | Additional properties in objects | + +### 4. Fields (custom rendering logic) + +| Field | When Used | +| ------------------ | ---------------------------- | +| `AnyOfField` | `anyOf` or `oneOf` in schema | +| `ArraySchemaField` | Array type handling | + +### 5. Widgets (actual input elements) + +| Widget | Input Type | +| ---------------- | ----------------------- | +| `TextWidget` | string, number, integer | +| `SelectWidget` | enum, anyOf selector | +| `CheckboxWidget` | boolean | +| `FileWidget` | file upload | +| `DateWidget` | date | +| `TimeWidget` | time | +| `DateTimeWidget` | datetime | + +--- + +## Your Schema Hierarchy + +``` +Root (type: object) +└── ObjectFieldTemplate + │ + ├── name (string, required) + │ └── FieldTemplate → TextWidget + │ + ├── value (anyOf) + │ └── FieldTemplate → AnyOfField + │ └── Selector dropdown + selected type: + │ ├── String → TextWidget + │ ├── Number → TextWidget + │ ├── Integer → TextWidget + │ ├── Boolean → CheckboxWidget + │ ├── Array → ArrayFieldTemplate → items + │ ├── Object → ObjectFieldTemplate + │ └── Null → nothing + │ + ├── title (anyOf: string | null) + │ └── FieldTemplate → AnyOfField + │ └── String → TextWidget OR Null → nothing + │ + ├── description (anyOf: string | null) + │ └── FieldTemplate → AnyOfField + │ └── String → TextWidget OR Null → nothing + │ + ├── placeholder_values (array of strings) + │ └── FieldTemplate → ArrayFieldTemplate + │ └── ArrayFieldItemTemplate (per item) + │ └── TextWidget + │ + ├── advanced (boolean) + │ └── FieldTemplate → CheckboxWidget + │ + └── secret (boolean) + └── FieldTemplate → CheckboxWidget +``` + +--- + +## Nested Examples (up to 3 levels) + +### Simple Array (strings) + +```json +{ "tags": { "type": "array", "items": { "type": "string" } } } +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── Level 2: FieldTemplate → ArrayFieldTemplate + └── Level 3: ArrayFieldItemTemplate → TextWidget +``` + +### Array of Objects + +```json +{ + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "age": { "type": "integer" } + } + } + } +} +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── Level 2: FieldTemplate → ArrayFieldTemplate + └── Level 3: ArrayFieldItemTemplate → ObjectFieldTemplate + ├── FieldTemplate → TextWidget (name) + └── FieldTemplate → TextWidget (age) +``` + +### Nested Object (3 levels) + +```json +{ + "config": { + "type": "object", + "properties": { + "database": { + "type": "object", + "properties": { + "host": { "type": "string" }, + "port": { "type": "integer" } + } + } + } + } +} +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── config + └── Level 2: FieldTemplate → ObjectFieldTemplate + └── database + └── Level 3: FieldTemplate → ObjectFieldTemplate + ├── FieldTemplate → TextWidget (host) + └── FieldTemplate → TextWidget (port) +``` + +### Array of Arrays (nested array) + +```json +{ + "matrix": { + "type": "array", + "items": { + "type": "array", + "items": { "type": "number" } + } + } +} +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── Level 2: FieldTemplate → ArrayFieldTemplate + └── Level 3: ArrayFieldItemTemplate → ArrayFieldTemplate + └── ArrayFieldItemTemplate → TextWidget +``` + +### Complex: Object → Array → Object + +```json +{ + "company": { + "type": "object", + "properties": { + "departments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "budget": { "type": "number" } + } + } + } + } + } +} +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── company + └── Level 2: FieldTemplate → ObjectFieldTemplate + └── departments + └── Level 3: FieldTemplate → ArrayFieldTemplate + └── ArrayFieldItemTemplate → ObjectFieldTemplate + ├── FieldTemplate → TextWidget (name) + └── FieldTemplate → TextWidget (budget) +``` + +### anyOf inside Array + +```json +{ + "items": { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "type": "object", "properties": { "id": { "type": "string" } } } + ] + } + } +} +``` + +``` +Level 1: ObjectFieldTemplate (root) +└── Level 2: FieldTemplate → ArrayFieldTemplate + └── Level 3: ArrayFieldItemTemplate → AnyOfField + └── Selector + selected: + ├── String → TextWidget + └── Object → ObjectFieldTemplate + └── FieldTemplate → TextWidget (id) +``` + +--- + +## Nesting Pattern Summary + +| Parent Type | Child Wrapper | +| ----------- | ----------------------------------------------- | +| object | `ObjectFieldTemplate` → `FieldTemplate` | +| array | `ArrayFieldTemplate` → `ArrayFieldItemTemplate` | +| anyOf | `AnyOfField` → selected schema's template | +| primitive | `Widget` (leaf - no children) | + +**Pattern:** Each level adds FieldTemplate wrapper except array items (use ArrayFieldItemTemplate) + +--- + +## Key Points + +1. **FieldTemplate wraps everything** - handles title, description, errors +2. **anyOf = AnyOfField** - shows dropdown to pick type, then renders selected schema +3. **ObjectFieldTemplate loops properties** - each property gets FieldTemplate +4. **ArrayFieldTemplate loops items** - each item gets ArrayFieldItemTemplate +5. **Widgets are leaf nodes** - actual input controls user interacts with +6. **Nesting repeats the pattern** - object/array/anyOf can contain object/array/anyOf recursively + +--- + +## Decision Flow + +``` +Schema Type? +├── object → ObjectFieldTemplate → loop properties +├── array → ArrayFieldTemplate → loop items +├── anyOf/oneOf → AnyOfField → selector + selected schema +└── primitive (string/number/boolean) → Widget +``` + +--- + +## Template Wrapping Order + +``` +ObjectFieldTemplate (root) +└── FieldTemplate (per property) + └── WrapIfAdditionalTemplate (if additionalProperties) + └── TitleField + DescriptionField + children + └── Widget OR nested Template/Field +``` diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/helpers.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/helpers.ts new file mode 100644 index 0000000000..f3302fcb85 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/helpers.ts @@ -0,0 +1,276 @@ +import { + RJSFSchema, + UIOptionsType, + StrictRJSFSchema, + FormContextType, + ADDITIONAL_PROPERTY_FLAG, +} from "@rjsf/utils"; + +import { + ANY_OF_FLAG, + ARRAY_ITEM_FLAG, + ID_PREFIX, + ID_PREFIX_ARRAY, + KEY_PAIR_FLAG, + OBJECT_FLAG, +} from "./constants"; +import { PathSegment } from "./types"; + +export function updateUiOption>( + uiSchema: T | undefined, + options: Record, +): T & { "ui:options": Record } { + return { + ...(uiSchema || {}), + "ui:options": { + ...uiSchema?.["ui:options"], + ...options, + }, + } as T & { "ui:options": Record }; +} + +export const cleanUpHandleId = (handleId: string) => { + let newHandleId = handleId; + if (handleId.includes(ANY_OF_FLAG)) { + newHandleId = newHandleId.replace(ANY_OF_FLAG, ""); + } + if (handleId.includes(ARRAY_ITEM_FLAG)) { + newHandleId = newHandleId.replace(ARRAY_ITEM_FLAG, ""); + } + if (handleId.includes(KEY_PAIR_FLAG)) { + newHandleId = newHandleId.replace(KEY_PAIR_FLAG, ""); + } + if (handleId.includes(OBJECT_FLAG)) { + newHandleId = newHandleId.replace(OBJECT_FLAG, ""); + } + if (handleId.includes(ID_PREFIX_ARRAY)) { + newHandleId = newHandleId.replace(ID_PREFIX_ARRAY, ""); + } + if (handleId.includes(ID_PREFIX)) { + newHandleId = newHandleId.replace(ID_PREFIX, ""); + } + return newHandleId; +}; + +export const isArrayItem = < + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +>({ + uiOptions, +}: { + uiOptions: UIOptionsType; +}) => { + return uiOptions.handleId?.endsWith(ARRAY_ITEM_FLAG); +}; + +export const isKeyValuePair = ({ schema }: { schema: RJSFSchema }) => { + return ADDITIONAL_PROPERTY_FLAG in schema; +}; + +export const isNormal = < + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +>({ + uiOptions, +}: { + uiOptions: UIOptionsType; +}) => { + return uiOptions.handleId === undefined; +}; + +export const isPartOfAnyOf = < + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +>({ + uiOptions, +}: { + uiOptions: UIOptionsType; +}) => { + return uiOptions.handleId?.endsWith(ANY_OF_FLAG); +}; +export const isObjectProperty = < + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +>({ + uiOptions, + schema, +}: { + uiOptions: UIOptionsType; + schema: RJSFSchema; +}) => { + return ( + !isArrayItem({ uiOptions }) && + !isKeyValuePair({ schema }) && + !isNormal({ uiOptions }) && + !isPartOfAnyOf({ uiOptions }) + ); +}; + +export const getHandleId = < + T = any, + S extends StrictRJSFSchema = RJSFSchema, + F extends FormContextType = any, +>({ + id, + schema, + uiOptions, +}: { + id: string; + schema: RJSFSchema; + uiOptions: UIOptionsType; +}) => { + const parentHandleId = uiOptions.handleId; + + if (isNormal({ uiOptions })) { + return id; + } + + if (isPartOfAnyOf({ uiOptions })) { + return parentHandleId + ANY_OF_FLAG; + } + + if (isKeyValuePair({ schema })) { + const key = id.split("_%_").at(-1); + let prefix = ""; + if (parentHandleId) { + prefix = parentHandleId; + } else { + prefix = id.split("_%_").slice(0, -1).join("_%_"); + } + + const handleId = `${prefix}_#_${key}`; + return handleId + KEY_PAIR_FLAG; + } + + if (isArrayItem({ uiOptions })) { + const index = id.split("_%_").at(-1); + const prefix = id.split("_%_").slice(0, -1).join("_%_"); + const handleId = `${prefix}_$_${index}`; + return handleId + ARRAY_ITEM_FLAG; + } + + if (isObjectProperty({ uiOptions, schema })) { + const key = id.split("_%_").at(-1); + const prefix = id.split("_%_").slice(0, -1).join("_%_"); + const handleId = `${prefix}_@_${key}`; + return handleId + OBJECT_FLAG; + } + return parentHandleId; +}; + +export function isCredentialFieldSchema(schema: any): boolean { + return ( + typeof schema === "object" && + schema !== null && + "credentials_provider" in schema + ); +} + +export function parseHandleIdToPath(handleId: string): PathSegment[] { + const cleanedId = cleanUpHandleId(handleId); + const segments: PathSegment[] = []; + const parts = cleanedId.split(/(_#_|_@_|_\$_|\.)/); + + let currentType: "property" | "item" | "additional" | "normal" = "normal"; + + for (let i = 0; i < parts.length; i++) { + const part = parts[i]; + + if (part === "_#_") { + currentType = "additional"; + } else if (part === "_@_") { + currentType = "property"; + } else if (part === "_$_") { + currentType = "item"; + } else if (part === ".") { + currentType = "normal"; + } else if (part) { + const isNumeric = /^\d+$/.test(part); + if (currentType === "item" && isNumeric) { + segments.push({ + key: part, + type: "item", + index: parseInt(part, 10), + }); + } else { + segments.push({ + key: part, + type: currentType, + }); + } + currentType = "normal"; + } + } + + return segments; +} + +/** + * Ensure a path exists in an object, creating intermediate objects/arrays as needed + * Returns true if any modifications were made + */ +export function ensurePathExists( + obj: Record, + segments: PathSegment[], +): boolean { + if (segments.length === 0) return false; + + let current = obj; + let modified = false; + + for (let i = 0; i < segments.length; i++) { + const segment = segments[i]; + const isLast = i === segments.length - 1; + const nextSegment = segments[i + 1]; + + const getDefaultValue = () => { + if (isLast) { + return ""; + } + if (nextSegment?.type === "item") { + return []; + } + return {}; + }; + + if (segment.type === "item" && segment.index !== undefined) { + if (!Array.isArray(current)) { + return modified; + } + + while (current.length <= segment.index) { + current.push(isLast ? "" : {}); + modified = true; + } + + if (!isLast) { + if ( + current[segment.index] === undefined || + current[segment.index] === null + ) { + current[segment.index] = getDefaultValue(); + modified = true; + } + current = current[segment.index]; + } + } else { + if (!(segment.key in current)) { + current[segment.key] = getDefaultValue(); + modified = true; + } else if (!isLast && current[segment.key] === undefined) { + current[segment.key] = getDefaultValue(); + modified = true; + } + + if (!isLast) { + current = current[segment.key]; + } + } + } + + return modified; +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/index.ts new file mode 100644 index 0000000000..c25af0b231 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/index.ts @@ -0,0 +1,3 @@ +export { FormRenderer } from "./FormRenderer"; +export { default as Form } from "./registry"; +export type { ExtendedFormContextType } from "./types"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/Form.tsx b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/Form.tsx new file mode 100644 index 0000000000..5bf720a994 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/Form.tsx @@ -0,0 +1,23 @@ +import { ComponentType } from "react"; +import { FormProps, withTheme, ThemeProps } from "@rjsf/core"; +import { + generateBaseFields, + generateBaseTemplates, + generateBaseWidgets, +} from "../base/base-registry"; +import { generateCustomFields } from "../custom/custom-registry"; + +export function generateForm(): ComponentType { + const theme: ThemeProps = { + templates: generateBaseTemplates(), + widgets: generateBaseWidgets(), + fields: { + ...generateBaseFields(), + ...generateCustomFields(), + }, + }; + + return withTheme(theme); +} + +export default generateForm(); diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/index.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/index.ts new file mode 100644 index 0000000000..641c2a97d6 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/index.ts @@ -0,0 +1,10 @@ +export { default, generateForm } from "./Form"; +export { + generateBaseFields, + generateBaseTemplates, + generateBaseWidgets, +} from "../base/base-registry"; +export { + generateCustomFields, + findCustomFieldId, +} from "../custom/custom-registry"; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/types.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/types.ts new file mode 100644 index 0000000000..cab84afcc3 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/registry/types.ts @@ -0,0 +1,7 @@ +import { BlockUIType } from "@/app/(platform)/build/components/types"; + +export type ExtraContext = { + nodeId?: string; + uiType?: BlockUIType; + size?: "small" | "medium" | "large"; +}; diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/types.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/types.ts new file mode 100644 index 0000000000..af2e8b7866 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/types.ts @@ -0,0 +1,15 @@ +import { BlockUIType } from "@/lib/autogpt-server-api/types"; +import { FormContextType } from "@rjsf/utils"; + +export interface ExtendedFormContextType extends FormContextType { + nodeId?: string; + uiType?: BlockUIType; + showHandles?: boolean; + size?: "small" | "medium" | "large"; +} + +export type PathSegment = { + key: string; + type: "property" | "item" | "additional" | "normal"; + index?: number; +}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/utils/custom-validator.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/custom-validator.ts similarity index 100% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/utils/custom-validator.ts rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/custom-validator.ts diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/utils/helpers.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/helpers.ts similarity index 100% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/utils/helpers.ts rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/helpers.ts diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/utils/input-schema-pre-processor.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/input-schema-pre-processor.ts similarity index 91% rename from autogpt_platform/frontend/src/components/renderers/input-renderer/utils/input-schema-pre-processor.ts rename to autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/input-schema-pre-processor.ts index ffbcbf52b2..dad95251ed 100644 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/utils/input-schema-pre-processor.ts +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/input-schema-pre-processor.ts @@ -1,9 +1,11 @@ import { RJSFSchema } from "@rjsf/utils"; +import { findCustomFieldId } from "../custom/custom-registry"; /** * Pre-processes the input schema to ensure all properties have a type defined. * If a property doesn't have a type, it assigns a union of all supported JSON Schema types. */ + export function preprocessInputSchema(schema: RJSFSchema): RJSFSchema { if (!schema || typeof schema !== "object") { return schema; @@ -19,6 +21,12 @@ export function preprocessInputSchema(schema: RJSFSchema): RJSFSchema { if (property && typeof property === "object") { const processedProperty = { ...property }; + // adding $id for custom field + const customFieldId = findCustomFieldId(processedProperty); + if (customFieldId) { + processedProperty.$id = customFieldId; + } + // Only add type if no type is defined AND no anyOf/oneOf/allOf is present if ( !processedProperty.type && @@ -32,7 +40,7 @@ export function preprocessInputSchema(schema: RJSFSchema): RJSFSchema { { type: "integer" }, { type: "boolean" }, { type: "array", items: { type: "string" } }, - { type: "object" }, + { type: "object", title: "Object", additionalProperties: true }, { type: "null" }, ]; } diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/rjsf-utils.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/rjsf-utils.ts new file mode 100644 index 0000000000..365058cebd --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/rjsf-utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/schema-utils.ts b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/schema-utils.ts new file mode 100644 index 0000000000..b1cfd37967 --- /dev/null +++ b/autogpt_platform/frontend/src/components/renderers/InputRenderer/utils/schema-utils.ts @@ -0,0 +1,35 @@ +import { getUiOptions, RJSFSchema, UiSchema } from "@rjsf/utils"; + +export function isAnyOfSchema(schema: RJSFSchema | undefined): boolean { + return Array.isArray(schema?.anyOf) && schema!.anyOf.length > 0; +} + +export const isAnyOfChild = ( + uiSchema: UiSchema | undefined, +): boolean => { + const uiOptions = getUiOptions(uiSchema); + return uiOptions.label === false; +}; + +export function isOptionalType(schema: RJSFSchema | undefined): { + isOptional: boolean; + type?: any; +} { + if ( + !Array.isArray(schema?.anyOf) || + schema!.anyOf.length !== 2 || + !schema!.anyOf.some((opt: any) => opt.type === "null") + ) { + return { isOptional: false }; + } + + const nonNullType = schema!.anyOf?.find((opt: any) => opt.type !== "null"); + + return { + isOptional: true, + type: nonNullType, + }; +} +export function isAnyOfSelector(name: string) { + return name.includes("anyof_select"); +} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/ARCHITECTURE_INPUT_RENDERER.md b/autogpt_platform/frontend/src/components/renderers/input-renderer/ARCHITECTURE_INPUT_RENDERER.md deleted file mode 100644 index 7ae3d2b546..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/ARCHITECTURE_INPUT_RENDERER.md +++ /dev/null @@ -1,938 +0,0 @@ -# Input-Renderer Architecture Documentation - -## Overview - -The Input-Renderer is a **JSON Schema-based form generation system** built on top of **React JSON Schema Form (RJSF)**. It dynamically creates form inputs for block nodes in the FlowEditor based on JSON schemas defined in the backend. - -This system allows blocks to define their input requirements declaratively, and the frontend automatically generates appropriate UI components. - ---- - -## High-Level Architecture - -``` -┌─────────────────────────────────────────────────────────┐ -│ FormRenderer │ -│ (Entry point, wraps RJSF Form) │ -└─────────────────────┬───────────────────────────────────┘ - │ - ┌─────────▼─────────┐ - │ RJSF Core │ - │ │ - └───────┬───────────┘ - │ - ┌───────────┼───────────┬──────────────┐ - │ │ │ │ - ┌────▼────┐ ┌───▼────┐ ┌────▼─────┐ ┌────▼────┐ - │ Fields │ │Templates│ │ Widgets │ │ Schemas │ - └─────────┘ └─────────┘ └──────────┘ └─────────┘ - │ │ │ │ - │ │ │ │ - Handles Wrapper Actual JSON Schema - complex layouts input (from backend) - types & labels components -``` - ---- - -## What is RJSF (React JSON Schema Form)? - -**RJSF** is a library that generates React forms from JSON Schema definitions. It follows a specific hierarchy to render forms: - -### **RJSF Rendering Flow:** - -``` -1. JSON Schema (defines data structure) - ↓ -2. Schema Field (decides which Field component to use) - ↓ -3. Field Component (handles specific type logic) - ↓ -4. Field Template (wraps field with label, description) - ↓ -5. Widget (actual input element - TextInput, Select, etc.) -``` - -### **Example Flow:** - -```json -// JSON Schema -{ - "type": "object", - "properties": { - "name": { - "type": "string", - "title": "Name" - } - } -} -``` - -**Becomes:** - -``` -SchemaField (detects "string" type) - ↓ -StringField (default RJSF field) - ↓ -FieldTemplate (adds label "Name") - ↓ -TextWidget (renders ) -``` - ---- - -## Core Components of Input-Renderer - -### 1. **FormRenderer** (`FormRenderer.tsx`) - -The main entry point that wraps RJSF `` component. - -```typescript -export const FormRenderer = ({ - jsonSchema, // JSON Schema from backend - handleChange, // Callback when form changes - uiSchema, // UI customization - initialValues, // Pre-filled values - formContext, // Extra context (nodeId, uiType, etc.) -}: FormRendererProps) => { - const preprocessedSchema = preprocessInputSchema(jsonSchema); - - return ( - - ); -}; -``` - -**Key Props:** - -- **`fields`** - Custom components for complex types (anyOf, credentials, objects) -- **`templates`** - Layout wrappers (FieldTemplate, ArrayFieldTemplate) -- **`widgets`** - Actual input components (TextInput, Select, FileWidget) -- **`formContext`** - Shared data (nodeId, showHandles, size) - ---- - -### 2. **Schema Pre-Processing** (`utils/input-schema-pre-processor.ts`) - -Before rendering, schemas are transformed to ensure RJSF compatibility. - -**Purpose:** - -- Add missing `type` fields (prevents RJSF errors) -- Recursively process nested objects and arrays -- Normalize inconsistent schemas from backend - -**Example:** - -```typescript -// Backend schema (missing type) -{ - "properties": { - "value": {} // No type defined! - } -} - -// After pre-processing -{ - "properties": { - "value": { - "anyOf": [ - { "type": "string" }, - { "type": "number" }, - { "type": "boolean" }, - // ... all possible types - ] - } - } -} -``` - -**Why?** RJSF requires explicit types. Without this, it would crash or render incorrectly. - ---- - -## The Three Pillars: Fields, Templates, Widgets - -### **A. Fields** (`fields/`) - -Fields handle **complex type logic** that goes beyond simple inputs. - -**Registered Fields:** - -```typescript -export const fields: RegistryFieldsType = { - AnyOfField: AnyOfField, // Handles anyOf/oneOf - credentials: CredentialsField, // OAuth/API key handling - ObjectField: ObjectField, // Free-form objects -}; -``` - -#### **1. AnyOfField** (`fields/AnyOfField/AnyOfField.tsx`) - -Handles schemas with multiple possible types (union types). - -**When Used:** - -```json -{ - "anyOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] -} -``` - -**Rendering:** - -``` -┌─────────────────────────────────────┐ -│ Parameter Name (string) ▼ │ ← Type selector dropdown -├─────────────────────────────────────┤ -│ [Text Input] │ ← Widget for selected type -└─────────────────────────────────────┘ -``` - -**Features:** - -- Type selector dropdown -- Nullable types (with toggle switch) -- Recursive rendering (can contain arrays, objects) -- Connection-aware (hides input when connected) - -**Special Case: Nullable Types** - -```json -{ - "anyOf": [{ "type": "string" }, { "type": "null" }] -} -``` - -**Renders as:** - -``` -┌─────────────────────────────────────┐ -│ Parameter Name (string | null) [✓] │ ← Toggle switch -├─────────────────────────────────────┤ -│ [Text Input] (only if enabled) │ -└─────────────────────────────────────┘ -``` - ---- - -#### **2. CredentialsField** (`fields/CredentialField/CredentialField.tsx`) - -Handles authentication credentials (OAuth, API Keys, Passwords). - -**When Used:** - -```json -{ - "type": "object", - "credentials": { - "provider": "google", - "scopes": ["email", "profile"] - } -} -``` - -**Flow:** - -``` -1. Renders SelectCredential dropdown - ↓ -2. User selects existing credential OR clicks "Add New" - ↓ -3. Modal opens (OAuthModal/APIKeyModal/PasswordModal) - ↓ -4. User authorizes/enters credentials - ↓ -5. Credential saved to backend - ↓ -6. Dropdown shows selected credential -``` - -**Credential Types:** - -- **OAuth** - 3rd party authorization (Google, GitHub, etc.) -- **API Key** - Simple key-based auth -- **Password** - Username/password pairs - ---- - -#### **3. ObjectField** (`fields/ObjectField.tsx`) - -Handles free-form objects (key-value pairs). - -**When Used:** - -```json -{ - "type": "object", - "additionalProperties": true // Free-form -} -``` - -vs - -```json -{ - "type": "object", - "properties": { - "name": { "type": "string" } // Fixed schema - } -} -``` - -**Behavior:** - -- **Fixed schema** → Uses default RJSF rendering -- **Free-form** → Uses ObjectEditorWidget (JSON editor) - ---- - -### **B. Templates** (`templates/`) - -Templates control **layout and wrapping** of fields. - -#### **1. FieldTemplate** (`templates/FieldTemplate.tsx`) - -Wraps every field with label, type indicator, and connection handle. - -**Rendering Structure:** - -``` -┌────────────────────────────────────────┐ -│ ○ Label (type) ⓘ │ ← Handle + Label + Type + Info icon -├────────────────────────────────────────┤ -│ [Actual Input Widget] │ ← The input itself -└────────────────────────────────────────┘ -``` - -**Responsibilities:** - -- Shows/hides input based on connection status -- Renders connection handle (NodeHandle) -- Displays type information -- Shows tooltip with description -- Handles "advanced" field visibility -- Formats credential field labels - -**Key Logic:** - -```typescript -// Hide input if connected -{(isAnyOf || !isConnected) && ( -
    {children}
    -)} - -// Show handle for most fields -{shouldShowHandle && ( - -)} -``` - -**Context-Aware Behavior:** - -- Inside `AnyOfField` → No handle (parent handles it) -- Credential field → Special label formatting -- Array item → Uses parent handle -- INPUT/OUTPUT/WEBHOOK blocks → Different handle positioning - ---- - -#### **2. ArrayFieldTemplate** (`templates/ArrayFieldTemplate.tsx`) - -Wraps array fields to use custom ArrayEditorWidget. - -**Simple Wrapper:** - -```typescript -function ArrayFieldTemplate(props: ArrayFieldTemplateProps) { - const { items, canAdd, onAddClick, nodeId } = props; - - return ( - - ); -} -``` - ---- - -### **C. Widgets** (`widgets/`) - -Widgets are **actual input components** - the final rendered HTML elements. - -**Registered Widgets:** - -```typescript -export const widgets: RegistryWidgetsType = { - TextWidget: TextInputWidget, // - SelectWidget: SelectWidget, // - ↓ -8. User types "Hello" - ↓ -9. onChange callback fires - ↓ -10. FormCreator updates nodeStore.updateNodeData() -``` - ---- - -### **Example: Rendering AnyOf Field** - -```json -// Backend Schema -{ - "anyOf": [{ "type": "string" }, { "type": "number" }], - "title": "Value" -} -``` - -**Rendering Flow:** - -``` -1. RJSF detects "anyOf" - ↓ -2. Uses AnyOfField (custom field) - ↓ -3. AnyOfField renders: - ┌─────────────────────────────────┐ - │ ○ Value (string) ▼ │ ← Self-managed handle & selector - ├─────────────────────────────────┤ - │ [Text Input] │ ← Recursively renders SchemaField - └─────────────────────────────────┘ - ↓ -4. User changes type to "number" - ↓ -5. AnyOfField re-renders with NumberWidget - ↓ -6. User enters "42" - ↓ -7. onChange({ type: "number", value: 42 }) -``` - -**Key Point:** AnyOfField **does NOT use FieldTemplate** for itself. It manages its own handle and label to avoid duplication. But it **recursively calls SchemaField** for the selected type, which may use FieldTemplate. - ---- - -### **Example: Rendering Array Field** - -```json -// Backend Schema -{ - "type": "array", - "items": { - "type": "string" - }, - "title": "Tags" -} -``` - -**Rendering Flow:** - -``` -1. RJSF detects "array" type - ↓ -2. Uses ArrayFieldTemplate - ↓ -3. ArrayFieldTemplate passes to ArrayEditorWidget - ↓ -4. ArrayEditorWidget renders: - ┌─────────────────────────────────┐ - │ ○ Tag 1 [Text Input] [X] │ ← Each item wrapped in context - │ ○ Tag 2 [Text Input] [X] │ - │ [+ Add Item] │ - └─────────────────────────────────┘ - ↓ -5. Each item wrapped in ArrayEditorContext - ↓ -6. FieldTemplate reads context: - - isArrayItem = true - - Uses arrayFieldHandleId instead of own handle - ↓ -7. TextWidget renders for each item -``` - ---- - -## Hierarchy: What Comes First? - -This is the **order of execution** from schema to rendered input: - -``` -1. JSON Schema (from backend) - ↓ -2. preprocessInputSchema() (normalization) - ↓ -3. RJSF (library entry point) - ↓ -4. SchemaField (RJSF internal - decides which field) - ↓ -5. Field Component (AnyOfField, CredentialsField, or default) - ↓ -6. Template (FieldTemplate or ArrayFieldTemplate) - ↓ -7. Widget (TextWidget, SelectWidget, etc.) - ↓ -8. Actual HTML (, onChange(e.target.value)} />; -}; -``` - -2. Register in `widgets/index.ts`: - -```typescript -export const widgets: RegistryWidgetsType = { - // ... - MyCustomWidget: MyWidget, -}; -``` - -3. Use in uiSchema or schema format: - -```json -{ - "type": "string", - "format": "my-custom-format" // RJSF maps format → widget -} -``` - ---- - -### **Adding a New Field** - -1. Create field component in `fields/`: - -```typescript -export const MyField = ({ schema, formData, onChange, ...props }: FieldProps) => { - // Custom logic here - return
    ...
    ; -}; -``` - -2. Register in `fields/index.ts`: - -```typescript -export const fields: RegistryFieldsType = { - // ... - MyField: MyField, -}; -``` - -3. RJSF uses it based on schema structure (e.g., custom keyword). - ---- - -## Integration with FlowEditor - -``` -CustomNode - ↓ -FormCreator - ↓ -FormRenderer ← YOU ARE HERE - ↓ -RJSF - ↓ -(Fields, Templates, Widgets) - ↓ -User Input - ↓ -onChange callback - ↓ -FormCreator.handleChange() - ↓ -nodeStore.updateNodeData(nodeId, { hardcodedValues }) - ↓ -historyStore.pushState() (undo/redo) -``` - ---- - -## Debugging Tips - -### **Field Not Rendering** - -- Check if `preprocessInputSchema()` is handling it correctly -- Verify schema has `type` field -- Check RJSF console for validation errors - -### **Widget Wrong Type** - -- Check schema `type` and `format` fields -- Verify widget is registered in `widgets/index.ts` -- Check if custom field is overriding default behavior - -### **Handle Not Appearing** - -- Check `showHandles` in formContext -- Verify not inside `fromAnyOf` context -- Check if field is credential or array item - -### **Value Not Saving** - -- Verify `onChange` callback is firing -- Check `handleChange` in FormCreator -- Look for console errors in `updateNodeData` - ---- - -## Summary - -The Input-Renderer is a sophisticated form system that: - -1. **Uses RJSF** as the foundation for JSON Schema → React forms -2. **Extends RJSF** with custom Fields, Templates, and Widgets -3. **Integrates** with FlowEditor's connection system -4. **Handles** complex types (anyOf, credentials, free-form objects) -5. **Provides** connection-aware, type-safe input rendering - -**Key Hierarchy (What Comes First):** - -``` -JSON Schema - → Pre-processing - → RJSF Form - → SchemaField (RJSF internal) - → Field (AnyOfField, CredentialsField, etc.) - → Template (FieldTemplate, ArrayFieldTemplate) - → Widget (TextWidget, SelectWidget, etc.) - → HTML Element -``` - -**Mental Model:** - -- **Fields** = Smart logic layers (type selection, OAuth flows) -- **Templates** = Layout wrappers (handles, labels, tooltips) -- **Widgets** = Actual inputs (text boxes, dropdowns) - -**Integration Point:** - -- FormRenderer receives schema from `node.data.inputSchema` -- User edits form → `onChange` → `nodeStore.updateNodeData()` -- Values saved as `node.data.hardcodedValues` diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/AnyOfField.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/AnyOfField.tsx deleted file mode 100644 index 79fa15304d..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/AnyOfField/AnyOfField.tsx +++ /dev/null @@ -1,232 +0,0 @@ -import React from "react"; -import { FieldProps, RJSFSchema } from "@rjsf/utils"; - -import { Text } from "@/components/atoms/Text/Text"; -import { Switch } from "@/components/atoms/Switch/Switch"; -import { Select } from "@/components/atoms/Select/Select"; -import { - InputType, - mapJsonSchemaTypeToInputType, -} from "@/app/(platform)/build/components/FlowEditor/nodes/helpers"; - -import { InfoIcon } from "@phosphor-icons/react"; -import { useAnyOfField } from "./useAnyOfField"; -import NodeHandle from "@/app/(platform)/build/components/FlowEditor/handlers/NodeHandle"; -import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; -import { generateHandleId } from "@/app/(platform)/build/components/FlowEditor/handlers/helpers"; -import { getTypeDisplayInfo } from "@/app/(platform)/build/components/FlowEditor/nodes/helpers"; -import merge from "lodash/merge"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/atoms/Tooltip/BaseTooltip"; -import { cn } from "@/lib/utils"; -import { BlockUIType } from "@/app/(platform)/build/components/types"; - -type TypeOption = { - type: string; - title: string; - index: number; - format?: string; - enum?: any[]; - secret?: boolean; - schema: RJSFSchema; -}; - -export const AnyOfField = ({ - schema, - formData, - onChange, - name, - idSchema, - formContext, - registry, - uiSchema, - disabled, - onBlur, - onFocus, -}: FieldProps) => { - const handleId = - formContext.uiType === BlockUIType.AGENT - ? (idSchema.$id ?? "") - .split("_") - .filter((p) => p !== "root" && p !== "properties" && p.length > 0) - .join("_") || "" - : generateHandleId(idSchema.$id ?? ""); - - const updatedFormContexrt = { ...formContext, fromAnyOf: true }; - - const { nodeId, showHandles = true } = updatedFormContexrt; - const { isInputConnected } = useEdgeStore(); - const isConnected = showHandles ? isInputConnected(nodeId, handleId) : false; - const { - isNullableType, - nonNull, - selectedType, - handleTypeChange, - handleNullableToggle, - handleValueChange, - currentTypeOption, - isEnabled, - typeOptions, - } = useAnyOfField(schema, formData, onChange); - - const renderInput = (typeOption: TypeOption) => { - const optionSchema = (typeOption.schema || { - type: typeOption.type, - format: typeOption.format, - secret: typeOption.secret, - enum: typeOption.enum, - }) as RJSFSchema; - const inputType = mapJsonSchemaTypeToInputType(optionSchema); - - // Help us to tell the field under the anyOf field that you are a part of anyOf field. - // We can't use formContext in this case that's why we are using this. - // We could use context api here, but i think it's better to keep it simple. - const uiSchemaFromAnyOf = merge({}, uiSchema, { - "ui:options": { fromAnyOf: true }, - }); - - // We are using SchemaField to render the field recursively. - if (inputType === InputType.ARRAY_EDITOR) { - const SchemaField = registry.fields.SchemaField; - return ( -
    - -
    - ); - } - - const SchemaField = registry.fields.SchemaField; - return ( -
    - -
    - ); - }; - - // I am doing this, because we need different UI for optional types. - if (isNullableType && nonNull) { - const { displayType, colorClass } = getTypeDisplayInfo(nonNull); - - return ( -
    -
    -
    - {showHandles && ( - - )} - - {schema.title || name.charAt(0).toUpperCase() + name.slice(1)} - - - ({displayType} | null) - -
    - {!isConnected && ( - - )} -
    -
    - {!isConnected && isEnabled && renderInput(nonNull)} -
    -
    - ); - } - - return ( -
    -
    - {showHandles && ( - - )} - - {schema.title || name.charAt(0).toUpperCase() + name.slice(1)} - - {!isConnected && ( - - - -
    - ); -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/APIKeyCredentialModal.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/APIKeyCredentialModal.tsx deleted file mode 100644 index 5a51e1e36c..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/APIKeyCredentialModal.tsx +++ /dev/null @@ -1,123 +0,0 @@ -import { Input } from "@/components/atoms/Input/Input"; -import { Button } from "@/components/atoms/Button/Button"; -import { Dialog } from "@/components/molecules/Dialog/Dialog"; -import { - Form, - FormDescription, - FormField, -} from "@/components/__legacy__/ui/form"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api/types"; // we need to find a way to replace it with autogenerated types -import { useAPIKeyCredentialsModal } from "./useAPIKeyCredentialsModal"; -import { toDisplayName } from "../../helpers"; -import { KeyIcon } from "@phosphor-icons/react"; -import { Text } from "@/components/atoms/Text/Text"; - -type Props = { - schema: BlockIOCredentialsSubSchema; - provider: string; -}; - -export function APIKeyCredentialsModal({ schema, provider }: Props) { - const { form, schemaDescription, onSubmit, isOpen, setIsOpen } = - useAPIKeyCredentialsModal({ schema, provider }); - - return ( - <> - { - if (!isOpen) setIsOpen(false); - }, - }} - onClose={() => setIsOpen(false)} - styling={{ - maxWidth: "25rem", - }} - > - - {schemaDescription && ( -

    {schemaDescription}

    - )} - - - - ( - <> - - Required scope(s) for this block:{" "} - {schema.credentials_scopes?.map((s, i, a) => ( - - {s} - {i < a.length - 1 && ", "} - - ))} - - ) : null - } - {...field} - /> - - )} - /> - ( - - )} - /> - ( - - )} - /> - - - -
    -
    - - - ); -} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/useAPIKeyCredentialsModal.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/useAPIKeyCredentialsModal.ts deleted file mode 100644 index 499cacf1ce..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/APIKeyCredentialModal/useAPIKeyCredentialsModal.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { z } from "zod"; -import { useForm, type UseFormReturn } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api/types"; -import { - getGetV1ListCredentialsQueryKey, - usePostV1CreateCredentials, -} from "@/app/api/__generated__/endpoints/integrations/integrations"; -import { useToast } from "@/components/molecules/Toast/use-toast"; -import { APIKeyCredentials } from "@/app/api/__generated__/models/aPIKeyCredentials"; -import { useQueryClient } from "@tanstack/react-query"; -import { useState } from "react"; - -export type APIKeyFormValues = { - apiKey: string; - title: string; - expiresAt?: string; -}; - -type useAPIKeyCredentialsModalType = { - schema: BlockIOCredentialsSubSchema; - provider: string; -}; - -export function useAPIKeyCredentialsModal({ - schema, - provider, -}: useAPIKeyCredentialsModalType): { - form: UseFormReturn; - schemaDescription?: string; - onSubmit: (values: APIKeyFormValues) => Promise; - isOpen: boolean; - setIsOpen: (isOpen: boolean) => void; -} { - const { toast } = useToast(); - const [isOpen, setIsOpen] = useState(false); - const queryClient = useQueryClient(); - - const { mutateAsync: createCredentials } = usePostV1CreateCredentials({ - mutation: { - onSuccess: async () => { - form.reset(); - setIsOpen(false); - toast({ - title: "Success", - description: "Credentials created successfully", - variant: "default", - }); - - await queryClient.refetchQueries({ - queryKey: getGetV1ListCredentialsQueryKey(), - }); - }, - onError: () => { - toast({ - title: "Error", - description: "Failed to create credentials.", - variant: "destructive", - }); - }, - }, - }); - - const formSchema = z.object({ - apiKey: z.string().min(1, "API Key is required"), - title: z.string().min(1, "Name is required"), - expiresAt: z.string().optional(), - }); - - const form = useForm({ - resolver: zodResolver(formSchema), - defaultValues: { - apiKey: "", - title: "", - expiresAt: "", - }, - }); - - async function onSubmit(values: APIKeyFormValues) { - const expiresAt = values.expiresAt - ? new Date(values.expiresAt).getTime() / 1000 - : undefined; - - createCredentials({ - provider: provider, - data: { - provider: provider, - type: "api_key", - api_key: values.apiKey, - title: values.title, - expires_at: expiresAt, - } as APIKeyCredentials, - }); - } - - return { - form, - schemaDescription: schema.description, - onSubmit, - isOpen, - setIsOpen, - }; -} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/HostScopedCredentialsModal.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/HostScopedCredentialsModal.tsx deleted file mode 100644 index 3264fca76f..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/HostScopedCredentialsModal.tsx +++ /dev/null @@ -1,185 +0,0 @@ -import { Input } from "@/components/atoms/Input/Input"; -import { Button } from "@/components/atoms/Button/Button"; -import { Dialog } from "@/components/molecules/Dialog/Dialog"; -import { - Form, - FormDescription, - FormField, - FormLabel, -} from "@/components/__legacy__/ui/form"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api/types"; -import { useHostScopedCredentialsModal } from "./useHostScopedCredentialsModal"; -import { toDisplayName } from "../../helpers"; -import { GlobeIcon, PlusIcon, TrashIcon } from "@phosphor-icons/react"; -import { Text } from "@/components/atoms/Text/Text"; - -type Props = { - schema: BlockIOCredentialsSubSchema; - provider: string; - discriminatorValue?: string; -}; - -export function HostScopedCredentialsModal({ - schema, - provider, - discriminatorValue, -}: Props) { - const { - form, - schemaDescription, - onSubmit, - isOpen, - setIsOpen, - headerPairs, - addHeaderPair, - removeHeaderPair, - updateHeaderPair, - currentHost, - } = useHostScopedCredentialsModal({ schema, provider, discriminatorValue }); - - return ( - <> - { - if (!isOpen) setIsOpen(false); - }, - }} - onClose={() => setIsOpen(false)} - styling={{ - maxWidth: "38rem", - }} - > - -
    - {schemaDescription && ( -

    {schemaDescription}

    - )} - -
    - - ( - - )} - /> - - ( - - )} - /> - -
    - Headers - - Add sensitive headers (like Authorization, X-API-Key) that - should be automatically included in requests to the - specified host. - - - {headerPairs.map((pair, index) => ( -
    - - updateHeaderPair(index, "key", e.target.value) - } - /> - - - updateHeaderPair(index, "value", e.target.value) - } - /> - -
    - ))} - - -
    - - - - -
    -
    -
    - - - ); -} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/useHostScopedCredentialsModal.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/useHostScopedCredentialsModal.ts deleted file mode 100644 index 066bc05b51..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/HostScopedCredentialsModal/useHostScopedCredentialsModal.ts +++ /dev/null @@ -1,167 +0,0 @@ -import { z } from "zod"; -import { useForm, type UseFormReturn } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api/types"; -import { - getGetV1ListCredentialsQueryKey, - usePostV1CreateCredentials, -} from "@/app/api/__generated__/endpoints/integrations/integrations"; -import { useToast } from "@/components/molecules/Toast/use-toast"; -import { HostScopedCredentialsInput } from "@/app/api/__generated__/models/hostScopedCredentialsInput"; -import { useQueryClient } from "@tanstack/react-query"; -import { useState } from "react"; -import { getHostFromUrl } from "@/lib/utils/url"; - -export type HeaderPair = { - key: string; - value: string; -}; - -export type HostScopedFormValues = { - host: string; - title?: string; -}; - -type UseHostScopedCredentialsModalType = { - schema: BlockIOCredentialsSubSchema; - provider: string; - discriminatorValue?: string; -}; - -export function useHostScopedCredentialsModal({ - schema, - provider, - discriminatorValue, -}: UseHostScopedCredentialsModalType): { - form: UseFormReturn; - schemaDescription?: string; - onSubmit: (values: HostScopedFormValues) => Promise; - isOpen: boolean; - setIsOpen: (isOpen: boolean) => void; - headerPairs: HeaderPair[]; - addHeaderPair: () => void; - removeHeaderPair: (index: number) => void; - updateHeaderPair: ( - index: number, - field: "key" | "value", - value: string, - ) => void; - currentHost: string | null; -} { - const { toast } = useToast(); - const [isOpen, setIsOpen] = useState(false); - const [headerPairs, setHeaderPairs] = useState([ - { key: "", value: "" }, - ]); - const queryClient = useQueryClient(); - - // Get current host from discriminatorValue (URL field) - const currentHost = discriminatorValue - ? getHostFromUrl(discriminatorValue) - : null; - - const { mutateAsync: createCredentials } = usePostV1CreateCredentials({ - mutation: { - onSuccess: async () => { - form.reset(); - setHeaderPairs([{ key: "", value: "" }]); - setIsOpen(false); - toast({ - title: "Success", - description: "Host-scoped credentials created successfully", - variant: "default", - }); - - await queryClient.refetchQueries({ - queryKey: getGetV1ListCredentialsQueryKey(), - }); - }, - onError: () => { - toast({ - title: "Error", - description: "Failed to create host-scoped credentials.", - variant: "destructive", - }); - }, - }, - }); - - const formSchema = z.object({ - host: z.string().min(1, "Host is required"), - title: z.string().optional().default(""), - }); - - const form = useForm({ - resolver: zodResolver(formSchema), - defaultValues: { - host: currentHost || "", - title: currentHost || "Manual Entry", - }, - }); - - // Update form values when modal opens and discriminatorValue changes - const handleSetIsOpen = (open: boolean) => { - if (open && currentHost) { - form.setValue("host", currentHost); - form.setValue("title", currentHost); - } - setIsOpen(open); - }; - - const addHeaderPair = () => { - setHeaderPairs([...headerPairs, { key: "", value: "" }]); - }; - - const removeHeaderPair = (index: number) => { - if (headerPairs.length > 1) { - setHeaderPairs(headerPairs.filter((_, i) => i !== index)); - } - }; - - const updateHeaderPair = ( - index: number, - field: "key" | "value", - value: string, - ) => { - const newPairs = [...headerPairs]; - newPairs[index][field] = value; - setHeaderPairs(newPairs); - }; - - async function onSubmit(values: HostScopedFormValues) { - // Convert header pairs to object, filtering out empty pairs - const headers = headerPairs.reduce( - (acc, pair) => { - if (pair.key.trim() && pair.value.trim()) { - acc[pair.key.trim()] = pair.value.trim(); - } - return acc; - }, - {} as Record, - ); - - createCredentials({ - provider: provider, - data: { - provider: provider, - type: "host_scoped", - host: values.host, - title: values.title || values.host, - headers: headers, - } as HostScopedCredentialsInput, - }); - } - - return { - form, - schemaDescription: schema.description, - onSubmit, - isOpen, - setIsOpen: handleSetIsOpen, - headerPairs, - addHeaderPair, - removeHeaderPair, - updateHeaderPair, - currentHost, - }; -} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/OAuthCredentialModal.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/OAuthCredentialModal.tsx deleted file mode 100644 index 9824ace169..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/OAuthCredentialModal.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { Button } from "@/components/atoms/Button/Button"; -import { Dialog } from "@/components/molecules/Dialog/Dialog"; -import { providerIcons, toDisplayName } from "../../helpers"; -import { useOAuthCredentialModal } from "./useOAuthCredentialModal"; -import { Text } from "@/components/atoms/Text/Text"; - -type OAuthCredentialModalProps = { - provider: string; -}; - -export const OAuthCredentialModal = ({ - provider, -}: OAuthCredentialModalProps) => { - const Icon = providerIcons[provider]; - const { handleOAuthLogin, loading, error, onClose, open, setOpen } = - useOAuthCredentialModal({ - provider, - }); - return ( - <> - { - if (!isOpen) setOpen(false); - }, - }} - onClose={onClose} - > - -

    - Complete the sign-in process in the pop-up window. -
    - Closing this dialog will cancel the sign-in process. -

    -
    -
    - - - {error && ( -
    - - {error as string} - -
    - )} - - ); -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/useOAuthCredentialModal.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/useOAuthCredentialModal.ts deleted file mode 100644 index cf82ebca70..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/OAuthCredentialModal/useOAuthCredentialModal.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { - getGetV1ListCredentialsQueryKey, - useGetV1InitiateOauthFlow, - usePostV1ExchangeOauthCodeForTokens, -} from "@/app/api/__generated__/endpoints/integrations/integrations"; -import { LoginResponse } from "@/app/api/__generated__/models/loginResponse"; -import { useToast } from "@/components/molecules/Toast/use-toast"; -import { useQueryClient } from "@tanstack/react-query"; -import { useState } from "react"; - -type useOAuthCredentialModalProps = { - provider: string; - scopes?: string[]; -}; - -export type OAuthPopupResultMessage = { message_type: "oauth_popup_result" } & ( - | { - success: true; - code: string; - state: string; - } - | { - success: false; - message: string; - } -); - -export const useOAuthCredentialModal = ({ - provider, - scopes, -}: useOAuthCredentialModalProps) => { - const { toast } = useToast(); - - const [open, setOpen] = useState(false); - const [oAuthPopupController, setOAuthPopupController] = - useState(null); - const [oAuthError, setOAuthError] = useState(null); - const [isOAuth2FlowInProgress, setOAuth2FlowInProgress] = useState(false); - - const queryClient = useQueryClient(); - - const { - refetch: initiateOauthFlow, - isRefetching: isInitiatingOauthFlow, - isRefetchError: initiatingOauthFlowError, - } = useGetV1InitiateOauthFlow( - provider, - { - scopes: scopes?.join(","), - }, - { - query: { - enabled: false, - select: (res) => { - return res.data as LoginResponse; - }, - }, - }, - ); - - const { - mutateAsync: oAuthCallback, - isPending: isOAuthCallbackPending, - error: oAuthCallbackError, - } = usePostV1ExchangeOauthCodeForTokens({ - mutation: { - onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: getGetV1ListCredentialsQueryKey(), - }); - setOpen(false); - toast({ - title: "Success", - description: "Credential added successfully", - variant: "default", - }); - }, - }, - }); - - const handleOAuthLogin = async () => { - const { data } = await initiateOauthFlow(); - if (!data || !data.login_url || !data.state_token) { - toast({ - title: "Failed to initiate OAuth flow", - variant: "destructive", - }); - setOAuthError( - data && typeof data === "object" && "detail" in data - ? (data.detail as string) - : "Failed to initiate OAuth flow", - ); - return; - } - - setOpen(true); - setOAuth2FlowInProgress(true); - - const { login_url, state_token } = data; - - const popup = window.open(login_url, "_blank", "popup=true"); - - if (!popup) { - throw new Error( - "Failed to open popup window. Please allow popups for this site.", - ); - } - - const controller = new AbortController(); - setOAuthPopupController(controller); - - controller.signal.onabort = () => { - console.debug("OAuth flow aborted"); - popup.close(); - }; - - const handleMessage = async (e: MessageEvent) => { - console.debug("Message received:", e.data); - if ( - typeof e.data != "object" || - !("message_type" in e.data) || - e.data.message_type !== "oauth_popup_result" - ) { - console.debug("Ignoring irrelevant message"); - return; - } - - if (!e.data.success) { - console.error("OAuth flow failed:", e.data.message); - setOAuthError(`OAuth flow failed: ${e.data.message}`); - setOAuth2FlowInProgress(false); - return; - } - - if (e.data.state !== state_token) { - console.error("Invalid state token received"); - setOAuthError("Invalid state token received"); - setOAuth2FlowInProgress(false); - return; - } - - try { - console.debug("Processing OAuth callback"); - await oAuthCallback({ - provider, - data: { - code: e.data.code, - state_token: e.data.state, - }, - }); - - console.debug("OAuth callback processed successfully"); - } catch (error) { - console.error("Error in OAuth callback:", error); - setOAuthError( - `Error in OAuth callback: ${ - error instanceof Error ? error.message : String(error) - }`, - ); - } finally { - console.debug("Finalizing OAuth flow"); - setOAuth2FlowInProgress(false); - controller.abort("success"); - } - }; - - window.addEventListener("message", handleMessage, { - signal: controller.signal, - }); - - setTimeout( - () => { - console.debug("OAuth flow timed out"); - controller.abort("timeout"); - setOAuth2FlowInProgress(false); - setOAuthError("OAuth flow timed out"); - }, - 5 * 60 * 1000, - ); - }; - - const onClose = () => { - oAuthPopupController?.abort("canceled"); - setOpen(false); - }; - - return { - handleOAuthLogin, - loading: - isOAuth2FlowInProgress || isOAuthCallbackPending || isInitiatingOauthFlow, - error: oAuthError || initiatingOauthFlowError || oAuthCallbackError, - onClose, - open, - setOpen, - }; -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/PasswordCredentialModal.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/PasswordCredentialModal.tsx deleted file mode 100644 index 9abaa8b328..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/PasswordCredentialModal.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { Input } from "@/components/atoms/Input/Input"; -import { Button } from "@/components/atoms/Button/Button"; -import { Dialog } from "@/components/molecules/Dialog/Dialog"; -import { Form, FormField } from "@/components/__legacy__/ui/form"; -import { usePasswordCredentialModal } from "./usePasswordCredentialModal"; -import { toDisplayName } from "../../helpers"; -import { UserIcon } from "@phosphor-icons/react"; -import { Text } from "@/components/atoms/Text/Text"; - -type Props = { - provider: string; -}; - -export function PasswordCredentialsModal({ provider }: Props) { - const { form, onSubmit, open, setOpen } = usePasswordCredentialModal({ - provider, - }); - - return ( - <> - { - if (!isOpen) setOpen(false); - }, - }} - onClose={() => setOpen(false)} - styling={{ - maxWidth: "25rem", - }} - > - -
    - - ( - - )} - /> - ( - - )} - /> - ( - - )} - /> - - - -
    -
    - - - ); -} diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/usePasswordCredentialModal.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/usePasswordCredentialModal.ts deleted file mode 100644 index e0a4e4a805..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/models/PasswordCredentialModal/usePasswordCredentialModal.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { useState } from "react"; -import z from "zod"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { - getGetV1ListCredentialsQueryKey, - usePostV1CreateCredentials, -} from "@/app/api/__generated__/endpoints/integrations/integrations"; -import { useToast } from "@/components/molecules/Toast/use-toast"; -import { useQueryClient } from "@tanstack/react-query"; - -type usePasswordCredentialModalType = { - provider: string; -}; - -export const usePasswordCredentialModal = ({ - provider, -}: usePasswordCredentialModalType) => { - const [open, setOpen] = useState(false); - const { toast } = useToast(); - const queryClient = useQueryClient(); - - const formSchema = z.object({ - username: z.string().min(1, "Username is required"), - password: z.string().min(1, "Password is required"), - title: z.string().min(1, "Name is required"), - }); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - username: "", - password: "", - title: "", - }, - }); - - const { mutateAsync: createCredentials } = usePostV1CreateCredentials({ - mutation: { - onSuccess: async () => { - form.reset(); - setOpen(false); - toast({ - title: "Success", - description: "Credentials created successfully", - variant: "default", - }); - - await queryClient.refetchQueries({ - queryKey: getGetV1ListCredentialsQueryKey(), - }); - }, - }, - }); - - async function onSubmit(values: z.infer) { - createCredentials({ - provider: provider, - data: { - provider: provider, - type: "user_password", - username: values.username, - password: values.password, - title: values.title, - }, - }); - } - - return { - form, - onSubmit, - open, - setOpen, - }; -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/useCredentialField.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/useCredentialField.ts deleted file mode 100644 index a90add8aeb..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/CredentialField/useCredentialField.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { useGetV1ListCredentials } from "@/app/api/__generated__/endpoints/integrations/integrations"; -import { CredentialsMetaResponse } from "@/app/api/__generated__/models/credentialsMetaResponse"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api"; -import { - filterCredentialsByProvider, - getCredentialProviderFromSchema, - getDiscriminatorValue, -} from "./helpers"; -import { useNodeStore } from "@/app/(platform)/build/stores/nodeStore"; -import { useEffect, useRef } from "react"; -import { useShallow } from "zustand/react/shallow"; - -export const useCredentialField = ({ - credentialSchema, - formData, - nodeId, - onChange, -}: { - credentialSchema: BlockIOCredentialsSubSchema; // Here we are using manual typing, we need to fix it with automatic one - formData: Record; - nodeId: string; - onChange: (value: Record) => void; -}) => { - const previousProviderRef = useRef(null); - - // Fetch all the credentials from the backend - // We will save it in cache for 10 min, if user edits the credential, we will invalidate the cache - // Whenever user adds a block, we filter the credentials list and check if this block's provider is in the list - const { data: credentials, isLoading: isCredentialListLoading } = - useGetV1ListCredentials({ - query: { - refetchInterval: 10 * 60 * 1000, - select: (x) => { - return x.data as CredentialsMetaResponse[]; - }, - }, - }); - - const hardcodedValues = useNodeStore( - useShallow((state) => state.getHardCodedValues(nodeId)), - ); - - const credentialProvider = getCredentialProviderFromSchema( - hardcodedValues, - credentialSchema, - ); - - const discriminatorValue = getDiscriminatorValue( - hardcodedValues, - credentialSchema, - ); - - const supportsApiKey = credentialSchema.credentials_types.includes("api_key"); - const supportsOAuth2 = credentialSchema.credentials_types.includes("oauth2"); - const supportsUserPassword = - credentialSchema.credentials_types.includes("user_password"); - const supportsHostScoped = - credentialSchema.credentials_types.includes("host_scoped"); - - const { credentials: filteredCredentials, exists: credentialsExists } = - filterCredentialsByProvider( - credentials, - credentialProvider ?? "", - credentialSchema, - discriminatorValue, - ); - - const setCredential = (credentialId: string) => { - const selectedCredential = filteredCredentials.find( - (c) => c.id === credentialId, - ); - if (selectedCredential) { - onChange({ - ...formData, - id: selectedCredential.id, - provider: selectedCredential.provider, - title: selectedCredential.title, - type: selectedCredential.type, - }); - } - }; - - // This side effect is used to clear the hardcoded value in credential formData when the provider changes - useEffect(() => { - if (!credentialProvider) return; - // If provider has changed and we have a credential selected - if ( - previousProviderRef.current !== null && - previousProviderRef.current !== credentialProvider && - formData.id - ) { - // Check if the current credential belongs to the new provider - const currentCredentialBelongsToProvider = filteredCredentials.some( - (c) => c.id === formData.id, - ); - - // If not, clear the credential - if (!currentCredentialBelongsToProvider) { - onChange({ - id: "", - provider: "", - title: "", - type: "", - }); - } - } - previousProviderRef.current = credentialProvider; - }, [credentialProvider, formData.id, credentials, onChange]); - - // This side effect is used to auto-select the latest credential when none is selected [latest means last one in the list of credentials] - useEffect(() => { - if ( - !isCredentialListLoading && - filteredCredentials.length > 0 && - !formData.id && // No credential currently selected - credentialProvider // Provider is set - ) { - const latestCredential = - filteredCredentials[filteredCredentials.length - 1]; - setCredential(latestCredential.id); - } - }, [ - isCredentialListLoading, - filteredCredentials.length, - formData.id, - credentialProvider, - ]); - - return { - credentials: filteredCredentials, - isCredentialListLoading, - setCredential, - supportsApiKey, - supportsOAuth2, - supportsUserPassword, - supportsHostScoped, - credentialsExists, - credentialProvider, - discriminatorValue, - }; -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/ObjectField.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/ObjectField.tsx deleted file mode 100644 index 8189116a4e..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/ObjectField.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from "react"; -import { FieldProps } from "@rjsf/utils"; -import { getDefaultRegistry } from "@rjsf/core"; -import { generateHandleId } from "@/app/(platform)/build/components/FlowEditor/handlers/helpers"; -import { ObjectEditor } from "../widgets/ObjectEditorWidget/ObjectEditorWidget"; - -export const ObjectField = (props: FieldProps) => { - const { - schema, - formData = {}, - onChange, - name, - idSchema, - formContext, - } = props; - const DefaultObjectField = getDefaultRegistry().fields.ObjectField; - - // Let the default field render for root or fixed-schema objects - let isFreeForm = false; - if ("additionalProperties" in schema || !("properties" in schema)) { - isFreeForm = true; - } - - if (idSchema?.$id === "root" || !isFreeForm) { - // TODO : We need to create better one - return ; - } - - const fieldKey = generateHandleId(idSchema.$id ?? ""); - const { nodeId } = formContext; - - return ( - - ); -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/index.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/index.ts deleted file mode 100644 index 6f826495d1..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/fields/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { RegistryFieldsType } from "@rjsf/utils"; -import { CredentialsField } from "./CredentialField/CredentialField"; -import { AnyOfField } from "./AnyOfField/AnyOfField"; -import { ObjectField } from "./ObjectField"; - -export const fields: RegistryFieldsType = { - AnyOfField: AnyOfField, - credentials: CredentialsField, - ObjectField: ObjectField, -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/ArrayFieldTemplate.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/ArrayFieldTemplate.tsx deleted file mode 100644 index e9f708de5a..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/ArrayFieldTemplate.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from "react"; -import { ArrayFieldTemplateProps } from "@rjsf/utils"; -import { ArrayEditorWidget } from "../widgets/ArrayEditorWidget/ArrayEditorWidget"; - -function ArrayFieldTemplate(props: ArrayFieldTemplateProps) { - const { - items, - canAdd, - onAddClick, - disabled, - readonly, - formContext, - idSchema, - } = props; - const { nodeId } = formContext; - - return ( - - ); -} - -export default ArrayFieldTemplate; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/FieldTemplate.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/FieldTemplate.tsx deleted file mode 100644 index ebc8a1f038..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/FieldTemplate.tsx +++ /dev/null @@ -1,184 +0,0 @@ -import React, { useContext } from "react"; -import { FieldTemplateProps } from "@rjsf/utils"; -import { InfoIcon } from "@phosphor-icons/react"; -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/atoms/Tooltip/BaseTooltip"; -import { Text } from "@/components/atoms/Text/Text"; - -import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; -import { useNodeStore } from "@/app/(platform)/build/stores/nodeStore"; -import { generateHandleId } from "@/app/(platform)/build/components/FlowEditor/handlers/helpers"; -import { getTypeDisplayInfo } from "@/app/(platform)/build/components/FlowEditor/nodes/helpers"; -import { ArrayEditorContext } from "../widgets/ArrayEditorWidget/ArrayEditorContext"; -import { - isCredentialFieldSchema, - toDisplayName, - getCredentialProviderFromSchema, -} from "../fields/CredentialField/helpers"; -import { cn } from "@/lib/utils"; -import { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api"; -import { BlockUIType } from "@/lib/autogpt-server-api"; -import NodeHandle from "@/app/(platform)/build/components/FlowEditor/handlers/NodeHandle"; -import { getFieldErrorKey } from "../utils/helpers"; - -const FieldTemplate: React.FC = ({ - id: fieldId, - label, - required, - description, - children, - schema, - formContext, - uiSchema, -}) => { - const { isInputConnected } = useEdgeStore(); - const { nodeId, showHandles = true, size = "small" } = formContext; - const uiType = formContext.uiType; - - const showAdvanced = useNodeStore( - (state) => state.nodeAdvancedStates[nodeId] ?? false, - ); - - const nodeErrors = useNodeStore((state) => { - const node = state.nodes.find((n) => n.id === nodeId); - return node?.data?.errors; - }); - - const { isArrayItem, arrayFieldHandleId } = useContext(ArrayEditorContext); - - const isAnyOf = - Array.isArray((schema as any)?.anyOf) && !(schema as any)?.enum; - const isOneOf = Array.isArray((schema as any)?.oneOf); - const isCredential = isCredentialFieldSchema(schema); - const suppressHandle = isAnyOf || isOneOf; - - let handleId = null; - if (!isArrayItem) { - if (uiType === BlockUIType.AGENT) { - const parts = fieldId.split("_"); - const filtered = parts.filter( - (p) => p !== "root" && p !== "properties" && p.length > 0, - ); - handleId = filtered.join("_") || ""; - } else { - handleId = generateHandleId(fieldId); - } - } else { - handleId = arrayFieldHandleId; - } - - const isConnected = showHandles ? isInputConnected(nodeId, handleId) : false; - - if (!showAdvanced && schema.advanced === true && !isConnected) { - return null; - } - - const fromAnyOf = - Boolean((uiSchema as any)?.["ui:options"]?.fromAnyOf) || - Boolean((formContext as any)?.fromAnyOf); - - const { displayType, colorClass } = getTypeDisplayInfo(schema); - - let credentialProvider = null; - if (isCredential) { - credentialProvider = getCredentialProviderFromSchema( - useNodeStore.getState().getHardCodedValues(nodeId), - schema as BlockIOCredentialsSubSchema, - ); - } - if (formContext.uiType === BlockUIType.NOTE) { - return
    {children}
    ; - } - - // Size-based styling - let shouldShowHandle = - showHandles && !suppressHandle && !fromAnyOf && !isCredential; - - // We do not want handle for output block's name field - if (uiType === BlockUIType.OUTPUT && fieldId === "root_name") { - shouldShowHandle = false; - } - - const fieldErrorKey = getFieldErrorKey(fieldId); - const fieldError = - nodeErrors?.[fieldErrorKey] || - nodeErrors?.[fieldErrorKey.replace(/_/g, ".")] || - nodeErrors?.[fieldErrorKey.replace(/\./g, "_")] || - null; - - return ( -
    - {!isAnyOf && !fromAnyOf && label && ( - - )} - {(isAnyOf || !isConnected) && ( -
    - {children} -
    - )} - {fieldError && ( - - {fieldError} - - )} -
    - ); -}; - -export default FieldTemplate; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/index.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/index.ts deleted file mode 100644 index 203526cd75..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/templates/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import ArrayFieldTemplate from "./ArrayFieldTemplate"; -import FieldTemplate from "./FieldTemplate"; - -const NoSubmitButton = () => null; - -export const templates = { - FieldTemplate, - ButtonTemplates: { SubmitButton: NoSubmitButton }, - ArrayFieldTemplate, -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorContext.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorContext.tsx deleted file mode 100644 index 09fe11bc94..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorContext.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { createContext } from "react"; - -export const ArrayEditorContext = createContext<{ - isArrayItem: boolean; - arrayFieldHandleId: string; - isConnected: boolean; -}>({ - isArrayItem: false, - arrayFieldHandleId: "", - isConnected: false, -}); diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorWidget.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorWidget.tsx deleted file mode 100644 index 01a2af2e40..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ArrayEditorWidget/ArrayEditorWidget.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { ArrayFieldTemplateItemType, RJSFSchema } from "@rjsf/utils"; -import { ArrayEditorContext } from "./ArrayEditorContext"; -import { Button } from "@/components/atoms/Button/Button"; -import { PlusIcon, XIcon } from "@phosphor-icons/react"; -import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; -import { - generateHandleId, - HandleIdType, -} from "@/app/(platform)/build/components/FlowEditor/handlers/helpers"; - -export interface ArrayEditorProps { - items?: ArrayFieldTemplateItemType[]; - nodeId: string; - canAdd: boolean | undefined; - onAddClick?: () => void; - disabled: boolean | undefined; - readonly: boolean | undefined; - id: string; -} - -export const ArrayEditorWidget = ({ - items, - nodeId, - canAdd, - onAddClick, - disabled, - readonly, - id: fieldId, -}: ArrayEditorProps) => { - const { isInputConnected } = useEdgeStore(); - - return ( -
    -
    -
    - {items?.map((element) => { - const arrayFieldHandleId = generateHandleId( - fieldId, - [element.index.toString()], - HandleIdType.ARRAY, - ); - const isConnected = isInputConnected(nodeId, arrayFieldHandleId); - return ( -
    - - {element.children} - - - {element.hasRemove && - !readonly && - !disabled && - !isConnected && ( - - )} -
    - ); - })} -
    -
    - - {canAdd && !readonly && !disabled && ( - - )} -
    - ); -}; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ObjectEditorWidget/ObjectEditorWidget.tsx b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ObjectEditorWidget/ObjectEditorWidget.tsx deleted file mode 100644 index 80d504421d..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/ObjectEditorWidget/ObjectEditorWidget.tsx +++ /dev/null @@ -1,183 +0,0 @@ -"use client"; - -import React from "react"; -import { Plus, X } from "lucide-react"; -import { Text } from "@/components/atoms/Text/Text"; -import { Button } from "@/components/atoms/Button/Button"; -import { Input } from "@/components/atoms/Input/Input"; -import NodeHandle from "@/app/(platform)/build/components/FlowEditor/handlers/NodeHandle"; -import { useEdgeStore } from "@/app/(platform)/build/stores/edgeStore"; -import { - generateHandleId, - HandleIdType, - parseKeyValueHandleId, -} from "@/app/(platform)/build/components/FlowEditor/handlers/helpers"; - -export interface ObjectEditorProps { - id: string; - value?: Record; - onChange?: (value: Record) => void; - placeholder?: string; - disabled?: boolean; - className?: string; - nodeId: string; - fieldKey: string; -} - -export const ObjectEditor = React.forwardRef( - ( - { - id: parentFieldId, - value = {}, - onChange, - placeholder = "Enter value", - disabled = false, - className, - nodeId, - }, - ref, - ) => { - const getAllHandleIdsOfANode = useEdgeStore( - (state) => state.getAllHandleIdsOfANode, - ); - const setProperty = (key: string, propertyValue: any) => { - if (!onChange) return; - - const newData: Record = { ...value }; - if (propertyValue === undefined || propertyValue === "") { - delete newData[key]; - } else { - newData[key] = propertyValue; - } - onChange(newData); - }; - - const addProperty = () => { - if (!onChange) return; - onChange({ ...value, [""]: "" }); - }; - - const removeProperty = (key: string) => { - if (!onChange) return; - const newData = { ...value }; - delete newData[key]; - onChange(newData); - }; - - const updateKey = (oldKey: string, newKey: string) => { - if (!onChange || oldKey === newKey) return; - - const propertyValue = value[oldKey]; - const newData: Record = { ...value }; - delete newData[oldKey]; - newData[newKey] = propertyValue; - onChange(newData); - }; - - const hasEmptyKeys = Object.keys(value).some((key) => key.trim() === ""); - - const { isInputConnected } = useEdgeStore(); - - const allHandleIdsOfANode = getAllHandleIdsOfANode(nodeId); - const allKeyValueHandleIdsOfANode = allHandleIdsOfANode.filter((handleId) => - handleId.includes("_#_"), - ); - allKeyValueHandleIdsOfANode.forEach((handleId) => { - const key = parseKeyValueHandleId(handleId, HandleIdType.KEY_VALUE); - if (!value[key]) { - value[key] = null; - } - }); - - // Note: ObjectEditor is always used in node context, so showHandles is always true - // If you need to use it in dialog context, you'll need to pass showHandles via props - const showHandles = true; - - return ( -
    - {Object.entries(value).map(([key, propertyValue], idx) => { - const handleId = generateHandleId( - parentFieldId, - [key], - HandleIdType.KEY_VALUE, - ); - const isDynamicPropertyConnected = isInputConnected(nodeId, handleId); - - return ( -
    -
    - {showHandles && ( - - )} - - #{key.trim() === "" ? "" : key} - - - (string) - -
    - {!isDynamicPropertyConnected && ( -
    - updateKey(key, e.target.value)} - placeholder="Key" - wrapperClassName="mb-0" - disabled={disabled} - /> - setProperty(key, e.target.value)} - placeholder={placeholder} - wrapperClassName="mb-0" - disabled={disabled} - /> - -
    - )} -
    - ); - })} - - -
    - ); - }, -); - -ObjectEditor.displayName = "ObjectEditor"; diff --git a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/index.ts b/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/index.ts deleted file mode 100644 index 3788e74fbf..0000000000 --- a/autogpt_platform/frontend/src/components/renderers/input-renderer/widgets/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { RegistryWidgetsType } from "@rjsf/utils"; -import { SelectWidget } from "./SelectWidget"; -import { TextInputWidget } from "./TextInputWidget/TextInputWidget"; -import { SwitchWidget } from "./SwitchWidget"; -import { FileWidget } from "./FileWidget"; -import { DateInputWidget } from "./DateInputWidget"; -import { TimeInputWidget } from "./TimeInputWidget"; -import { DateTimeInputWidget } from "./DateTimeInputWidget"; - -export const widgets: RegistryWidgetsType = { - TextWidget: TextInputWidget, - SelectWidget: SelectWidget, - CheckboxWidget: SwitchWidget, - FileWidget: FileWidget, - DateWidget: DateInputWidget, - TimeWidget: TimeInputWidget, - DateTimeWidget: DateTimeInputWidget, -}; diff --git a/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts b/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts index 185ebf92b4..03232ede30 100644 --- a/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts +++ b/autogpt_platform/frontend/src/lib/dexie/draft-utils.ts @@ -1,5 +1,6 @@ import type { CustomNode } from "@/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode"; import type { CustomEdge } from "@/app/(platform)/build/components/FlowEditor/edges/CustomEdge"; +import isEqual from "lodash/isEqual"; export function cleanNode(node: CustomNode) { return { @@ -31,3 +32,81 @@ export function cleanNodes(nodes: CustomNode[]) { export function cleanEdges(edges: CustomEdge[]) { return edges.map(cleanEdge); } + +export interface DraftDiff { + nodes: { + added: number; + removed: number; + modified: number; + }; + edges: { + added: number; + removed: number; + modified: number; + }; +} + +/** + * Calculate the diff between draft and current nodes/edges. + * - Added: items in draft but not in current (will be restored) + * - Removed: items in current but not in draft (will be removed if draft is loaded) + * - Modified: items with same ID but different content + */ +export function calculateDraftDiff( + draftNodes: CustomNode[], + draftEdges: CustomEdge[], + currentNodes: CustomNode[], + currentEdges: CustomEdge[], +): DraftDiff { + const draftNodeIds = new Set(draftNodes.map((n) => n.id)); + const currentNodeIds = new Set(currentNodes.map((n) => n.id)); + const draftEdgeIds = new Set(draftEdges.map((e) => e.id)); + const currentEdgeIds = new Set(currentEdges.map((e) => e.id)); + + // Nodes diff + const nodesAdded = draftNodes.filter((n) => !currentNodeIds.has(n.id)).length; + const nodesRemoved = currentNodes.filter( + (n) => !draftNodeIds.has(n.id), + ).length; + + // Modified nodes: same ID but different content + const draftNodeMap = new Map(draftNodes.map((n) => [n.id, cleanNode(n)])); + const currentNodeMap = new Map(currentNodes.map((n) => [n.id, cleanNode(n)])); + let nodesModified = 0; + for (const [id, draftClean] of draftNodeMap) { + const currentClean = currentNodeMap.get(id); + if (currentClean && !isEqual(draftClean, currentClean)) { + nodesModified++; + } + } + + // Edges diff + const edgesAdded = draftEdges.filter((e) => !currentEdgeIds.has(e.id)).length; + const edgesRemoved = currentEdges.filter( + (e) => !draftEdgeIds.has(e.id), + ).length; + + // Modified edges: same ID but different content + const draftEdgeMap = new Map(draftEdges.map((e) => [e.id, cleanEdge(e)])); + const currentEdgeMap = new Map(currentEdges.map((e) => [e.id, cleanEdge(e)])); + let edgesModified = 0; + for (const [id, draftClean] of draftEdgeMap) { + const currentClean = currentEdgeMap.get(id); + if (currentClean && !isEqual(draftClean, currentClean)) { + edgesModified++; + } + } + + return { + nodes: { + added: nodesAdded, + removed: nodesRemoved, + modified: nodesModified, + }, + edges: { + added: edgesAdded, + removed: edgesRemoved, + modified: edgesModified, + }, + }; +} From df87867625b786832c1ee7c2887c555c107161ca Mon Sep 17 00:00:00 2001 From: Swifty Date: Wed, 7 Jan 2026 09:25:10 +0100 Subject: [PATCH 029/160] extracted frontend changes out of the hackathon/copilot branch --- .../AgentOnboardingCredentials.tsx | 2 +- .../app/(no-navbar)/onboarding/5-run/page.tsx | 2 +- .../app/(platform)/PlatformLayoutContent.tsx | 46 ++ .../auth/integrations/setup-wizard/page.tsx | 2 +- .../components/AgentOutputs/AgentOutputs.tsx | 10 +- .../NodeOutput/components/ContentRenderer.tsx | 4 +- .../NodeDataViewer/NodeDataViewer.tsx | 8 +- .../NodeDataViewer/useNodeDataViewer.ts | 6 +- .../components/WebhookDisclaimer.tsx | 10 +- .../legacy-builder/ExpandableOutputDialog.tsx | 4 +- .../components/legacy-builder/NodeInputs.tsx | 2 +- .../frontend/src/app/(platform)/chat/page.tsx | 136 ++++-- .../src/app/(platform)/chat/useChatPage.ts | 10 +- .../frontend/src/app/(platform)/layout.tsx | 9 +- .../AgentInputsReadOnly.tsx | 4 +- .../ModalRunSection/ModalRunSection.tsx | 4 +- .../SelectedRunView/components/RunOutputs.tsx | 4 +- .../SelectedTemplateView.tsx | 4 +- .../SelectedTriggerView.tsx | 4 +- .../components/agent-run-draft-view.tsx | 4 +- .../components/agent-run-output-view.tsx | 4 +- .../chat/sessions/[sessionId]/stream/route.ts | 87 +++- autogpt_platform/frontend/src/app/globals.css | 46 ++ .../src/components/atoms/Input/Input.tsx | 7 +- .../src/components/contextual/Chat/Chat.tsx | 136 ++++++ .../components/contextual/Chat/ChatDrawer.tsx | 77 +++ .../AgentCarouselMessage.tsx | 119 +++++ .../AgentInputsSetup/AgentInputsSetup.tsx | 145 ++++++ .../AgentInputsSetup/useAgentInputsSetup.ts | 38 ++ .../AuthPromptWidget/AuthPromptWidget.tsx | 120 +++++ .../ChatContainer/ChatContainer.tsx | 89 ++++ .../createStreamEventDispatcher.ts | 60 +++ .../Chat/components/ChatContainer/helpers.ts | 379 +++++++++++++++ .../useChatContainer.handlers.ts | 224 +++++++++ .../ChatContainer/useChatContainer.ts | 210 ++++++++ .../ChatCredentialsSetup.tsx | 149 ++++++ .../useChatCredentialsSetup.ts | 36 ++ .../ChatErrorState/ChatErrorState.tsx | 30 ++ .../Chat/components/ChatInput/ChatInput.tsx | 64 +++ .../Chat/components/ChatInput/useChatInput.ts | 60 +++ .../ChatLoadingState/ChatLoadingState.tsx | 19 + .../components/ChatMessage/ChatMessage.tsx | 295 +++++++++++ .../components/ChatMessage/useChatMessage.ts | 113 +++++ .../ExecutionStartedMessage.tsx | 90 ++++ .../MarkdownContent/MarkdownContent.tsx | 215 +++++++++ .../MessageBubble/MessageBubble.tsx | 56 +++ .../components/MessageList/MessageList.tsx | 119 +++++ .../components/MessageList/useMessageList.ts | 28 ++ .../NoResultsMessage/NoResultsMessage.tsx | 64 +++ .../QuickActionsWelcome.tsx | 92 ++++ .../SessionsDrawer/SessionsDrawer.tsx | 136 ++++++ .../StreamingMessage/StreamingMessage.tsx | 42 ++ .../StreamingMessage/useStreamingMessage.ts | 25 + .../ThinkingMessage/ThinkingMessage.tsx | 70 +++ .../ToolCallMessage/ToolCallMessage.tsx | 24 + .../ToolResponseMessage.tsx | 260 ++++++++++ .../src/components/contextual/Chat/helpers.ts | 73 +++ .../src/components/contextual/Chat/useChat.ts | 119 +++++ .../contextual/Chat/useChatDrawer.ts | 17 + .../contextual/Chat/useChatSession.ts | 271 +++++++++++ .../contextual/Chat/useChatStream.ts | 248 ++++++++++ .../contextual/Chat/usePageContext.ts | 42 ++ .../CredentialsInputs/CredentialsInputs.tsx | 228 +++++++++ .../APIKeyCredentialsModal.tsx | 129 +++++ .../useAPIKeyCredentialsModal.ts | 82 ++++ .../CredentialRow/CredentialRow.tsx | 105 ++++ .../CredentialsSelect/CredentialsSelect.tsx | 86 ++++ .../DeleteConfirmationModal.tsx | 49 ++ .../HotScopedCredentialsModal.tsx | 242 ++++++++++ .../OAuthWaitingModal/OAuthWaitingModal.tsx | 30 ++ .../PasswordCredentialsModal.tsx | 138 ++++++ .../contextual/CredentialsInputs/helpers.ts | 102 ++++ .../CredentialsInputs/useCredentialsInput.ts | 315 ++++++++++++ .../GoogleDrivePicker/GoogleDrivePicker.tsx | 2 +- .../components/OutputActions.tsx | 106 ++++ .../OutputRenderers/components/OutputItem.tsx | 30 ++ .../contextual/OutputRenderers/index.ts | 20 + .../renderers/CodeRenderer.tsx | 135 ++++++ .../renderers/ImageRenderer.tsx | 209 ++++++++ .../renderers/JSONRenderer.tsx | 204 ++++++++ .../renderers/MarkdownRenderer.tsx | 456 ++++++++++++++++++ .../renderers/TextRenderer.tsx | 71 +++ .../renderers/VideoRenderer.tsx | 169 +++++++ .../contextual/OutputRenderers/types.ts | 60 +++ .../contextual/OutputRenderers/utils/copy.ts | 115 +++++ .../OutputRenderers/utils/download.ts | 74 +++ .../RunAgentInputs/RunAgentInputs.tsx | 364 ++++++++++++++ .../RunAgentInputs/useRunAgentInputs.ts | 19 + .../layout/Navbar/components/NavbarLink.tsx | 16 +- 89 files changed, 8228 insertions(+), 101 deletions(-) create mode 100644 autogpt_platform/frontend/src/app/(platform)/PlatformLayoutContent.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/Chat.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/ChatDrawer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/AgentCarouselMessage/AgentCarouselMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/AgentInputsSetup.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/useAgentInputsSetup.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/AuthPromptWidget/AuthPromptWidget.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/ChatContainer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/createStreamEventDispatcher.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.handlers.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/ChatCredentialsSetup.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/useChatCredentialsSetup.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatErrorState/ChatErrorState.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/ChatInput.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/useChatInput.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatLoadingState/ChatLoadingState.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/useChatMessage.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ExecutionStartedMessage/ExecutionStartedMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/MarkdownContent/MarkdownContent.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/MessageBubble/MessageBubble.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/MessageList.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/useMessageList.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/NoResultsMessage/NoResultsMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/QuickActionsWelcome/QuickActionsWelcome.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/SessionsDrawer/SessionsDrawer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/StreamingMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/useStreamingMessage.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ThinkingMessage/ThinkingMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ToolCallMessage/ToolCallMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/components/ToolResponseMessage/ToolResponseMessage.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/useChat.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/useChatDrawer.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/useChatSession.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/useChatStream.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/Chat/usePageContext.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/CredentialsInputs.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/APIKeyCredentialsModal.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/useAPIKeyCredentialsModal.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialRow/CredentialRow.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialsSelect/CredentialsSelect.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/DeleteConfirmationModal/DeleteConfirmationModal.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/HotScopedCredentialsModal/HotScopedCredentialsModal.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/OAuthWaitingModal/OAuthWaitingModal.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/PasswordCredentialsModal/PasswordCredentialsModal.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/helpers.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/CredentialsInputs/useCredentialsInput.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputActions.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputItem.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/index.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/CodeRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/ImageRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/JSONRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/MarkdownRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/TextRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/VideoRenderer.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/types.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/utils/copy.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/OutputRenderers/utils/download.ts create mode 100644 autogpt_platform/frontend/src/components/contextual/RunAgentInputs/RunAgentInputs.tsx create mode 100644 autogpt_platform/frontend/src/components/contextual/RunAgentInputs/useRunAgentInputs.ts diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/components/AgentOnboardingCredentials/AgentOnboardingCredentials.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/components/AgentOnboardingCredentials/AgentOnboardingCredentials.tsx index 3176ec7f70..f0c1d208a2 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/components/AgentOnboardingCredentials/AgentOnboardingCredentials.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/components/AgentOnboardingCredentials/AgentOnboardingCredentials.tsx @@ -1,6 +1,6 @@ -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; import { CredentialsMetaInput } from "@/app/api/__generated__/models/credentialsMetaInput"; import { GraphMeta } from "@/app/api/__generated__/models/graphMeta"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; import { useState } from "react"; import { getSchemaDefaultCredentials } from "../../helpers"; import { areAllCredentialsSet, getCredentialFields } from "./helpers"; diff --git a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx index 30e1b67090..db04278d80 100644 --- a/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx +++ b/autogpt_platform/frontend/src/app/(no-navbar)/onboarding/5-run/page.tsx @@ -1,12 +1,12 @@ "use client"; -import { RunAgentInputs } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs"; import { Card, CardContent, CardHeader, CardTitle, } from "@/components/__legacy__/ui/card"; +import { RunAgentInputs } from "@/components/contextual/RunAgentInputs/RunAgentInputs"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; import { CircleNotchIcon } from "@phosphor-icons/react/dist/ssr"; import { Play } from "lucide-react"; diff --git a/autogpt_platform/frontend/src/app/(platform)/PlatformLayoutContent.tsx b/autogpt_platform/frontend/src/app/(platform)/PlatformLayoutContent.tsx new file mode 100644 index 0000000000..eb980e7dcf --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/PlatformLayoutContent.tsx @@ -0,0 +1,46 @@ +"use client"; + +import { ChatDrawer } from "@/components/contextual/Chat/ChatDrawer"; +import { usePathname } from "next/navigation"; +import { Children, ReactNode } from "react"; + +interface PlatformLayoutContentProps { + children: ReactNode; +} + +export function PlatformLayoutContent({ + children, +}: PlatformLayoutContentProps) { + const pathname = usePathname(); + const isAuthPage = + pathname?.includes("/login") || pathname?.includes("/signup"); + + // Extract Navbar, AdminImpersonationBanner, and page content from children + const childrenArray = Children.toArray(children); + const navbar = childrenArray[0]; + const adminBanner = childrenArray[1]; + const pageContent = childrenArray.slice(2); + + // For login/signup pages, use a simpler layout that doesn't interfere with centering + if (isAuthPage) { + return ( +
    + {navbar} + {adminBanner} +
    {pageContent}
    +
    + ); + } + + // For logged-in pages, use the drawer layout + return ( +
    + {navbar} + {adminBanner} +
    + {pageContent} +
    + +
    + ); +} diff --git a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx index 3372772c89..32cd4c19e7 100644 --- a/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/auth/integrations/setup-wizard/page.tsx @@ -8,7 +8,7 @@ import { AuthCard } from "@/components/auth/AuthCard"; import { Text } from "@/components/atoms/Text/Text"; import { Button } from "@/components/atoms/Button/Button"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; import type { BlockIOCredentialsSubSchema, CredentialsMetaInput, diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx index de56bb46b8..a7a772dc90 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx @@ -1,11 +1,6 @@ import { BlockUIType } from "@/app/(platform)/build/components/types"; import { useGraphStore } from "@/app/(platform)/build/stores/graphStore"; import { useNodeStore } from "@/app/(platform)/build/stores/nodeStore"; -import { - globalRegistry, - OutputActions, - OutputItem, -} from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; import { Label } from "@/components/__legacy__/ui/label"; import { ScrollArea } from "@/components/__legacy__/ui/scroll-area"; import { @@ -23,6 +18,11 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; +import { + globalRegistry, + OutputActions, + OutputItem, +} from "@/components/contextual/OutputRenderers"; import { BookOpenIcon } from "@phosphor-icons/react"; import { useMemo } from "react"; import { useShallow } from "zustand/react/shallow"; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ContentRenderer.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ContentRenderer.tsx index 9cb1a62e3d..6571bc7b6f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ContentRenderer.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ContentRenderer.tsx @@ -1,7 +1,7 @@ "use client"; -import type { OutputMetadata } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; -import { globalRegistry } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +import type { OutputMetadata } from "@/components/contextual/OutputRenderers"; +import { globalRegistry } from "@/components/contextual/OutputRenderers"; export const TextRenderer: React.FC<{ value: any; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx index c505282e7b..bf2d5fe07b 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx @@ -1,7 +1,3 @@ -import { - OutputActions, - OutputItem, -} from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; import { ScrollArea } from "@/components/__legacy__/ui/scroll-area"; import { Button } from "@/components/atoms/Button/Button"; import { Text } from "@/components/atoms/Text/Text"; @@ -11,6 +7,10 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/atoms/Tooltip/BaseTooltip"; +import { + OutputActions, + OutputItem, +} from "@/components/contextual/OutputRenderers"; import { Dialog } from "@/components/molecules/Dialog/Dialog"; import { beautifyString } from "@/lib/utils"; import { diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.ts b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.ts index 1adec625a0..d3c555970c 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.ts +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.ts @@ -1,6 +1,6 @@ -import type { OutputMetadata } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; -import { globalRegistry } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; -import { downloadOutputs } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers/utils/download"; +import type { OutputMetadata } from "@/components/contextual/OutputRenderers"; +import { globalRegistry } from "@/components/contextual/OutputRenderers"; +import { downloadOutputs } from "@/components/contextual/OutputRenderers/utils/download"; import { useToast } from "@/components/molecules/Toast/use-toast"; import { beautifyString } from "@/lib/utils"; import React, { useMemo, useState } from "react"; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/WebhookDisclaimer.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/WebhookDisclaimer.tsx index 044bf994ad..3083af8a69 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/WebhookDisclaimer.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/WebhookDisclaimer.tsx @@ -1,10 +1,10 @@ -import { Alert, AlertDescription } from "@/components/molecules/Alert/Alert"; -import { Text } from "@/components/atoms/Text/Text"; -import Link from "next/link"; import { useGetV2GetLibraryAgentByGraphId } from "@/app/api/__generated__/endpoints/library/library"; import { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; -import { useQueryStates, parseAsString } from "nuqs"; -import { isValidUUID } from "@/app/(platform)/chat/helpers"; +import { Text } from "@/components/atoms/Text/Text"; +import { isValidUUID } from "@/components/contextual/Chat/helpers"; +import { Alert, AlertDescription } from "@/components/molecules/Alert/Alert"; +import Link from "next/link"; +import { parseAsString, useQueryStates } from "nuqs"; export const WebhookDisclaimer = ({ nodeId }: { nodeId: string }) => { const [{ flowID }] = useQueryStates({ diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx index 98edbca2fb..1ccb3d1261 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/ExpandableOutputDialog.tsx @@ -1,9 +1,9 @@ -import type { OutputMetadata } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +import type { OutputMetadata } from "@/components/contextual/OutputRenderers"; import { globalRegistry, OutputActions, OutputItem, -} from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +} from "@/components/contextual/OutputRenderers"; import { Dialog } from "@/components/molecules/Dialog/Dialog"; import { beautifyString } from "@/lib/utils"; import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx index e9d077bde1..c87a879df1 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/NodeInputs.tsx @@ -3,7 +3,6 @@ import { CustomNodeData, } from "@/app/(platform)/build/components/legacy-builder/CustomNode/CustomNode"; import { NodeTableInput } from "@/app/(platform)/build/components/legacy-builder/NodeTableInput"; -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; import { Button } from "@/components/__legacy__/ui/button"; import { Calendar } from "@/components/__legacy__/ui/calendar"; import { LocalValuedInput } from "@/components/__legacy__/ui/input"; @@ -28,6 +27,7 @@ import { SelectValue, } from "@/components/__legacy__/ui/select"; import { Switch } from "@/components/atoms/Switch/Switch"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; import { GoogleDrivePickerInput } from "@/components/contextual/GoogleDrivePicker/GoogleDrivePickerInput"; import { BlockIOArraySubSchema, diff --git a/autogpt_platform/frontend/src/app/(platform)/chat/page.tsx b/autogpt_platform/frontend/src/app/(platform)/chat/page.tsx index 09e530c296..2890f4e9a2 100644 --- a/autogpt_platform/frontend/src/app/(platform)/chat/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/chat/page.tsx @@ -1,16 +1,24 @@ "use client"; -import { useChatPage } from "./useChatPage"; -import { ChatContainer } from "./components/ChatContainer/ChatContainer"; -import { ChatErrorState } from "./components/ChatErrorState/ChatErrorState"; -import { ChatLoadingState } from "./components/ChatLoadingState/ChatLoadingState"; -import { useGetFlag, Flag } from "@/services/feature-flags/use-get-flag"; -import { useRouter } from "next/navigation"; +import { Button } from "@/components/__legacy__/ui/button"; +import { scrollbarStyles } from "@/components/styles/scrollbars"; +import { cn } from "@/lib/utils"; +import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; +import { X } from "@phosphor-icons/react"; +import { usePathname, useRouter } from "next/navigation"; import { useEffect } from "react"; +import { Drawer } from "vaul"; + +import { ChatContainer } from "@/components/contextual/Chat/components/ChatContainer/ChatContainer"; +import { ChatErrorState } from "@/components/contextual/Chat/components/ChatErrorState/ChatErrorState"; +import { ChatLoadingState } from "@/components/contextual/Chat/components/ChatLoadingState/ChatLoadingState"; +import { useChatPage } from "./useChatPage"; export default function ChatPage() { const isChatEnabled = useGetFlag(Flag.CHAT); const router = useRouter(); + const pathname = usePathname(); + const isOpen = pathname === "/chat"; const { messages, isLoading, @@ -28,56 +36,88 @@ export default function ChatPage() { } }, [isChatEnabled, router]); + function handleOpenChange(open: boolean) { + if (!open) { + router.replace("/marketplace"); + } + } + if (isChatEnabled === null || isChatEnabled === false) { return null; } return ( -
    - {/* Header */} -
    -
    -

    Chat

    - {sessionId && ( -
    - - Session: {sessionId.slice(0, 8)}... - - -
    + + + -
    + > + {/* Header */} +
    +
    + + Chat + +
    + {sessionId && ( + <> + + Session: {sessionId.slice(0, 8)}... + + + + )} + +
    +
    +
    - {/* Main Content */} -
    - {/* Loading State - show when explicitly loading/creating OR when we don't have a session yet and no error */} - {(isLoading || isCreating || (!sessionId && !error)) && ( - - )} + {/* Main Content */} +
    + {/* Loading State - show when explicitly loading/creating OR when we don't have a session yet and no error */} + {(isLoading || isCreating || (!sessionId && !error)) && ( + + )} - {/* Error State */} - {error && !isLoading && ( - - )} + {/* Error State */} + {error && !isLoading && ( + + )} - {/* Session Content */} - {sessionId && !isLoading && !error && ( - - )} -
    -
    + {/* Session Content */} + {sessionId && !isLoading && !error && ( + + )} + + + + ); } diff --git a/autogpt_platform/frontend/src/app/(platform)/chat/useChatPage.ts b/autogpt_platform/frontend/src/app/(platform)/chat/useChatPage.ts index 4f1db5471a..70c86de2da 100644 --- a/autogpt_platform/frontend/src/app/(platform)/chat/useChatPage.ts +++ b/autogpt_platform/frontend/src/app/(platform)/chat/useChatPage.ts @@ -1,11 +1,11 @@ "use client"; -import { useEffect, useRef } from "react"; -import { useRouter, useSearchParams } from "next/navigation"; -import { toast } from "sonner"; -import { useChatSession } from "@/app/(platform)/chat/useChatSession"; +import { useChatSession } from "@/components/contextual/Chat/useChatSession"; +import { useChatStream } from "@/components/contextual/Chat/useChatStream"; import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; -import { useChatStream } from "@/app/(platform)/chat/useChatStream"; +import { useRouter, useSearchParams } from "next/navigation"; +import { useEffect, useRef } from "react"; +import { toast } from "sonner"; export function useChatPage() { const router = useRouter(); diff --git a/autogpt_platform/frontend/src/app/(platform)/layout.tsx b/autogpt_platform/frontend/src/app/(platform)/layout.tsx index 2975e7d097..3cb7283b53 100644 --- a/autogpt_platform/frontend/src/app/(platform)/layout.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/layout.tsx @@ -1,13 +1,14 @@ import { Navbar } from "@/components/layout/Navbar/Navbar"; -import { AdminImpersonationBanner } from "./admin/components/AdminImpersonationBanner"; import { ReactNode } from "react"; +import { AdminImpersonationBanner } from "./admin/components/AdminImpersonationBanner"; +import { PlatformLayoutContent } from "./PlatformLayoutContent"; export default function PlatformLayout({ children }: { children: ReactNode }) { return ( -
    + -
    {children}
    -
    + {children} + ); } diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/AgentInputsReadOnly/AgentInputsReadOnly.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/AgentInputsReadOnly/AgentInputsReadOnly.tsx index bc9918c2bb..5ced0992f9 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/AgentInputsReadOnly/AgentInputsReadOnly.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/AgentInputsReadOnly/AgentInputsReadOnly.tsx @@ -3,8 +3,8 @@ import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { Text } from "@/components/atoms/Text/Text"; import type { CredentialsMetaInput } from "@/lib/autogpt-server-api/types"; -import { CredentialsInput } from "../CredentialsInputs/CredentialsInputs"; -import { RunAgentInputs } from "../RunAgentInputs/RunAgentInputs"; +import { CredentialsInput } from "../../../../../../../../../../components/contextual/CredentialsInputs/CredentialsInputs"; +import { RunAgentInputs } from "../../../../../../../../../../components/contextual/RunAgentInputs/RunAgentInputs"; import { getAgentCredentialsFields, getAgentInputFields } from "./helpers"; type Props = { diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentModal/components/ModalRunSection/ModalRunSection.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentModal/components/ModalRunSection/ModalRunSection.tsx index f3b02bfbc9..30483ac58f 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentModal/components/ModalRunSection/ModalRunSection.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentModal/components/ModalRunSection/ModalRunSection.tsx @@ -1,7 +1,7 @@ -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; import { Input } from "@/components/atoms/Input/Input"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; import { InformationTooltip } from "@/components/molecules/InformationTooltip/InformationTooltip"; -import { RunAgentInputs } from "../../../RunAgentInputs/RunAgentInputs"; +import { RunAgentInputs } from "../../../../../../../../../../../../components/contextual/RunAgentInputs/RunAgentInputs"; import { useRunAgentModalContext } from "../../context"; import { ModalSection } from "../ModalSection/ModalSection"; import { WebhookTriggerBanner } from "../WebhookTriggerBanner/WebhookTriggerBanner"; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunOutputs.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunOutputs.tsx index 20e218abb2..9824283c40 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunOutputs.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedRunView/components/RunOutputs.tsx @@ -3,12 +3,12 @@ import type { OutputMetadata, OutputRenderer, -} from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +} from "@/components/contextual/OutputRenderers"; import { globalRegistry, OutputActions, OutputItem, -} from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers"; +} from "@/components/contextual/OutputRenderers"; import React, { useMemo } from "react"; type OutputsRecord = Record>; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx index b5ecb7ae5c..03621ad582 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTemplateView/SelectedTemplateView.tsx @@ -4,12 +4,12 @@ import type { GraphExecutionMeta } from "@/app/api/__generated__/models/graphExe import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { Input } from "@/components/atoms/Input/Input"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { CredentialsInput } from "../../../../../../../../../../components/contextual/CredentialsInputs/CredentialsInputs"; +import { RunAgentInputs } from "../../../../../../../../../../components/contextual/RunAgentInputs/RunAgentInputs"; import { getAgentCredentialsFields, getAgentInputFields, } from "../../modals/AgentInputsReadOnly/helpers"; -import { CredentialsInput } from "../../modals/CredentialsInputs/CredentialsInputs"; -import { RunAgentInputs } from "../../modals/RunAgentInputs/RunAgentInputs"; import { LoadingSelectedContent } from "../LoadingSelectedContent"; import { RunDetailCard } from "../RunDetailCard/RunDetailCard"; import { RunDetailHeader } from "../RunDetailHeader/RunDetailHeader"; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx index f92c91112e..168adca7dc 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/SelectedTriggerView/SelectedTriggerView.tsx @@ -3,12 +3,12 @@ import type { LibraryAgent } from "@/app/api/__generated__/models/libraryAgent"; import { Input } from "@/components/atoms/Input/Input"; import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { CredentialsInput } from "../../../../../../../../../../components/contextual/CredentialsInputs/CredentialsInputs"; +import { RunAgentInputs } from "../../../../../../../../../../components/contextual/RunAgentInputs/RunAgentInputs"; import { getAgentCredentialsFields, getAgentInputFields, } from "../../modals/AgentInputsReadOnly/helpers"; -import { CredentialsInput } from "../../modals/CredentialsInputs/CredentialsInputs"; -import { RunAgentInputs } from "../../modals/RunAgentInputs/RunAgentInputs"; import { LoadingSelectedContent } from "../LoadingSelectedContent"; import { RunDetailCard } from "../RunDetailCard/RunDetailCard"; import { RunDetailHeader } from "../RunDetailHeader/RunDetailHeader"; diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view.tsx index 5f57032618..afc3b64a29 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-draft-view.tsx @@ -12,8 +12,6 @@ import { } from "@/lib/autogpt-server-api"; import { useBackendAPI } from "@/lib/autogpt-server-api/context"; -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; -import { RunAgentInputs } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/RunAgentInputs/RunAgentInputs"; import { ScheduleTaskDialog } from "@/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/cron-scheduler-dialog"; import ActionButtonGroup from "@/components/__legacy__/action-button-group"; import type { ButtonAction } from "@/components/__legacy__/types"; @@ -30,6 +28,8 @@ import { } from "@/components/__legacy__/ui/icons"; import { Input } from "@/components/__legacy__/ui/input"; import { Button } from "@/components/atoms/Button/Button"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; +import { RunAgentInputs } from "@/components/contextual/RunAgentInputs/RunAgentInputs"; import { InformationTooltip } from "@/components/molecules/InformationTooltip/InformationTooltip"; import { useToast, diff --git a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-output-view.tsx b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-output-view.tsx index e55914b4ea..668ac2e215 100644 --- a/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-output-view.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/OldAgentLibraryView/components/agent-run-output-view.tsx @@ -11,12 +11,12 @@ import { } from "@/components/__legacy__/ui/card"; import LoadingBox from "@/components/__legacy__/ui/loading"; -import type { OutputMetadata } from "../../NewAgentLibraryView/components/selected-views/OutputRenderers"; +import type { OutputMetadata } from "../../../../../../../../components/contextual/OutputRenderers"; import { globalRegistry, OutputActions, OutputItem, -} from "../../NewAgentLibraryView/components/selected-views/OutputRenderers"; +} from "../../../../../../../../components/contextual/OutputRenderers"; export function AgentRunOutputView({ agentRunOutputs, diff --git a/autogpt_platform/frontend/src/app/api/chat/sessions/[sessionId]/stream/route.ts b/autogpt_platform/frontend/src/app/api/chat/sessions/[sessionId]/stream/route.ts index ca33483587..d63eed0ca2 100644 --- a/autogpt_platform/frontend/src/app/api/chat/sessions/[sessionId]/stream/route.ts +++ b/autogpt_platform/frontend/src/app/api/chat/sessions/[sessionId]/stream/route.ts @@ -4,8 +4,91 @@ import { NextRequest } from "next/server"; /** * SSE Proxy for chat streaming. - * EventSource doesn't support custom headers, so we need a server-side proxy - * that adds authentication and forwards the SSE stream to the client. + * Supports POST with context (page content + URL) in the request body. + */ +export async function POST( + request: NextRequest, + { params }: { params: Promise<{ sessionId: string }> }, +) { + const { sessionId } = await params; + + try { + const body = await request.json(); + const { message, is_user_message, context } = body; + + if (!message) { + return new Response( + JSON.stringify({ error: "Missing message parameter" }), + { status: 400, headers: { "Content-Type": "application/json" } }, + ); + } + + // Get auth token from server-side session + const token = await getServerAuthToken(); + + // Build backend URL + const backendUrl = environment.getAGPTServerBaseUrl(); + const streamUrl = new URL( + `/api/chat/sessions/${sessionId}/stream`, + backendUrl, + ); + + // Forward request to backend with auth header + const headers: Record = { + "Content-Type": "application/json", + Accept: "text/event-stream", + "Cache-Control": "no-cache", + Connection: "keep-alive", + }; + + if (token) { + headers["Authorization"] = `Bearer ${token}`; + } + + const response = await fetch(streamUrl.toString(), { + method: "POST", + headers, + body: JSON.stringify({ + message, + is_user_message: is_user_message ?? true, + context: context || null, + }), + }); + + if (!response.ok) { + const error = await response.text(); + return new Response(error, { + status: response.status, + headers: { "Content-Type": "application/json" }, + }); + } + + // Return the SSE stream directly + return new Response(response.body, { + headers: { + "Content-Type": "text/event-stream", + "Cache-Control": "no-cache, no-transform", + Connection: "keep-alive", + "X-Accel-Buffering": "no", + }, + }); + } catch (error) { + console.error("SSE proxy error:", error); + return new Response( + JSON.stringify({ + error: "Failed to connect to chat service", + detail: error instanceof Error ? error.message : String(error), + }), + { + status: 500, + headers: { "Content-Type": "application/json" }, + }, + ); + } +} + +/** + * Legacy GET endpoint for backward compatibility */ export async function GET( request: NextRequest, diff --git a/autogpt_platform/frontend/src/app/globals.css b/autogpt_platform/frontend/src/app/globals.css index 1f782f753b..0625c26082 100644 --- a/autogpt_platform/frontend/src/app/globals.css +++ b/autogpt_platform/frontend/src/app/globals.css @@ -141,6 +141,52 @@ } } +@keyframes shimmer { + 0% { + background-position: -200% 0; + } + 100% { + background-position: 200% 0; + } +} + +@keyframes l3 { + 25% { + background-position: + 0 0, + 100% 100%, + 100% calc(100% - 5px); + } + 50% { + background-position: + 0 100%, + 100% 100%, + 0 calc(100% - 5px); + } + 75% { + background-position: + 0 100%, + 100% 0, + 100% 5px; + } +} + +.loader { + width: 80px; + height: 70px; + border: 5px solid rgb(241 245 249); + padding: 0 8px; + box-sizing: border-box; + background: + linear-gradient(rgb(15 23 42) 0 0) 0 0/8px 20px, + linear-gradient(rgb(15 23 42) 0 0) 100% 0/8px 20px, + radial-gradient(farthest-side, rgb(15 23 42) 90%, #0000) 0 5px/8px 8px + content-box, + transparent; + background-repeat: no-repeat; + animation: l3 2s infinite linear; +} + input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; diff --git a/autogpt_platform/frontend/src/components/atoms/Input/Input.tsx b/autogpt_platform/frontend/src/components/atoms/Input/Input.tsx index f59c01e77d..711f6cc6c6 100644 --- a/autogpt_platform/frontend/src/components/atoms/Input/Input.tsx +++ b/autogpt_platform/frontend/src/components/atoms/Input/Input.tsx @@ -92,7 +92,7 @@ export function Input({ className={cn( baseStyles, errorStyles, - "-mb-1 h-auto min-h-[2.875rem] rounded-medium", + "-mb-1 h-auto min-h-[2.875rem] rounded-full", // Size variants for textarea size === "small" && [ "min-h-[2.25rem]", // 36px minimum @@ -107,6 +107,11 @@ export function Input({ )} placeholder={placeholder || label} onChange={handleTextareaChange} + onKeyDown={ + props.onKeyDown as + | React.KeyboardEventHandler + | undefined + } rows={props.rows || 3} {...(hideLabel ? { "aria-label": label } : {})} id={props.id} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/Chat.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/Chat.tsx new file mode 100644 index 0000000000..6d8769b27b --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/Chat.tsx @@ -0,0 +1,136 @@ +"use client"; + +import { Button } from "@/components/atoms/Button/Button"; +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; +import { List } from "@phosphor-icons/react"; +import React, { useState } from "react"; +import { ChatContainer } from "./components/ChatContainer/ChatContainer"; +import { ChatErrorState } from "./components/ChatErrorState/ChatErrorState"; +import { ChatLoadingState } from "./components/ChatLoadingState/ChatLoadingState"; +import { SessionsDrawer } from "./components/SessionsDrawer/SessionsDrawer"; +import { useChat } from "./useChat"; + +export interface ChatProps { + className?: string; + headerTitle?: React.ReactNode; + showHeader?: boolean; + showSessionInfo?: boolean; + showNewChatButton?: boolean; + onNewChat?: () => void; + headerActions?: React.ReactNode; +} + +export function Chat({ + className, + headerTitle = "AutoGPT Copilot", + showHeader = true, + showSessionInfo = true, + showNewChatButton = true, + onNewChat, + headerActions, +}: ChatProps) { + const { + messages, + isLoading, + isCreating, + error, + sessionId, + createSession, + clearSession, + refreshSession, + loadSession, + } = useChat(); + + const [isSessionsDrawerOpen, setIsSessionsDrawerOpen] = useState(false); + + const handleNewChat = () => { + clearSession(); + onNewChat?.(); + }; + + const handleSelectSession = async (sessionId: string) => { + try { + await loadSession(sessionId); + } catch (err) { + console.error("Failed to load session:", err); + } + }; + + return ( +
    + {/* Header */} + {showHeader && ( +
    +
    +
    + + {typeof headerTitle === "string" ? ( + + {headerTitle} + + ) : ( + headerTitle + )} +
    +
    + {showSessionInfo && sessionId && ( + <> + {showNewChatButton && ( + + )} + + )} + {headerActions} +
    +
    +
    + )} + + {/* Main Content */} +
    + {/* Loading State - show when explicitly loading/creating OR when we don't have a session yet and no error */} + {(isLoading || isCreating || (!sessionId && !error)) && ( + + )} + + {/* Error State */} + {error && !isLoading && ( + + )} + + {/* Session Content */} + {sessionId && !isLoading && !error && ( + + )} +
    + + {/* Sessions Drawer */} + setIsSessionsDrawerOpen(false)} + onSelectSession={handleSelectSession} + currentSessionId={sessionId} + /> +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/ChatDrawer.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/ChatDrawer.tsx new file mode 100644 index 0000000000..4dc79ece92 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/ChatDrawer.tsx @@ -0,0 +1,77 @@ +"use client"; + +import { scrollbarStyles } from "@/components/styles/scrollbars"; +import { cn } from "@/lib/utils"; +import { Flag, useGetFlag } from "@/services/feature-flags/use-get-flag"; +import { X } from "@phosphor-icons/react"; +import { useEffect, useState } from "react"; +import { Drawer } from "vaul"; +import { Chat } from "./Chat"; +import { useChatDrawer } from "./useChatDrawer"; + +interface ChatDrawerProps { + blurBackground?: boolean; +} + +export function ChatDrawer({ blurBackground = true }: ChatDrawerProps) { + const [isMounted, setIsMounted] = useState(false); + const isChatEnabled = useGetFlag(Flag.CHAT); + const { isOpen, close } = useChatDrawer(); + + useEffect(() => { + setIsMounted(true); + }, []); + + useEffect(() => { + if (isChatEnabled === false && isOpen) { + close(); + } + }, [isChatEnabled, isOpen, close]); + + // Don't render on server - vaul drawer accesses document during SSR + if (!isMounted || isChatEnabled === null || isChatEnabled === false) { + return null; + } + + return ( + { + if (!open) { + close(); + } + }} + direction="right" + modal={false} + > + {blurBackground && isOpen && ( +
    + )} + e.stopPropagation()} + onInteractOutside={blurBackground ? close : undefined} + className={cn( + "fixed right-0 top-[60px] z-50 flex h-[calc(100vh-60px)] w-1/2 flex-col border-l border-zinc-200 bg-white", + scrollbarStyles, + )} + > + + AutoGPT Copilot + + } + headerActions={ + + } + /> + + + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentCarouselMessage/AgentCarouselMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentCarouselMessage/AgentCarouselMessage.tsx new file mode 100644 index 0000000000..582b24de5e --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentCarouselMessage/AgentCarouselMessage.tsx @@ -0,0 +1,119 @@ +import { Button } from "@/components/atoms/Button/Button"; +import { Card } from "@/components/atoms/Card/Card"; +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; +import { ArrowRight, List, Robot } from "@phosphor-icons/react"; +import Image from "next/image"; + +export interface Agent { + id: string; + name: string; + description: string; + version?: number; + image_url?: string; +} + +export interface AgentCarouselMessageProps { + agents: Agent[]; + totalCount?: number; + onSelectAgent?: (agentId: string) => void; + className?: string; +} + +export function AgentCarouselMessage({ + agents, + totalCount, + onSelectAgent, + className, +}: AgentCarouselMessageProps) { + const displayCount = totalCount ?? agents.length; + + return ( +
    + {/* Header */} +
    +
    + +
    +
    + + Found {displayCount} {displayCount === 1 ? "Agent" : "Agents"} + + + Select an agent to view details or run it + +
    +
    + + {/* Agent Cards */} +
    + {agents.map((agent) => ( + +
    +
    + {agent.image_url ? ( + {`${agent.name} + ) : ( +
    + +
    + )} +
    +
    +
    + + {agent.name} + + {agent.version && ( + + v{agent.version} + + )} +
    + + {agent.description} + + {onSelectAgent && ( + + )} +
    +
    +
    + ))} +
    + + {totalCount && totalCount > agents.length && ( + + Showing {agents.length} of {totalCount} results + + )} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/AgentInputsSetup.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/AgentInputsSetup.tsx new file mode 100644 index 0000000000..9fdcd7b194 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/AgentInputsSetup.tsx @@ -0,0 +1,145 @@ +"use client"; + +import { Button } from "@/components/atoms/Button/Button"; +import { Card } from "@/components/atoms/Card/Card"; +import { Text } from "@/components/atoms/Text/Text"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; +import { RunAgentInputs } from "@/components/contextual/RunAgentInputs/RunAgentInputs"; +import type { + BlockIOCredentialsSubSchema, + BlockIOSubSchema, +} from "@/lib/autogpt-server-api/types"; +import { cn } from "@/lib/utils"; +import { PlayIcon, WarningIcon } from "@phosphor-icons/react"; +import { useMemo } from "react"; +import { useAgentInputsSetup } from "./useAgentInputsSetup"; + +interface Props { + agentName?: string; + inputSchema: Record; + credentialsSchema?: Record; + message: string; + onRun: ( + inputs: Record, + credentials: Record, + ) => void; + onCancel?: () => void; + className?: string; +} + +export function AgentInputsSetup({ + agentName, + inputSchema, + credentialsSchema, + message, + onRun, + onCancel, + className, +}: Props) { + const { inputValues, setInputValue, credentialsValues, setCredentialsValue } = + useAgentInputsSetup(); + + const inputFields = Object.entries(inputSchema || {}); + const credentialFields = Object.entries(credentialsSchema || {}); + + const allRequiredInputsAreSet = useMemo(() => { + const requiredFields = Object.entries(inputSchema || {}).filter( + ([_, schema]) => !schema.hidden, + ); + return requiredFields.every(([key]) => { + const value = inputValues[key]; + return value !== undefined && value !== null && value !== ""; + }); + }, [inputSchema, inputValues]); + + const allCredentialsAreSet = useMemo(() => { + if (!credentialsSchema || Object.keys(credentialsSchema).length === 0) { + return true; + } + return Object.keys(credentialsSchema).every( + (key) => credentialsValues[key] !== undefined, + ); + }, [credentialsSchema, credentialsValues]); + + const canRun = allRequiredInputsAreSet && allCredentialsAreSet; + + function handleRun() { + if (canRun) { + onRun(inputValues, credentialsValues); + } + } + + return ( + +
    +
    + +
    +
    + + {agentName ? `Configure ${agentName}` : "Agent Configuration"} + + + {message} + + + {inputFields.length > 0 && ( +
    + {inputFields.map(([key, schema]) => { + if (schema.hidden) return null; + const defaultValue = (schema as any).default; + return ( + setInputValue(key, value)} + /> + ); + })} +
    + )} + + {credentialFields.length > 0 && ( +
    + {credentialFields.map(([key, schema]) => ( + + setCredentialsValue(key, value) + } + siblingInputs={inputValues} + /> + ))} +
    + )} + +
    + + {onCancel && ( + + )} +
    +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/useAgentInputsSetup.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/useAgentInputsSetup.ts new file mode 100644 index 0000000000..e36a3f3c5d --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/AgentInputsSetup/useAgentInputsSetup.ts @@ -0,0 +1,38 @@ +import type { CredentialsMetaInput } from "@/lib/autogpt-server-api/types"; +import { useState } from "react"; + +export function useAgentInputsSetup() { + const [inputValues, setInputValues] = useState>({}); + const [credentialsValues, setCredentialsValues] = useState< + Record + >({}); + + function setInputValue(key: string, value: any) { + setInputValues((prev) => ({ + ...prev, + [key]: value, + })); + } + + function setCredentialsValue(key: string, value?: CredentialsMetaInput) { + if (value) { + setCredentialsValues((prev) => ({ + ...prev, + [key]: value, + })); + } else { + setCredentialsValues((prev) => { + const next = { ...prev }; + delete next[key]; + return next; + }); + } + } + + return { + inputValues, + setInputValue, + credentialsValues, + setCredentialsValue, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/AuthPromptWidget/AuthPromptWidget.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/AuthPromptWidget/AuthPromptWidget.tsx new file mode 100644 index 0000000000..33f02e660f --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/AuthPromptWidget/AuthPromptWidget.tsx @@ -0,0 +1,120 @@ +"use client"; + +import { Button } from "@/components/atoms/Button/Button"; +import { cn } from "@/lib/utils"; +import { ShieldIcon, SignInIcon, UserPlusIcon } from "@phosphor-icons/react"; +import { useRouter } from "next/navigation"; + +export interface AuthPromptWidgetProps { + message: string; + sessionId: string; + agentInfo?: { + graph_id: string; + name: string; + trigger_type: string; + }; + returnUrl?: string; + className?: string; +} + +export function AuthPromptWidget({ + message, + sessionId, + agentInfo, + returnUrl = "/chat", + className, +}: AuthPromptWidgetProps) { + const router = useRouter(); + + function handleSignIn() { + if (typeof window !== "undefined") { + localStorage.setItem("pending_chat_session", sessionId); + if (agentInfo) { + localStorage.setItem("pending_agent_setup", JSON.stringify(agentInfo)); + } + } + const returnUrlWithSession = `${returnUrl}?session_id=${sessionId}`; + const encodedReturnUrl = encodeURIComponent(returnUrlWithSession); + router.push(`/login?returnUrl=${encodedReturnUrl}`); + } + + function handleSignUp() { + if (typeof window !== "undefined") { + localStorage.setItem("pending_chat_session", sessionId); + if (agentInfo) { + localStorage.setItem("pending_agent_setup", JSON.stringify(agentInfo)); + } + } + const returnUrlWithSession = `${returnUrl}?session_id=${sessionId}`; + const encodedReturnUrl = encodeURIComponent(returnUrlWithSession); + router.push(`/signup?returnUrl=${encodedReturnUrl}`); + } + + return ( +
    +
    +
    +
    + +
    +
    +

    + Authentication Required +

    +

    + Sign in to set up and manage agents +

    +
    +
    + +
    +

    {message}

    + {agentInfo && ( +
    +

    + Ready to set up:{" "} + {agentInfo.name} +

    +

    + Type:{" "} + {agentInfo.trigger_type} +

    +
    + )} +
    + +
    + + +
    + +
    + Your chat session will be preserved after signing in +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/ChatContainer.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/ChatContainer.tsx new file mode 100644 index 0000000000..63667d8c55 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/ChatContainer.tsx @@ -0,0 +1,89 @@ +import type { SessionDetailResponse } from "@/app/api/__generated__/models/sessionDetailResponse"; +import { cn } from "@/lib/utils"; +import { useCallback } from "react"; +import { usePageContext } from "../../usePageContext"; +import { ChatInput } from "../ChatInput/ChatInput"; +import { MessageList } from "../MessageList/MessageList"; +import { QuickActionsWelcome } from "../QuickActionsWelcome/QuickActionsWelcome"; +import { useChatContainer } from "./useChatContainer"; + +export interface ChatContainerProps { + sessionId: string | null; + initialMessages: SessionDetailResponse["messages"]; + onRefreshSession: () => Promise; + className?: string; +} + +export function ChatContainer({ + sessionId, + initialMessages, + onRefreshSession, + className, +}: ChatContainerProps) { + const { messages, streamingChunks, isStreaming, sendMessage } = + useChatContainer({ + sessionId, + initialMessages, + onRefreshSession, + }); + const { capturePageContext } = usePageContext(); + + // Wrap sendMessage to automatically capture page context + const sendMessageWithContext = useCallback( + async (content: string, isUserMessage: boolean = true) => { + const context = capturePageContext(); + await sendMessage(content, isUserMessage, context); + }, + [sendMessage, capturePageContext], + ); + + const quickActions = [ + "Find agents for social media management", + "Show me agents for content creation", + "Help me automate my business", + "What can you help me with?", + ]; + + return ( +
    + {/* Messages or Welcome Screen */} + {messages.length === 0 ? ( + + ) : ( + + )} + + {/* Input - Always visible */} +
    + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/createStreamEventDispatcher.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/createStreamEventDispatcher.ts new file mode 100644 index 0000000000..55a44af8c7 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/createStreamEventDispatcher.ts @@ -0,0 +1,60 @@ +import type { StreamChunk } from "@/components/contextual/Chat/useChatStream"; +import { toast } from "sonner"; +import type { HandlerDependencies } from "./useChatContainer.handlers"; +import { + handleError, + handleLoginNeeded, + handleStreamEnd, + handleTextChunk, + handleTextEnded, + handleToolCallStart, + handleToolResponse, +} from "./useChatContainer.handlers"; + +export function createStreamEventDispatcher( + deps: HandlerDependencies, +): (chunk: StreamChunk) => void { + return function dispatchStreamEvent(chunk: StreamChunk): void { + switch (chunk.type) { + case "text_chunk": + handleTextChunk(chunk, deps); + break; + + case "text_ended": + handleTextEnded(chunk, deps); + break; + + case "tool_call_start": + handleToolCallStart(chunk, deps); + break; + + case "tool_response": + handleToolResponse(chunk, deps); + break; + + case "login_needed": + case "need_login": + handleLoginNeeded(chunk, deps); + break; + + case "stream_end": + handleStreamEnd(chunk, deps); + break; + + case "error": + handleError(chunk, deps); + // Show toast at dispatcher level to avoid circular dependencies + toast.error("Chat Error", { + description: chunk.message || chunk.content || "An error occurred", + }); + break; + + case "usage": + // TODO: Handle usage for display + break; + + default: + console.warn("Unknown stream chunk type:", chunk); + } + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/helpers.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/helpers.ts new file mode 100644 index 0000000000..fdf1d9332d --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/helpers.ts @@ -0,0 +1,379 @@ +import type { ToolResult } from "@/types/chat"; +import type { ChatMessageData } from "../ChatMessage/useChatMessage"; + +export function removePageContext(content: string): string { + // Remove "Page URL: ..." pattern (case insensitive, handles various formats) + let cleaned = content.replace(/Page URL:\s*[^\n\r]*/gi, ""); + + // Find "User Message:" marker to preserve the actual user message + const userMessageMatch = cleaned.match(/User Message:\s*([\s\S]*)$/i); + if (userMessageMatch) { + // If we found "User Message:", extract everything after it + cleaned = userMessageMatch[1]; + } else { + // If no "User Message:" marker, remove "Page Content:" and everything after it + cleaned = cleaned.replace(/Page Content:[\s\S]*$/gi, ""); + } + + // Clean up extra whitespace and newlines + cleaned = cleaned.replace(/\n\s*\n\s*\n+/g, "\n\n").trim(); + return cleaned; +} + +export function createUserMessage(content: string): ChatMessageData { + return { + type: "message", + role: "user", + content, + timestamp: new Date(), + }; +} + +export function filterAuthMessages( + messages: ChatMessageData[], +): ChatMessageData[] { + return messages.filter( + (msg) => msg.type !== "credentials_needed" && msg.type !== "login_needed", + ); +} + +export function isValidMessage(msg: unknown): msg is Record { + if (typeof msg !== "object" || msg === null) { + return false; + } + const m = msg as Record; + if (typeof m.role !== "string") { + return false; + } + if (m.content !== undefined && typeof m.content !== "string") { + return false; + } + return true; +} + +export function isToolCallArray(value: unknown): value is Array<{ + id: string; + type: string; + function: { name: string; arguments: string }; +}> { + if (!Array.isArray(value)) { + return false; + } + return value.every( + (item) => + typeof item === "object" && + item !== null && + "id" in item && + typeof item.id === "string" && + "type" in item && + typeof item.type === "string" && + "function" in item && + typeof item.function === "object" && + item.function !== null && + "name" in item.function && + typeof item.function.name === "string" && + "arguments" in item.function && + typeof item.function.arguments === "string", + ); +} + +export function isAgentArray(value: unknown): value is Array<{ + id: string; + name: string; + description: string; + version?: number; + image_url?: string; +}> { + if (!Array.isArray(value)) { + return false; + } + return value.every( + (item) => + typeof item === "object" && + item !== null && + "id" in item && + typeof item.id === "string" && + "name" in item && + typeof item.name === "string" && + "description" in item && + typeof item.description === "string" && + (!("version" in item) || typeof item.version === "number") && + (!("image_url" in item) || typeof item.image_url === "string"), + ); +} + +export function extractJsonFromErrorMessage( + message: string, +): Record | null { + try { + const start = message.indexOf("{"); + if (start === -1) { + return null; + } + let depth = 0; + let end = -1; + for (let i = start; i < message.length; i++) { + const ch = message[i]; + if (ch === "{") { + depth++; + } else if (ch === "}") { + depth--; + if (depth === 0) { + end = i; + break; + } + } + } + if (end === -1) { + return null; + } + const jsonStr = message.slice(start, end + 1); + return JSON.parse(jsonStr) as Record; + } catch { + return null; + } +} + +export function parseToolResponse( + result: ToolResult, + toolId: string, + toolName: string, + timestamp?: Date, +): ChatMessageData | null { + let parsedResult: Record | null = null; + try { + parsedResult = + typeof result === "string" + ? JSON.parse(result) + : (result as Record); + } catch { + parsedResult = null; + } + if (parsedResult && typeof parsedResult === "object") { + const responseType = parsedResult.type as string | undefined; + if (responseType === "no_results") { + return { + type: "tool_response", + toolId, + toolName, + result: (parsedResult.message as string) || "No results found", + success: true, + timestamp: timestamp || new Date(), + }; + } + if (responseType === "agent_carousel") { + const agentsData = parsedResult.agents; + if (isAgentArray(agentsData)) { + return { + type: "agent_carousel", + toolName: "agent_carousel", + agents: agentsData, + totalCount: parsedResult.total_count as number | undefined, + timestamp: timestamp || new Date(), + }; + } else { + console.warn("Invalid agents array in agent_carousel response"); + } + } + if (responseType === "execution_started") { + return { + type: "execution_started", + toolName: "execution_started", + executionId: (parsedResult.execution_id as string) || "", + agentName: (parsedResult.graph_name as string) || undefined, + message: parsedResult.message as string | undefined, + libraryAgentLink: parsedResult.library_agent_link as string | undefined, + timestamp: timestamp || new Date(), + }; + } + if (responseType === "need_login") { + return { + type: "login_needed", + toolName: "login_needed", + message: + (parsedResult.message as string) || + "Please sign in to use chat and agent features", + sessionId: (parsedResult.session_id as string) || "", + agentInfo: parsedResult.agent_info as + | { + graph_id: string; + name: string; + trigger_type: string; + } + | undefined, + timestamp: timestamp || new Date(), + }; + } + if (responseType === "setup_requirements") { + return null; + } + } + return { + type: "tool_response", + toolId, + toolName, + result, + success: true, + timestamp: timestamp || new Date(), + }; +} + +export function isUserReadiness( + value: unknown, +): value is { missing_credentials?: Record } { + return ( + typeof value === "object" && + value !== null && + (!("missing_credentials" in value) || + typeof (value as any).missing_credentials === "object") + ); +} + +export function isMissingCredentials( + value: unknown, +): value is Record> { + if (typeof value !== "object" || value === null) { + return false; + } + return Object.values(value).every((v) => typeof v === "object" && v !== null); +} + +export function isSetupInfo(value: unknown): value is { + user_readiness?: Record; + agent_name?: string; +} { + return ( + typeof value === "object" && + value !== null && + (!("user_readiness" in value) || + typeof (value as any).user_readiness === "object") && + (!("agent_name" in value) || typeof (value as any).agent_name === "string") + ); +} + +export function extractCredentialsNeeded( + parsedResult: Record, + toolName: string = "run_agent", +): ChatMessageData | null { + try { + const setupInfo = parsedResult?.setup_info as + | Record + | undefined; + const userReadiness = setupInfo?.user_readiness as + | Record + | undefined; + const missingCreds = userReadiness?.missing_credentials as + | Record> + | undefined; + if (missingCreds && Object.keys(missingCreds).length > 0) { + const agentName = (setupInfo?.agent_name as string) || "this block"; + const credentials = Object.values(missingCreds).map((credInfo) => ({ + provider: (credInfo.provider as string) || "unknown", + providerName: + (credInfo.provider_name as string) || + (credInfo.provider as string) || + "Unknown Provider", + credentialType: + (credInfo.type as + | "api_key" + | "oauth2" + | "user_password" + | "host_scoped") || "api_key", + title: + (credInfo.title as string) || + `${(credInfo.provider_name as string) || (credInfo.provider as string)} credentials`, + scopes: credInfo.scopes as string[] | undefined, + })); + return { + type: "credentials_needed", + toolName, + credentials, + message: `To run ${agentName}, you need to add ${credentials.length === 1 ? "credentials" : `${credentials.length} credentials`}.`, + agentName, + timestamp: new Date(), + }; + } + return null; + } catch (err) { + console.error("Failed to extract credentials from setup info:", err); + return null; + } +} + +export function extractInputsNeeded( + parsedResult: Record, + toolName: string = "run_agent", +): ChatMessageData | null { + try { + const setupInfo = parsedResult?.setup_info as + | Record + | undefined; + const requirements = setupInfo?.requirements as + | Record + | undefined; + const inputs = requirements?.inputs as + | Array> + | undefined; + const credentials = requirements?.credentials as + | Array> + | undefined; + + if (!inputs || inputs.length === 0) { + return null; + } + + const agentName = (setupInfo?.agent_name as string) || "this agent"; + const agentId = parsedResult?.graph_id as string | undefined; + const graphVersion = parsedResult?.graph_version as number | undefined; + + const inputSchema: Record = {}; + inputs.forEach((input) => { + const name = input.name as string; + if (name) { + inputSchema[name] = { + title: input.name as string, + description: (input.description as string) || "", + type: (input.type as string) || "string", + default: input.default, + required: (input.required as boolean) || false, + enum: input.options, + format: input.format, + }; + } + }); + + const credentialsSchema: Record = {}; + if (credentials && credentials.length > 0) { + credentials.forEach((cred) => { + const id = cred.id as string; + if (id) { + credentialsSchema[id] = { + type: "object", + properties: {}, + credentials_provider: [cred.provider as string], + credentials_types: [(cred.type as string) || "api_key"], + credentials_scopes: cred.scopes as string[] | undefined, + }; + } + }); + } + + return { + type: "inputs_needed", + toolName, + agentName, + agentId, + graphVersion, + inputSchema, + credentialsSchema: + Object.keys(credentialsSchema).length > 0 + ? credentialsSchema + : undefined, + message: `Please provide the required inputs to run ${agentName}.`, + timestamp: new Date(), + }; + } catch (err) { + console.error("Failed to extract inputs from setup info:", err); + return null; + } +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.handlers.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.handlers.ts new file mode 100644 index 0000000000..260241a46d --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.handlers.ts @@ -0,0 +1,224 @@ +import type { StreamChunk } from "@/components/contextual/Chat/useChatStream"; +import type { Dispatch, MutableRefObject, SetStateAction } from "react"; +import type { ChatMessageData } from "../ChatMessage/useChatMessage"; +import { + extractCredentialsNeeded, + extractInputsNeeded, + parseToolResponse, +} from "./helpers"; + +export interface HandlerDependencies { + setHasTextChunks: Dispatch>; + setStreamingChunks: Dispatch>; + streamingChunksRef: MutableRefObject; + setMessages: Dispatch>; + setIsStreamingInitiated: Dispatch>; + sessionId: string; +} + +export function handleTextChunk(chunk: StreamChunk, deps: HandlerDependencies) { + if (!chunk.content) return; + deps.setHasTextChunks(true); + deps.setStreamingChunks((prev) => { + const updated = [...prev, chunk.content!]; + deps.streamingChunksRef.current = updated; + return updated; + }); +} + +export function handleTextEnded( + _chunk: StreamChunk, + deps: HandlerDependencies, +) { + console.log("[Text Ended] Saving streamed text as assistant message"); + const completedText = deps.streamingChunksRef.current.join(""); + if (completedText.trim()) { + const assistantMessage: ChatMessageData = { + type: "message", + role: "assistant", + content: completedText, + timestamp: new Date(), + }; + deps.setMessages((prev) => [...prev, assistantMessage]); + } + deps.setStreamingChunks([]); + deps.streamingChunksRef.current = []; + deps.setHasTextChunks(false); + deps.setIsStreamingInitiated(false); +} + +export function handleToolCallStart( + chunk: StreamChunk, + deps: HandlerDependencies, +) { + const toolCallMessage: ChatMessageData = { + type: "tool_call", + toolId: chunk.tool_id || `tool-${Date.now()}-${chunk.idx || 0}`, + toolName: chunk.tool_name || "Executing...", + arguments: chunk.arguments || {}, + timestamp: new Date(), + }; + deps.setMessages((prev) => [...prev, toolCallMessage]); + console.log("[Tool Call Start]", { + toolId: toolCallMessage.toolId, + toolName: toolCallMessage.toolName, + timestamp: new Date().toISOString(), + }); +} + +export function handleToolResponse( + chunk: StreamChunk, + deps: HandlerDependencies, +) { + console.log("[Tool Response] Received:", { + toolId: chunk.tool_id, + toolName: chunk.tool_name, + timestamp: new Date().toISOString(), + }); + let toolName = chunk.tool_name || "unknown"; + if (!chunk.tool_name || chunk.tool_name === "unknown") { + deps.setMessages((prev) => { + const matchingToolCall = [...prev] + .reverse() + .find( + (msg) => msg.type === "tool_call" && msg.toolId === chunk.tool_id, + ); + if (matchingToolCall && matchingToolCall.type === "tool_call") { + toolName = matchingToolCall.toolName; + } + return prev; + }); + } + const responseMessage = parseToolResponse( + chunk.result!, + chunk.tool_id!, + toolName, + new Date(), + ); + if (!responseMessage) { + let parsedResult: Record | null = null; + try { + parsedResult = + typeof chunk.result === "string" + ? JSON.parse(chunk.result) + : (chunk.result as Record); + } catch { + parsedResult = null; + } + if ( + (chunk.tool_name === "run_agent" || chunk.tool_name === "run_block") && + chunk.success && + parsedResult?.type === "setup_requirements" + ) { + const inputsMessage = extractInputsNeeded(parsedResult, chunk.tool_name); + if (inputsMessage) { + deps.setMessages((prev) => [...prev, inputsMessage]); + } + const credentialsMessage = extractCredentialsNeeded( + parsedResult, + chunk.tool_name, + ); + if (credentialsMessage) { + deps.setMessages((prev) => [...prev, credentialsMessage]); + } + } + return; + } + deps.setMessages((prev) => { + const toolCallIndex = prev.findIndex( + (msg) => msg.type === "tool_call" && msg.toolId === chunk.tool_id, + ); + if (toolCallIndex !== -1) { + const newMessages = [...prev]; + newMessages[toolCallIndex] = responseMessage; + console.log( + "[Tool Response] Replaced tool_call with matching tool_id:", + chunk.tool_id, + "at index:", + toolCallIndex, + ); + return newMessages; + } + console.warn( + "[Tool Response] No tool_call found with tool_id:", + chunk.tool_id, + "appending instead", + ); + return [...prev, responseMessage]; + }); +} + +export function handleLoginNeeded( + chunk: StreamChunk, + deps: HandlerDependencies, +) { + const loginNeededMessage: ChatMessageData = { + type: "login_needed", + toolName: "login_needed", + message: chunk.message || "Please sign in to use chat and agent features", + sessionId: chunk.session_id || deps.sessionId, + agentInfo: chunk.agent_info, + timestamp: new Date(), + }; + deps.setMessages((prev) => [...prev, loginNeededMessage]); +} + +export function handleStreamEnd( + _chunk: StreamChunk, + deps: HandlerDependencies, +) { + const completedContent = deps.streamingChunksRef.current.join(""); + // Only save message if there are uncommitted chunks + // (text_ended already saved if there were tool calls) + if (completedContent.trim()) { + console.log( + "[Stream End] Saving remaining streamed text as assistant message", + ); + const assistantMessage: ChatMessageData = { + type: "message", + role: "assistant", + content: completedContent, + timestamp: new Date(), + }; + deps.setMessages((prev) => { + const updated = [...prev, assistantMessage]; + console.log("[Stream End] Final state:", { + localMessages: updated.map((m) => ({ + type: m.type, + ...(m.type === "message" && { + role: m.role, + contentLength: m.content.length, + }), + ...(m.type === "tool_call" && { + toolId: m.toolId, + toolName: m.toolName, + }), + ...(m.type === "tool_response" && { + toolId: m.toolId, + toolName: m.toolName, + success: m.success, + }), + })), + streamingChunks: deps.streamingChunksRef.current, + timestamp: new Date().toISOString(), + }); + return updated; + }); + } else { + console.log("[Stream End] No uncommitted chunks, message already saved"); + } + deps.setStreamingChunks([]); + deps.streamingChunksRef.current = []; + deps.setHasTextChunks(false); + deps.setIsStreamingInitiated(false); + console.log("[Stream End] Stream complete, messages in local state"); +} + +export function handleError(chunk: StreamChunk, deps: HandlerDependencies) { + const errorMessage = chunk.message || chunk.content || "An error occurred"; + console.error("Stream error:", errorMessage); + deps.setIsStreamingInitiated(false); + deps.setHasTextChunks(false); + deps.setStreamingChunks([]); + deps.streamingChunksRef.current = []; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.ts new file mode 100644 index 0000000000..5ce5aaf254 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatContainer/useChatContainer.ts @@ -0,0 +1,210 @@ +import type { SessionDetailResponse } from "@/app/api/__generated__/models/sessionDetailResponse"; +import { useChatStream } from "@/components/contextual/Chat/useChatStream"; +import { useCallback, useMemo, useRef, useState } from "react"; +import { toast } from "sonner"; +import type { ChatMessageData } from "../ChatMessage/useChatMessage"; +import { createStreamEventDispatcher } from "./createStreamEventDispatcher"; +import { + createUserMessage, + filterAuthMessages, + isToolCallArray, + isValidMessage, + parseToolResponse, + removePageContext, +} from "./helpers"; + +interface UseChatContainerArgs { + sessionId: string | null; + initialMessages: SessionDetailResponse["messages"]; + onRefreshSession: () => Promise; +} + +export function useChatContainer({ + sessionId, + initialMessages, +}: UseChatContainerArgs) { + const [messages, setMessages] = useState([]); + const [streamingChunks, setStreamingChunks] = useState([]); + const [hasTextChunks, setHasTextChunks] = useState(false); + const [isStreamingInitiated, setIsStreamingInitiated] = useState(false); + const streamingChunksRef = useRef([]); + const { error, sendMessage: sendStreamMessage } = useChatStream(); + const isStreaming = isStreamingInitiated || hasTextChunks; + + const allMessages = useMemo(() => { + const processedInitialMessages: ChatMessageData[] = []; + // Map to track tool calls by their ID so we can look up tool names for tool responses + const toolCallMap = new Map(); + + for (const msg of initialMessages) { + if (!isValidMessage(msg)) { + console.warn("Invalid message structure from backend:", msg); + continue; + } + + let content = String(msg.content || ""); + const role = String(msg.role || "assistant").toLowerCase(); + const toolCalls = msg.tool_calls; + const timestamp = msg.timestamp + ? new Date(msg.timestamp as string) + : undefined; + + // Remove page context from user messages when loading existing sessions + if (role === "user") { + content = removePageContext(content); + // Skip user messages that become empty after removing page context + if (!content.trim()) { + continue; + } + processedInitialMessages.push({ + type: "message", + role: "user", + content, + timestamp, + }); + continue; + } + + // Handle assistant messages first (before tool messages) to build tool call map + if (role === "assistant") { + // Strip tags from content + content = content + .replace(/[\s\S]*?<\/thinking>/gi, "") + .trim(); + + // If assistant has tool calls, create tool_call messages for each + if (toolCalls && isToolCallArray(toolCalls) && toolCalls.length > 0) { + for (const toolCall of toolCalls) { + const toolName = toolCall.function.name; + const toolId = toolCall.id; + // Store tool name for later lookup + toolCallMap.set(toolId, toolName); + + try { + const args = JSON.parse(toolCall.function.arguments || "{}"); + processedInitialMessages.push({ + type: "tool_call", + toolId, + toolName, + arguments: args, + timestamp, + }); + } catch (err) { + console.warn("Failed to parse tool call arguments:", err); + processedInitialMessages.push({ + type: "tool_call", + toolId, + toolName, + arguments: {}, + timestamp, + }); + } + } + // Only add assistant message if there's content after stripping thinking tags + if (content.trim()) { + processedInitialMessages.push({ + type: "message", + role: "assistant", + content, + timestamp, + }); + } + } else if (content.trim()) { + // Assistant message without tool calls, but with content + processedInitialMessages.push({ + type: "message", + role: "assistant", + content, + timestamp, + }); + } + continue; + } + + // Handle tool messages - look up tool name from tool call map + if (role === "tool") { + const toolCallId = (msg.tool_call_id as string) || ""; + const toolName = toolCallMap.get(toolCallId) || "unknown"; + const toolResponse = parseToolResponse( + content, + toolCallId, + toolName, + timestamp, + ); + if (toolResponse) { + processedInitialMessages.push(toolResponse); + } + continue; + } + + // Handle other message types (system, etc.) + if (content.trim()) { + processedInitialMessages.push({ + type: "message", + role: role as "user" | "assistant" | "system", + content, + timestamp, + }); + } + } + + return [...processedInitialMessages, ...messages]; + }, [initialMessages, messages]); + + const sendMessage = useCallback( + async function sendMessage( + content: string, + isUserMessage: boolean = true, + context?: { url: string; content: string }, + ) { + if (!sessionId) { + console.error("Cannot send message: no session ID"); + return; + } + if (isUserMessage) { + const userMessage = createUserMessage(content); + setMessages((prev) => [...filterAuthMessages(prev), userMessage]); + } else { + setMessages((prev) => filterAuthMessages(prev)); + } + setStreamingChunks([]); + streamingChunksRef.current = []; + setHasTextChunks(false); + setIsStreamingInitiated(true); + const dispatcher = createStreamEventDispatcher({ + setHasTextChunks, + setStreamingChunks, + streamingChunksRef, + setMessages, + sessionId, + setIsStreamingInitiated, + }); + try { + await sendStreamMessage( + sessionId, + content, + dispatcher, + isUserMessage, + context, + ); + } catch (err) { + console.error("Failed to send message:", err); + setIsStreamingInitiated(false); + const errorMessage = + err instanceof Error ? err.message : "Failed to send message"; + toast.error("Failed to send message", { + description: errorMessage, + }); + } + }, + [sessionId, sendStreamMessage], + ); + + return { + messages: allMessages, + streamingChunks, + isStreaming, + error, + sendMessage, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/ChatCredentialsSetup.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/ChatCredentialsSetup.tsx new file mode 100644 index 0000000000..0e677c06bc --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/ChatCredentialsSetup.tsx @@ -0,0 +1,149 @@ +import { Text } from "@/components/atoms/Text/Text"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; +import type { BlockIOCredentialsSubSchema } from "@/lib/autogpt-server-api"; +import { cn } from "@/lib/utils"; +import { CheckIcon, RobotIcon, WarningIcon } from "@phosphor-icons/react"; +import { useEffect, useRef } from "react"; +import { useChatCredentialsSetup } from "./useChatCredentialsSetup"; + +export interface CredentialInfo { + provider: string; + providerName: string; + credentialType: "api_key" | "oauth2" | "user_password" | "host_scoped"; + title: string; + scopes?: string[]; +} + +interface Props { + credentials: CredentialInfo[]; + agentName?: string; + message: string; + onAllCredentialsComplete: () => void; + onCancel: () => void; + className?: string; +} + +function createSchemaFromCredentialInfo( + credential: CredentialInfo, +): BlockIOCredentialsSubSchema { + return { + type: "object", + properties: {}, + credentials_provider: [credential.provider], + credentials_types: [credential.credentialType], + credentials_scopes: credential.scopes, + discriminator: undefined, + discriminator_mapping: undefined, + discriminator_values: undefined, + }; +} + +export function ChatCredentialsSetup({ + credentials, + agentName: _agentName, + message, + onAllCredentialsComplete, + onCancel: _onCancel, +}: Props) { + const { selectedCredentials, isAllComplete, handleCredentialSelect } = + useChatCredentialsSetup(credentials); + + // Track if we've already called completion to prevent double calls + const hasCalledCompleteRef = useRef(false); + + // Reset the completion flag when credentials change (new credential setup flow) + useEffect( + function resetCompletionFlag() { + hasCalledCompleteRef.current = false; + }, + [credentials], + ); + + // Auto-call completion when all credentials are configured + useEffect( + function autoCompleteWhenReady() { + if (isAllComplete && !hasCalledCompleteRef.current) { + hasCalledCompleteRef.current = true; + onAllCredentialsComplete(); + } + }, + [isAllComplete, onAllCredentialsComplete], + ); + + return ( +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + Credentials Required + + + {message} + +
    + +
    + {credentials.map((cred, index) => { + const schema = createSchemaFromCredentialInfo(cred); + const isSelected = !!selectedCredentials[cred.provider]; + + return ( +
    +
    + {isSelected ? ( + + ) : ( + + )} + + {cred.providerName} + +
    + + + handleCredentialSelect(cred.provider, credMeta) + } + /> +
    + ); + })} +
    +
    +
    +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/useChatCredentialsSetup.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/useChatCredentialsSetup.ts new file mode 100644 index 0000000000..6b4b26e834 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatCredentialsSetup/useChatCredentialsSetup.ts @@ -0,0 +1,36 @@ +import { useState, useMemo } from "react"; +import type { CredentialInfo } from "./ChatCredentialsSetup"; +import type { CredentialsMetaInput } from "@/lib/autogpt-server-api"; + +export function useChatCredentialsSetup(credentials: CredentialInfo[]) { + const [selectedCredentials, setSelectedCredentials] = useState< + Record + >({}); + + // Check if all credentials are configured + const isAllComplete = useMemo( + function checkAllComplete() { + if (credentials.length === 0) return false; + return credentials.every((cred) => selectedCredentials[cred.provider]); + }, + [credentials, selectedCredentials], + ); + + function handleCredentialSelect( + provider: string, + credential?: CredentialsMetaInput, + ) { + if (credential) { + setSelectedCredentials((prev) => ({ + ...prev, + [provider]: credential, + })); + } + } + + return { + selectedCredentials, + isAllComplete, + handleCredentialSelect, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatErrorState/ChatErrorState.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatErrorState/ChatErrorState.tsx new file mode 100644 index 0000000000..bac13d1b0c --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatErrorState/ChatErrorState.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import { ErrorCard } from "@/components/molecules/ErrorCard/ErrorCard"; +import { cn } from "@/lib/utils"; + +export interface ChatErrorStateProps { + error: Error; + onRetry?: () => void; + className?: string; +} + +export function ChatErrorState({ + error, + onRetry, + className, +}: ChatErrorStateProps) { + return ( +
    + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/ChatInput.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/ChatInput.tsx new file mode 100644 index 0000000000..3101174a11 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/ChatInput.tsx @@ -0,0 +1,64 @@ +import { Input } from "@/components/atoms/Input/Input"; +import { cn } from "@/lib/utils"; +import { ArrowUpIcon } from "@phosphor-icons/react"; +import { useChatInput } from "./useChatInput"; + +export interface ChatInputProps { + onSend: (message: string) => void; + disabled?: boolean; + placeholder?: string; + className?: string; +} + +export function ChatInput({ + onSend, + disabled = false, + placeholder = "Type your message...", + className, +}: ChatInputProps) { + const inputId = "chat-input"; + const { value, setValue, handleKeyDown, handleSend } = useChatInput({ + onSend, + disabled, + maxRows: 5, + inputId, + }); + + return ( +
    + setValue(e.target.value)} + onKeyDown={handleKeyDown} + placeholder={placeholder} + disabled={disabled} + rows={1} + wrapperClassName="mb-0 relative" + className="pr-12" + /> + + Press Enter to send, Shift+Enter for new line + + + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/useChatInput.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/useChatInput.ts new file mode 100644 index 0000000000..08cf565daa --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatInput/useChatInput.ts @@ -0,0 +1,60 @@ +import { KeyboardEvent, useCallback, useEffect, useState } from "react"; + +interface UseChatInputArgs { + onSend: (message: string) => void; + disabled?: boolean; + maxRows?: number; + inputId?: string; +} + +export function useChatInput({ + onSend, + disabled = false, + maxRows = 5, + inputId = "chat-input", +}: UseChatInputArgs) { + const [value, setValue] = useState(""); + + useEffect(() => { + const textarea = document.getElementById(inputId) as HTMLTextAreaElement; + if (!textarea) return; + textarea.style.height = "auto"; + const lineHeight = parseInt( + window.getComputedStyle(textarea).lineHeight, + 10, + ); + const maxHeight = lineHeight * maxRows; + const newHeight = Math.min(textarea.scrollHeight, maxHeight); + textarea.style.height = `${newHeight}px`; + textarea.style.overflowY = + textarea.scrollHeight > maxHeight ? "auto" : "hidden"; + }, [value, maxRows, inputId]); + + const handleSend = useCallback(() => { + if (disabled || !value.trim()) return; + onSend(value.trim()); + setValue(""); + const textarea = document.getElementById(inputId) as HTMLTextAreaElement; + if (textarea) { + textarea.style.height = "auto"; + } + }, [value, onSend, disabled, inputId]); + + const handleKeyDown = useCallback( + (event: KeyboardEvent) => { + if (event.key === "Enter" && !event.shiftKey) { + event.preventDefault(); + handleSend(); + } + // Shift+Enter allows default behavior (new line) - no need to handle explicitly + }, + [handleSend], + ); + + return { + value, + setValue, + handleKeyDown, + handleSend, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatLoadingState/ChatLoadingState.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatLoadingState/ChatLoadingState.tsx new file mode 100644 index 0000000000..c0cdb33c50 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatLoadingState/ChatLoadingState.tsx @@ -0,0 +1,19 @@ +import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner"; +import { cn } from "@/lib/utils"; + +export interface ChatLoadingStateProps { + message?: string; + className?: string; +} + +export function ChatLoadingState({ className }: ChatLoadingStateProps) { + return ( +
    +
    + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx new file mode 100644 index 0000000000..ef9542e449 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/ChatMessage.tsx @@ -0,0 +1,295 @@ +"use client"; + +import { useGetV2GetUserProfile } from "@/app/api/__generated__/endpoints/store/store"; +import Avatar, { + AvatarFallback, + AvatarImage, +} from "@/components/atoms/Avatar/Avatar"; +import { Button } from "@/components/atoms/Button/Button"; +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; +import { cn } from "@/lib/utils"; +import { + ArrowClockwise, + CheckCircleIcon, + CheckIcon, + CopyIcon, + RobotIcon, +} from "@phosphor-icons/react"; +import { useCallback, useState } from "react"; +import { getToolActionPhrase } from "../../helpers"; +import { AuthPromptWidget } from "../AuthPromptWidget/AuthPromptWidget"; +import { ChatCredentialsSetup } from "../ChatCredentialsSetup/ChatCredentialsSetup"; +import { MarkdownContent } from "../MarkdownContent/MarkdownContent"; +import { MessageBubble } from "../MessageBubble/MessageBubble"; +import { ToolCallMessage } from "../ToolCallMessage/ToolCallMessage"; +import { ToolResponseMessage } from "../ToolResponseMessage/ToolResponseMessage"; +import { useChatMessage, type ChatMessageData } from "./useChatMessage"; +export interface ChatMessageProps { + message: ChatMessageData; + className?: string; + onDismissLogin?: () => void; + onDismissCredentials?: () => void; + onSendMessage?: (content: string, isUserMessage?: boolean) => void; + agentOutput?: ChatMessageData; +} + +export function ChatMessage({ + message, + className, + onDismissCredentials, + onSendMessage, + agentOutput, +}: ChatMessageProps) { + const { user } = useSupabase(); + const [copied, setCopied] = useState(false); + const { + isUser, + isToolCall, + isToolResponse, + isLoginNeeded, + isCredentialsNeeded, + } = useChatMessage(message); + + const { data: profile } = useGetV2GetUserProfile({ + query: { + select: (res) => (res.status === 200 ? res.data : null), + enabled: isUser && !!user, + queryKey: ["/api/store/profile", user?.id], + }, + }); + + const handleAllCredentialsComplete = useCallback( + function handleAllCredentialsComplete() { + // Send a user message that explicitly asks to retry the setup + // This ensures the LLM calls get_required_setup_info again and proceeds with execution + if (onSendMessage) { + onSendMessage( + "I've configured the required credentials. Please check if everything is ready and proceed with setting up the agent.", + ); + } + // Optionally dismiss the credentials prompt + if (onDismissCredentials) { + onDismissCredentials(); + } + }, + [onSendMessage, onDismissCredentials], + ); + + function handleCancelCredentials() { + // Dismiss the credentials prompt + if (onDismissCredentials) { + onDismissCredentials(); + } + } + + const handleCopy = useCallback(async () => { + if (message.type !== "message") return; + + try { + await navigator.clipboard.writeText(message.content); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (error) { + console.error("Failed to copy:", error); + } + }, [message]); + + const handleTryAgain = useCallback(() => { + if (message.type !== "message" || !onSendMessage) return; + onSendMessage(message.content, message.role === "user"); + }, [message, onSendMessage]); + + // Render credentials needed messages + if (isCredentialsNeeded && message.type === "credentials_needed") { + return ( + + ); + } + + // Render login needed messages + if (isLoginNeeded && message.type === "login_needed") { + // If user is already logged in, show success message instead of auth prompt + if (user) { + return ( +
    +
    +
    +
    +
    + +
    +
    +

    + Successfully Authenticated +

    +

    + You're now signed in and ready to continue +

    +
    +
    +
    +
    +
    + ); + } + + // Show auth prompt if not logged in + return ( +
    + +
    + ); + } + + // Render tool call messages + if (isToolCall && message.type === "tool_call") { + return ( +
    + +
    + ); + } + + // Render tool response messages (but skip agent_output if it's being rendered inside assistant message) + if ( + (isToolResponse && message.type === "tool_response") || + message.type === "no_results" || + message.type === "agent_carousel" || + message.type === "execution_started" + ) { + // Check if this is an agent_output that should be rendered inside assistant message + if (message.type === "tool_response" && message.result) { + let parsedResult: Record | null = null; + try { + parsedResult = + typeof message.result === "string" + ? JSON.parse(message.result) + : (message.result as Record); + } catch { + parsedResult = null; + } + if (parsedResult?.type === "agent_output") { + // Skip rendering - this will be rendered inside the assistant message + return null; + } + } + + return ( +
    + +
    + ); + } + + // Render regular chat messages + if (message.type === "message") { + return ( +
    +
    + {!isUser && ( +
    +
    + +
    +
    + )} + +
    + + + {agentOutput && + agentOutput.type === "tool_response" && + !isUser && ( +
    + +
    + )} +
    +
    + {isUser && onSendMessage && ( + + )} + +
    +
    + + {isUser && ( +
    + + + + {profile?.username?.charAt(0)?.toUpperCase() || "U"} + + +
    + )} +
    +
    + ); + } + + // Fallback for unknown message types + return null; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/useChatMessage.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/useChatMessage.ts new file mode 100644 index 0000000000..9a597d4b26 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ChatMessage/useChatMessage.ts @@ -0,0 +1,113 @@ +import type { ToolArguments, ToolResult } from "@/types/chat"; +import { formatDistanceToNow } from "date-fns"; + +export type ChatMessageData = + | { + type: "message"; + role: "user" | "assistant" | "system"; + content: string; + timestamp?: string | Date; + } + | { + type: "tool_call"; + toolId: string; + toolName: string; + arguments?: ToolArguments; + timestamp?: string | Date; + } + | { + type: "tool_response"; + toolId: string; + toolName: string; + result: ToolResult; + success?: boolean; + timestamp?: string | Date; + } + | { + type: "login_needed"; + toolName: string; + message: string; + sessionId: string; + agentInfo?: { + graph_id: string; + name: string; + trigger_type: string; + }; + timestamp?: string | Date; + } + | { + type: "credentials_needed"; + toolName: string; + credentials: Array<{ + provider: string; + providerName: string; + credentialType: "api_key" | "oauth2" | "user_password" | "host_scoped"; + title: string; + scopes?: string[]; + }>; + message: string; + agentName?: string; + timestamp?: string | Date; + } + | { + type: "no_results"; + toolName: string; + message: string; + suggestions?: string[]; + sessionId?: string; + timestamp?: string | Date; + } + | { + type: "agent_carousel"; + toolName: string; + agents: Array<{ + id: string; + name: string; + description: string; + version?: number; + image_url?: string; + }>; + totalCount?: number; + timestamp?: string | Date; + } + | { + type: "execution_started"; + toolName: string; + executionId: string; + agentName?: string; + message?: string; + libraryAgentLink?: string; + timestamp?: string | Date; + } + | { + type: "inputs_needed"; + toolName: string; + agentName?: string; + agentId?: string; + graphVersion?: number; + inputSchema: Record; + credentialsSchema?: Record; + message: string; + timestamp?: string | Date; + }; + +export function useChatMessage(message: ChatMessageData) { + const formattedTimestamp = message.timestamp + ? formatDistanceToNow(new Date(message.timestamp), { addSuffix: true }) + : "Just now"; + + return { + formattedTimestamp, + isUser: message.type === "message" && message.role === "user", + isAssistant: message.type === "message" && message.role === "assistant", + isSystem: message.type === "message" && message.role === "system", + isToolCall: message.type === "tool_call", + isToolResponse: message.type === "tool_response", + isLoginNeeded: message.type === "login_needed", + isCredentialsNeeded: message.type === "credentials_needed", + isNoResults: message.type === "no_results", + isAgentCarousel: message.type === "agent_carousel", + isExecutionStarted: message.type === "execution_started", + isInputsNeeded: message.type === "inputs_needed", + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ExecutionStartedMessage/ExecutionStartedMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ExecutionStartedMessage/ExecutionStartedMessage.tsx new file mode 100644 index 0000000000..1ac3b440e0 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ExecutionStartedMessage/ExecutionStartedMessage.tsx @@ -0,0 +1,90 @@ +import { Button } from "@/components/atoms/Button/Button"; +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; +import { ArrowSquareOut, CheckCircle, Play } from "@phosphor-icons/react"; + +export interface ExecutionStartedMessageProps { + executionId: string; + agentName?: string; + message?: string; + onViewExecution?: () => void; + className?: string; +} + +export function ExecutionStartedMessage({ + executionId, + agentName, + message = "Agent execution started successfully", + onViewExecution, + className, +}: ExecutionStartedMessageProps) { + return ( +
    + {/* Icon & Header */} +
    +
    + +
    +
    + + Execution Started + + + {message} + +
    +
    + + {/* Details */} +
    +
    + {agentName && ( +
    + + Agent: + + + {agentName} + +
    + )} +
    + + Execution ID: + + + {executionId.slice(0, 16)}... + +
    +
    +
    + + {/* Action Buttons */} + {onViewExecution && ( +
    + +
    + )} + +
    + + + Your agent is now running. You can monitor its progress in the monitor + page. + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/MarkdownContent/MarkdownContent.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/MarkdownContent/MarkdownContent.tsx new file mode 100644 index 0000000000..51a0794090 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/MarkdownContent/MarkdownContent.tsx @@ -0,0 +1,215 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import React from "react"; +import ReactMarkdown from "react-markdown"; +import remarkGfm from "remark-gfm"; + +interface MarkdownContentProps { + content: string; + className?: string; +} + +interface CodeProps extends React.HTMLAttributes { + children?: React.ReactNode; + className?: string; +} + +interface ListProps extends React.HTMLAttributes { + children?: React.ReactNode; + className?: string; +} + +interface ListItemProps extends React.HTMLAttributes { + children?: React.ReactNode; + className?: string; +} + +interface InputProps extends React.InputHTMLAttributes { + type?: string; +} + +export function MarkdownContent({ content, className }: MarkdownContentProps) { + return ( +
    + { + const isInline = !className?.includes("language-"); + if (isInline) { + return ( + + {children} + + ); + } + return ( + + {children} + + ); + }, + pre: ({ children, ...props }) => ( +
    +              {children}
    +            
    + ), + a: ({ children, href, ...props }) => ( + + {children} + + ), + strong: ({ children, ...props }) => ( + + {children} + + ), + em: ({ children, ...props }) => ( + + {children} + + ), + del: ({ children, ...props }) => ( + + {children} + + ), + ul: ({ children, ...props }: ListProps) => ( +
      + {children} +
    + ), + ol: ({ children, ...props }) => ( +
      + {children} +
    + ), + li: ({ children, ...props }: ListItemProps) => ( +
  • + {children} +
  • + ), + input: ({ ...props }: InputProps) => { + if (props.type === "checkbox") { + return ( + + ); + } + return ; + }, + blockquote: ({ children, ...props }) => ( +
    + {children} +
    + ), + h1: ({ children, ...props }) => ( +

    + {children} +

    + ), + h2: ({ children, ...props }) => ( +

    + {children} +

    + ), + h3: ({ children, ...props }) => ( +

    + {children} +

    + ), + h4: ({ children, ...props }) => ( +

    + {children} +

    + ), + h5: ({ children, ...props }) => ( +
    + {children} +
    + ), + h6: ({ children, ...props }) => ( +
    + {children} +
    + ), + p: ({ children, ...props }) => ( +

    + {children} +

    + ), + hr: ({ ...props }) => ( +
    + ), + table: ({ children, ...props }) => ( +
    + + {children} +
    +
    + ), + th: ({ children, ...props }) => ( + + {children} + + ), + td: ({ children, ...props }) => ( + + {children} + + ), + }} + > + {content} +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageBubble/MessageBubble.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageBubble/MessageBubble.tsx new file mode 100644 index 0000000000..98b50f3d28 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageBubble/MessageBubble.tsx @@ -0,0 +1,56 @@ +import { cn } from "@/lib/utils"; +import { ReactNode } from "react"; + +export interface MessageBubbleProps { + children: ReactNode; + variant: "user" | "assistant"; + className?: string; +} + +export function MessageBubble({ + children, + variant, + className, +}: MessageBubbleProps) { + const userTheme = { + bg: "bg-slate-900", + border: "border-slate-800", + gradient: "from-slate-900/30 via-slate-800/20 to-transparent", + text: "text-slate-50", + }; + + const assistantTheme = { + bg: "bg-slate-50/20", + border: "border-slate-100", + gradient: "from-slate-200/20 via-slate-300/10 to-transparent", + text: "text-slate-900", + }; + + const theme = variant === "user" ? userTheme : assistantTheme; + + return ( +
    + {/* Gradient flare background */} +
    +
    + {children} +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/MessageList.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/MessageList.tsx new file mode 100644 index 0000000000..b83e9f9c5e --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/MessageList.tsx @@ -0,0 +1,119 @@ +import { cn } from "@/lib/utils"; +import { ChatMessage } from "../ChatMessage/ChatMessage"; +import type { ChatMessageData } from "../ChatMessage/useChatMessage"; +import { StreamingMessage } from "../StreamingMessage/StreamingMessage"; +import { ThinkingMessage } from "../ThinkingMessage/ThinkingMessage"; +import { useMessageList } from "./useMessageList"; + +export interface MessageListProps { + messages: ChatMessageData[]; + streamingChunks?: string[]; + isStreaming?: boolean; + className?: string; + onStreamComplete?: () => void; + onSendMessage?: (content: string) => void; +} + +export function MessageList({ + messages, + streamingChunks = [], + isStreaming = false, + className, + onStreamComplete, + onSendMessage, +}: MessageListProps) { + const { messagesEndRef, messagesContainerRef } = useMessageList({ + messageCount: messages.length, + isStreaming, + }); + + return ( +
    +
    + {/* Render all persisted messages */} + {messages.map((message, index) => { + // Check if current message is an agent_output tool_response + // and if previous message is an assistant message + let agentOutput: ChatMessageData | undefined; + + if (message.type === "tool_response" && message.result) { + let parsedResult: Record | null = null; + try { + parsedResult = + typeof message.result === "string" + ? JSON.parse(message.result) + : (message.result as Record); + } catch { + parsedResult = null; + } + if (parsedResult?.type === "agent_output") { + const prevMessage = messages[index - 1]; + if ( + prevMessage && + prevMessage.type === "message" && + prevMessage.role === "assistant" + ) { + // This agent output will be rendered inside the previous assistant message + // Skip rendering this message separately + return null; + } + } + } + + // Check if next message is an agent_output tool_response to include in current assistant message + if (message.type === "message" && message.role === "assistant") { + const nextMessage = messages[index + 1]; + if ( + nextMessage && + nextMessage.type === "tool_response" && + nextMessage.result + ) { + let parsedResult: Record | null = null; + try { + parsedResult = + typeof nextMessage.result === "string" + ? JSON.parse(nextMessage.result) + : (nextMessage.result as Record); + } catch { + parsedResult = null; + } + if (parsedResult?.type === "agent_output") { + agentOutput = nextMessage; + } + } + } + + return ( + + ); + })} + + {/* Render thinking message when streaming but no chunks yet */} + {isStreaming && streamingChunks.length === 0 && } + + {/* Render streaming message if active */} + {isStreaming && streamingChunks.length > 0 && ( + + )} + + {/* Invisible div to scroll to */} +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/useMessageList.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/useMessageList.ts new file mode 100644 index 0000000000..3dcc75df3c --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/MessageList/useMessageList.ts @@ -0,0 +1,28 @@ +import { useEffect, useRef, useCallback } from "react"; + +interface UseMessageListArgs { + messageCount: number; + isStreaming: boolean; +} + +export function useMessageList({ + messageCount, + isStreaming, +}: UseMessageListArgs) { + const messagesEndRef = useRef(null); + const messagesContainerRef = useRef(null); + + const scrollToBottom = useCallback(() => { + messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }); + }, []); + + useEffect(() => { + scrollToBottom(); + }, [messageCount, isStreaming, scrollToBottom]); + + return { + messagesEndRef, + messagesContainerRef, + scrollToBottom, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/NoResultsMessage/NoResultsMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/NoResultsMessage/NoResultsMessage.tsx new file mode 100644 index 0000000000..b6adc8b93c --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/NoResultsMessage/NoResultsMessage.tsx @@ -0,0 +1,64 @@ +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; +import { MagnifyingGlass, X } from "@phosphor-icons/react"; + +export interface NoResultsMessageProps { + message: string; + suggestions?: string[]; + className?: string; +} + +export function NoResultsMessage({ + message, + suggestions = [], + className, +}: NoResultsMessageProps) { + return ( +
    + {/* Icon */} +
    +
    + +
    +
    + +
    +
    + + {/* Content */} +
    + + No Results Found + + + {message} + +
    + + {/* Suggestions */} + {suggestions.length > 0 && ( +
    + + Try these suggestions: + +
      + {suggestions.map((suggestion, index) => ( +
    • + + {suggestion} +
    • + ))} +
    +
    + )} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/QuickActionsWelcome/QuickActionsWelcome.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/QuickActionsWelcome/QuickActionsWelcome.tsx new file mode 100644 index 0000000000..464bc8f2dc --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/QuickActionsWelcome/QuickActionsWelcome.tsx @@ -0,0 +1,92 @@ +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; + +export interface QuickActionsWelcomeProps { + title: string; + description: string; + actions: string[]; + onActionClick: (action: string) => void; + disabled?: boolean; + className?: string; +} + +export function QuickActionsWelcome({ + title, + description, + actions, + onActionClick, + disabled = false, + className, +}: QuickActionsWelcomeProps) { + return ( +
    +
    +
    + + {title} + + + {description} + +
    +
    + {actions.map((action) => { + // Use slate theme for all cards + const theme = { + bg: "bg-slate-50/10", + border: "border-slate-100", + hoverBg: "hover:bg-slate-50/20", + hoverBorder: "hover:border-slate-200", + gradient: "from-slate-200/20 via-slate-300/10 to-transparent", + text: "text-slate-900", + hoverText: "group-hover:text-slate-900", + }; + + return ( + + ); + })} +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/SessionsDrawer/SessionsDrawer.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/SessionsDrawer/SessionsDrawer.tsx new file mode 100644 index 0000000000..74aa709a46 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/SessionsDrawer/SessionsDrawer.tsx @@ -0,0 +1,136 @@ +"use client"; + +import { useGetV2ListSessions } from "@/app/api/__generated__/endpoints/chat/chat"; +import { Text } from "@/components/atoms/Text/Text"; +import { scrollbarStyles } from "@/components/styles/scrollbars"; +import { cn } from "@/lib/utils"; +import { X } from "@phosphor-icons/react"; +import { formatDistanceToNow } from "date-fns"; +import { Drawer } from "vaul"; + +interface SessionsDrawerProps { + isOpen: boolean; + onClose: () => void; + onSelectSession: (sessionId: string) => void; + currentSessionId?: string | null; +} + +export function SessionsDrawer({ + isOpen, + onClose, + onSelectSession, + currentSessionId, +}: SessionsDrawerProps) { + const { data, isLoading } = useGetV2ListSessions( + { limit: 100 }, + { + query: { + enabled: isOpen, + }, + }, + ); + + const sessions = + data?.status === 200 + ? data.data.sessions.filter((session) => { + // Filter out sessions without messages (sessions that were never updated) + // If updated_at equals created_at, the session was created but never had messages + return session.updated_at !== session.created_at; + }) + : []; + + function handleSelectSession(sessionId: string) { + onSelectSession(sessionId); + onClose(); + } + + return ( + !open && onClose()} + direction="right" + > + + + +
    +
    + + Chat Sessions + + +
    +
    + +
    + {isLoading ? ( +
    + + Loading sessions... + +
    + ) : sessions.length === 0 ? ( +
    + + No sessions found + +
    + ) : ( +
    + {sessions.map((session) => { + const isActive = session.id === currentSessionId; + const updatedAt = session.updated_at + ? formatDistanceToNow(new Date(session.updated_at), { + addSuffix: true, + }) + : ""; + + return ( + + ); + })} +
    + )} +
    +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/StreamingMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/StreamingMessage.tsx new file mode 100644 index 0000000000..2a6e3d5822 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/StreamingMessage.tsx @@ -0,0 +1,42 @@ +import { cn } from "@/lib/utils"; +import { RobotIcon } from "@phosphor-icons/react"; +import { MarkdownContent } from "../MarkdownContent/MarkdownContent"; +import { MessageBubble } from "../MessageBubble/MessageBubble"; +import { useStreamingMessage } from "./useStreamingMessage"; + +export interface StreamingMessageProps { + chunks: string[]; + className?: string; + onComplete?: () => void; +} + +export function StreamingMessage({ + chunks, + className, + onComplete, +}: StreamingMessageProps) { + const { displayText } = useStreamingMessage({ chunks, onComplete }); + + return ( +
    +
    +
    +
    + +
    +
    + +
    + + + +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/useStreamingMessage.ts b/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/useStreamingMessage.ts new file mode 100644 index 0000000000..5203762151 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/StreamingMessage/useStreamingMessage.ts @@ -0,0 +1,25 @@ +import { useEffect, useState } from "react"; + +interface UseStreamingMessageArgs { + chunks: string[]; + onComplete?: () => void; +} + +export function useStreamingMessage({ + chunks, + onComplete, +}: UseStreamingMessageArgs) { + const [isComplete, _setIsComplete] = useState(false); + const displayText = chunks.join(""); + + useEffect(() => { + if (isComplete && onComplete) { + onComplete(); + } + }, [isComplete, onComplete]); + + return { + displayText, + isComplete, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ThinkingMessage/ThinkingMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ThinkingMessage/ThinkingMessage.tsx new file mode 100644 index 0000000000..d8adddf416 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ThinkingMessage/ThinkingMessage.tsx @@ -0,0 +1,70 @@ +import { cn } from "@/lib/utils"; +import { RobotIcon } from "@phosphor-icons/react"; +import { useEffect, useRef, useState } from "react"; +import { MessageBubble } from "../MessageBubble/MessageBubble"; + +export interface ThinkingMessageProps { + className?: string; +} + +export function ThinkingMessage({ className }: ThinkingMessageProps) { + const [showSlowLoader, setShowSlowLoader] = useState(false); + const timerRef = useRef(null); + + useEffect(() => { + if (timerRef.current === null) { + timerRef.current = setTimeout(() => { + setShowSlowLoader(true); + }, 8000); + } + + return () => { + if (timerRef.current) { + clearTimeout(timerRef.current); + timerRef.current = null; + } + }; + }, []); + + return ( +
    +
    +
    +
    + +
    +
    + +
    + +
    + {showSlowLoader ? ( +
    +
    +

    + Taking a bit longer to think, wait a moment please +

    +
    + ) : ( + + Thinking... + + )} +
    + +
    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolCallMessage/ToolCallMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolCallMessage/ToolCallMessage.tsx new file mode 100644 index 0000000000..97590ae0cf --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolCallMessage/ToolCallMessage.tsx @@ -0,0 +1,24 @@ +import { Text } from "@/components/atoms/Text/Text"; +import { cn } from "@/lib/utils"; +import { WrenchIcon } from "@phosphor-icons/react"; +import { getToolActionPhrase } from "../../helpers"; + +export interface ToolCallMessageProps { + toolName: string; + className?: string; +} + +export function ToolCallMessage({ toolName, className }: ToolCallMessageProps) { + return ( +
    + + + {getToolActionPhrase(toolName)}... + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolResponseMessage/ToolResponseMessage.tsx b/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolResponseMessage/ToolResponseMessage.tsx new file mode 100644 index 0000000000..b84204c3ff --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/components/ToolResponseMessage/ToolResponseMessage.tsx @@ -0,0 +1,260 @@ +import { Text } from "@/components/atoms/Text/Text"; +import "@/components/contextual/OutputRenderers"; +import { + globalRegistry, + OutputItem, +} from "@/components/contextual/OutputRenderers"; +import { cn } from "@/lib/utils"; +import type { ToolResult } from "@/types/chat"; +import { WrenchIcon } from "@phosphor-icons/react"; +import { getToolActionPhrase } from "../../helpers"; + +export interface ToolResponseMessageProps { + toolName: string; + result?: ToolResult; + success?: boolean; + className?: string; +} + +export function ToolResponseMessage({ + toolName, + result, + success: _success = true, + className, +}: ToolResponseMessageProps) { + if (!result) { + return ( +
    + + + {getToolActionPhrase(toolName)}... + +
    + ); + } + + let parsedResult: Record | null = null; + try { + parsedResult = + typeof result === "string" + ? JSON.parse(result) + : (result as Record); + } catch { + parsedResult = null; + } + + if (parsedResult && typeof parsedResult === "object") { + const responseType = parsedResult.type as string | undefined; + + if (responseType === "agent_output") { + const execution = parsedResult.execution as + | { + outputs?: Record; + } + | null + | undefined; + const outputs = execution?.outputs || {}; + const message = parsedResult.message as string | undefined; + + return ( +
    +
    + + + {getToolActionPhrase(toolName)} + +
    + {message && ( +
    + + {message} + +
    + )} + {Object.keys(outputs).length > 0 && ( +
    + {Object.entries(outputs).map(([outputName, values]) => + values.map((value, index) => { + const renderer = globalRegistry.getRenderer(value); + if (renderer) { + return ( + + ); + } + return ( +
    + + {outputName} + +
    +                        {JSON.stringify(value, null, 2)}
    +                      
    +
    + ); + }), + )} +
    + )} +
    + ); + } + + if (responseType === "block_output" && parsedResult.outputs) { + const outputs = parsedResult.outputs as Record; + + return ( +
    +
    + + + {getToolActionPhrase(toolName)} + +
    +
    + {Object.entries(outputs).map(([outputName, values]) => + values.map((value, index) => { + const renderer = globalRegistry.getRenderer(value); + if (renderer) { + return ( + + ); + } + return ( +
    + + {outputName} + +
    +                      {JSON.stringify(value, null, 2)}
    +                    
    +
    + ); + }), + )} +
    +
    + ); + } + + // Handle other response types with a message field (e.g., understanding_updated) + if (parsedResult.message && typeof parsedResult.message === "string") { + // Format tool name from snake_case to Title Case + const formattedToolName = toolName + .split("_") + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(" "); + + // Clean up message - remove incomplete user_name references + let cleanedMessage = parsedResult.message; + // Remove "Updated understanding with: user_name" pattern if user_name is just a placeholder + cleanedMessage = cleanedMessage.replace( + /Updated understanding with:\s*user_name\.?\s*/gi, + "", + ); + // Remove standalone user_name references + cleanedMessage = cleanedMessage.replace(/\buser_name\b\.?\s*/gi, ""); + cleanedMessage = cleanedMessage.trim(); + + // Only show message if it has content after cleaning + if (!cleanedMessage) { + return ( +
    + + + {formattedToolName} + +
    + ); + } + + return ( +
    +
    + + + {formattedToolName} + +
    +
    + + {cleanedMessage} + +
    +
    + ); + } + } + + const renderer = globalRegistry.getRenderer(result); + if (renderer) { + return ( +
    +
    + + + {getToolActionPhrase(toolName)} + +
    + +
    + ); + } + + return ( +
    + + + {getToolActionPhrase(toolName)}... + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/helpers.ts b/autogpt_platform/frontend/src/components/contextual/Chat/helpers.ts new file mode 100644 index 0000000000..5a1e5eb93f --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/helpers.ts @@ -0,0 +1,73 @@ +/** + * Maps internal tool names to user-friendly display names with emojis. + * @deprecated Use getToolActionPhrase or getToolCompletionPhrase for status messages + * + * @param toolName - The internal tool name from the backend + * @returns A user-friendly display name with an emoji prefix + */ +export function getToolDisplayName(toolName: string): string { + const toolDisplayNames: Record = { + find_agent: "🔍 Search Marketplace", + get_agent_details: "📋 Get Agent Details", + check_credentials: "🔑 Check Credentials", + setup_agent: "⚙️ Setup Agent", + run_agent: "▶️ Run Agent", + get_required_setup_info: "📝 Get Setup Requirements", + }; + return toolDisplayNames[toolName] || toolName; +} + +/** + * Maps internal tool names to human-friendly action phrases (present continuous). + * Used for tool call messages to indicate what action is currently happening. + * + * @param toolName - The internal tool name from the backend + * @returns A human-friendly action phrase in present continuous tense + */ +export function getToolActionPhrase(toolName: string): string { + const toolActionPhrases: Record = { + find_agent: "Looking for agents in the marketplace", + agent_carousel: "Looking for agents in the marketplace", + get_agent_details: "Learning about the agent", + check_credentials: "Checking your credentials", + setup_agent: "Setting up the agent", + execution_started: "Running the agent", + run_agent: "Running the agent", + get_required_setup_info: "Getting setup requirements", + schedule_agent: "Scheduling the agent to run", + }; + + // Return mapped phrase or generate human-friendly fallback + return toolActionPhrases[toolName] || toolName; +} + +/** + * Maps internal tool names to human-friendly completion phrases (past tense). + * Used for tool response messages to indicate what action was completed. + * + * @param toolName - The internal tool name from the backend + * @returns A human-friendly completion phrase in past tense + */ +export function getToolCompletionPhrase(toolName: string): string { + const toolCompletionPhrases: Record = { + find_agent: "Finished searching the marketplace", + get_agent_details: "Got agent details", + check_credentials: "Checked credentials", + setup_agent: "Agent setup complete", + run_agent: "Agent execution started", + get_required_setup_info: "Got setup requirements", + }; + + // Return mapped phrase or generate human-friendly fallback + return ( + toolCompletionPhrases[toolName] || + `Finished ${toolName.replace(/_/g, " ").replace("...", "")}` + ); +} + +/** Validate UUID v4 format */ +export function isValidUUID(value: string): boolean { + const uuidRegex = + /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + return uuidRegex.test(value); +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/useChat.ts b/autogpt_platform/frontend/src/components/contextual/Chat/useChat.ts new file mode 100644 index 0000000000..f8aedd23b7 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/useChat.ts @@ -0,0 +1,119 @@ +"use client"; + +import { useSupabase } from "@/lib/supabase/hooks/useSupabase"; +import { useEffect, useRef } from "react"; +import { toast } from "sonner"; +import { useChatSession } from "./useChatSession"; +import { useChatStream } from "./useChatStream"; + +export function useChat() { + const hasCreatedSessionRef = useRef(false); + const hasClaimedSessionRef = useRef(false); + const { user } = useSupabase(); + const { sendMessage: sendStreamMessage } = useChatStream(); + + const { + session, + sessionId: sessionIdFromHook, + messages, + isLoading, + isCreating, + error, + createSession, + refreshSession, + claimSession, + clearSession: clearSessionBase, + loadSession, + } = useChatSession({ + urlSessionId: null, + autoCreate: false, + }); + + useEffect( + function autoCreateSession() { + if (!hasCreatedSessionRef.current && !isCreating && !sessionIdFromHook) { + hasCreatedSessionRef.current = true; + createSession().catch((_err) => { + hasCreatedSessionRef.current = false; + }); + } + }, + [isCreating, sessionIdFromHook, createSession], + ); + + useEffect( + function autoClaimSession() { + if ( + session && + !session.user_id && + user && + !hasClaimedSessionRef.current && + !isLoading && + sessionIdFromHook + ) { + hasClaimedSessionRef.current = true; + claimSession(sessionIdFromHook) + .then(() => { + sendStreamMessage( + sessionIdFromHook, + "User has successfully logged in.", + () => {}, + false, + ).catch(() => {}); + }) + .catch(() => { + hasClaimedSessionRef.current = false; + }); + } + }, + [ + session, + user, + isLoading, + sessionIdFromHook, + claimSession, + sendStreamMessage, + ], + ); + + useEffect(function monitorNetworkStatus() { + function handleOnline() { + toast.success("Connection restored", { + description: "You're back online", + }); + } + + function handleOffline() { + toast.error("You're offline", { + description: "Check your internet connection", + }); + } + + window.addEventListener("online", handleOnline); + window.addEventListener("offline", handleOffline); + + return () => { + window.removeEventListener("online", handleOnline); + window.removeEventListener("offline", handleOffline); + }; + }, []); + + function clearSession() { + clearSessionBase(); + hasCreatedSessionRef.current = false; + hasClaimedSessionRef.current = false; + } + + return { + session, + messages, + isLoading, + isCreating, + error, + createSession, + refreshSession, + clearSession, + loadSession, + sessionId: sessionIdFromHook, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/useChatDrawer.ts b/autogpt_platform/frontend/src/components/contextual/Chat/useChatDrawer.ts new file mode 100644 index 0000000000..62e1a5a569 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/useChatDrawer.ts @@ -0,0 +1,17 @@ +"use client"; + +import { create } from "zustand"; + +interface ChatDrawerState { + isOpen: boolean; + open: () => void; + close: () => void; + toggle: () => void; +} + +export const useChatDrawer = create((set) => ({ + isOpen: false, + open: () => set({ isOpen: true }), + close: () => set({ isOpen: false }), + toggle: () => set((state) => ({ isOpen: !state.isOpen })), +})); diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/useChatSession.ts b/autogpt_platform/frontend/src/components/contextual/Chat/useChatSession.ts new file mode 100644 index 0000000000..4739c551e9 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/useChatSession.ts @@ -0,0 +1,271 @@ +import { + getGetV2GetSessionQueryKey, + getGetV2GetSessionQueryOptions, + postV2CreateSession, + useGetV2GetSession, + usePatchV2SessionAssignUser, + usePostV2CreateSession, +} from "@/app/api/__generated__/endpoints/chat/chat"; +import type { SessionDetailResponse } from "@/app/api/__generated__/models/sessionDetailResponse"; +import { okData } from "@/app/api/helpers"; +import { Key, storage } from "@/services/storage/local-storage"; +import { useQueryClient } from "@tanstack/react-query"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { toast } from "sonner"; +import { isValidUUID } from "./helpers"; + +interface UseChatSessionArgs { + urlSessionId?: string | null; + autoCreate?: boolean; +} + +export function useChatSession({ + urlSessionId, + autoCreate = false, +}: UseChatSessionArgs = {}) { + const queryClient = useQueryClient(); + const [sessionId, setSessionId] = useState(null); + const [error, setError] = useState(null); + const justCreatedSessionIdRef = useRef(null); + + useEffect(() => { + if (urlSessionId) { + if (!isValidUUID(urlSessionId)) { + console.error("Invalid session ID format:", urlSessionId); + toast.error("Invalid session ID", { + description: + "The session ID in the URL is not valid. Starting a new session...", + }); + setSessionId(null); + storage.clean(Key.CHAT_SESSION_ID); + return; + } + setSessionId(urlSessionId); + storage.set(Key.CHAT_SESSION_ID, urlSessionId); + } else { + const storedSessionId = storage.get(Key.CHAT_SESSION_ID); + if (storedSessionId) { + if (!isValidUUID(storedSessionId)) { + console.error("Invalid stored session ID:", storedSessionId); + storage.clean(Key.CHAT_SESSION_ID); + setSessionId(null); + } else { + setSessionId(storedSessionId); + } + } else if (autoCreate) { + setSessionId(null); + } + } + }, [urlSessionId, autoCreate]); + + const { + mutateAsync: createSessionMutation, + isPending: isCreating, + error: createError, + } = usePostV2CreateSession(); + + const { + data: sessionData, + isLoading: isLoadingSession, + error: loadError, + refetch, + } = useGetV2GetSession(sessionId || "", { + query: { + enabled: !!sessionId, + select: okData, + staleTime: Infinity, // Never mark as stale + refetchOnMount: false, // Don't refetch on component mount + refetchOnWindowFocus: false, // Don't refetch when window regains focus + refetchOnReconnect: false, // Don't refetch when network reconnects + retry: 1, + }, + }); + + const { mutateAsync: claimSessionMutation } = usePatchV2SessionAssignUser(); + + const session = useMemo(() => { + if (sessionData) return sessionData; + + if (sessionId && justCreatedSessionIdRef.current === sessionId) { + return { + id: sessionId, + user_id: null, + messages: [], + created_at: new Date().toISOString(), + updated_at: new Date().toISOString(), + } as SessionDetailResponse; + } + return null; + }, [sessionData, sessionId]); + + const messages = session?.messages || []; + const isLoading = isCreating || isLoadingSession; + + useEffect(() => { + if (createError) { + setError( + createError instanceof Error + ? createError + : new Error("Failed to create session"), + ); + } else if (loadError) { + setError( + loadError instanceof Error + ? loadError + : new Error("Failed to load session"), + ); + } else { + setError(null); + } + }, [createError, loadError]); + + const createSession = useCallback( + async function createSession() { + try { + setError(null); + const response = await postV2CreateSession({ + body: JSON.stringify({}), + }); + if (response.status !== 200) { + throw new Error("Failed to create session"); + } + const newSessionId = response.data.id; + setSessionId(newSessionId); + storage.set(Key.CHAT_SESSION_ID, newSessionId); + justCreatedSessionIdRef.current = newSessionId; + setTimeout(() => { + if (justCreatedSessionIdRef.current === newSessionId) { + justCreatedSessionIdRef.current = null; + } + }, 10000); + return newSessionId; + } catch (err) { + const error = + err instanceof Error ? err : new Error("Failed to create session"); + setError(error); + toast.error("Failed to create chat session", { + description: error.message, + }); + throw error; + } + }, + [createSessionMutation], + ); + + const loadSession = useCallback( + async function loadSession(id: string) { + try { + setError(null); + // Invalidate the query cache for this session to force a fresh fetch + await queryClient.invalidateQueries({ + queryKey: getGetV2GetSessionQueryKey(id), + }); + // Set sessionId after invalidation to ensure the hook refetches + setSessionId(id); + storage.set(Key.CHAT_SESSION_ID, id); + // Force fetch with fresh data (bypass cache) + const queryOptions = getGetV2GetSessionQueryOptions(id, { + query: { + staleTime: 0, // Force fresh fetch + retry: 1, + }, + }); + const result = await queryClient.fetchQuery(queryOptions); + if (!result || ("status" in result && result.status !== 200)) { + console.warn("Session not found on server, clearing local state"); + storage.clean(Key.CHAT_SESSION_ID); + setSessionId(null); + throw new Error("Session not found"); + } + } catch (err) { + const error = + err instanceof Error ? err : new Error("Failed to load session"); + setError(error); + throw error; + } + }, + [queryClient], + ); + + const refreshSession = useCallback( + async function refreshSession() { + if (!sessionId) { + console.log("[refreshSession] Skipping - no session ID"); + return; + } + try { + setError(null); + await refetch(); + } catch (err) { + const error = + err instanceof Error ? err : new Error("Failed to refresh session"); + setError(error); + throw error; + } + }, + [sessionId, refetch], + ); + + const claimSession = useCallback( + async function claimSession(id: string) { + try { + setError(null); + await claimSessionMutation({ sessionId: id }); + if (justCreatedSessionIdRef.current === id) { + justCreatedSessionIdRef.current = null; + } + await queryClient.invalidateQueries({ + queryKey: getGetV2GetSessionQueryKey(id), + }); + await refetch(); + toast.success("Session claimed successfully", { + description: "Your chat history has been saved to your account", + }); + } catch (err: unknown) { + const error = + err instanceof Error ? err : new Error("Failed to claim session"); + const is404 = + (typeof err === "object" && + err !== null && + "status" in err && + err.status === 404) || + (typeof err === "object" && + err !== null && + "response" in err && + typeof err.response === "object" && + err.response !== null && + "status" in err.response && + err.response.status === 404); + if (!is404) { + setError(error); + toast.error("Failed to claim session", { + description: error.message || "Unable to claim session", + }); + } + throw error; + } + }, + [claimSessionMutation, queryClient, refetch], + ); + + const clearSession = useCallback(function clearSession() { + setSessionId(null); + setError(null); + storage.clean(Key.CHAT_SESSION_ID); + justCreatedSessionIdRef.current = null; + }, []); + + return { + session, + sessionId, + messages, + isLoading, + isCreating, + error, + createSession, + loadSession, + refreshSession, + claimSession, + clearSession, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/useChatStream.ts b/autogpt_platform/frontend/src/components/contextual/Chat/useChatStream.ts new file mode 100644 index 0000000000..5f74ab1938 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/useChatStream.ts @@ -0,0 +1,248 @@ +import { useState, useCallback, useRef, useEffect } from "react"; +import { toast } from "sonner"; +import type { ToolArguments, ToolResult } from "@/types/chat"; + +const MAX_RETRIES = 3; +const INITIAL_RETRY_DELAY = 1000; + +export interface StreamChunk { + type: + | "text_chunk" + | "text_ended" + | "tool_call" + | "tool_call_start" + | "tool_response" + | "login_needed" + | "need_login" + | "credentials_needed" + | "error" + | "usage" + | "stream_end"; + timestamp?: string; + content?: string; + message?: string; + tool_id?: string; + tool_name?: string; + arguments?: ToolArguments; + result?: ToolResult; + success?: boolean; + idx?: number; + session_id?: string; + agent_info?: { + graph_id: string; + name: string; + trigger_type: string; + }; + provider?: string; + provider_name?: string; + credential_type?: string; + scopes?: string[]; + title?: string; + [key: string]: unknown; +} + +export function useChatStream() { + const [isStreaming, setIsStreaming] = useState(false); + const [error, setError] = useState(null); + const retryCountRef = useRef(0); + const retryTimeoutRef = useRef(null); + const abortControllerRef = useRef(null); + + const stopStreaming = useCallback(() => { + if (abortControllerRef.current) { + abortControllerRef.current.abort(); + abortControllerRef.current = null; + } + if (retryTimeoutRef.current) { + clearTimeout(retryTimeoutRef.current); + retryTimeoutRef.current = null; + } + retryCountRef.current = 0; + setIsStreaming(false); + }, []); + + useEffect(() => { + return () => { + stopStreaming(); + }; + }, [stopStreaming]); + + const sendMessage = useCallback( + async ( + sessionId: string, + message: string, + onChunk: (chunk: StreamChunk) => void, + isUserMessage: boolean = true, + context?: { url: string; content: string }, + ) => { + stopStreaming(); + + const abortController = new AbortController(); + abortControllerRef.current = abortController; + + if (abortController.signal.aborted) { + return Promise.reject(new Error("Request aborted")); + } + + retryCountRef.current = 0; + setIsStreaming(true); + setError(null); + + try { + const url = `/api/chat/sessions/${sessionId}/stream`; + const body = JSON.stringify({ + message, + is_user_message: isUserMessage, + context: context || null, + }); + + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "text/event-stream", + }, + body, + signal: abortController.signal, + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error(errorText || `HTTP ${response.status}`); + } + + if (!response.body) { + throw new Error("Response body is null"); + } + + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + + return new Promise((resolve, reject) => { + const cleanup = () => { + reader.cancel().catch(() => { + // Ignore cancel errors + }); + }; + + const readStream = async () => { + try { + while (true) { + const { done, value } = await reader.read(); + + if (done) { + cleanup(); + stopStreaming(); + resolve(); + return; + } + + buffer += decoder.decode(value, { stream: true }); + const lines = buffer.split("\n"); + buffer = lines.pop() || ""; + + for (const line of lines) { + if (line.startsWith("data: ")) { + const data = line.slice(6); + if (data === "[DONE]") { + cleanup(); + stopStreaming(); + resolve(); + return; + } + + try { + const chunk = JSON.parse(data) as StreamChunk; + + if (retryCountRef.current > 0) { + retryCountRef.current = 0; + } + + // Call the chunk handler + onChunk(chunk); + + // Handle stream lifecycle + if (chunk.type === "stream_end") { + cleanup(); + stopStreaming(); + resolve(); + return; + } else if (chunk.type === "error") { + cleanup(); + reject( + new Error( + chunk.message || chunk.content || "Stream error", + ), + ); + return; + } + } catch (err) { + // Skip invalid JSON lines + console.warn("Failed to parse SSE chunk:", err, data); + } + } + } + } + } catch (err) { + if (err instanceof Error && err.name === "AbortError") { + cleanup(); + return; + } + + const streamError = + err instanceof Error ? err : new Error("Failed to read stream"); + + if (retryCountRef.current < MAX_RETRIES) { + retryCountRef.current += 1; + const retryDelay = + INITIAL_RETRY_DELAY * Math.pow(2, retryCountRef.current - 1); + + toast.info("Connection interrupted", { + description: `Retrying in ${retryDelay / 1000} seconds...`, + }); + + retryTimeoutRef.current = setTimeout(() => { + sendMessage( + sessionId, + message, + onChunk, + isUserMessage, + context, + ).catch((_err) => { + // Retry failed + }); + }, retryDelay); + } else { + setError(streamError); + toast.error("Connection Failed", { + description: + "Unable to connect to chat service. Please try again.", + }); + cleanup(); + stopStreaming(); + reject(streamError); + } + } + }; + + readStream(); + }); + } catch (err) { + const streamError = + err instanceof Error ? err : new Error("Failed to start stream"); + setError(streamError); + setIsStreaming(false); + throw streamError; + } + }, + [stopStreaming], + ); + + return { + isStreaming, + error, + sendMessage, + stopStreaming, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/Chat/usePageContext.ts b/autogpt_platform/frontend/src/components/contextual/Chat/usePageContext.ts new file mode 100644 index 0000000000..39f36ac941 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/Chat/usePageContext.ts @@ -0,0 +1,42 @@ +import { useCallback } from "react"; + +export interface PageContext { + url: string; + content: string; +} + +/** + * Hook to capture the current page context (URL + full page content) + */ +export function usePageContext() { + const capturePageContext = useCallback((): PageContext => { + if (typeof window === "undefined" || typeof document === "undefined") { + return { url: "", content: "" }; + } + + const url = window.location.href; + + // Capture full page text content + // Remove script and style elements, then get text + const clone = document.cloneNode(true) as Document; + const scripts = clone.querySelectorAll("script, style, noscript"); + scripts.forEach((el) => el.remove()); + + // Get text content from body + const body = clone.body; + const content = body?.textContent || body?.innerText || ""; + + // Clean up whitespace + const cleanedContent = content + .replace(/\s+/g, " ") + .replace(/\n\s*\n/g, "\n") + .trim(); + + return { + url, + content: cleanedContent, + }; + }, []); + + return { capturePageContext }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/CredentialsInputs.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/CredentialsInputs.tsx new file mode 100644 index 0000000000..60d61fab57 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/CredentialsInputs.tsx @@ -0,0 +1,228 @@ +import { Button } from "@/components/atoms/Button/Button"; +import { Text } from "@/components/atoms/Text/Text"; +import { InformationTooltip } from "@/components/molecules/InformationTooltip/InformationTooltip"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; +import { cn } from "@/lib/utils"; +import { toDisplayName } from "@/providers/agent-credentials/helper"; +import { APIKeyCredentialsModal } from "./components/APIKeyCredentialsModal/APIKeyCredentialsModal"; +import { CredentialRow } from "./components/CredentialRow/CredentialRow"; +import { CredentialsSelect } from "./components/CredentialsSelect/CredentialsSelect"; +import { DeleteConfirmationModal } from "./components/DeleteConfirmationModal/DeleteConfirmationModal"; +import { HostScopedCredentialsModal } from "./components/HotScopedCredentialsModal/HotScopedCredentialsModal"; +import { OAuthFlowWaitingModal } from "./components/OAuthWaitingModal/OAuthWaitingModal"; +import { PasswordCredentialsModal } from "./components/PasswordCredentialsModal/PasswordCredentialsModal"; +import { getCredentialDisplayName } from "./helpers"; +import { + CredentialsInputState, + useCredentialsInput, +} from "./useCredentialsInput"; + +function isLoaded( + data: CredentialsInputState, +): data is Extract { + return data.isLoading === false; +} + +type Props = { + schema: BlockIOCredentialsSubSchema; + className?: string; + selectedCredentials?: CredentialsMetaInput; + siblingInputs?: Record; + onSelectCredentials: (newValue?: CredentialsMetaInput) => void; + onLoaded?: (loaded: boolean) => void; + readOnly?: boolean; + showTitle?: boolean; +}; + +export function CredentialsInput({ + schema, + className, + selectedCredentials: selectedCredential, + onSelectCredentials: onSelectCredential, + siblingInputs, + onLoaded, + readOnly = false, + showTitle = true, +}: Props) { + const hookData = useCredentialsInput({ + schema, + selectedCredential, + onSelectCredential, + siblingInputs, + onLoaded, + readOnly, + }); + + if (!isLoaded(hookData)) { + return null; + } + + const { + provider, + providerName, + supportsApiKey, + supportsOAuth2, + supportsUserPassword, + supportsHostScoped, + credentialsToShow, + oAuthError, + isAPICredentialsModalOpen, + isUserPasswordCredentialsModalOpen, + isHostScopedCredentialsModalOpen, + isOAuth2FlowInProgress, + oAuthPopupController, + credentialToDelete, + deleteCredentialsMutation, + actionButtonText, + setAPICredentialsModalOpen, + setUserPasswordCredentialsModalOpen, + setHostScopedCredentialsModalOpen, + setCredentialToDelete, + handleActionButtonClick, + handleCredentialSelect, + handleDeleteCredential, + handleDeleteConfirm, + } = hookData; + + const displayName = toDisplayName(provider); + const hasCredentialsToShow = credentialsToShow.length > 0; + + return ( +
    + {showTitle && ( +
    + {displayName} credentials + {schema.description && ( + + )} +
    + )} + + {hasCredentialsToShow ? ( + <> + {credentialsToShow.length > 1 && !readOnly ? ( + + ) : ( +
    + {credentialsToShow.map((credential) => { + return ( + handleCredentialSelect(credential.id)} + onDelete={() => + handleDeleteCredential({ + id: credential.id, + title: getCredentialDisplayName( + credential, + displayName, + ), + }) + } + readOnly={readOnly} + /> + ); + })} +
    + )} + {!readOnly && ( + + )} + + ) : ( + !readOnly && ( + + ) + )} + + {!readOnly && ( + <> + {supportsApiKey ? ( + setAPICredentialsModalOpen(false)} + onCredentialsCreate={(credsMeta) => { + onSelectCredential(credsMeta); + setAPICredentialsModalOpen(false); + }} + siblingInputs={siblingInputs} + /> + ) : null} + {supportsOAuth2 ? ( + oAuthPopupController?.abort("canceled")} + providerName={providerName} + /> + ) : null} + {supportsUserPassword ? ( + setUserPasswordCredentialsModalOpen(false)} + onCredentialsCreate={(creds) => { + onSelectCredential(creds); + setUserPasswordCredentialsModalOpen(false); + }} + siblingInputs={siblingInputs} + /> + ) : null} + {supportsHostScoped ? ( + setHostScopedCredentialsModalOpen(false)} + onCredentialsCreate={(creds) => { + onSelectCredential(creds); + setHostScopedCredentialsModalOpen(false); + }} + siblingInputs={siblingInputs} + /> + ) : null} + + {oAuthError ? ( + + Error: {oAuthError} + + ) : null} + + setCredentialToDelete(null)} + onConfirm={handleDeleteConfirm} + /> + + )} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/APIKeyCredentialsModal.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/APIKeyCredentialsModal.tsx new file mode 100644 index 0000000000..0180c4ebf9 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/APIKeyCredentialsModal.tsx @@ -0,0 +1,129 @@ +import { Input } from "@/components/atoms/Input/Input"; +import { Button } from "@/components/atoms/Button/Button"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; +import { + Form, + FormDescription, + FormField, +} from "@/components/__legacy__/ui/form"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; +import { useAPIKeyCredentialsModal } from "./useAPIKeyCredentialsModal"; + +type Props = { + schema: BlockIOCredentialsSubSchema; + open: boolean; + onClose: () => void; + onCredentialsCreate: (creds: CredentialsMetaInput) => void; + siblingInputs?: Record; +}; + +export function APIKeyCredentialsModal({ + schema, + open, + onClose, + onCredentialsCreate, + siblingInputs, +}: Props) { + const { + form, + isLoading, + supportsApiKey, + providerName, + schemaDescription, + onSubmit, + } = useAPIKeyCredentialsModal({ schema, siblingInputs, onCredentialsCreate }); + + if (isLoading || !supportsApiKey) { + return null; + } + + return ( + { + if (!isOpen) onClose(); + }, + }} + onClose={onClose} + styling={{ + maxWidth: "25rem", + }} + > + + {schemaDescription && ( +

    {schemaDescription}

    + )} + +
    + + ( + <> + + Required scope(s) for this block:{" "} + {schema.credentials_scopes?.map((s, i, a) => ( + + {s} + {i < a.length - 1 && ", "} + + ))} + + ) : null + } + {...field} + /> + + )} + /> + ( + + )} + /> + ( + + )} + /> + + + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/useAPIKeyCredentialsModal.ts b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/useAPIKeyCredentialsModal.ts new file mode 100644 index 0000000000..391633bed5 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/APIKeyCredentialsModal/useAPIKeyCredentialsModal.ts @@ -0,0 +1,82 @@ +import { z } from "zod"; +import { useForm, type UseFormReturn } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import useCredentials from "@/hooks/useCredentials"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; + +export type APIKeyFormValues = { + apiKey: string; + title: string; + expiresAt?: string; +}; + +type Args = { + schema: BlockIOCredentialsSubSchema; + siblingInputs?: Record; + onCredentialsCreate: (creds: CredentialsMetaInput) => void; +}; + +export function useAPIKeyCredentialsModal({ + schema, + siblingInputs, + onCredentialsCreate, +}: Args): { + form: UseFormReturn; + isLoading: boolean; + supportsApiKey: boolean; + provider?: string; + providerName?: string; + schemaDescription?: string; + onSubmit: (values: APIKeyFormValues) => Promise; +} { + const credentials = useCredentials(schema, siblingInputs); + + const formSchema = z.object({ + apiKey: z.string().min(1, "API Key is required"), + title: z.string().min(1, "Name is required"), + expiresAt: z.string().optional(), + }); + + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + apiKey: "", + title: "", + expiresAt: "", + }, + }); + + async function onSubmit(values: APIKeyFormValues) { + if (!credentials || credentials.isLoading) return; + const expiresAt = values.expiresAt + ? new Date(values.expiresAt).getTime() / 1000 + : undefined; + const newCredentials = await credentials.createAPIKeyCredentials({ + api_key: values.apiKey, + title: values.title, + expires_at: expiresAt, + }); + onCredentialsCreate({ + provider: credentials.provider, + id: newCredentials.id, + type: "api_key", + title: newCredentials.title, + }); + } + + return { + form, + isLoading: !credentials || credentials.isLoading, + supportsApiKey: !!credentials?.supportsApiKey, + provider: credentials?.provider, + providerName: + !credentials || credentials.isLoading + ? undefined + : credentials.providerName, + schemaDescription: schema.description, + onSubmit, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialRow/CredentialRow.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialRow/CredentialRow.tsx new file mode 100644 index 0000000000..21ec1200e4 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialRow/CredentialRow.tsx @@ -0,0 +1,105 @@ +import { IconKey } from "@/components/__legacy__/ui/icons"; +import { Text } from "@/components/atoms/Text/Text"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/molecules/DropdownMenu/DropdownMenu"; +import { cn } from "@/lib/utils"; +import { CaretDown, DotsThreeVertical } from "@phosphor-icons/react"; +import { + fallbackIcon, + getCredentialDisplayName, + MASKED_KEY_LENGTH, + providerIcons, +} from "../../helpers"; + +type CredentialRowProps = { + credential: { + id: string; + title?: string; + username?: string; + type: string; + provider: string; + }; + provider: string; + displayName: string; + onSelect: () => void; + onDelete: () => void; + readOnly?: boolean; + showCaret?: boolean; + asSelectTrigger?: boolean; +}; + +export function CredentialRow({ + credential, + provider, + displayName, + onSelect, + onDelete, + readOnly = false, + showCaret = false, + asSelectTrigger = false, +}: CredentialRowProps) { + const ProviderIcon = providerIcons[provider] || fallbackIcon; + + return ( +
    +
    + +
    + +
    + + {getCredentialDisplayName(credential, displayName)} + + + {"*".repeat(MASKED_KEY_LENGTH)} + +
    + {showCaret && !asSelectTrigger && ( + + )} + {!readOnly && !showCaret && !asSelectTrigger && ( + + + + + + { + e.stopPropagation(); + onDelete(); + }} + > + Delete + + + + )} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialsSelect/CredentialsSelect.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialsSelect/CredentialsSelect.tsx new file mode 100644 index 0000000000..7adfa5772b --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/CredentialsSelect/CredentialsSelect.tsx @@ -0,0 +1,86 @@ +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/__legacy__/ui/select"; +import { Text } from "@/components/atoms/Text/Text"; +import { CredentialsMetaInput } from "@/lib/autogpt-server-api/types"; +import { useEffect } from "react"; +import { getCredentialDisplayName } from "../../helpers"; +import { CredentialRow } from "../CredentialRow/CredentialRow"; + +interface Props { + credentials: Array<{ + id: string; + title?: string; + username?: string; + type: string; + provider: string; + }>; + provider: string; + displayName: string; + selectedCredentials?: CredentialsMetaInput; + onSelectCredential: (credentialId: string) => void; + readOnly?: boolean; +} + +export function CredentialsSelect({ + credentials, + provider, + displayName, + selectedCredentials, + onSelectCredential, + readOnly = false, +}: Props) { + // Auto-select first credential if none is selected + useEffect(() => { + if (!selectedCredentials && credentials.length > 0) { + onSelectCredential(credentials[0].id); + } + }, [selectedCredentials, credentials, onSelectCredential]); + + return ( +
    + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/DeleteConfirmationModal/DeleteConfirmationModal.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/DeleteConfirmationModal/DeleteConfirmationModal.tsx new file mode 100644 index 0000000000..e3dd811ccc --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/DeleteConfirmationModal/DeleteConfirmationModal.tsx @@ -0,0 +1,49 @@ +import { Button } from "@/components/atoms/Button/Button"; +import { Text } from "@/components/atoms/Text/Text"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; + +interface Props { + credentialToDelete: { id: string; title: string } | null; + isDeleting: boolean; + onClose: () => void; + onConfirm: () => void; +} + +export function DeleteConfirmationModal({ + credentialToDelete, + isDeleting, + onClose, + onConfirm, +}: Props) { + return ( + { + if (!open) onClose(); + }, + }} + title="Delete credential" + styling={{ maxWidth: "32rem" }} + > + + + Are you sure you want to delete "{credentialToDelete?.title} + "? This action cannot be undone. + + + + + + + + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/HotScopedCredentialsModal/HotScopedCredentialsModal.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/HotScopedCredentialsModal/HotScopedCredentialsModal.tsx new file mode 100644 index 0000000000..547952841b --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/HotScopedCredentialsModal/HotScopedCredentialsModal.tsx @@ -0,0 +1,242 @@ +import { useEffect, useState } from "react"; +import { z } from "zod"; +import { useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { Input } from "@/components/atoms/Input/Input"; +import { Button } from "@/components/atoms/Button/Button"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; +import { + Form, + FormDescription, + FormField, + FormLabel, +} from "@/components/__legacy__/ui/form"; +import useCredentials from "@/hooks/useCredentials"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; +import { getHostFromUrl } from "@/lib/utils/url"; +import { PlusIcon, TrashIcon } from "@phosphor-icons/react"; + +type Props = { + schema: BlockIOCredentialsSubSchema; + open: boolean; + onClose: () => void; + onCredentialsCreate: (creds: CredentialsMetaInput) => void; + siblingInputs?: Record; +}; + +export function HostScopedCredentialsModal({ + schema, + open, + onClose, + onCredentialsCreate, + siblingInputs, +}: Props) { + const credentials = useCredentials(schema, siblingInputs); + + // Get current host from siblingInputs or discriminator_values + const currentUrl = credentials?.discriminatorValue; + const currentHost = currentUrl ? getHostFromUrl(currentUrl) : ""; + + const formSchema = z.object({ + host: z.string().min(1, "Host is required"), + title: z.string().optional(), + headers: z.record(z.string()).optional(), + }); + + const form = useForm>({ + resolver: zodResolver(formSchema), + defaultValues: { + host: currentHost || "", + title: currentHost || "Manual Entry", + headers: {}, + }, + }); + + const [headerPairs, setHeaderPairs] = useState< + Array<{ key: string; value: string }> + >([{ key: "", value: "" }]); + + // Update form values when siblingInputs change + useEffect(() => { + if (currentHost) { + form.setValue("host", currentHost); + form.setValue("title", currentHost); + } else { + // Reset to empty when no current host + form.setValue("host", ""); + form.setValue("title", "Manual Entry"); + } + }, [currentHost, form]); + + if ( + !credentials || + credentials.isLoading || + !credentials.supportsHostScoped + ) { + return null; + } + + const { provider, providerName, createHostScopedCredentials } = credentials; + + const addHeaderPair = () => { + setHeaderPairs([...headerPairs, { key: "", value: "" }]); + }; + + const removeHeaderPair = (index: number) => { + if (headerPairs.length > 1) { + setHeaderPairs(headerPairs.filter((_, i) => i !== index)); + } + }; + + const updateHeaderPair = ( + index: number, + field: "key" | "value", + value: string, + ) => { + const newPairs = [...headerPairs]; + newPairs[index][field] = value; + setHeaderPairs(newPairs); + }; + + async function onSubmit(values: z.infer) { + // Convert header pairs to object, filtering out empty pairs + const headers = headerPairs.reduce( + (acc, pair) => { + if (pair.key.trim() && pair.value.trim()) { + acc[pair.key.trim()] = pair.value.trim(); + } + return acc; + }, + {} as Record, + ); + + const newCredentials = await createHostScopedCredentials({ + host: values.host, + title: currentHost || values.host, + headers, + }); + + onCredentialsCreate({ + provider, + id: newCredentials.id, + type: "host_scoped", + title: newCredentials.title, + }); + } + + return ( + { + if (!isOpen) onClose(); + }, + }} + onClose={onClose} + styling={{ + maxWidth: "25rem", + }} + > + + {schema.description && ( +

    {schema.description}

    + )} + +
    + + ( + + )} + /> + +
    + Headers + + Add sensitive headers (like Authorization, X-API-Key) that + should be automatically included in requests to the specified + host. + + + {headerPairs.map((pair, index) => ( +
    + + updateHeaderPair(index, "key", e.target.value) + } + /> + + + updateHeaderPair(index, "value", e.target.value) + } + /> + +
    + ))} + + +
    + +
    + +
    + + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/OAuthWaitingModal/OAuthWaitingModal.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/OAuthWaitingModal/OAuthWaitingModal.tsx new file mode 100644 index 0000000000..10fb5e00d7 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/OAuthWaitingModal/OAuthWaitingModal.tsx @@ -0,0 +1,30 @@ +import { Dialog } from "@/components/molecules/Dialog/Dialog"; + +type Props = { + open: boolean; + onClose: () => void; + providerName: string; +}; + +export function OAuthFlowWaitingModal({ open, onClose, providerName }: Props) { + return ( + { + if (!isOpen) onClose(); + }, + }} + onClose={onClose} + > + +

    + Complete the sign-in process in the pop-up window. +
    + Closing this dialog will cancel the sign-in process. +

    +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/PasswordCredentialsModal/PasswordCredentialsModal.tsx b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/PasswordCredentialsModal/PasswordCredentialsModal.tsx new file mode 100644 index 0000000000..c75b7be988 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/components/PasswordCredentialsModal/PasswordCredentialsModal.tsx @@ -0,0 +1,138 @@ +import { Form, FormField } from "@/components/__legacy__/ui/form"; +import { Button } from "@/components/atoms/Button/Button"; +import { Input } from "@/components/atoms/Input/Input"; +import { Dialog } from "@/components/molecules/Dialog/Dialog"; +import useCredentials from "@/hooks/useCredentials"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useForm } from "react-hook-form"; +import { z } from "zod"; + +type Props = { + schema: BlockIOCredentialsSubSchema; + open: boolean; + onClose: () => void; + onCredentialsCreate: (creds: CredentialsMetaInput) => void; + siblingInputs?: Record; +}; + +export function PasswordCredentialsModal({ + schema, + open, + onClose, + onCredentialsCreate, + siblingInputs, +}: Props) { + const credentials = useCredentials(schema, siblingInputs); + + const formSchema = z.object({ + username: z.string().min(1, "Username is required"), + password: z.string().min(1, "Password is required"), + title: z.string().min(1, "Name is required"), + }); + + const form = useForm>({ + resolver: zodResolver(formSchema), + defaultValues: { + username: "", + password: "", + title: "", + }, + }); + + if ( + !credentials || + credentials.isLoading || + !credentials.supportsUserPassword + ) { + return null; + } + + const { provider, providerName, createUserPasswordCredentials } = credentials; + + async function onSubmit(values: z.infer) { + const newCredentials = await createUserPasswordCredentials({ + username: values.username, + password: values.password, + title: values.title, + }); + onCredentialsCreate({ + provider, + id: newCredentials.id, + type: "user_password", + title: newCredentials.title, + }); + } + + return ( + { + if (!isOpen) onClose(); + }, + }} + onClose={onClose} + styling={{ + maxWidth: "25rem", + }} + > + +
    + + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + + + +
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/helpers.ts b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/helpers.ts new file mode 100644 index 0000000000..4cca825747 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/helpers.ts @@ -0,0 +1,102 @@ +import { KeyIcon } from "@phosphor-icons/react"; +import { NotionLogoIcon } from "@radix-ui/react-icons"; +import { + FaDiscord, + FaGithub, + FaGoogle, + FaHubspot, + FaMedium, + FaTwitter, +} from "react-icons/fa"; + +export const fallbackIcon = KeyIcon; + +export const providerIcons: Partial< + Record> +> = { + aiml_api: fallbackIcon, + anthropic: fallbackIcon, + apollo: fallbackIcon, + e2b: fallbackIcon, + github: FaGithub, + google: FaGoogle, + groq: fallbackIcon, + http: fallbackIcon, + notion: NotionLogoIcon, + nvidia: fallbackIcon, + discord: FaDiscord, + d_id: fallbackIcon, + google_maps: FaGoogle, + jina: fallbackIcon, + ideogram: fallbackIcon, + linear: fallbackIcon, + medium: FaMedium, + mem0: fallbackIcon, + ollama: fallbackIcon, + openai: fallbackIcon, + openweathermap: fallbackIcon, + open_router: fallbackIcon, + llama_api: fallbackIcon, + pinecone: fallbackIcon, + enrichlayer: fallbackIcon, + slant3d: fallbackIcon, + screenshotone: fallbackIcon, + smtp: fallbackIcon, + replicate: fallbackIcon, + reddit: fallbackIcon, + fal: fallbackIcon, + revid: fallbackIcon, + twitter: FaTwitter, + unreal_speech: fallbackIcon, + exa: fallbackIcon, + hubspot: FaHubspot, + smartlead: fallbackIcon, + todoist: fallbackIcon, + zerobounce: fallbackIcon, +}; + +export type OAuthPopupResultMessage = { message_type: "oauth_popup_result" } & ( + | { + success: true; + code: string; + state: string; + } + | { + success: false; + message: string; + } +); + +export function getActionButtonText( + supportsOAuth2: boolean, + supportsApiKey: boolean, + supportsUserPassword: boolean, + supportsHostScoped: boolean, + hasExistingCredentials: boolean, +): string { + if (hasExistingCredentials) { + if (supportsOAuth2) return "Connect another account"; + if (supportsApiKey) return "Use a new API key"; + if (supportsUserPassword) return "Add a new username and password"; + if (supportsHostScoped) return "Add new headers"; + return "Add new credentials"; + } else { + if (supportsOAuth2) return "Add account"; + if (supportsApiKey) return "Add API key"; + if (supportsUserPassword) return "Add username and password"; + if (supportsHostScoped) return "Add headers"; + return "Add credentials"; + } +} + +export function getCredentialDisplayName( + credential: { title?: string; username?: string }, + displayName: string, +): string { + return ( + credential.title || credential.username || `Your ${displayName} account` + ); +} + +export const OAUTH_TIMEOUT_MS = 5 * 60 * 1000; +export const MASKED_KEY_LENGTH = 30; diff --git a/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/useCredentialsInput.ts b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/useCredentialsInput.ts new file mode 100644 index 0000000000..6f5ca48126 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/CredentialsInputs/useCredentialsInput.ts @@ -0,0 +1,315 @@ +import { useDeleteV1DeleteCredentials } from "@/app/api/__generated__/endpoints/integrations/integrations"; +import useCredentials from "@/hooks/useCredentials"; +import { useBackendAPI } from "@/lib/autogpt-server-api/context"; +import { + BlockIOCredentialsSubSchema, + CredentialsMetaInput, +} from "@/lib/autogpt-server-api/types"; +import { useQueryClient } from "@tanstack/react-query"; +import { useEffect, useMemo, useState } from "react"; +import { + getActionButtonText, + OAUTH_TIMEOUT_MS, + OAuthPopupResultMessage, +} from "./helpers"; + +export type CredentialsInputState = ReturnType; + +type Params = { + schema: BlockIOCredentialsSubSchema; + selectedCredential?: CredentialsMetaInput; + onSelectCredential: (newValue?: CredentialsMetaInput) => void; + siblingInputs?: Record; + onLoaded?: (loaded: boolean) => void; + readOnly?: boolean; +}; + +export function useCredentialsInput({ + schema, + selectedCredential, + onSelectCredential, + siblingInputs, + onLoaded, + readOnly = false, +}: Params) { + const [isAPICredentialsModalOpen, setAPICredentialsModalOpen] = + useState(false); + const [ + isUserPasswordCredentialsModalOpen, + setUserPasswordCredentialsModalOpen, + ] = useState(false); + const [isHostScopedCredentialsModalOpen, setHostScopedCredentialsModalOpen] = + useState(false); + const [isOAuth2FlowInProgress, setOAuth2FlowInProgress] = useState(false); + const [oAuthPopupController, setOAuthPopupController] = + useState(null); + const [oAuthError, setOAuthError] = useState(null); + const [credentialToDelete, setCredentialToDelete] = useState<{ + id: string; + title: string; + } | null>(null); + + const api = useBackendAPI(); + const queryClient = useQueryClient(); + const credentials = useCredentials(schema, siblingInputs); + + const deleteCredentialsMutation = useDeleteV1DeleteCredentials({ + mutation: { + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: ["/api/integrations/credentials"], + }); + queryClient.invalidateQueries({ + queryKey: [`/api/integrations/${credentials?.provider}/credentials`], + }); + setCredentialToDelete(null); + if (selectedCredential?.id === credentialToDelete?.id) { + onSelectCredential(undefined); + } + }, + }, + }); + + useEffect(() => { + if (onLoaded) { + onLoaded(Boolean(credentials && credentials.isLoading === false)); + } + }, [credentials, onLoaded]); + + // Unselect credential if not available + useEffect(() => { + if (readOnly) return; + if (!credentials || !("savedCredentials" in credentials)) return; + if ( + selectedCredential && + !credentials.savedCredentials.some((c) => c.id === selectedCredential.id) + ) { + onSelectCredential(undefined); + } + }, [credentials, selectedCredential, onSelectCredential, readOnly]); + + // The available credential, if there is only one + const singleCredential = useMemo(() => { + if (!credentials || !("savedCredentials" in credentials)) { + return null; + } + + return credentials.savedCredentials.length === 1 + ? credentials.savedCredentials[0] + : null; + }, [credentials]); + + // Auto-select the one available credential + useEffect(() => { + if (readOnly) return; + if (singleCredential && !selectedCredential) { + onSelectCredential(singleCredential); + } + }, [singleCredential, selectedCredential, onSelectCredential, readOnly]); + + if ( + !credentials || + credentials.isLoading || + !("savedCredentials" in credentials) + ) { + return { + isLoading: true, + }; + } + + const { + provider, + providerName, + supportsApiKey, + supportsOAuth2, + supportsUserPassword, + supportsHostScoped, + savedCredentials, + oAuthCallback, + } = credentials; + + async function handleOAuthLogin() { + setOAuthError(null); + const { login_url, state_token } = await api.oAuthLogin( + provider, + schema.credentials_scopes, + ); + setOAuth2FlowInProgress(true); + const popup = window.open(login_url, "_blank", "popup=true"); + + if (!popup) { + throw new Error( + "Failed to open popup window. Please allow popups for this site.", + ); + } + + const controller = new AbortController(); + setOAuthPopupController(controller); + controller.signal.onabort = () => { + console.debug("OAuth flow aborted"); + setOAuth2FlowInProgress(false); + popup.close(); + }; + + const handleMessage = async (e: MessageEvent) => { + console.debug("Message received:", e.data); + if ( + typeof e.data != "object" || + !("message_type" in e.data) || + e.data.message_type !== "oauth_popup_result" + ) { + console.debug("Ignoring irrelevant message"); + return; + } + + if (!e.data.success) { + console.error("OAuth flow failed:", e.data.message); + setOAuthError(`OAuth flow failed: ${e.data.message}`); + setOAuth2FlowInProgress(false); + return; + } + + if (e.data.state !== state_token) { + console.error("Invalid state token received"); + setOAuthError("Invalid state token received"); + setOAuth2FlowInProgress(false); + return; + } + + try { + console.debug("Processing OAuth callback"); + const credentials = await oAuthCallback(e.data.code, e.data.state); + console.debug("OAuth callback processed successfully"); + + // Check if the credential's scopes match the required scopes + const requiredScopes = schema.credentials_scopes; + if (requiredScopes && requiredScopes.length > 0) { + const grantedScopes = new Set(credentials.scopes || []); + const hasAllRequiredScopes = new Set(requiredScopes).isSubsetOf( + grantedScopes, + ); + + if (!hasAllRequiredScopes) { + console.error( + `Newly created OAuth credential for ${providerName} has insufficient scopes. Required:`, + requiredScopes, + "Granted:", + credentials.scopes, + ); + setOAuthError( + "Connection failed: the granted permissions don't match what's required. " + + "Please contact the application administrator.", + ); + return; + } + } + + onSelectCredential({ + id: credentials.id, + type: "oauth2", + title: credentials.title, + provider, + }); + } catch (error) { + console.error("Error in OAuth callback:", error); + setOAuthError( + `Error in OAuth callback: ${ + error instanceof Error ? error.message : String(error) + }`, + ); + } finally { + console.debug("Finalizing OAuth flow"); + setOAuth2FlowInProgress(false); + controller.abort("success"); + } + }; + + console.debug("Adding message event listener"); + window.addEventListener("message", handleMessage, { + signal: controller.signal, + }); + + setTimeout(() => { + console.debug("OAuth flow timed out"); + controller.abort("timeout"); + setOAuth2FlowInProgress(false); + setOAuthError("OAuth flow timed out"); + }, OAUTH_TIMEOUT_MS); + } + + function handleActionButtonClick() { + if (supportsOAuth2) { + handleOAuthLogin(); + } else if (supportsApiKey) { + setAPICredentialsModalOpen(true); + } else if (supportsUserPassword) { + setUserPasswordCredentialsModalOpen(true); + } else if (supportsHostScoped) { + setHostScopedCredentialsModalOpen(true); + } + } + + function handleCredentialSelect(credentialId: string) { + const selectedCreds = savedCredentials.find((c) => c.id === credentialId); + if (selectedCreds) { + onSelectCredential({ + id: selectedCreds.id, + type: selectedCreds.type, + provider: provider, + title: (selectedCreds as any).title, + }); + } + } + + function handleDeleteCredential(credential: { id: string; title: string }) { + setCredentialToDelete(credential); + } + + function handleDeleteConfirm() { + if (credentialToDelete && credentials) { + deleteCredentialsMutation.mutate({ + provider: credentials.provider, + credId: credentialToDelete.id, + }); + } + } + + return { + isLoading: false as const, + provider, + providerName, + supportsApiKey, + supportsOAuth2, + supportsUserPassword, + supportsHostScoped, + credentialsToShow: savedCredentials, + selectedCredential, + oAuthError, + isAPICredentialsModalOpen, + isUserPasswordCredentialsModalOpen, + isHostScopedCredentialsModalOpen, + isOAuth2FlowInProgress, + oAuthPopupController, + credentialToDelete, + deleteCredentialsMutation, + actionButtonText: getActionButtonText( + supportsOAuth2, + supportsApiKey, + supportsUserPassword, + supportsHostScoped, + savedCredentials.length > 0, + ), + setAPICredentialsModalOpen, + setUserPasswordCredentialsModalOpen, + setHostScopedCredentialsModalOpen, + setCredentialToDelete, + handleActionButtonClick, + handleCredentialSelect, + handleDeleteCredential, + handleDeleteConfirm, + handleOAuthLogin, + onSelectCredential, + schema, + siblingInputs, + }; +} diff --git a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx index e0a43b8c77..cf138a9747 100644 --- a/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx +++ b/autogpt_platform/frontend/src/components/contextual/GoogleDrivePicker/GoogleDrivePicker.tsx @@ -1,7 +1,7 @@ "use client"; -import { CredentialsInput } from "@/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/modals/CredentialsInputs/CredentialsInputs"; import { Button } from "@/components/atoms/Button/Button"; +import { CredentialsInput } from "@/components/contextual/CredentialsInputs/CredentialsInputs"; import { CircleNotchIcon, FolderOpenIcon } from "@phosphor-icons/react"; import { Props as BaseProps, diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputActions.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputActions.tsx new file mode 100644 index 0000000000..cfe69e8709 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputActions.tsx @@ -0,0 +1,106 @@ +"use client"; + +import React, { useState } from "react"; +import { CheckIcon, CopyIcon, DownloadIcon } from "@phosphor-icons/react"; +import { Button } from "@/components/atoms/Button/Button"; +import { OutputRenderer, OutputMetadata } from "../types"; +import { downloadOutputs } from "../utils/download"; +import { cn } from "@/lib/utils"; + +interface OutputActionsProps { + items: Array<{ + value: unknown; + metadata?: OutputMetadata; + renderer: OutputRenderer; + }>; + isPrimary?: boolean; + className?: string; +} + +export function OutputActions({ + items, + isPrimary = false, +}: OutputActionsProps) { + const [copied, setCopied] = useState(false); + + const handleCopyAll = async () => { + const textContents: string[] = []; + + for (const item of items) { + const copyContent = item.renderer.getCopyContent( + item.value, + item.metadata, + ); + if ( + copyContent && + item.renderer.isConcatenable(item.value, item.metadata) + ) { + // For concatenable items, extract the text + let text: string; + if (typeof copyContent.data === "string") { + text = copyContent.data; + } else if (copyContent.fallbackText) { + text = copyContent.fallbackText; + } else { + continue; + } + textContents.push(text); + } + } + + if (textContents.length > 0) { + const combinedText = textContents.join("\n\n"); + try { + await navigator.clipboard.writeText(combinedText); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (error) { + console.error("Failed to copy:", error); + } + } + }; + + const handleDownloadAll = () => { + downloadOutputs(items); + }; + + return ( +
    + + + +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputItem.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputItem.tsx new file mode 100644 index 0000000000..c5c91d5d48 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputItem.tsx @@ -0,0 +1,30 @@ +"use client"; + +import { Text } from "@/components/atoms/Text/Text"; +import { OutputMetadata, OutputRenderer } from "../types"; + +interface OutputItemProps { + value: any; + metadata?: OutputMetadata; + renderer: OutputRenderer; + label?: string; +} + +export function OutputItem({ + value, + metadata, + renderer, + label, +}: OutputItemProps) { + return ( +
    + {label && ( + + {label} + + )} + +
    {renderer.render(value, metadata)}
    +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/index.ts b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/index.ts new file mode 100644 index 0000000000..ba26054eb2 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/index.ts @@ -0,0 +1,20 @@ +import { globalRegistry } from "./types"; +import { textRenderer } from "./renderers/TextRenderer"; +import { codeRenderer } from "./renderers/CodeRenderer"; +import { imageRenderer } from "./renderers/ImageRenderer"; +import { videoRenderer } from "./renderers/VideoRenderer"; +import { jsonRenderer } from "./renderers/JSONRenderer"; +import { markdownRenderer } from "./renderers/MarkdownRenderer"; + +// Register all renderers in priority order +globalRegistry.register(videoRenderer); +globalRegistry.register(imageRenderer); +globalRegistry.register(codeRenderer); +globalRegistry.register(markdownRenderer); +globalRegistry.register(jsonRenderer); +globalRegistry.register(textRenderer); + +export { globalRegistry }; +export type { OutputRenderer, OutputMetadata, DownloadContent } from "./types"; +export { OutputItem } from "./components/OutputItem"; +export { OutputActions } from "./components/OutputActions"; diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/CodeRenderer.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/CodeRenderer.tsx new file mode 100644 index 0000000000..93df7d8ddd --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/CodeRenderer.tsx @@ -0,0 +1,135 @@ +import React from "react"; +import { + OutputRenderer, + OutputMetadata, + DownloadContent, + CopyContent, +} from "../types"; + +function getFileExtension(language: string): string { + const extensionMap: Record = { + javascript: "js", + typescript: "ts", + python: "py", + java: "java", + csharp: "cs", + cpp: "cpp", + c: "c", + html: "html", + css: "css", + json: "json", + xml: "xml", + yaml: "yaml", + markdown: "md", + sql: "sql", + bash: "sh", + shell: "sh", + plaintext: "txt", + }; + + return extensionMap[language.toLowerCase()] || "txt"; +} + +function canRenderCode(value: unknown, metadata?: OutputMetadata): boolean { + if (metadata?.type === "code" || metadata?.language) { + return typeof value === "string"; + } + + if (typeof value !== "string") return false; + + const markdownIndicators = [ + /^#{1,6}\s+/m, + /\*\*[^*]+\*\*/, + /\[([^\]]+)\]\(([^)]+)\)/, + /^>\s+/m, + /^\s*[-*+]\s+\w+/m, + /!\[([^\]]*)\]\(([^)]+)\)/, + ]; + + let markdownMatches = 0; + for (const pattern of markdownIndicators) { + if (pattern.test(value)) { + markdownMatches++; + if (markdownMatches >= 2) { + return false; + } + } + } + + const codeIndicators = [ + /^(function|const|let|var|class|import|export|if|for|while)\s/m, + /^def\s+\w+\s*\(/m, + /^import\s+/m, + /^from\s+\w+\s+import/m, + /^\s*<[^>]+>/, + /[{}[\]();]/, + ]; + + return codeIndicators.some((pattern) => pattern.test(value)); +} + +function renderCode( + value: unknown, + metadata?: OutputMetadata, +): React.ReactNode { + const codeValue = String(value); + const language = metadata?.language || "plaintext"; + + return ( +
    + {metadata?.language && ( +
    + {language} +
    + )} +
    +        {codeValue}
    +      
    +
    + ); +} + +function getCopyContentCode( + value: unknown, + _metadata?: OutputMetadata, +): CopyContent | null { + const codeValue = String(value); + return { + mimeType: "text/plain", + data: codeValue, + fallbackText: codeValue, + }; +} + +function getDownloadContentCode( + value: unknown, + metadata?: OutputMetadata, +): DownloadContent | null { + const codeValue = String(value); + const language = metadata?.language || "txt"; + const extension = getFileExtension(language); + const blob = new Blob([codeValue], { type: "text/plain" }); + + return { + data: blob, + filename: metadata?.filename || `code.${extension}`, + mimeType: "text/plain", + }; +} + +function isConcatenableCode( + _value: unknown, + _metadata?: OutputMetadata, +): boolean { + return true; +} + +export const codeRenderer: OutputRenderer = { + name: "CodeRenderer", + priority: 30, + canRender: canRenderCode, + render: renderCode, + getCopyContent: getCopyContentCode, + getDownloadContent: getDownloadContentCode, + isConcatenable: isConcatenableCode, +}; diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/ImageRenderer.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/ImageRenderer.tsx new file mode 100644 index 0000000000..f2a7636c6e --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/ImageRenderer.tsx @@ -0,0 +1,209 @@ +import React from "react"; +import { + OutputRenderer, + OutputMetadata, + DownloadContent, + CopyContent, +} from "../types"; + +const imageExtensions = [ + ".jpg", + ".jpeg", + ".png", + ".gif", + ".bmp", + ".svg", + ".webp", + ".ico", +]; + +const imageMimeTypes = [ + "image/jpeg", + "image/png", + "image/gif", + "image/bmp", + "image/svg+xml", + "image/webp", + "image/x-icon", +]; + +function guessMimeType(url: string): string | null { + const extension = url.split(".").pop()?.toLowerCase(); + const mimeMap: Record = { + jpg: "image/jpeg", + jpeg: "image/jpeg", + png: "image/png", + gif: "image/gif", + bmp: "image/bmp", + svg: "image/svg+xml", + webp: "image/webp", + ico: "image/x-icon", + }; + return extension ? mimeMap[extension] || null : null; +} + +function canRenderImage(value: unknown, metadata?: OutputMetadata): boolean { + if ( + metadata?.type === "image" || + (metadata?.mimeType && imageMimeTypes.includes(metadata.mimeType)) + ) { + return true; + } + + if (typeof value === "object" && value !== null) { + const obj = value as any; + if (obj.url || obj.data || obj.path) { + const urlOrData = obj.url || obj.data || obj.path; + + if (typeof urlOrData === "string") { + if (urlOrData.startsWith("data:image/")) { + return true; + } + + if ( + urlOrData.startsWith("http://") || + urlOrData.startsWith("https://") + ) { + const hasImageExt = imageExtensions.some((ext) => + urlOrData.toLowerCase().includes(ext), + ); + return hasImageExt; + } + } + } + + if (obj.filename) { + const hasImageExt = imageExtensions.some((ext) => + obj.filename.toLowerCase().endsWith(ext), + ); + return hasImageExt; + } + } + + if (typeof value === "string") { + if (value.startsWith("data:image/")) { + return true; + } + + if (value.startsWith("http://") || value.startsWith("https://")) { + const hasImageExt = imageExtensions.some((ext) => + value.toLowerCase().includes(ext), + ); + return hasImageExt; + } + + if (metadata?.filename) { + const hasImageExt = imageExtensions.some((ext) => + metadata.filename!.toLowerCase().endsWith(ext), + ); + return hasImageExt; + } + } + + return false; +} + +function renderImage( + value: unknown, + metadata?: OutputMetadata, +): React.ReactNode { + const imageUrl = String(value); + const altText = metadata?.filename || "Output image"; + + return ( +
    + {/* eslint-disable-next-line @next/next/no-img-element */} + {altText} +
    + ); +} + +function getCopyContentImage( + value: unknown, + metadata?: OutputMetadata, +): CopyContent | null { + const imageUrl = String(value); + + if (imageUrl.startsWith("data:")) { + const mimeMatch = imageUrl.match(/data:([^;]+)/); + const mimeType = mimeMatch?.[1] || "image/png"; + + return { + mimeType: mimeType, + data: async () => { + const response = await fetch(imageUrl); + return await response.blob(); + }, + alternativeMimeTypes: ["image/png", "text/plain"], + fallbackText: imageUrl, + }; + } + + const mimeType = metadata?.mimeType || guessMimeType(imageUrl) || "image/png"; + + return { + mimeType: mimeType, + data: async () => { + const response = await fetch(imageUrl); + return await response.blob(); + }, + alternativeMimeTypes: ["image/png", "text/plain"], + fallbackText: imageUrl, + }; +} + +function getDownloadContentImage( + value: unknown, + metadata?: OutputMetadata, +): DownloadContent | null { + const imageUrl = String(value); + + if (imageUrl.startsWith("data:")) { + const [mimeInfo, base64Data] = imageUrl.split(","); + const mimeType = mimeInfo.match(/data:([^;]+)/)?.[1] || "image/png"; + const byteCharacters = atob(base64Data); + const byteNumbers = new Array(byteCharacters.length); + + for (let i = 0; i < byteCharacters.length; i++) { + byteNumbers[i] = byteCharacters.charCodeAt(i); + } + + const byteArray = new Uint8Array(byteNumbers); + const blob = new Blob([byteArray], { type: mimeType }); + + const extension = mimeType.split("/")[1] || "png"; + return { + data: blob, + filename: metadata?.filename || `image.${extension}`, + mimeType, + }; + } + + return { + data: imageUrl, + filename: metadata?.filename || "image.png", + mimeType: metadata?.mimeType || "image/png", + }; +} + +function isConcatenableImage( + _value: unknown, + _metadata?: OutputMetadata, +): boolean { + return false; +} + +export const imageRenderer: OutputRenderer = { + name: "ImageRenderer", + priority: 40, + canRender: canRenderImage, + render: renderImage, + getCopyContent: getCopyContentImage, + getDownloadContent: getDownloadContentImage, + isConcatenable: isConcatenableImage, +}; diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/JSONRenderer.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/JSONRenderer.tsx new file mode 100644 index 0000000000..668f9179c3 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/JSONRenderer.tsx @@ -0,0 +1,204 @@ +"use client"; + +import React, { useState } from "react"; +import { CaretDown, CaretRight } from "@phosphor-icons/react"; +import { + OutputRenderer, + OutputMetadata, + DownloadContent, + CopyContent, +} from "../types"; + +function canRenderJSON(value: unknown, _metadata?: OutputMetadata): boolean { + if (_metadata?.type === "json") { + return true; + } + + if (typeof value === "object" && value !== null) { + return true; + } + + if (typeof value === "string") { + try { + JSON.parse(value); + return true; + } catch { + return false; + } + } + + return false; +} + +function renderJSON( + value: unknown, + _metadata?: OutputMetadata, +): React.ReactNode { + let jsonData = value; + + if (typeof value === "string") { + try { + jsonData = JSON.parse(value); + } catch { + return null; + } + } + + return ; +} + +function getCopyContentJSON( + value: unknown, + _metadata?: OutputMetadata, +): CopyContent | null { + const jsonString = + typeof value === "string" ? value : JSON.stringify(value, null, 2); + + return { + mimeType: "application/json", + data: jsonString, + alternativeMimeTypes: ["text/plain"], + fallbackText: jsonString, + }; +} + +function getDownloadContentJSON( + value: unknown, + _metadata?: OutputMetadata, +): DownloadContent | null { + const jsonString = + typeof value === "string" ? value : JSON.stringify(value, null, 2); + const blob = new Blob([jsonString], { type: "application/json" }); + + return { + data: blob, + filename: _metadata?.filename || "output.json", + mimeType: "application/json", + }; +} + +function isConcatenableJSON( + _value: unknown, + _metadata?: OutputMetadata, +): boolean { + return true; +} + +export const jsonRenderer: OutputRenderer = { + name: "JSONRenderer", + priority: 20, + canRender: canRenderJSON, + render: renderJSON, + getCopyContent: getCopyContentJSON, + getDownloadContent: getDownloadContentJSON, + isConcatenable: isConcatenableJSON, +}; + +function JSONViewer({ data }: { data: any }) { + const [collapsed, setCollapsed] = useState>({}); + + const toggleCollapse = (key: string) => { + setCollapsed((prev) => ({ ...prev, [key]: !prev[key] })); + }; + + const renderValue = (value: any, key: string = ""): React.ReactNode => { + if (value === null) + return null; + if (value === undefined) + return undefined; + + if (typeof value === "boolean") { + return {value.toString()}; + } + + if (typeof value === "number") { + return {value}; + } + + if (typeof value === "string") { + return "{value}"; + } + + if (Array.isArray(value)) { + const isCollapsed = collapsed[key]; + const itemCount = value.length; + + if (itemCount === 0) { + return []; + } + + return ( +
    + + {!isCollapsed && ( +
    + {value.map((item, index) => ( +
    + {index}: + {renderValue(item, `${key}[${index}]`)} +
    + ))} +
    + )} +
    + ); + } + + if (typeof value === "object") { + const isCollapsed = collapsed[key]; + const keys = Object.keys(value); + + if (keys.length === 0) { + return {"{}"}; + } + + return ( +
    + + {!isCollapsed && ( +
    + {keys.map((objKey) => ( +
    + + "{objKey}": + + {renderValue(value[objKey], `${key}.${objKey}`)} +
    + ))} +
    + )} +
    + ); + } + + return {String(value)}; + }; + + return ( +
    + {renderValue(data, "root")} +
    + ); +} diff --git a/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/MarkdownRenderer.tsx b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/MarkdownRenderer.tsx new file mode 100644 index 0000000000..d94966c6c8 --- /dev/null +++ b/autogpt_platform/frontend/src/components/contextual/OutputRenderers/renderers/MarkdownRenderer.tsx @@ -0,0 +1,456 @@ +"use client"; + +import React from "react"; +import ReactMarkdown from "react-markdown"; +import remarkGfm from "remark-gfm"; +import remarkMath from "remark-math"; +import rehypeKatex from "rehype-katex"; +import rehypeHighlight from "rehype-highlight"; +import rehypeSlug from "rehype-slug"; +import rehypeAutolinkHeadings from "rehype-autolink-headings"; +import { + OutputRenderer, + OutputMetadata, + DownloadContent, + CopyContent, +} from "../types"; +import "highlight.js/styles/github-dark.css"; +import "katex/dist/katex.min.css"; + +const markdownPatterns = [ + /```[\s\S]*?```/u, // Fenced code blocks (check first) + /^#{1,6}\s+\S+/gmu, // ATX headers (require content) + /\*\*[^*\n]+?\*\*/u, // **bold** + /__(?!_)[^_\n]+?__(?!_)/u, // __bold__ (avoid ___/snake_case_) + /(?\s+\S.*/gm, // Blockquotes + /^\|[^|\n]+(\|[^|\n]+)+\|\s*$/gm, // Table row (at least two cells) + /^\s*\|(?:\s*:?[-=]{3,}\s*\|)+\s*$/gm, // Table separator row + /\$\$[\s\S]+?\$\$/u, // Display math + /(? url.toLowerCase().includes(ext)); +} + +function getVideoEmbedUrl(url: string): string | null { + const youtubeMatch = url.match( + /(?:youtube\.com\/watch\?v=|youtu\.be\/)([^&\s]+)/, + ); + if (youtubeMatch) { + return `https://www.youtube.com/embed/${youtubeMatch[1]}`; + } + + const vimeoMatch = url.match(/vimeo\.com\/(\d+)/); + if (vimeoMatch) { + return `https://player.vimeo.com/video/${vimeoMatch[1]}`; + } + + if (videoExtensions.some((ext) => url.toLowerCase().includes(ext))) { + return url; + } + + return null; +} + +function renderVideoEmbed(url: string): React.ReactNode { + const embedUrl = getVideoEmbedUrl(url); + + if (!embedUrl) { + return ( + + {url} + + ); + } + + if (videoExtensions.some((ext) => embedUrl.toLowerCase().includes(ext))) { + return ( +
    + +
    + ); + } + + return ( +
    +
    +