- {tabs.map((tab) => (
-
- ))}
+ {tabs.map((tab) => {
+ const Icon = TAB_ICON[tab]
+ return (
+
+ )
+ })}
@@ -75,9 +84,15 @@ export const WorkerSnippetTabs = ({
aria-label="Copy snippet"
className="absolute right-2 top-2 text-foreground-lighter hover:text-foreground"
/>
-
- {value}
-
+ {activeTab === 'ai' ? (
+
+ {value}
+
+ ) : (
+
+ {value}
+
+ )}
)
diff --git a/apps/studio/components/interfaces/Workers/Workers.constants.ts b/apps/studio/components/interfaces/Workers/Workers.constants.ts
index 7c3b911d0f15d..f61b6e3e5a390 100644
--- a/apps/studio/components/interfaces/Workers/Workers.constants.ts
+++ b/apps/studio/components/interfaces/Workers/Workers.constants.ts
@@ -5,7 +5,62 @@ export const WORKERS_REGION = 'us-west-2'
export const WORKERS_REGION_LABEL = 'US West (Oregon)'
export const WORKERS_REGION_SHORT = 'US West'
-// Workers answer on the project's own domain, alongside /functions/v1.
+// Sizes are fixed at deploy time — matches the `size` values the API accepts.
+export const WORKER_SIZES = ['2gb-1vcpu', '4gb-2vcpu'] as const
+
+export const WORKER_NAME_WORDS = [
+ 'swift',
+ 'nimble',
+ 'brisk',
+ 'bold',
+ 'sleek',
+ 'vivid',
+ 'lucid',
+ 'crisp',
+ 'keen',
+ 'agile',
+ 'fierce',
+ 'bright',
+ 'orchid',
+ 'lotus',
+ 'iris',
+ 'dahlia',
+ 'tulip',
+ 'jasmine',
+ 'magnolia',
+ 'azalea',
+ 'poppy',
+ 'marigold',
+ 'hibiscus',
+ 'camellia',
+ 'synergy',
+ 'bloom',
+ 'scalable',
+ 'pivot',
+ 'paradigm',
+ 'holistic',
+ 'leverage',
+ 'stream',
+ 'viral',
+ 'turnkey',
+ 'quantum',
+ 'photon',
+ 'nebula',
+ 'comet',
+ 'orbit',
+ 'cosmos',
+ 'meteor',
+ 'pulsar',
+ 'quasar',
+ 'vector',
+ 'cipher',
+ 'nova',
+ 'zenith',
+ 'warp',
+ 'rocket',
+ 'stellar',
+] as const
+
export const workerUrl = ({
endpoint,
protocol = 'https',
@@ -59,6 +114,8 @@ export const RUNTIMES: Record