mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-13 00:05:02 -05:00
Compare commits
4 Commits
classic-fr
...
fix/enable
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdeefb8621 | ||
|
|
ba6d585170 | ||
|
|
90eac56525 | ||
|
|
75f8772f8a |
@@ -96,7 +96,13 @@ class ChatConfig(BaseSettings):
|
|||||||
# Extended thinking configuration for Claude models
|
# Extended thinking configuration for Claude models
|
||||||
thinking_enabled: bool = Field(
|
thinking_enabled: bool = Field(
|
||||||
default=True,
|
default=True,
|
||||||
description="Enable adaptive thinking for Claude models via OpenRouter",
|
description="Enable extended thinking for Claude models via OpenRouter",
|
||||||
|
)
|
||||||
|
thinking_budget_tokens: int = Field(
|
||||||
|
default=10000,
|
||||||
|
ge=1000,
|
||||||
|
le=100000,
|
||||||
|
description="Maximum tokens for extended thinking (budget_tokens for Claude)",
|
||||||
)
|
)
|
||||||
|
|
||||||
@field_validator("api_key", mode="before")
|
@field_validator("api_key", mode="before")
|
||||||
|
|||||||
@@ -80,6 +80,19 @@ settings = Settings()
|
|||||||
client = openai.AsyncOpenAI(api_key=config.api_key, base_url=config.base_url)
|
client = openai.AsyncOpenAI(api_key=config.api_key, base_url=config.base_url)
|
||||||
|
|
||||||
|
|
||||||
|
def _apply_thinking_config(extra_body: dict[str, Any], model: str) -> None:
|
||||||
|
"""Apply extended thinking configuration for Anthropic models via OpenRouter.
|
||||||
|
|
||||||
|
OpenRouter's reasoning API expects either:
|
||||||
|
- {"max_tokens": N} for explicit token budget
|
||||||
|
- {"effort": "high"} for automatic budget
|
||||||
|
|
||||||
|
See: https://openrouter.ai/docs/reasoning-tokens
|
||||||
|
"""
|
||||||
|
if config.thinking_enabled and "anthropic" in model.lower():
|
||||||
|
extra_body["reasoning"] = {"max_tokens": config.thinking_budget_tokens}
|
||||||
|
|
||||||
|
|
||||||
langfuse = get_client()
|
langfuse = get_client()
|
||||||
|
|
||||||
# Redis key prefix for tracking running long-running operations
|
# Redis key prefix for tracking running long-running operations
|
||||||
@@ -1066,9 +1079,8 @@ async def _stream_chat_chunks(
|
|||||||
:128
|
:128
|
||||||
] # OpenRouter limit
|
] # OpenRouter limit
|
||||||
|
|
||||||
# Enable adaptive thinking for Anthropic models via OpenRouter
|
# Enable extended thinking for Anthropic models via OpenRouter
|
||||||
if config.thinking_enabled and "anthropic" in model.lower():
|
_apply_thinking_config(extra_body, model)
|
||||||
extra_body["reasoning"] = {"enabled": True}
|
|
||||||
|
|
||||||
api_call_start = time_module.perf_counter()
|
api_call_start = time_module.perf_counter()
|
||||||
stream = await client.chat.completions.create(
|
stream = await client.chat.completions.create(
|
||||||
@@ -1833,9 +1845,8 @@ async def _generate_llm_continuation(
|
|||||||
if session_id:
|
if session_id:
|
||||||
extra_body["session_id"] = session_id[:128]
|
extra_body["session_id"] = session_id[:128]
|
||||||
|
|
||||||
# Enable adaptive thinking for Anthropic models via OpenRouter
|
# Enable extended thinking for Anthropic models via OpenRouter
|
||||||
if config.thinking_enabled and "anthropic" in config.model.lower():
|
_apply_thinking_config(extra_body, config.model)
|
||||||
extra_body["reasoning"] = {"enabled": True}
|
|
||||||
|
|
||||||
retry_count = 0
|
retry_count = 0
|
||||||
last_error: Exception | None = None
|
last_error: Exception | None = None
|
||||||
@@ -1967,9 +1978,8 @@ async def _generate_llm_continuation_with_streaming(
|
|||||||
if session_id:
|
if session_id:
|
||||||
extra_body["session_id"] = session_id[:128]
|
extra_body["session_id"] = session_id[:128]
|
||||||
|
|
||||||
# Enable adaptive thinking for Anthropic models via OpenRouter
|
# Enable extended thinking for Anthropic models via OpenRouter
|
||||||
if config.thinking_enabled and "anthropic" in config.model.lower():
|
_apply_thinking_config(extra_body, config.model)
|
||||||
extra_body["reasoning"] = {"enabled": True}
|
|
||||||
|
|
||||||
# Make streaming LLM call (no tools - just text response)
|
# Make streaming LLM call (no tools - just text response)
|
||||||
from typing import cast
|
from typing import cast
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import { LoadingSpinner } from "@/components/atoms/LoadingSpinner/LoadingSpinner";
|
||||||
import { SidebarProvider } from "@/components/ui/sidebar";
|
import { SidebarProvider } from "@/components/ui/sidebar";
|
||||||
import { ChatContainer } from "./components/ChatContainer/ChatContainer";
|
import { ChatContainer } from "./components/ChatContainer/ChatContainer";
|
||||||
import { ChatSidebar } from "./components/ChatSidebar/ChatSidebar";
|
import { ChatSidebar } from "./components/ChatSidebar/ChatSidebar";
|
||||||
import { MobileDrawer } from "./components/MobileDrawer/MobileDrawer";
|
import { MobileDrawer } from "./components/MobileDrawer/MobileDrawer";
|
||||||
import { MobileHeader } from "./components/MobileHeader/MobileHeader";
|
import { MobileHeader } from "./components/MobileHeader/MobileHeader";
|
||||||
import { ScaleLoader } from "./components/ScaleLoader/ScaleLoader";
|
|
||||||
import { useCopilotPage } from "./useCopilotPage";
|
import { useCopilotPage } from "./useCopilotPage";
|
||||||
|
|
||||||
export function CopilotPage() {
|
export function CopilotPage() {
|
||||||
@@ -34,11 +34,7 @@ export function CopilotPage() {
|
|||||||
} = useCopilotPage();
|
} = useCopilotPage();
|
||||||
|
|
||||||
if (isUserLoading || !isLoggedIn) {
|
if (isUserLoading || !isLoggedIn) {
|
||||||
return (
|
return <LoadingSpinner size="large" cover />;
|
||||||
<div className="fixed inset-0 z-50 flex items-center justify-center bg-[#f8f8f9]">
|
|
||||||
<ScaleLoader className="text-neutral-400" />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -143,10 +143,10 @@ export const ChatMessagesContainer = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Conversation className="min-h-0 flex-1">
|
<Conversation className="min-h-0 flex-1">
|
||||||
<ConversationContent className="flex min-h-screen flex-1 flex-col gap-6 px-3 py-6">
|
<ConversationContent className="gap-6 px-3 py-6">
|
||||||
{isLoading && messages.length === 0 && (
|
{isLoading && messages.length === 0 && (
|
||||||
<div className="flex min-h-full flex-1 items-center justify-center">
|
<div className="flex flex-1 items-center justify-center">
|
||||||
<LoadingSpinner className="text-neutral-600" />
|
<LoadingSpinner size="large" className="text-neutral-400" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{messages.map((message, messageIndex) => {
|
{messages.map((message, messageIndex) => {
|
||||||
|
|||||||
@@ -121,8 +121,8 @@ export function ChatSidebar() {
|
|||||||
className="mt-4 flex flex-col gap-1"
|
className="mt-4 flex flex-col gap-1"
|
||||||
>
|
>
|
||||||
{isLoadingSessions ? (
|
{isLoadingSessions ? (
|
||||||
<div className="flex min-h-[30rem] items-center justify-center py-4">
|
<div className="flex items-center justify-center py-4">
|
||||||
<LoadingSpinner size="small" className="text-neutral-600" />
|
<LoadingSpinner size="small" className="text-neutral-400" />
|
||||||
</div>
|
</div>
|
||||||
) : sessions.length === 0 ? (
|
) : sessions.length === 0 ? (
|
||||||
<p className="py-4 text-center text-sm text-neutral-500">
|
<p className="py-4 text-center text-sm text-neutral-500">
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
.loader {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader::after,
|
|
||||||
.loader::before {
|
|
||||||
content: "";
|
|
||||||
box-sizing: border-box;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: currentColor;
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
animation: animloader 2s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader::after {
|
|
||||||
animation-delay: 1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes animloader {
|
|
||||||
0% {
|
|
||||||
transform: scale(0);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(1);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
import { cn } from "@/lib/utils";
|
|
||||||
import styles from "./ScaleLoader.module.css";
|
|
||||||
|
|
||||||
interface Props {
|
|
||||||
size?: number;
|
|
||||||
className?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function ScaleLoader({ size = 48, className }: Props) {
|
|
||||||
return (
|
|
||||||
<div
|
|
||||||
className={cn(styles.loader, className)}
|
|
||||||
style={{ width: size, height: size }}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -49,7 +49,12 @@ interface Props {
|
|||||||
part: CreateAgentToolPart;
|
part: CreateAgentToolPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAccordionMeta(output: CreateAgentToolOutput) {
|
function getAccordionMeta(output: CreateAgentToolOutput): {
|
||||||
|
icon: React.ReactNode;
|
||||||
|
title: React.ReactNode;
|
||||||
|
titleClassName?: string;
|
||||||
|
description?: string;
|
||||||
|
} {
|
||||||
const icon = <AccordionIcon />;
|
const icon = <AccordionIcon />;
|
||||||
|
|
||||||
if (isAgentSavedOutput(output)) {
|
if (isAgentSavedOutput(output)) {
|
||||||
@@ -68,7 +73,6 @@ function getAccordionMeta(output: CreateAgentToolOutput) {
|
|||||||
icon,
|
icon,
|
||||||
title: "Needs clarification",
|
title: "Needs clarification",
|
||||||
description: `${questions.length} question${questions.length === 1 ? "" : "s"}`,
|
description: `${questions.length} question${questions.length === 1 ? "" : "s"}`,
|
||||||
expanded: true,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
@@ -93,23 +97,18 @@ function getAccordionMeta(output: CreateAgentToolOutput) {
|
|||||||
export function CreateAgentTool({ part }: Props) {
|
export function CreateAgentTool({ part }: Props) {
|
||||||
const text = getAnimationText(part);
|
const text = getAnimationText(part);
|
||||||
const { onSend } = useCopilotChatActions();
|
const { onSend } = useCopilotChatActions();
|
||||||
|
|
||||||
const isStreaming =
|
const isStreaming =
|
||||||
part.state === "input-streaming" || part.state === "input-available";
|
part.state === "input-streaming" || part.state === "input-available";
|
||||||
|
|
||||||
const output = getCreateAgentToolOutput(part);
|
const output = getCreateAgentToolOutput(part);
|
||||||
|
|
||||||
const isError =
|
const isError =
|
||||||
part.state === "output-error" || (!!output && isErrorOutput(output));
|
part.state === "output-error" || (!!output && isErrorOutput(output));
|
||||||
|
|
||||||
const isOperating =
|
const isOperating =
|
||||||
!!output &&
|
!!output &&
|
||||||
(isOperationStartedOutput(output) ||
|
(isOperationStartedOutput(output) ||
|
||||||
isOperationPendingOutput(output) ||
|
isOperationPendingOutput(output) ||
|
||||||
isOperationInProgressOutput(output));
|
isOperationInProgressOutput(output));
|
||||||
|
|
||||||
const progress = useAsymptoticProgress(isOperating);
|
const progress = useAsymptoticProgress(isOperating);
|
||||||
|
|
||||||
const hasExpandableContent =
|
const hasExpandableContent =
|
||||||
part.state === "output-available" &&
|
part.state === "output-available" &&
|
||||||
!!output &&
|
!!output &&
|
||||||
@@ -150,7 +149,10 @@ export function CreateAgentTool({ part }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{hasExpandableContent && output && (
|
{hasExpandableContent && output && (
|
||||||
<ToolAccordion {...getAccordionMeta(output)}>
|
<ToolAccordion
|
||||||
|
{...getAccordionMeta(output)}
|
||||||
|
defaultExpanded={isOperating || isClarificationNeededOutput(output)}
|
||||||
|
>
|
||||||
{isOperating && (
|
{isOperating && (
|
||||||
<ContentGrid>
|
<ContentGrid>
|
||||||
<ProgressBar value={progress} className="max-w-[280px]" />
|
<ProgressBar value={progress} className="max-w-[280px]" />
|
||||||
|
|||||||
@@ -146,7 +146,10 @@ export function EditAgentTool({ part }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{hasExpandableContent && output && (
|
{hasExpandableContent && output && (
|
||||||
<ToolAccordion {...getAccordionMeta(output)}>
|
<ToolAccordion
|
||||||
|
{...getAccordionMeta(output)}
|
||||||
|
defaultExpanded={isOperating || isClarificationNeededOutput(output)}
|
||||||
|
>
|
||||||
{isOperating && (
|
{isOperating && (
|
||||||
<ContentGrid>
|
<ContentGrid>
|
||||||
<ProgressBar value={progress} className="max-w-[280px]" />
|
<ProgressBar value={progress} className="max-w-[280px]" />
|
||||||
|
|||||||
@@ -61,7 +61,14 @@ export function RunAgentTool({ part }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{hasExpandableContent && output && (
|
{hasExpandableContent && output && (
|
||||||
<ToolAccordion {...getAccordionMeta(output)}>
|
<ToolAccordion
|
||||||
|
{...getAccordionMeta(output)}
|
||||||
|
defaultExpanded={
|
||||||
|
isRunAgentExecutionStartedOutput(output) ||
|
||||||
|
isRunAgentSetupRequirementsOutput(output) ||
|
||||||
|
isRunAgentAgentDetailsOutput(output)
|
||||||
|
}
|
||||||
|
>
|
||||||
{isRunAgentExecutionStartedOutput(output) && (
|
{isRunAgentExecutionStartedOutput(output) && (
|
||||||
<ExecutionStartedCard output={output} />
|
<ExecutionStartedCard output={output} />
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
WarningDiamondIcon,
|
WarningDiamondIcon,
|
||||||
} from "@phosphor-icons/react";
|
} from "@phosphor-icons/react";
|
||||||
import type { ToolUIPart } from "ai";
|
import type { ToolUIPart } from "ai";
|
||||||
import { OrbitLoader } from "../../components/OrbitLoader/OrbitLoader";
|
import { SpinnerLoader } from "../../components/SpinnerLoader/SpinnerLoader";
|
||||||
|
|
||||||
export interface RunAgentInput {
|
export interface RunAgentInput {
|
||||||
username_agent_slug?: string;
|
username_agent_slug?: string;
|
||||||
@@ -171,7 +171,7 @@ export function ToolIcon({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (isStreaming) {
|
if (isStreaming) {
|
||||||
return <OrbitLoader size={24} />;
|
return <SpinnerLoader size={40} className="text-neutral-700" />;
|
||||||
}
|
}
|
||||||
return <PlayIcon size={14} weight="regular" className="text-neutral-400" />;
|
return <PlayIcon size={14} weight="regular" className="text-neutral-400" />;
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ export function getAccordionMeta(output: RunAgentToolOutput): {
|
|||||||
? output.status.trim()
|
? output.status.trim()
|
||||||
: "started";
|
: "started";
|
||||||
return {
|
return {
|
||||||
icon: <OrbitLoader size={28} className="text-neutral-700" />,
|
icon: <SpinnerLoader size={28} className="text-neutral-700" />,
|
||||||
title: output.graph_name,
|
title: output.graph_name,
|
||||||
description: `Status: ${statusText}`,
|
description: `Status: ${statusText}`,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -55,7 +55,13 @@ export function RunBlockTool({ part }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{hasExpandableContent && output && (
|
{hasExpandableContent && output && (
|
||||||
<ToolAccordion {...getAccordionMeta(output)}>
|
<ToolAccordion
|
||||||
|
{...getAccordionMeta(output)}
|
||||||
|
defaultExpanded={
|
||||||
|
isRunBlockBlockOutput(output) ||
|
||||||
|
isRunBlockSetupRequirementsOutput(output)
|
||||||
|
}
|
||||||
|
>
|
||||||
{isRunBlockBlockOutput(output) && <BlockOutputCard output={output} />}
|
{isRunBlockBlockOutput(output) && <BlockOutputCard output={output} />}
|
||||||
|
|
||||||
{isRunBlockSetupRequirementsOutput(output) && (
|
{isRunBlockSetupRequirementsOutput(output) && (
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
WarningDiamondIcon,
|
WarningDiamondIcon,
|
||||||
} from "@phosphor-icons/react";
|
} from "@phosphor-icons/react";
|
||||||
import type { ToolUIPart } from "ai";
|
import type { ToolUIPart } from "ai";
|
||||||
import { OrbitLoader } from "../../components/OrbitLoader/OrbitLoader";
|
import { SpinnerLoader } from "../../components/SpinnerLoader/SpinnerLoader";
|
||||||
|
|
||||||
export interface RunBlockInput {
|
export interface RunBlockInput {
|
||||||
block_id?: string;
|
block_id?: string;
|
||||||
@@ -120,7 +120,7 @@ export function ToolIcon({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (isStreaming) {
|
if (isStreaming) {
|
||||||
return <OrbitLoader size={24} />;
|
return <SpinnerLoader size={40} className="text-neutral-700" />;
|
||||||
}
|
}
|
||||||
return <PlayIcon size={14} weight="regular" className="text-neutral-400" />;
|
return <PlayIcon size={14} weight="regular" className="text-neutral-400" />;
|
||||||
}
|
}
|
||||||
@@ -149,7 +149,7 @@ export function getAccordionMeta(output: RunBlockToolOutput): {
|
|||||||
if (isRunBlockBlockOutput(output)) {
|
if (isRunBlockBlockOutput(output)) {
|
||||||
const keys = Object.keys(output.outputs ?? {});
|
const keys = Object.keys(output.outputs ?? {});
|
||||||
return {
|
return {
|
||||||
icon: <OrbitLoader size={24} className="text-neutral-700" />,
|
icon: <SpinnerLoader size={32} className="text-neutral-700" />,
|
||||||
title: output.block_name,
|
title: output.block_name,
|
||||||
description:
|
description:
|
||||||
keys.length > 0
|
keys.length > 0
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { useBreakpoint } from "@/lib/hooks/useBreakpoint";
|
|||||||
import { useSupabase } from "@/lib/supabase/hooks/useSupabase";
|
import { useSupabase } from "@/lib/supabase/hooks/useSupabase";
|
||||||
import { useChat } from "@ai-sdk/react";
|
import { useChat } from "@ai-sdk/react";
|
||||||
import { DefaultChatTransport } from "ai";
|
import { DefaultChatTransport } from "ai";
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
import { useChatSession } from "./useChatSession";
|
import { useChatSession } from "./useChatSession";
|
||||||
|
|
||||||
@@ -10,6 +11,7 @@ export function useCopilotPage() {
|
|||||||
const { isUserLoading, isLoggedIn } = useSupabase();
|
const { isUserLoading, isLoggedIn } = useSupabase();
|
||||||
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
|
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
|
||||||
const [pendingMessage, setPendingMessage] = useState<string | null>(null);
|
const [pendingMessage, setPendingMessage] = useState<string | null>(null);
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
sessionId,
|
sessionId,
|
||||||
@@ -52,6 +54,10 @@ export function useCopilotPage() {
|
|||||||
transport: transport ?? undefined,
|
transport: transport ?? undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!isUserLoading && !isLoggedIn) router.replace("/login");
|
||||||
|
}, [isUserLoading, isLoggedIn]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!hydratedMessages || hydratedMessages.length === 0) return;
|
if (!hydratedMessages || hydratedMessages.length === 0) return;
|
||||||
setMessages((prev) => {
|
setMessages((prev) => {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { SupabaseClient } from "@supabase/supabase-js";
|
|||||||
export const PROTECTED_PAGES = [
|
export const PROTECTED_PAGES = [
|
||||||
"/auth/authorize",
|
"/auth/authorize",
|
||||||
"/auth/integrations",
|
"/auth/integrations",
|
||||||
"/copilot",
|
|
||||||
"/monitor",
|
"/monitor",
|
||||||
"/build",
|
"/build",
|
||||||
"/onboarding",
|
"/onboarding",
|
||||||
|
|||||||
68
classic/frontend/build/web/flutter_service_worker.js
generated
68
classic/frontend/build/web/flutter_service_worker.js
generated
@@ -3,45 +3,45 @@ const MANIFEST = 'flutter-app-manifest';
|
|||||||
const TEMP = 'flutter-temp-cache';
|
const TEMP = 'flutter-temp-cache';
|
||||||
const CACHE_NAME = 'flutter-app-cache';
|
const CACHE_NAME = 'flutter-app-cache';
|
||||||
|
|
||||||
const RESOURCES = {"flutter.js": "6fef97aeca90b426343ba6c5c9dc5d4a",
|
const RESOURCES = {"canvaskit/skwasm.worker.js": "51253d3321b11ddb8d73fa8aa87d3b15",
|
||||||
"icons/Icon-512.png": "96e752610906ba2a93c65f8abe1645f1",
|
|
||||||
"icons/Icon-maskable-512.png": "301a7604d45b3e739efc881eb04896ea",
|
|
||||||
"icons/Icon-192.png": "ac9a721a12bbc803b44f645561ecb1e1",
|
|
||||||
"icons/Icon-maskable-192.png": "c457ef57daa1d16f64b27b786ec2ea3c",
|
|
||||||
"manifest.json": "0fa552613b8ec0fda5cda565914e3b16",
|
|
||||||
"index.html": "97e0c7608b75f0055b9cb17f7dc38315",
|
|
||||||
"/": "97e0c7608b75f0055b9cb17f7dc38315",
|
|
||||||
"assets/shaders/ink_sparkle.frag": "f8b80e740d33eb157090be4e995febdf",
|
|
||||||
"assets/assets/tree_structure.json": "cda9b1a239f956c547411efad9f7c794",
|
|
||||||
"assets/assets/coding_tree_structure.json": "017a857cf3e274346a0a7eab4ce02eed",
|
|
||||||
"assets/assets/general_tree_structure.json": "41dfbcdc2349dcdda2b082e597c6d5ee",
|
|
||||||
"assets/assets/github_logo.svg.png": "ba087b073efdc4996b035d3a12bad0e4",
|
|
||||||
"assets/assets/images/discord_logo.png": "0e4a4162c5de8665a7d63ae9665405ae",
|
|
||||||
"assets/assets/images/github_logo.svg.png": "ba087b073efdc4996b035d3a12bad0e4",
|
|
||||||
"assets/assets/images/twitter_logo.png": "af6c11b96a5e732b8dfda86a2351ecab",
|
|
||||||
"assets/assets/images/google_logo.svg.png": "0e29f8e1acfb8996437dbb2b0f591f19",
|
|
||||||
"assets/assets/images/autogpt_logo.png": "6a5362a7d1f2f840e43ee259e733476c",
|
|
||||||
"assets/assets/google_logo.svg.png": "0e29f8e1acfb8996437dbb2b0f591f19",
|
|
||||||
"assets/assets/scrape_synthesize_tree_structure.json": "a9665c1b465bb0cb939c7210f2bf0b13",
|
|
||||||
"assets/assets/data_tree_structure.json": "5f9627548304155821968182f3883ca7",
|
|
||||||
"assets/fonts/MaterialIcons-Regular.otf": "245e0462249d95ad589a087f1c9f58e1",
|
|
||||||
"assets/NOTICES": "28ba0c63fc6e4d1ef829af7441e27f78",
|
|
||||||
"assets/packages/fluttertoast/assets/toastify.css": "a85675050054f179444bc5ad70ffc635",
|
|
||||||
"assets/packages/fluttertoast/assets/toastify.js": "56e2c9cedd97f10e7e5f1cebd85d53e3",
|
|
||||||
"assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "055d9e87e4a40dbf72b2af1a20865d57",
|
|
||||||
"assets/FontManifest.json": "dc3d03800ccca4601324923c0b1d6d57",
|
|
||||||
"assets/AssetManifest.bin": "791447d17744ac2ade3999c1672fdbe8",
|
|
||||||
"assets/AssetManifest.json": "1b1e4a4276722b65eb1ef765e2991840",
|
|
||||||
"canvaskit/chromium/canvaskit.wasm": "393ec8fb05d94036734f8104fa550a67",
|
|
||||||
"canvaskit/chromium/canvaskit.js": "ffb2bb6484d5689d91f393b60664d530",
|
|
||||||
"canvaskit/skwasm.worker.js": "51253d3321b11ddb8d73fa8aa87d3b15",
|
|
||||||
"canvaskit/skwasm.js": "95f16c6690f955a45b2317496983dbe9",
|
"canvaskit/skwasm.js": "95f16c6690f955a45b2317496983dbe9",
|
||||||
"canvaskit/canvaskit.wasm": "d9f69e0f428f695dc3d66b3a83a4aa8e",
|
"canvaskit/canvaskit.wasm": "d9f69e0f428f695dc3d66b3a83a4aa8e",
|
||||||
"canvaskit/canvaskit.js": "5caccb235fad20e9b72ea6da5a0094e6",
|
|
||||||
"canvaskit/skwasm.wasm": "d1fde2560be92c0b07ad9cf9acb10d05",
|
"canvaskit/skwasm.wasm": "d1fde2560be92c0b07ad9cf9acb10d05",
|
||||||
|
"canvaskit/canvaskit.js": "5caccb235fad20e9b72ea6da5a0094e6",
|
||||||
|
"canvaskit/chromium/canvaskit.wasm": "393ec8fb05d94036734f8104fa550a67",
|
||||||
|
"canvaskit/chromium/canvaskit.js": "ffb2bb6484d5689d91f393b60664d530",
|
||||||
|
"icons/Icon-maskable-192.png": "c457ef57daa1d16f64b27b786ec2ea3c",
|
||||||
|
"icons/Icon-maskable-512.png": "301a7604d45b3e739efc881eb04896ea",
|
||||||
|
"icons/Icon-512.png": "96e752610906ba2a93c65f8abe1645f1",
|
||||||
|
"icons/Icon-192.png": "ac9a721a12bbc803b44f645561ecb1e1",
|
||||||
|
"manifest.json": "0fa552613b8ec0fda5cda565914e3b16",
|
||||||
"favicon.png": "5dcef449791fa27946b3d35ad8803796",
|
"favicon.png": "5dcef449791fa27946b3d35ad8803796",
|
||||||
"version.json": "46a52461e018faa623d9196334aa3f50",
|
"version.json": "46a52461e018faa623d9196334aa3f50",
|
||||||
"main.dart.js": "6fcbf8bbcb0a76fae9029f72ac7fbdc3"};
|
"index.html": "e6981504a32bf86f892909c1875df208",
|
||||||
|
"/": "e6981504a32bf86f892909c1875df208",
|
||||||
|
"main.dart.js": "6fcbf8bbcb0a76fae9029f72ac7fbdc3",
|
||||||
|
"assets/AssetManifest.json": "1b1e4a4276722b65eb1ef765e2991840",
|
||||||
|
"assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "055d9e87e4a40dbf72b2af1a20865d57",
|
||||||
|
"assets/packages/fluttertoast/assets/toastify.js": "56e2c9cedd97f10e7e5f1cebd85d53e3",
|
||||||
|
"assets/packages/fluttertoast/assets/toastify.css": "a85675050054f179444bc5ad70ffc635",
|
||||||
|
"assets/shaders/ink_sparkle.frag": "f8b80e740d33eb157090be4e995febdf",
|
||||||
|
"assets/fonts/MaterialIcons-Regular.otf": "245e0462249d95ad589a087f1c9f58e1",
|
||||||
|
"assets/assets/images/twitter_logo.png": "af6c11b96a5e732b8dfda86a2351ecab",
|
||||||
|
"assets/assets/images/discord_logo.png": "0e4a4162c5de8665a7d63ae9665405ae",
|
||||||
|
"assets/assets/images/google_logo.svg.png": "0e29f8e1acfb8996437dbb2b0f591f19",
|
||||||
|
"assets/assets/images/autogpt_logo.png": "6a5362a7d1f2f840e43ee259e733476c",
|
||||||
|
"assets/assets/images/github_logo.svg.png": "ba087b073efdc4996b035d3a12bad0e4",
|
||||||
|
"assets/assets/scrape_synthesize_tree_structure.json": "a9665c1b465bb0cb939c7210f2bf0b13",
|
||||||
|
"assets/assets/coding_tree_structure.json": "017a857cf3e274346a0a7eab4ce02eed",
|
||||||
|
"assets/assets/general_tree_structure.json": "41dfbcdc2349dcdda2b082e597c6d5ee",
|
||||||
|
"assets/assets/google_logo.svg.png": "0e29f8e1acfb8996437dbb2b0f591f19",
|
||||||
|
"assets/assets/tree_structure.json": "cda9b1a239f956c547411efad9f7c794",
|
||||||
|
"assets/assets/data_tree_structure.json": "5f9627548304155821968182f3883ca7",
|
||||||
|
"assets/assets/github_logo.svg.png": "ba087b073efdc4996b035d3a12bad0e4",
|
||||||
|
"assets/NOTICES": "28ba0c63fc6e4d1ef829af7441e27f78",
|
||||||
|
"assets/AssetManifest.bin": "791447d17744ac2ade3999c1672fdbe8",
|
||||||
|
"assets/FontManifest.json": "dc3d03800ccca4601324923c0b1d6d57",
|
||||||
|
"flutter.js": "6fef97aeca90b426343ba6c5c9dc5d4a"};
|
||||||
// The application shell files that are downloaded before a service worker can
|
// The application shell files that are downloaded before a service worker can
|
||||||
// start.
|
// start.
|
||||||
const CORE = ["main.dart.js",
|
const CORE = ["main.dart.js",
|
||||||
|
|||||||
2
classic/frontend/build/web/index.html
generated
2
classic/frontend/build/web/index.html
generated
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
// The value below is injected by flutter build, do not touch.
|
// The value below is injected by flutter build, do not touch.
|
||||||
const serviceWorkerVersion = "4117780518";
|
const serviceWorkerVersion = "726743092";
|
||||||
</script>
|
</script>
|
||||||
<!-- This script adds the flutter initialization JS code -->
|
<!-- This script adds the flutter initialization JS code -->
|
||||||
<script src="flutter.js" defer></script>
|
<script src="flutter.js" defer></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user