diff --git a/app/(playground)/p/[agentId]/beta-proto/feature-flags/types.ts b/app/(playground)/p/[agentId]/beta-proto/feature-flags/types.ts
index aeea5b94..fae48c15 100644
--- a/app/(playground)/p/[agentId]/beta-proto/feature-flags/types.ts
+++ b/app/(playground)/p/[agentId]/beta-proto/feature-flags/types.ts
@@ -2,4 +2,5 @@ export interface FeatureFlags {
uploadFileToPromptNodeFlag: boolean;
webSearchNodeFlag: boolean;
debugFlag: boolean;
+ viewFlag: boolean;
}
diff --git a/app/(playground)/p/[agentId]/beta-proto/header.tsx b/app/(playground)/p/[agentId]/beta-proto/header.tsx
index 59bf2dfb..713a2a14 100644
--- a/app/(playground)/p/[agentId]/beta-proto/header.tsx
+++ b/app/(playground)/p/[agentId]/beta-proto/header.tsx
@@ -2,10 +2,12 @@ import { GiselleLogo } from "@/components/giselle-logo";
import Link from "next/link";
import { SparklesIcon } from "./components/icons/sparkles";
import { ModeButton } from "./components/mode-button";
+import { useFeatureFlags } from "./feature-flags/context";
import { useGraph } from "./graph/context";
import { playgroundModes } from "./graph/types";
export function Header() {
+ const { viewFlag } = useFeatureFlags();
return (
@@ -30,22 +32,26 @@ export function Header() {
*/}
-
- edit
- view
-
-
-
-
+ {viewFlag && (
+
+ edit
+ view
+
+ )}
+ {viewFlag && (
+
+
+
+ )}
);
}
diff --git a/app/(playground)/p/[agentId]/page.tsx b/app/(playground)/p/[agentId]/page.tsx
index 707fbffd..e6db0adf 100644
--- a/app/(playground)/p/[agentId]/page.tsx
+++ b/app/(playground)/p/[agentId]/page.tsx
@@ -4,6 +4,7 @@ import { agents, db } from "@/drizzle";
import {
debugFlag as getDebugFlag,
uploadFileToPromptNodeFlag as getUploadFileToPromptNodeFlag,
+ viewFlag as getViewFlag,
webSearchNodeFlag as getWebSearchNodeFlag,
} from "@/flags";
import { getUser } from "@/lib/supabase";
@@ -34,6 +35,7 @@ export default async function AgentPlaygroundPage({
const uploadFileToPromptNodeFlag = await getUploadFileToPromptNodeFlag();
const webSearchNodeFlag = await getWebSearchNodeFlag();
const debugFlag = await getDebugFlag();
+ const viewFlag = await getViewFlag();
const agent = await getAgent(agentId);
@@ -45,6 +47,7 @@ export default async function AgentPlaygroundPage({
uploadFileToPromptNodeFlag,
webSearchNodeFlag,
debugFlag,
+ viewFlag,
}}
/>
);
diff --git a/flags.ts b/flags.ts
index cbaf374a..6a0769e4 100644
--- a/flags.ts
+++ b/flags.ts
@@ -54,3 +54,16 @@ export const debugFlag = flag({
{ value: true, label: "Enable" },
],
});
+
+export const viewFlag = flag({
+ key: "view",
+ async decide() {
+ return false;
+ },
+ description: "Enable view mode",
+ defaultValue: false,
+ options: [
+ { value: false, label: "disable" },
+ { value: true, label: "Enable" },
+ ],
+});