PageSourceSearch

https://floatboat.ai/

html floatboat.ai collected 2026-10-03 19:39:45 UTC 423,915 bytes, 793 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="__variable_d2b0e4 __variable_102aba"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/imgs/floatboat/landing/bg-hero-v2.webp"/><link rel="preload" as="image" href="/logo.svg"/><link rel="preload" as="image" href="/imgs/floatboat/landing/figma/apple-icon.svg"/><link rel="preload" as="image" href="/imgs/floatboat/landing/figma/windows-icon.svg"/><link rel="stylesheet" href="/_next/static/css/23683334fdafa38e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/d37476854e9e226d.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/df8c8bd97929f65b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/25e14d6b291367e6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/66b5b10d64d19620.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/cecdbce2880c059c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5179a0aea5cc6527.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/22104ef03c7d8884.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a53781f132c132c1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8f3d1c2fe360a532.js"/>
1<script src="/_next/static/chunks/79c4adb9-fb9a1614c94e7bc5.js" async=""></script>
1<script src="/_next/static/chunks/63090-134bd6013060d138.js" async=""></script>
1<script src="/_next/static/chunks/main-app-d2f245ccd00d9a6c.js" async=""></script>
1<script src="/_next/static/chunks/2765-2b12b1302ecaa569.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-f4984f3acd65440f.js" async=""></script>
1<script src="/_next/static/chunks/965c2117-333029a03dfc9738.js" async=""></script>
1<script src="/_next/static/chunks/28413-9326ab7eebc0ac14.js" async=""></script>
1<script src="/_next/static/chunks/36022-fdd5521b6d18a903.js" async=""></script>
1<script src="/_next/static/chunks/47087-9a4a3f791d50d32d.js" async=""></script>
1<script src="/_next/static/chunks/42737-094a73f507764fe5.js" async=""></script>
1<script src="/_next/static/chunks/18285-979e650218aee649.js" async=""></script>
1<script src="/_next/static/chunks/26800-0c77c75744c0467d.js" async=""></script>
1<script src="/_next/static/chunks/84914-924caff4b51f9c7a.js" async=""></script>
1<script src="/_next/static/chunks/26191-c54929ddc396ab87.js" async=""></script>
1<script src="/_next/static/chunks/73505-f40f9483f1ee04de.js" async=""></script>
1<script src="/_next/static/chunks/46884-1cdb89dfe2716e74.js" async=""></script>
1<script src="/_next/static/chunks/39881-a8f22a491fba1243.js" async=""></script>
1<script src="/_next/static/chunks/1716-1c1feb45490e32ea.js" async=""></script>
1<script src="/_next/static/chunks/61279-f8e69844764435f8.js" async=""></script>
1<script src="/_next/static/chunks/69106-aae0b7a2f87d6bb1.js" async=""></script>
1<script src="/_next/static/chunks/79653-c044dee34c0c89ec.js" async=""></script>
1<script src="/_next/static/chunks/68192-1c4a6e60a9bf734d.js" async=""></script>
1<script src="/_next/static/chunks/96114-264b4a43d7cbb489.js" async=""></script>
1<script src="/_next/static/chunks/46120-e38245968da8f0ee.js" async=""></script>
1<script src="/_next/static/chunks/874-2631dd80638c5e4c.js" async=""></script>
1<script src="/_next/static/chunks/53453-074d55101be3058c.js" async=""></script>
1<script src="/_next/static/chunks/43049-af43fcc6552e6ea4.js" async=""></script>
1<script src="/_next/static/chunks/42241-f555ba9bf2929329.js" async=""></script>
1<script src="/_next/static/chunks/31479-e09e602d5c143378.js" async=""></script>
1<script src="/_next/static/chunks/39352-385ed7d10a28bc26.js" async=""></script>
1<script src="/_next/static/chunks/71784-89e128bad55e717d.js" async=""></script>
1<script src="/_next/static/chunks/25411-614a277b4369c122.js" async=""></script>
1<script src="/_next/static/chunks/6632-49f44b06c551cf4e.js" async=""></script>
1<script src="/_next/static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js" async=""></script>
1<script src="/_next/static/chunks/583-78a6037295e39d41.js" async=""></script>
1<script src="/_next/static/chunks/64979-92e3e949c9b7587c.js" async=""></script>
1<script src="/_next/static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js" async=""></script>
1<script src="/_next/static/chunks/app/%5Blocale%5D/(calendar-store)/layout-7e4996f4c5e08ed1.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-1MSQ86E7CY" as="script"/><meta name="next-size-adjust" content=""/><title>Floatboat — Proactive Agent OS for Calendar-Driven Work</title><meta name="description" content="Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac &amp; Windows."/><meta name="keywords" content="agentic calendar, proactive AI agents, calendar AI, AI scheduling, agent OS, AI workspace, Google Calendar AI, Notion Calendar AI, Lark AI, desktop AI agent"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://floatboat.ai/"/><meta property="og:title" content="Floatboat — Proactive Agent OS for Calendar-Driven Work"/><meta property="og:description" content="Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac &amp; Windows."/><meta property="og:url" content="https://floatboat.ai/"/><meta property="og:site_name" content="Floatboat"/><meta property="og:locale" content="en"/><meta property="og:image" content="https://floatboat.ai/landing-og-image.webp"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="https://floatboat.ai"/><meta name="twitter:title" content="Floatboat — Proactive Agent OS for Calendar-Driven Work"/><meta name="twitter:description" content="Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac &amp; Windows."/><meta name="twitter:image" content="https://floatboat.ai/landing-og-image.webp"/><link rel="icon" href="/favicon.ico" type="image/x-icon"/><link rel="apple-touch-icon" href="/favicon.ico"/><link rel="alternate" hrefLang="en" href="https://floatboat.ai/"/><link rel="alternate" hrefLang="zh" href="https://floatboat.ai/zh"/>
1<script>
2              
vendor: 169 bytes, lines 2-5
2window.dataLayer = window.dataLayer || [];
3              function gtag(){dataLayer.push(arguments);}
4              gtag('js', new Date());
5              gtag('config', '
5G-1MSQ86E7CY
vendor: 16 bytes, lines 5-6
5');
6            
6</script>
6<script id="taboola-pixel-bootstrap">
7              window.__taboolaPixelIds=["2042232","2044646"];
8              window.__taboolaPixelId="2042232";
9              window._tfa=window._tfa||[];
10              window.__taboolaPageViewSentById=window.__taboolaPageViewSentById||{};
11              window.__taboolaPixelIds.forEach(function(accountId){
12                var numericAccountId=Number(accountId);
13                var pixelId=accountId&&Number.isFinite(numericAccountId)?numericAccountId:accountId;
14                if(!window.__taboolaPageViewSentById[accountId]){
15                  window.__taboolaPageViewSentById[accountId]=true;
16                  window._tfa.push({notify:"event",name:"page_view",id:pixelId});
17                }
18              });
19              window.__taboolaPageViewSent=true;
20            </script>
20<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://floatboat.ai/#organization","name":"Floatboat","url":"https://floatboat.ai","logo":{"@type":"ImageObject","url":"https://floatboat.ai/logo.svg"}},{"@type":"WebSite","@id":"https://floatboat.ai/#website","name":"Floatboat","url":"https://floatboat.ai","publisher":{"@id":"https://floatboat.ai/#organization"}}]}</script>
20<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
20</head><body class="overflow-x-hidden"><div hidden=""><!--$--><!--/$--></div><style>#nprogress{pointer-events:none}#nprogress .bar{background:#6466F1;position:fixed;z-index:1600;top: 0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #6466F1,0 0 5px #6466F1;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#6466F1;border-left-color:#6466F1;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
20<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","light","light",["light","dark"],null,false,true)</script>
20<!--$--><!--/$--><div class="min-h-screen bg-[#f0eeeb] text-[#1b1a18] selection:bg-[#f7d68b]/60 relative font-sans flex flex-col"><div class="pointer-events-none absolute -top-10 left-1/2 z-0 hidden h-[940px] w-full max-w-[1440px] -translate-x-1/2 md:block"><img alt="" decoding="async" data-nimg="fill" class="object-cover" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/imgs/floatboat/landing/bg-hero-v2.webp"/></div><div class="relative z-10 flex min-h-screen flex-col"><header class="sticky top-0 z-50 w-full bg-[rgba(240,238,235,0.8)] backdrop-blur-[16px]"><div class="mx-auto max-w-[1440px] px-10 max-lg:px-5"><div class="flex items-center gap-5 h-[76px]"><div class="flex-1"><a target="_self" class="inline-flex items-center" aria-label="floatboat" title="floatboat" href="/"><img src="/logo.svg" alt="floatboat" width="126" height="36" class="h-8 w-auto"/><span class="sr-only">floatboat</span></a></div><nav aria-label="Primary" data-orientation="horizontal" dir="ltr" data-slot="navigation-menu" data-viewport="false" role="navigation" class="group/navigation-menu relative flex max-w-max flex-1 items-center justify-center shrink-0"><div style="position:relative"><ul data-orientation="horizontal" data-slot="navigation-menu-list" class="group flex flex-1 list-none items-center justify-center gap-6" dir="ltr"><li data-slot="navigation-menu-item" class="relative"></li><li data-slot="navigation-menu-item" class="relative"></li><li data-slot="navigation-menu-item" class="relative"></li><a target="_self" aria-label="Pricing" title="Pricing" class="h-10 items-center justify-center text-center font-medium text-[#7a7671] data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:text-foreground focus:text-foreground focus-visible:ring-ring/50 [&amp;_svg:not([class*=&#x27;text-&#x27;])]:text-muted-foreground flex flex-col gap-1 rounded-md text-sm outline-none transition-all focus-visible:outline-1 focus-visible:ring-[3px] [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 !flex-row !gap-0 p-0 hover:bg-transparent focus:bg-transparent px-0" href="/pricing"><span>Pricing</span></a><a target="_self" aria-label="About" title="About" class="h-10 items-center justify-center text-center font-medium text-[#7a7671] data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:text-foreground focus:text-foreground focus-visible:ring-ring/50 [&amp;_svg:not([class*=&#x27;text-&#x27;])]:text-muted-foreground flex flex-col gap-1 rounded-md text-sm outline-none transition-all focus-visible:outline-1 focus-visible:ring-[3px] [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 !flex-row !gap-0 p-0 hover:bg-transparent focus:bg-transparent px-0" href="/about"><span>About</span></a></ul></div></nav><div class="hidden flex-1 items-center justify-end gap-3 md:flex"><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 h-auto w-auto p-0" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg></button><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader-circle size-4 animate-spin" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg></div><a class="inline-flex h-9 min-h-9 items-center justify-center gap-2 rounded-full px-[14px] text-[14px] leading-[20px] font-medium whitespace-nowrap transition-colors bg-[#f7d68b] text-[#1b1a18] hover:bg-[#f3cf79]" title="Download" aria-label="Download" href="/download/success?from=landing&amp;download_placement=landing_primary&amp;download_entry_point=landing_header&amp;download_link_text=Download">Download</a></div></div></div></header><main class="flex-1">
20<script id="landing-mac-prehydrate-download-flow">(function () {
21  var NS = '__aoeMacLandingFlow';
22  if (window[NS] && window[NS].booted) return;
23
24  function readCookie(name) {
25    var token = name + '=';
26    var parts = document.cookie.split(';');
27    for (var i = 0; i < parts.length; i += 1) {
28      var value = parts[i].trim();
29      if (!value.startsWith(token)) continue;
30      try {
31        return decodeURIComponent(value.slice(token.length));
32      } catch {
33        return value.slice(token.length);
34      }
35    }
36    return '';
37  }
38
39  function hasManualDownloadMode() {
40    try {
41      var mode = String(new URLSearchParams(window.location.search).get('download_mode') || '')
42        .trim()
43        .toLowerCase();
44      if (mode === 'manual' || mode === 'manu') return true;
45    } catch {
46      // Fall back to cookie below.
47    }
48    var cookieMode = String(readCookie('fb_download_mode') || '')
49      .trim()
50      .toLowerCase();
51    return cookieMode === 'manual' || cookieMode === 'manu';
52  }
53
54  if (hasManualDownloadMode()) return;
55
56  var state = {
57    booted: true,
58    prepared: null,
59    payloadKey: '',
60    preparing: null,
61  };
62  window[NS] = state;
63
64  function detectMac() {
65    var uaDataPlatform = String(
66      (navigator.userAgentData && navigator.userAgentData.platform) || ''
67    );
68    var ua = String(navigator.userAgent || '');
69    var navPlatform = String(navigator.platform || '');
70    if (/mac/i.test(uaDataPlatform)) return true;
71    if (/mac/i.test(navPlatform) || /Macintosh/i.test(ua)) return true;
72    return false;
73  }
74
75  function isMacSafari() {
76    var uaDataPlatform = String(
77      (navigator.userAgentData && navigator.userAgentData.platform) || ''
78    );
79    var ua = String(navigator.userAgent || '');
80    var navPlatform = String(navigator.platform || '');
81    var isMac =
82      /mac/i.test(uaDataPlatform) || /mac/i.test(navPlatform) || /Macintosh/i.test(ua);
83    if (!isMac) return false;
84    var hasSafari = /\bSafari\//i.test(ua);
85    var isChromiumFamily =
86      /\bChrome\/|\bChromium\/|\bCriOS\/|\bEdg\/|\bOPR\/|\bOPiOS\/|\bDuckDuckGo\//i.test(
87        ua
88      );
89    return hasSafari && !isChromiumFamily;
90  }
91
92  if (!detectMac()) return;
93
94  function pickFirst(values) {
95    for (var i = 0; i < values.length; i += 1) {
96      var text = String(values[i] || '').trim();
97      if (text) return text;
98    }
99    return '';
100  }
101
102  function randomId(prefix) {
103    if (window.crypto && typeof window.crypto.randomUUID === 'function') {
104      return prefix + '_' + window.crypto.randomUUID();
105    }
106    return prefix + '_' + Date.now() + '_' + Math.random().toString(16).slice(2, 12);
107  }
108
109  function getTaboolaPixelIds() {
110    var ids = [];
111    if (Array.isArray(window.__taboolaPixelIds)) {
112      ids = window.__taboolaPixelIds;
113    } else if (window.__taboolaPixelId) {
114      ids = String(window.__taboolaPixelId).split(',');
115    }
116    ids = ids
117      .map(function (id) {
118        return String(id || '').trim();
119      })
120      .filter(Boolean);
121    if (!ids.length) {
122      ids = ['2042232', '2044646'];
123    }
124    var seen = {};
125    return ids.filter(function (id) {
126      if (seen[id]) return false;
127      seen[id] = true;
128      return true;
129    });
130  }
131
132  function toTaboolaPixelId(value) {
133    var n = Number(value);
134    return value && Number.isFinite(n) ? n : value;
135  }
136
137  function sendTaboolaDownloadClick(params) {
138    try {
139      var queue = window._tfa || [];
140      if (typeof queue.push !== 'function') return;
141      window._tfa = queue;
142
143      var eventParams = {};
144      Object.keys(params || {}).forEach(function (key) {
145        if (key === 'event_callback' || key === 'event_timeout' || key === 'transport_type') {
146          return;
147        }
148        var value = params[key];
149        if (value === undefined || value === null) return;
150        if (
151          typeof value === 'string' ||
152          typeof value === 'number' ||
153          typeof value === 'boolean'
154        ) {
155          eventParams[key] = value;
156        }
157      });
158
159      getTaboolaPixelIds().forEach(function (pixelId) {
160        queue.push(
161          Object.assign(
162            {
163              notify: 'event',
164              name: 'download_click',
165              id: toTaboolaPixelId(pixelId),
166            },
167            eventParams
168          )
169        );
170      });
171    } catch {
172      // ignore
173    }
174  }
175
176  function sendDownloadClick(downloadClickId, originalHref, arch, anchor) {
177    var downloadPlacement = '';
178    var downloadEntryPoint = '';
179    var downloadLinkText = '';
180    try {
181      var hrefUrl = new URL(String(originalHref || ''), window.location.href);
182      downloadPlacement = String(hrefUrl.searchParams.get('download_placement') || '');
183      downloadEntryPoint = String(hrefUrl.searchParams.get('download_entry_point') || '');
184      downloadLinkText = String(hrefUrl.searchParams.get('download_link_text') || '');
185    } catch {
186      // Keep the legacy default values below.
187    }
188    var params = {
189      transport_type: 'beacon',
190      platform: 'macos',
191      placement: downloadPlacement || 'landing_download',
192      entry_point: downloadEntryPoint || downloadPlacement || 'landing_download',
193      link_text:
194        downloadLinkText ||
195        String((anchor && anchor.textContent) || '').trim() ||
196        undefined,
197      link_url: String(originalHref || ''),
198      download_type: 'zip',
199      download_click_id: downloadClickId,
200    };
201    if (arch) params.arch = arch;
202
203    sendTaboolaDownloadClick(params);
204
205    if (typeof window.gtag === 'function') {
206      try {
207        window.gtag('event', 'download_click', params);
208      } catch {
209        // ignore
210      }
211    }
212
213    var payload = {
214      event_name: 'download_click',
215      request_id: randomId('web_evt'),
216      event_id: randomId('evt'),
217      event_time_client: new Date().toISOString(),
218      params: params,
219      context: {
220        page_url: window.location.href,
221        page_path: window.location.pathname,
222        referrer: document.referrer || '',
223        locale: navigator.language || '',
224      },
225    };
226    var body = '';
227    try {
228      body = JSON.stringify(payload);
229    } catch {
230      return;
231    }
232    if (!body) return;
233    try {
234      if (navigator.sendBeacon) {
235        var blob = new Blob([body], { type: 'application/json' });
236        if (navigator.sendBeacon('/api/analytics/events', blob)) return;
237      }
238    } catch {
239      // fallback below
240    }
241    try {
242      fetch('/api/analytics/events', {
243        method: 'POST',
244        headers: { 'content-type': 'application/json' },
245        body: body,
246        keepalive: true,
247        cache: 'no-store',
248      }).catch(function () {});
249    } catch {
250      // ignore
251    }
252  }
253
254  function buildPayload(defaultSource) {
255    var search = new URLSearchParams(window.location.search);
256    var channel = pickFirst([search.get('channel'), search.get('utm_source')]);
257    var campaign = pickFirst([search.get('campaign'), search.get('utm_campaign')]);
258    var creative = pickFirst([search.get('creative'), search.get('utm_content')]);
259    var clickId = pickFirst([
260      search.get('click_id'),
261      search.get('gclid'),
262      search.get('fbclid'),
263      search.get('ttclid'),
264      search.get('msclkid'),
265    ]);
266    var gclid = pickFirst([search.get('gclid')]);
267    var gbraid = pickFirst([search.get('gbraid')]);
268    var wbraid = pickFirst([search.get('wbraid')]);
269    var fbclid = pickFirst([search.get('fbclid')]);
270    var ttclid = pickFirst([search.get('ttclid')]);
271    var msclkid = pickFirst([search.get('msclkid')]);
272    var tblci = pickFirst([search.get('tblci')]);
273    var rdtCid = pickFirst([search.get('rdt_cid')]);
274    var source = pickFirst([search.get('source'), defaultSource]);
275
276    return {
277      channel: channel || undefined,
278      source: source || 'landing',
279      campaign: campaign || undefined,
280      creative: creative || undefined,
281      click_id: clickId || undefined,
282      gclid: gclid || undefined,
283      gbraid: gbraid || undefined,
284      wbraid: wbraid || undefined,
285      fbclid: fbclid || undefined,
286      ttclid: ttclid || undefined,
287      msclkid: msclkid || undefined,
288      tblci: tblci || undefined,
289      rdt_cid: rdtCid || undefined,
290      utm_source: channel || undefined,
291      utm_campaign: campaign || undefined,
292      utm_content: creative || undefined,
293    };
294  }
295
296  function normalizePlatform(value) {
297    var platform = String(value || '').trim().toLowerCase();
298    if (platform === 'windows' || platform === 'win' || platform === 'pc') {
299      return 'windows';
300    }
301    if (platform === 'mac' || platform === 'macos' || platform === 'osx') {
302      return 'mac';
303    }
304    return '';
305  }
306
307  function normalizeArch(value) {
308    var arch = String(value || '').trim().toLowerCase();
309    if (arch === 'arm' || arch === 'arm64' || arch.indexOf('arm') >= 0) return 'arm';
310    if (
311      arch === 'x86' ||
312      arch === 'x64' ||
313      arch === 'intel' ||
314      arch.indexOf('x86') >= 0
315    ) {
316      return 'x86';
317    }
318    return '';
319  }
320
321  function parseDownloadIntent(rawHref) {
322    try {
323      var url = new URL(rawHref, window.location.href);
324      var forcedPlatform = normalizePlatform(url.searchParams.get('platform'));
325      var arch = normalizeArch(url.searchParams.get('arch'));
326      if (forcedPlatform) {
327        return {
328          platform: forcedPlatform,
329          arch: forcedPlatform === 'mac' ? arch : '',
330        };
331      }
332      if (arch) {
333        return {
334          platform: 'mac',
335          arch: arch,
336        };
337      }
338      return {
339        platform: '',
340        arch: '',
341      };
342    } catch {
343      return {
344        platform: '',
345        arch: '',
346      };
347    }
348  }
349
350  function getPayloadKey(payload, arch) {
351    try {
352      return JSON.stringify({ p: payload, arch: arch || 'arm' });
353    } catch {
354      return '';
355    }
356  }
357
358  function detectMacArchFromWebGL() {
359    try {
360      var c = document.createElement('canvas');
361      var gl = c.getContext('webgl') || c.getContext('experimental-webgl');
362      if (!gl) return undefined;
363      var ext = gl.getExtension('WEBGL_debug_renderer_info');
364      var renderer = ext ? String(gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) || '') : '';
365      if (!renderer) return undefined;
366      var r = renderer.toLowerCase();
367      if (r.indexOf('apple m1') >= 0 || r.indexOf('apple m2') >= 0 || r.indexOf('apple m3') >= 0 ||
368          r.indexOf('apple m4') >= 0 || r.indexOf('apple m5') >= 0 || r.indexOf('apple processor') >= 0) {
369        return 'arm';
370      }
371      if (r.indexOf('intel') >= 0 || r.indexOf('amd') >= 0) return 'x86';
372      if (r.indexOf('apple') >= 0 && r.indexOf('apple gpu') < 0) return 'arm';
373      return undefined;
374    } catch {
375      return undefined;
376    }
377  }
378
379  function detectMacArch(cb) {
380    if (isMacSafari()) {
381      cb(undefined);
382      return;
383    }
384    var uaData = navigator.userAgentData;
385    if (uaData && typeof uaData.getHighEntropyValues === 'function') {
386      uaData.getHighEntropyValues(['architecture']).then(function(v) {
387        var arch = String((v && v.architecture) || '').toLowerCase();
388        if (arch === 'arm' || arch.indexOf('arm') >= 0) {
389          cb('arm'); return;
390        }
391        if (arch === 'x86' || arch === 'x64' || arch.indexOf('x86') >= 0) {
392          cb('x86'); return;
393        }
394        cb(detectMacArchFromWebGL());
395      }).catch(function() {
396        cb(detectMacArchFromWebGL());
397      });
398    } else {
399      cb(detectMacArchFromWebGL());
400    }
401  }
402
403  function normalizePrepared(data) {
404    if (!data || typeof data !== 'object') return null;
405    var stateId = String(data.state_id || '').trim();
406    var downloadToken = String(data.download_token || '').trim();
407    if (!/^st_[A-Za-z0-9_-]{16,4096}\.[A-Za-z0-9_-]{16,256}$/.test(stateId)) return null;
408    if (!/^[A-Za-z0-9_.~-]{8,256}$/.test(downloadToken)) return null;
409    var out = {
410      state_id: stateId,
411      download_token: downloadToken,
412      channel: String(data.channel || 'direct').trim() || 'direct',
413      expire_at: String(data.expire_at || '').trim(),
414    };
415    if (typeof data.signature_secret === 'string' && data.signature_secret.length > 0) {
416      out.signature_secret = data.signature_secret;
417    }
418    return out;
419  }
420
421  function isPreparedValid(prepared) {
422    if (!prepared) return false;
423    var expireAt = String(prepared.expire_at || '').trim();
424    if (!expireAt) return true;
425    var parsed = Date.parse(expireAt);
426    if (!Number.isFinite(parsed)) return true;
427    return parsed > Date.now() + 1000;
428  }
429
430  function getCachedPrepared(payload, arch) {
431    var key = getPayloadKey(payload, arch);
432    if (!key || key !== state.payloadKey) return null;
433    if (!isPreparedValid(state.prepared)) return null;
434    return state.prepared;
435  }
436
437  function prepareMac(payload, arch) {
438    var key = getPayloadKey(payload, arch || 'arm');
439    if (!key) return Promise.resolve(null);
440
441    var cached = getCachedPrepared(payload, arch);
442    if (cached) {
443      return Promise.resolve(cached);
444    }
445    if (state.preparing && state.payloadKey === key) {
446      return state.preparing;
447    }
448
449    state.payloadKey = key;
450    state.preparing = fetch('/download/mac/prepare', {
451      method: 'POST',
452      headers: {
453        'content-type': 'application/json',
454      },
455      body: JSON.stringify({
456        platform: 'mac',
457        arch: arch || 'arm',
458        channel: payload.channel,
459        source: payload.source,
460        campaign: payload.campaign,
461        creative: payload.creative,
462        click_id: payload.click_id,
463        gclid: payload.gclid,
464        gbraid: payload.gbraid,
465        wbraid: payload.wbraid,
466        fbclid: payload.fbclid,
467        ttclid: payload.ttclid,
468        msclkid: payload.msclkid,
469        tblci: payload.tblci,
470        rdt_cid: payload.rdt_cid,
471        utm_source: payload.utm_source,
472        utm_campaign: payload.utm_campaign,
473        utm_content: payload.utm_content,
474      }),
475      cache: 'no-store',
476      credentials: 'same-origin',
477    })
478      .then(function (res) {
479        return res
480          .json()
481          .catch(function () {
482            return null;
483          })
484          .then(function (data) {
485            if (!res.ok) return null;
486            var prepared = normalizePrepared(data);
487            if (prepared) {
488              state.prepared = prepared;
489              return prepared;
490            }
491            return null;
492          });
493      })
494      .catch(function () {
495        return null;
496      })
497      .finally(function () {
498        state.preparing = null;
499      });
500
501    return state.preparing;
502  }
503
504  function syncCopy(text) {
505    if (!text) return false;
506    try {
507      var textarea = document.createElement('textarea');
508      textarea.value = text;
509      textarea.setAttribute('readonly', 'true');
510      textarea.style.position = 'fixed';
511      textarea.style.left = '-9999px';
512      textarea.style.top = '0';
513      document.body.appendChild(textarea);
514      textarea.focus();
515      textarea.select();
516      var ok = document.execCommand('copy');
517      textarea.remove();
518      return ok;
519    } catch {
520      return false;
521    }
522  }
523
524  function buildMacIssueHref(payload) {
525    var params = new URLSearchParams();
526    params.set('platform', 'mac');
527    var keys = Object.keys(payload);
528    for (var i = 0; i < keys.length; i += 1) {
529      var key = keys[i];
530      var text = String(payload[key] || '').trim();
531      if (!text) continue;
532      params.set(key, text);
533    }
534    return '/download/mac/issue?' + params.toString();
535  }
536
537  function buildNextDownloadHref(rawHref, stateId, markIssued, arch, preferChooser, downloadClickId) {
538    var shouldMarkIssued = markIssued !== false;
539    try {
540      var nextUrl = new URL(rawHref, window.location.href);
541      if (preferChooser) {
542        var path = String(nextUrl.pathname || '');
543        if (/\/download\/success\/?$/i.test(path)) {
544          nextUrl.pathname = path.replace(/\/download\/success\/?$/i, '/download');
545        } else if (!/\/download\/?$/i.test(path)) {
546          nextUrl.pathname = '/download';
547        }
548      }
549      nextUrl.searchParams.set('from', 'landing');
550      if (!nextUrl.searchParams.get('source')) {
551        nextUrl.searchParams.set('source', 'landing');
552      }
553      if (shouldMarkIssued) {
554        nextUrl.searchParams.set('issued', '1');
555      } else {
556        nextUrl.searchParams.delete('issued');
557      }
558      if (stateId) {
559        nextUrl.searchParams.set('state_id', stateId);
560      } else {
561        nextUrl.searchParams.delete('state_id');
562      }
563      if (arch) {
564        nextUrl.searchParams.set('arch', arch);
565      } else {
566        nextUrl.searchParams.delete('arch');
567      }
568      if (downloadClickId) {
569        nextUrl.searchParams.set('download_click_id', downloadClickId);
570      } else {
571        nextUrl.searchParams.delete('download_click_id');
572      }
573      return nextUrl.pathname + nextUrl.search;
574    } catch {
575      var params = new URLSearchParams();
576      params.set('from', 'landing');
577      params.set('source', 'landing');
578      if (shouldMarkIssued) {
579        params.set('issued', '1');
580      }
581      if (stateId) {
582        params.set('state_id', stateId);
583      }
584      if (arch) {
585        params.set('arch', arch);
586      }
587      if (downloadClickId) {
588        params.set('download_click_id', downloadClickId);
589      }
590      return '/download?' + params.toString();
591    }
592  }
593
594  function getAnchorFromEventTarget(target) {
595    if (!target || typeof target.closest !== 'function') return null;
596    var anchor = target.closest('a[href]');
597    if (!anchor) return null;
598    return anchor;
599  }
600
601  function shouldSkipMacPrepare(anchor) {
602    if (!anchor) return false;
603    var raw = String(anchor.getAttribute('data-skip-mac-prepare') || '')
604      .trim()
605      .toLowerCase();
606    return raw === '1' || raw === 'true';
607  }
608
609  function isLandingDownloadLink(anchor) {
610    if (!anchor) return false;
611    if (shouldSkipMacPrepare(anchor)) return false;
612    var href = String(anchor.getAttribute('href') || '').trim();
613    if (!href || href === '#') return false;
614    var url;
615    try {
616      url = new URL(href, window.location.href);
617    } catch {
618      return false;
619    }
620
621    var path = String(url.pathname || '').toLowerCase();
622    var isDownloadPath = /\/download(\/success)?\/?$/.test(path);
623    var from = String(url.searchParams.get('from') || '').toLowerCase();
624    var source = String(url.searchParams.get('source') || '').toLowerCase();
625    return isDownloadPath && (from === 'landing' || source === 'landing');
626  }
627
628  function handleTryForFreeClick(e) {
629    if (e.defaultPrevented) return;
630    if (typeof e.button === 'number' && e.button !== 0) return;
631    if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
632
633    var anchor = getAnchorFromEventTarget(e.target);
634    if (!isLandingDownloadLink(anchor)) return;
635
636    var originalHref =
637      anchor.href || anchor.getAttribute('href') || '/download?from=landing&source=landing';
638    var intent = parseDownloadIntent(originalHref);
639    if (intent.platform === 'windows') {
640      return;
641    }
642
643    e.preventDefault();
644    e.stopPropagation();
645    if (typeof e.stopImmediatePropagation === 'function') {
646      e.stopImmediatePropagation();
647    }
648
649    var payload = buildPayload('landing');
650    var downloadClickId = randomId('dc');
651    var clickTracked = false;
652    function trackClickOnce(arch) {
653      if (clickTracked) return;
654      clickTracked = true;
655      sendDownloadClick(downloadClickId, originalHref, arch, anchor);
656    }
657    if (intent.platform === 'mac' && intent.arch) {
658      trackClickOnce(intent.arch);
659      var preparedWithIntentArch = getCachedPrepared(payload, intent.arch);
660      if (preparedWithIntentArch) {
661        var preparedClip = {
662          download_token: preparedWithIntentArch.download_token,
663          channel:
664            preparedWithIntentArch.channel || payload.channel || payload.utm_source || 'direct',
665        };
666        if (preparedWithIntentArch.signature_secret) {
667          preparedClip.signature_secret = preparedWithIntentArch.signature_secret;
668        }
669        syncCopy(JSON.stringify(preparedClip));
670        window.location.assign(
671          buildNextDownloadHref(
672            originalHref,
673            preparedWithIntentArch.state_id,
674            false,
675            intent.arch,
676            false,
677            downloadClickId
678          )
679        );
680        return;
681      }
682      // Cache miss: wait for prepare instead of navigating without state_id.
683      // This ensures Intel/x86 links work even when user didn't hover (or cache was overwritten by arm).
684      prepareMac(payload, intent.arch).then(function (prepared) {
685        if (prepared) {
686          var clip = {
687            download_token: prepared.download_token,
688            channel:
689              prepared.channel || payload.channel || payload.utm_source || 'direct',
690          };
691          if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;
692          syncCopy(JSON.stringify(clip));
693          window.location.assign(
694            buildNextDownloadHref(originalHref, prepared.state_id, false, intent.arch, false, downloadClickId)
695          );
696        } else {
697          window.location.assign(
698            buildNextDownloadHref(originalHref, '', false, intent.arch, false, downloadClickId)
699          );
700        }
701      });
702      return;
703    }
704
705    detectMacArch(function (arch) {
706      trackClickOnce(arch);
707      if (arch === undefined) {
708        var fallbackHref = buildNextDownloadHref(
709          originalHref,
710          '',
711          false,
712          undefined,
713          true,
714          downloadClickId
715        );
716        window.location.assign(fallbackHref);
717        return;
718      }
719      var prepared = getCachedPrepared(payload, arch);
720      if (prepared) {
721        var clip = {
722          download_token: prepared.download_token,
723          channel: prepared.channel || payload.channel || payload.utm_source || 'direct',
724        };
725        if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;
726        syncCopy(JSON.stringify(clip));
727        window.location.assign(
728          buildNextDownloadHref(
729            originalHref,
730            prepared.state_id,
731            false,
732            arch,
733            false,
734            downloadClickId
735          )
736        );
737        return;
738      }
739      // Cache miss: wait for prepare to ensure we have state_id when possible.
740      prepareMac(payload, arch).then(function (prepared) {
741        if (prepared) {
742          var clip = {
743            download_token: prepared.download_token,
744            channel:
745              prepared.channel || payload.channel || payload.utm_source || 'direct',
746          };
747          if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;
748          syncCopy(JSON.stringify(clip));
749          window.location.assign(
750            buildNextDownloadHref(originalHref, prepared.state_id, false, arch, false, downloadClickId)
751          );
752        } else {
753          window.location.assign(
754            buildNextDownloadHref(originalHref, '', false, arch, false, downloadClickId)
755          );
756        }
757      });
758    });
759  }
760
761  function preheatIfTarget(target) {
762    var anchor = getAnchorFromEventTarget(target);
763    if (!isLandingDownloadLink(anchor)) return;
764    var originalHref =
765      anchor.href || anchor.getAttribute('href') || '/download?from=landing&source=landing';
766    var intent = parseDownloadIntent(originalHref);
767    if (intent.platform === 'windows') return;
768
769    var payload = buildPayload('landing');
770    if (intent.platform === 'mac' && intent.arch) {
771      prepareMac(payload, intent.arch);
772      return;
773    }
774
775    detectMacArch(function(arch) {
776      if (arch !== undefined) prepareMac(payload, arch);
777    });
778  }
779
780  var initialPayload = buildPayload('landing');
781  detectMacArch(function(arch) {
782    if (arch !== undefined) prepareMac(initialPayload, arch);
783  });
784
785  document.addEventListener('mouseover', function (e) {
786    preheatIfTarget(e.target);
787  }, true);
788  document.addEventListener('focusin', function (e) {
789    preheatIfTarget(e.target);
790  }, true);
791  document.addEventListener('click', handleTryForFreeClick, true);
792})();</script>
792<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://floatboat.ai/#webpage","url":"https://floatboat.ai/","name":"Floatboat — Proactive Agent OS for Calendar-Driven Work","description":"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac & Windows.","isPartOf":{"@id":"https://floatboat.ai/#website"},"publisher":{"@id":"https://floatboat.ai/#organization"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://floatboat.ai/"}]},{"@type":"SoftwareApplication","@id":"https://floatboat.ai/#software","name":"floatboat AI","alternateName":"floatboat Agent","applicationCategory":"ProductivityApplication","operatingSystem":"macOS 13+, Windows 10+","description":"A native operating system-level AI agent that integrates with local files and workflow tools without data migration. Features include active context awareness and persona automation.","softwareVersion":"0.1.0-beta","fileSize":"120MB","downloadUrl":"https://floatboat.ai/download","author":{"@id":"https://floatboat.ai/#organization"},"offers":{"@type":"Offer","price":"0","priceCurrency":"USD","availability":"https://schema.org/PreOrder","description":"Limited beta access is currently available."},"featureList":["Local context awareness","No-upload file processing","Cross-application integration","Persona automation","No-code workflow automation"],"screenshot":[{"@type":"ImageObject","url":"https://floatboat.ai/assets/screenshot-dashboard.jpg","caption":"floatboat Floating Interface on macOS","contentUrl":"https://floatboat.ai/assets/screenshot-dashboard.jpg"},{"@type":"ImageObject","url":"https://floatboat.ai/assets/screenshot-workflow.jpg","caption":"No-code Workflow Automation Builder","contentUrl":"https://floatboat.ai/assets/screenshot-workflow.jpg"},{"@type":"ImageObject","url":"https://floatboat.ai/assets/screenshot-files.jpg","caption":"Local File Integration Demo","contentUrl":"https://floatboat.ai/assets/screenshot-files.jpg"}]},{"@type":"FAQPage","@id":"https://floatboat.ai/#faq","mainEntity":[{"@type":"Question","name":"What is Floatboat?","acceptedA
792nswer":{"@type":"Answer","text":"Floatboat is a native OS-level AI agent that helps you manage workflows and process local files without uploading data to the cloud."}},{"@type":"Question","name":"Does Floatboat upload my private files to the cloud?","acceptedAnswer":{"@type":"Answer","text":"No. Floatboat is designed with a privacy-first architecture. It processes files locally and only interacts with external LLMs when strictly necessary and authorized."}},{"@type":"Question","name":"Which operating systems does Floatboat support?","acceptedAnswer":{"@type":"Answer","text":"Currently, Floatboat supports macOS 13+ and Windows 10+. Linux support is on our roadmap."}},{"@type":"Question","name":"Is Floatboat free to use?","acceptedAnswer":{"@type":"Answer","text":"Floatboat is currently in beta. We will offer both free and premium tiers upon official launch."}}]}]}</script>
792<div class="min-h-screen bg-[#f0eeeb] text-[#2b2721]"><main><div class="mx-auto w-full max-w-5xl px-6 pt-8"><div class="relative flex min-h-8 items-center justify-end border-2 border-[#2b2721] bg-[#F3F1EC] px-3 py-2 shadow-[6px_6px_0_0_#2b2721] sm:px-4"><span class="absolute left-1/2 hidden -translate-x-1/2 font-sans text-[10px] font-bold tracking-[0.18em] whitespace-nowrap text-[#2b2721]/65 uppercase md:inline">Calendar-first agent runtime</span><span class="font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/55 uppercase">v0.4.0 · Mac · Win</span></div></div><section id="download" class="relative overflow-hidden"><div class="relative mx-auto max-w-5xl px-6 pt-10 pb-12 text-center sm:pt-14 sm:pb-20"><div class="flex justify-center"></div><div class="relative mt-5"><h1 class="font-serif text-[2.5rem] leading-[1.05] tracking-tight text-[#2b2721] sm:text-[2.75rem] md:text-5xl lg:text-[3.25rem]">The Proactive Agent OS that<!-- --> <span class="relative inline-block"><span aria-hidden="true" class="absolute inset-x-[-0.08em] bottom-[0.08em] -z-0 h-[0.42em] -rotate-[1.2deg] bg-[#d6b46d]"></span><span class="relative">Runs Work from the Calendar</span></span></h1></div><p class="mx-auto mt-3 max-w-3xl text-lg leading-relaxed text-[#2b2721]/70">What if your calendar could actually do the work? Floatboat reads time, prepares ahead, executes on cue, and follows up after — the way a real operator runs a week. Works with Google Calendar, Notion Calendar, Lark, Outlook, iCloud, or any ICS feed.</p><div class="mt-6 flex flex-wrap items-start justify-center gap-4"><a href="https://apps.apple.com/app/id6762599502" target="_blank" rel="noopener noreferrer" aria-label="Download FloatIM for iOS" class="group inline-flex min-h-16 w-[264px] max-w-full items-center justify-start gap-3 rounded-md border-2 border-[#2b2721] px-4 py-3 text-left font-sans transition-all duration-150 focus-visible:ring-2 focus-visible:ring-[#2b2721]/40 focus-visible:outline-none shadow-[4px_4px_0_0_#2b2721] hover:-translate-x-[1px] hover:-translate-y-[1px] hover:shadow-[6px_6px_0_0_#2b2721] bg-[#fffaf0] text-[#2b2721] hover:bg-white sm:hidden"><span class="grid h-9 w-9 shrink-0 place-items-center rounded-sm border border-current/15 bg-current/5" aria-hidden="true"><img src="/imgs/floatboat/landing/figma/apple-icon.svg" alt="" class="h-4 w-4"/></span><span class="flex min-w-0 flex-col items-start gap-0.5"><span class="truncate text-sm leading-5 font-semibold">Download FloatIM for iOS</span><span class="truncate text-xs leading-4 opacity-70">Available on the App Store</span></span></a><div class="flex flex-col items-center gap-2"><a href="/download/success?from=landing&amp;source=landing&amp;platform=mac&amp;arch=arm&amp;download_placement=landing_primary&amp;download_entry_point=landing_hero&amp;download_link_text=Download+for+Mac" class="group inline-flex min-h-16 w-[264px] max-w-full items-center justify-start gap-3 rounded-md border-2 border-[#2b2721] px-4 py-3 text-left font-sans transition-all duration-150 focus-visible:ring-2 focus-visible:ring-[#2b2721]/40 focus-visible:outline-none shadow-[4px_4px_0_0_#2b2721] hover:-translate-x-[1px] hover:-translate-y-[1px] hover:shadow-[6px_6px_0_0_#2b2721] bg-[#2b2721] text-white" data-skip-mac-prepare="1"><span class="grid h-9 w-9 shrink-0 place-items-center rounded-sm border border-current/15 bg-current/5" aria-hidden="true"><img src="/imgs/floatboat/landing/figma/apple-icon.svg" alt="" class="h-4 w-4 invert"/></span><span class="flex min-w-0 flex-col items-start gap-0.5"><span class="truncate text-sm leading-5 font-semibold">Download for Mac</span><span class="truncate text-xs leading-4 opacity-70">Apple Silicon build</span></span></a><a href="/download/success?from=landing&amp;source=landing&amp;platform=mac&amp;arch=x86&amp;download_placement=landing_primary&amp;download_entry_point=landing_hero&amp;download_link_text=macOS+Intel" class="inline-flex min-h-5 w-[264px] max-w-full items-center justify-start text-left text-xs leading-4 font-medium text-[#2b2721]/60 underline underline-offset-2 transition-colors hover:text-[#2b2721]" data-skip-mac-prepare="1">Mac Intel build</a></div><div class="flex flex-col items-center gap-2"><a href="https://apps.microsoft.com/detail/XPDLJFL7VD5XBK?referrer=appbadge&amp;mode=full&amp;cid=XPDLJFL7VD5XBK" target="_blank" rel="noopener noreferrer" class="group inline-flex min-h-16 w-[264px] max-w-full items-center justify-start gap-3 rounded-md border-2 border-[#2b2721] px-4 py-3 text-left font-sans transition-all duration-150 focus-visible:ring-2 focus-visible:ring-[#2b2721]/40 focu
792s-visible:outline-none shadow-[4px_4px_0_0_#2b2721] hover:-translate-x-[1px] hover:-translate-y-[1px] hover:shadow-[6px_6px_0_0_#2b2721] bg-[#fffaf0] text-[#2b2721] hover:bg-white"><span class="grid h-9 w-9 shrink-0 place-items-center rounded-sm border border-current/15 bg-current/5" aria-hidden="true"><img src="/imgs/floatboat/landing/figma/windows-icon.svg" alt="" class="h-4 w-4"/></span><span class="flex min-w-0 flex-col items-start gap-0.5"><span class="truncate text-sm leading-5 font-semibold">Microsoft Store</span><span class="truncate text-xs leading-4 opacity-70">Recommended for Windows</span></span></a><a href="/download/success?from=landing&amp;source=landing&amp;platform=windows&amp;download_placement=landing_primary&amp;download_entry_point=landing_hero&amp;download_link_text=Download+for+Windows" class="inline-flex min-h-5 w-[264px] max-w-full items-center justify-start text-left text-xs leading-4 font-medium text-[#2b2721]/60 underline underline-offset-2 transition-colors hover:text-[#2b2721]" data-skip-mac-prepare="1">Windows installer (.exe)</a></div></div><p class="mt-3 text-xs text-[#2b2721]/55"><span class="font-sans text-[10px] tracking-[0.18em] text-[#2b2721]/55 uppercase">Calendar = runtime · Each block fires an agent, not a meeting</span></p><div class="mt-10"><div class="mx-auto w-full max-w-5xl"><div class="border-2 border-[#2b2721] bg-[#F3F1EC] p-2 shadow-[8px_8px_0_0_#2b2721] sm:p-2.5 sm:shadow-none"><div class="relative aspect-video w-full overflow-hidden bg-black ring-2 ring-[#2b2721]"><div class="absolute inset-0 grid place-items-center bg-black"><img src="https://i.ytimg.com/vi/SWMIbUBfhJY/maxresdefault.jpg" alt="" class="absolute inset-0 h-full w-full object-cover" loading="lazy"/><div class="absolute inset-0 bg-black/10"></div><div class="relative grid h-14 w-20 place-items-center rounded-2xl bg-[#ff0000] text-white shadow-lg sm:h-16 sm:w-24"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play ml-1 h-8 w-8 fill-current sm:h-9 sm:w-9" aria-hidden="true"><path d="M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"></path></svg></div></div></div></div></div></div></div></section><section class="flex flex-col items-center justify-center p-10 max-lg:px-5"><div class="w-full max-w-[1200px]"><div class="flex items-center gap-3"><div class="h-px flex-1 bg-[#d4d4d6]"></div><p class="text-center text-[14px] leading-[1.43] font-normal text-[#7a7671]">Used by people who left these places to build alone</p><div class="h-px flex-1 bg-[#d4d4d6]"></div></div><div class="mt-6 w-full"><div class="group flex [gap:var(--gap)] overflow-hidden flex-row mx-auto h-14 w-full max-w-[1200px] items-center rounded-full [mask-image:linear-gradient(to_right,transparent,black_8%,black_92%,transparent)] p-0 [--duration:30s] [--gap:2rem] [-webkit-mask-image:linear-gradient(to_right,transparent,black_8%,black_92%,transparent)] [&amp;&gt;div]:justify-start"><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row group-hover:[animation-play-state:paused]"><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-00.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-01.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-02.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-03.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-04.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-05.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-06.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-07.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-09.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-11.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row group-hover:[animation-play-state:paused]"><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-00.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-01.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-02.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-03.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-04.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-05.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-06.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-07.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-09.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-11.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row group-hover:[animation-play-state:paused]"><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-00.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-01.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-02.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-03.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-04.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-05.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-06.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-07.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-09.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div><div class="flex h-14 items-center justify-center px-2"><img src="/imgs/floatboat/landing/figma/trusted-logos/logo-item-11.svg" alt="" class="h-12 w-auto opacity-80" loading="lazy"/></div></div></div></div></div></section><section class="py-14 sm:py-20"><div class="mx-auto max-w-6xl px-6"><div class="mx-auto max-w-5xl text-center"><p class="inline-flex border-2 border-[#2b2721] bg-white px-2.5 py-1 font-sans text-[10px] font-bold text-[#2b2721]/70 items-center tracking-[0.18em] uppercase">The shift</p><h2 class="mx-auto mt-4 max-w-[980px] font-serif text-3xl leading-tight text-[#2b2721] sm:text-4xl md:text-5xl lg:whitespace-nowrap">Calendar-driven AI, not another chat box</h2><p class="mt-5 text-lg leading-relaxed text-[#2b2721]/65">Work isn&#x27;t a chat thread — it&#x27;s a schedule. Chat-based AI waits for you to ask. Floatboat runs with your calendar, so the work is half done by the time you sit down.</p></div><div class="mt-12 grid gap-6 md:grid-cols-2"><article class="relative border-2 border-[#2b2721] bg-white p-8 shadow-[6px_6px_0_0_#2b2721] sm:p-10"><div class="flex items-start justify-between gap-3"><h3 class="font-serif text-2xl text-[#2b2721]/70">Chat-based AI today</h3><span class="inline-flex items-center border-2 px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] uppercase border-[#2b2721]/40 bg-white text-[#2b2721]/60">Reactive</span></div><ul class="mt-6 space-y-4 text-sm text-[#2b2721]/75"><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 border border-[#2b2721]/40 bg-white"></span><span class="leading-relaxed">Waits for a prompt before anything happens — nothing runs while you&#x27;re heads-down or asleep.</span></li><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 border border-[#2b2721]/40 bg-white"></span><span class="leading-relaxed">Context resets every session — no memory of your week, your meetings, or what shipped yesterday.</span></li><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 border border-[#2b2721]/40 bg-white"></span><span class="leading-relaxed">Lives in a tab. If you don&#x27;t open it and type, no work gets done.</span></li></ul><div class="mt-8 border-t-2 border-[#2b2721]/15 pt-5 font-sans text-[10px] font-bold tracking-[0.18em] uppercase text-[#2b2721]/55">Trigger: you, typing a prompt</div></article><article class="relative border-2 border-[#2b2721] bg-white p-8 sm:p-10 shadow-[6px_6px_0_0_#d6b46d]"><div class="flex items-start justify-between gap-3"><h3 class="font-serif text-2xl text-[#2b2721]">Floatboat</h3><span class="inline-flex items-center border-2 px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] uppercase border-[#2b2721] bg-[#d6b46d] text-[#2b2721]">Calendar-driven</span></div><ul class="mt-6 space-y-4 text-sm text-[#2b2721]/90"><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 bg-[#d6b46d]"></span><span class="leading-relaxed">Runs on your schedule — prep fires before the meeting, draft fires before the deadline, follow-up fires after.</span></li><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 bg-[#d6b46d]"></span><span class="leading-relaxed">
792Every event has a persistent Agent Workspace with files, run history, model choice, and decisions.</span></li><li class="flex items-start gap-3"><span class="mt-1.5 h-2 w-2 shrink-0 bg-[#d6b46d]"></span><span class="leading-relaxed">Coordinates across devices and teammates — pick up the same workspace on Mac, Windows, or in FloatIM.</span></li></ul><div class="mt-8 border-t-2 border-[#2b2721]/15 pt-5 font-sans text-[10px] font-bold tracking-[0.18em] uppercase text-[#2b2721]/70">Trigger: an event on your calendar</div></article></div></div></section><section id="integrations" class="py-12 sm:py-16"><div class="mx-auto max-w-6xl px-6"><div class="grid items-center gap-8 lg:grid-cols-12 lg:gap-12"><div class="lg:col-span-6"><h2 class="font-serif text-2xl leading-tight tracking-tight text-[#2b2721] sm:text-3xl md:text-4xl">One workspace, 3,500+ integrations</h2><p class="mt-4 text-base leading-relaxed text-[#2b2721]/70 sm:text-lg">Floatboat plugs into every tool, file and API you already pay for — Notion, Slack, GitHub, Linear, Google Drive, Gmail, Figma, your local Word / PDF / PPT, and any MCP server. No re-uploading, no copy-paste, no second source of truth.<br/><br/>Built on native MCP + IACT, so agents call real APIs and read your local files in place — with permission scopes set per calendar event, not per account.</p><div class="mt-6 flex flex-wrap gap-x-5 gap-y-2 font-sans text-[11px] font-bold tracking-[0.14em] uppercase"><a class="text-[#2b2721] underline-offset-4 hover:underline" href="/connectors">See all integrations &amp; protocols<!-- --> →</a></div></div><div class="lg:col-span-6"><div class="border-2 border-[#2b2721] bg-white p-3 shadow-[3px_3px_0_0_#2b2721] sm:p-4 sm:shadow-[5px_5px_0_0_#2b2721]"><div class="relative mx-auto max-w-md overflow-hidden bg-white lg:max-w-none"><span class="absolute top-3 left-3 z-10 inline-flex items-center border-2 border-[#2b2721] bg-[#d6b46d] px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] text-[#2b2721] uppercase">3,500+ tools · MCP</span><div class="aspect-[16/10]"><img src="/imgs/floatboat/landing/homepage-revamp/feature-1.webp" alt="Workspace dashboard showing connected integrations" loading="lazy" class="h-full w-full object-cover"/></div></div></div></div></div></div></section><section id="models" class="py-12 sm:py-16"><div class="mx-auto max-w-6xl px-6"><div class="grid items-center gap-8 lg:grid-cols-12 lg:gap-12"><div class="lg:col-span-6 lg:order-2"><h2 class="font-serif text-2xl leading-tight tracking-tight text-[#2b2721] sm:text-3xl md:text-4xl">Every frontier model, zero setup</h2><p class="mt-4 text-base leading-relaxed text-[#2b2721]/70 sm:text-lg">DeepSeek, MiniMax, GLM, Kimi, GPT-5, Claude, Gemini — all built in. No API key, no VPN, no Chinese phone number, no local login. Chinese frontier models work out of the box from anywhere in the world.<br/><br/>Auto Mode routes per step of a Combo — cheap models for parsing, frontier models for reasoning — and falls back instantly when a provider is rate-limited, so a run never dies mid-way.</p><div class="mt-6 flex flex-wrap gap-x-5 gap-y-2 font-sans text-[11px] font-bold tracking-[0.14em] uppercase"><a class="text-[#2b2721] underline-offset-4 hover:underline" href="/models">Browse all models<!-- --> →</a></div></div><div class="lg:col-span-6 lg:order-1"><div class="border-2 border-[#2b2721] bg-white p-3 shadow-[3px_3px_0_0_#2b2721] sm:p-4 sm:shadow-[5px_5px_0_0_#2b2721]"><div class="relative mx-auto max-w-md overflow-hidden bg-white lg:max-w-none"><span class="absolute top-3 left-3 z-10 inline-flex items-center border-2 border-[#2b2721] bg-[#d6b46d] px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] text-[#2b2721] uppercase">Auto Mode · 0 setup</span><div class="aspect-[16/10]"><img src="/imgs/floatboat/landing/homepage-revamp/feature-2.webp" alt="Auto Mode routing between AI models" loading="lazy" class="h-full w-full object-cover"/></div></div></div></div></div></div></section><section id="marketplace" class="py-12 sm:py-16"><div class="mx-auto max-w-6xl px-6"><div class="grid items-center gap-8 lg:grid-cols-12 lg:gap-12"><div class="lg:col-span-6"><h2 class="font-serif text-2xl leading-tight tracking-tight text-[#2b2721] sm:text-3xl md:text-4xl">Installable execution: Combo Store and Workflow Store</h2><p class="mt-4 text-base leading-relaxed text-[#2b2721]/70 sm:text-lg">Combo Store provides reusable agent skills that turn voice notes into decks, sales calls into follow-up emails, and Linear tickets into PR drafts. Workflow Store provides ready-to-run automations for webhook, schedule, browser, and closed-loop operational tasks.<br/><br/>Both stores are first-class acquisition surfaces: Combo is for composable skills, while Workflow is for fixed execution flows. Users choose what to install without first understanding source files, packages, or trigger internals.</p><div class="mt-6 flex flex-wrap gap-x-5 gap-y-2 font-sans text-[11px] font-bold tracking-[0.14em] uppercase"><a class="text-[#2b2721] underline-offset-4 hover:underline" href="/combostore">Explore Combo Store<!-- --> →</a></div></div><div class="lg:col-span-6"><div class="border-2 border-[#2b2721] bg-white p-3 shadow-[3px_3px_0_0_#2b2721] sm:p-4 sm:shadow-[5px_5px_0_0_#2b2721]"><div class="relative mx-auto max-w-md overflow-hidden bg-white lg:max-w-none"><span class="absolute top-3 left-3 z-10 inline-flex items-center border-2 border-[#2b2721] bg-[#d6b46d] px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] text-[#2b2721] uppercase">Marketplace · Combo + Workflow</span><div class="aspect-[16/10]"><img src="/imgs/floatboat/landing/homepage-revamp/feature-3.webp" alt="Combo Skills turning input into finished work" loading="lazy" class="h-full w-full object-cover"/>
792</div></div></div></div></div></div></section><section id="floatim" class="py-12 sm:py-16"><div class="mx-auto max-w-6xl px-6"><div class="grid items-center gap-8 lg:grid-cols-12 lg:gap-12"><div class="lg:col-span-6 lg:order-2"><h2 class="font-serif text-2xl leading-tight tracking-tight text-[#2b2721] sm:text-3xl md:text-4xl">FloatIM — group chat with your AI agents</h2><p class="mt-4 text-base leading-relaxed text-[#2b2721]/70 sm:text-lg">A group chat where every member is an AI agent running locally on your Mac. They self-organize into roles, hand off work to each other, and reply with finished artifacts — drafts, research, slide decks — not just paragraphs of text.<br/><br/>Built on open IACT + Selfware protocols, so any compliant agent can join your channel. Local-first by default — you decide what syncs and what stays put.</p><div class="mt-6 flex flex-wrap gap-x-5 gap-y-2 font-sans text-[11px] font-bold tracking-[0.14em] uppercase"><a class="text-[#2b2721] underline-offset-4 hover:underline" href="/floatim">See how FloatIM works<!-- --> →</a></div></div><div class="lg:col-span-6 lg:order-1"><div class="border-2 border-[#2b2721] bg-white p-3 shadow-[3px_3px_0_0_#2b2721] sm:p-4 sm:shadow-[5px_5px_0_0_#2b2721]"><div class="relative mx-auto max-w-md overflow-hidden bg-white lg:max-w-none"><span class="absolute top-3 left-3 z-10 inline-flex items-center border-2 border-[#2b2721] bg-[#d6b46d] px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] text-[#2b2721] uppercase">FloatIM · group chat</span><div class="aspect-[16/10]"><img src="/imgs/floatboat/landing/homepage-revamp/feature-4.webp" alt="FloatIM group chat with AI agents" loading="lazy" class="h-full w-full object-cover"/></div></div></div></div></div></div></section><section id="who-its-for" class="py-10 sm:py-14"><div class="mx-auto max-w-6xl px-6"><div class="grid items-center gap-8 lg:grid-cols-12 lg:gap-12"><div class="lg:col-span-6"><h2 class="font-serif text-2xl leading-tight tracking-tight text-[#2b2721] sm:text-3xl md:text-4xl">One workspace, every solo path</h2><p class="mt-4 text-base leading-relaxed text-[#2b2721]/70 sm:text-lg">Whether you&#x27;re a solopreneur, a creator, a small business owner or a 2-5 person studio — Floatboat is the desktop AI workspace that plans, executes and follows up so one person (or a tiny team) can ship like five.<br/><br/>It replaces a stack of disconnected AI subscriptions, not just one tool — and if you hire later, workspaces hand off cleanly to teammates over IACT.</p><div class="mt-6 flex flex-wrap gap-x-5 gap-y-2 font-sans text-[11px] font-bold tracking-[0.14em] uppercase"><a class="text-[#2b2721] underline-offset-4 hover:underline" href="/use-cases">Browse 4 use-case paths<!-- --> →</a></div></div><div class="lg:col-span-6"><div class="border-2 border-[#2b2721] bg-white p-3 shadow-[3px_3px_0_0_#2b2721] sm:p-4 sm:shadow-[5px_5px_0_0_#2b2721]"><div class="relative mx-auto max-w-md overflow-hidden bg-white lg:max-w-none"><span class="absolute top-3 left-3 z-10 inline-flex items-center border-2 border-[#2b2721] bg-[#d6b46d] px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.15em] text-[#2b2721] uppercase">One-person company</span><div class="aspect-[16/10]"><img src="/imgs/floatboat/landing/homepage-revamp/feature-5.webp" alt="Solopreneur running a one-person company" loading="lazy" class="h-full w-full object-cover"/></div></div></div></div></div></div></section><section class="py-14 sm:py-20"><div class="mx-auto max-w-7xl px-6"><div class="mx-auto max-w-2xl text-center"><p class="inline-flex items-center border-2 border-[#2b2721] bg-white px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/70 uppercase">The mechanism</p><h2 class="mt-4 font-serif text-3xl leading-tight tracking-tight text-[#2b2721] sm:text-4xl md:text-5xl">From calendar event to finished work</h2><p class="mt-5 text-lg leading-relaxed text-[#2b2721]/70">Four steps from a line on your calendar to a finished outcome — the same shape every time, no matter the meeting, deadline, or plan.</p></div><div class="mt-12 grid gap-8 sm:grid-cols-2 lg:grid-cols-4 lg:gap-6"><div class="relative border-t-2 border-[#2b2721] pt-5"><p class="font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/55 uppercase">Step 01</p><h3 class="mt-3 font-serif text-2xl leading-tight text-[#2b2721]">Your schedule becomes the runtime</h3><p class="mt-3 text-sm leading-relaxed text-[#2b2721]/70">Floatboat treats your calendar as the agent&#x27;s clock — every event is a trigger with context, not a list of contacts to import. Pulls from Google Calendar, Notion Calendar, Lark, iCloud, Outlook, or any ICS feed.</p></div><div class="relative border-t-2 border-[#2b2721] pt-5"><p class="font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/55 uppercase">Step 02</p><h3 class="mt-3 font-serif text-2xl leading-tight text-[#2b2721]">Floatboat reads the rhythm</h3><p class="mt-3 text-sm leading-relaxed text-[#2b2721]/70">Meetings, deadlines, routines and plans get classified into the kind of work each one really needs — at the right time, with the right context.</p></div><div class="relative border-t-2 border-[#2b2721] pt-5"><p class="font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/55 uppercase">Step 03</p><h3 class="mt-3 font-serif text-2xl leading-tight text-[#2b2721]">Agents prep and execute</h3><p class="mt-3 text-sm leading-relaxed text-[#2b2721]/70">Briefs before calls, drafts before deadlines, follow-ups after. Combo Skills turn messy input into finished deliverables on autopilot.</p></div><div class="relative border-t-2 border-[#2b2721] pt-5"><p class="font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/55 uppercase">Step 04</p><h3 class="mt-3 font-serif text-2xl leading-tight text-[#2b2721]">You stay in the loop</h3><p class="mt-3 text-sm leading-relaxed text-[#2b2721]/70">
792Every event opens its own Agent Workspace with run history, files and decisions. Tweak prompts, swap models, re-run a step — anytime.</p></div></div></div></section><section class="py-14 sm:py-20"><div class="mx-auto max-w-4xl px-6"><div class="text-center"><p class="inline-flex items-center border-2 border-[#2b2721] bg-white px-2.5 py-1 font-sans text-[10px] font-bold tracking-[0.18em] text-[#2b2721]/70 uppercase">FAQ</p><h2 class="mt-4 font-serif text-3xl leading-tight tracking-tight text-[#2b2721] sm:text-4xl md:text-5xl">Questions operators ask first</h2></div><div class="mt-10 border-t-2 border-[#2b2721]/15"><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">What is Floatboat?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">Which calendars does Floatboat work with?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">How is Floatboat different from ChatGPT or other chat-based AI agents?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">What is an Agent Workspace?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">Can Floatboat work with my existing tools like Slack or Google Drive?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">Is Floatboat free to download and use?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-b-2 border-[#2b2721]/15"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between gap-4 py-5 text-left font-serif text-xl text-[#2b2721] transition hover:no-underline sm:text-2xl">Is Floatboat a web app or desktop app?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-[#2b2721]/55 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div></section><section class="relative overflow-hidden border-t border-[#2b2721]/5"><div class="relative mx-auto max-w-5xl px-6 py-12 text-center sm:py-16"><h2 class="font-serif text-3xl leading-[1.1] tracking-tight text-[#2b2721] sm:text-4xl md:text-5xl">Let your calendar do the work</h2><p class="mx-auto mt-4 max-w-xl text-lg text-[#2b2721]/70">Proactive AI agents for Mac &amp; Windows.</p><div class="mt-8 flex flex-wrap items-start justify-center gap-4"><div class="flex flex-col items-center gap-2"><a href="/download/success?from=landing&amp;source=landing&amp;platform=mac&amp;arch=arm&amp;download_placement=landing_primary&amp;download_entry_point=landing_cta&amp;download_link_text=Download+for+Mac" class="group inline-flex min-h-16 w-[264px] max-w-full items-center justify-start gap-3 rounded-md border-2 border-[#2b2721] px-4 py-3 text-left font-sans transition-all duration-150 focus-visible:ring-2 focus-visible:ring-[#2b2721]/40 focu
792s-visible:outline-none shadow-[4px_4px_0_0_#2b2721] hover:-translate-x-[1px] hover:-translate-y-[1px] hover:shadow-[6px_6px_0_0_#2b2721] bg-[#2b2721] text-white" data-skip-mac-prepare="1"><span class="grid h-9 w-9 shrink-0 place-items-center rounded-sm border border-current/15 bg-current/5" aria-hidden="true"><img src="/imgs/floatboat/landing/figma/apple-icon.svg" alt="" class="h-4 w-4 invert"/></span><span class="flex min-w-0 flex-col items-start gap-0.5"><span class="truncate text-sm leading-5 font-semibold">Download for Mac</span><span class="truncate text-xs leading-4 opacity-70">Apple Silicon build</span></span></a><a href="/download/success?from=landing&amp;source=landing&amp;platform=mac&amp;arch=x86&amp;download_placement=landing_primary&amp;download_entry_point=landing_cta&amp;download_link_text=macOS+Intel" class="inline-flex min-h-5 w-[264px] max-w-full items-center justify-start text-left text-xs leading-4 font-medium text-[#2b2721]/60 underline underline-offset-2 transition-colors hover:text-[#2b2721]" data-skip-mac-prepare="1">Mac Intel build</a></div><div class="flex flex-col items-center gap-2"><a href="https://apps.microsoft.com/detail/XPDLJFL7VD5XBK?referrer=appbadge&amp;mode=full&amp;cid=XPDLJFL7VD5XBK" target="_blank" rel="noopener noreferrer" class="group inline-flex min-h-16 w-[264px] max-w-full items-center justify-start gap-3 rounded-md border-2 border-[#2b2721] px-4 py-3 text-left font-sans transition-all duration-150 focus-visible:ring-2 focus-visible:ring-[#2b2721]/40 focus-visible:outline-none shadow-[4px_4px_0_0_#2b2721] hover:-translate-x-[1px] hover:-translate-y-[1px] hover:shadow-[6px_6px_0_0_#2b2721] bg-[#fffaf0] text-[#2b2721] hover:bg-white"><span class="grid h-9 w-9 shrink-0 place-items-center rounded-sm border border-current/15 bg-current/5" aria-hidden="true"><img src="/imgs/floatboat/landing/figma/windows-icon.svg" alt="" class="h-4 w-4"/></span><span class="flex min-w-0 flex-col items-start gap-0.5"><span class="truncate text-sm leading-5 font-semibold">Microsoft Store</span><span class="truncate text-xs leading-4 opacity-70">Recommended for Windows</span></span></a><a href="/download/success?from=landing&amp;source=landing&amp;platform=windows&amp;download_placement=landing_primary&amp;download_entry_point=landing_cta&amp;download_link_text=Download+for+Windows" class="inline-flex min-h-5 w-[264px] max-w-full items-center justify-start text-left text-xs leading-4 font-medium text-[#2b2721]/60 underline underline-offset-2 transition-colors hover:text-[#2b2721]" data-skip-mac-prepare="1">Windows installer (.exe)</a></div></div></div></section></main></div><!--$--><!--/$--></main><footer id="footer" class=""><div class="mx-auto max-w-[1440px]"><div class="px-10 pt-12 pb-8 max-lg:px-5"><div class="grid gap-6 rounded-[24px] border border-black/[0.08] bg-[#fbfaf8]/70 p-6 shadow-sm sm:p-8 md:grid-cols-2 md:items-center"><div><h3 class="font-serif text-2xl leading-snug font-medium tracking-[-0.01em] text-[#1b1a18] sm:text-3xl">Notes from the Proactive Agent.</h3><p class="mt-2 max-w-md text-sm leading-relaxed text-[#7a7671]">Field notes on running work from the calendar — plus new Combos, agent tactics, and product updates. No spam.</p></div><form class="flex w-full flex-col gap-3 sm:flex-row"><label class="sr-only" for="footer-newsletter-email">Email address</label><input id="footer-newsletter-email" type="email" required="" placeholder="[email protected]" class="min-h-12 flex-1 rounded-full border border-black/[0.12] bg-[#f0eeeb] px-5 py-3 text-sm text-[#1b1a18] placeholder:text-[#7a7671]/60 focus:border-[#1b1a18]/30 focus:ring-2 focus:ring-[#1b1a18]/15 focus:outline-none"/><button type="submit" class="inline-flex min-h-12 items-center justify-center rounded-full bg-[#1b1a18] px-6 py-3 text-sm font-medium text-[#f0eeeb] shadow-md transition hover:opacity-90">Subscribe</button></form></div></div><div class="flex flex-col gap-4 px-10 py-6 max-lg:px-5 sm:flex-row sm:items-center sm:justify-between"><div class="flex flex-col items-start gap-3"><a class="inline-flex items-end gap-2" aria-label="floatboat" title="floatboat" href="/">
792<img src="/logo.svg" alt="floatboat" width="775" height="256" class="h-9 w-auto"/><span class="sr-only">floatboat</span></a><p class="text-[14px] leading-[1.43] font-medium text-[#7a7671]">Sail onward with what you&#x27;ve learned</p></div><div class="flex items-center gap-6 text-[#7a7671]"><a href="/cdn-cgi/l/email-protection#6c0f0302180d0f182c0a00030d180e030d18420d05" class="inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]" aria-label="Email" title="Email"><svg viewBox="0 0 20 20" width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg" class="size-5"><path d="M2.49984 2.5H17.4998C17.9601 2.5 18.3332 2.8731 18.3332 3.33333V16.6667C18.3332 17.1269 17.9601 17.5 17.4998 17.5H2.49984C2.0396 17.5 1.6665 17.1269 1.6665 16.6667V3.33333C1.6665 2.8731 2.0396 2.5 2.49984 2.5ZM16.6665 6.0316L10.0597 11.9483L3.33317 6.01328V15.8333H16.6665V6.0316ZM3.75939 4.16667L10.0514 9.71833L16.2507 4.16667H3.75939Z" fill="currentColor"></path></svg></a><a href="https://x.com/float_schedule?s=11" target="_blank" rel="noopener noreferrer" class="inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]" aria-label="X" title="X"><svg viewBox="0 0 20 20" width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg" class="size-5"><path d="M15.2721 1.58643H18.0833L11.9416 8.606L19.1668 18.1581H13.5095L9.07852 12.3648L4.00845 18.1581H1.19552L7.76469 10.6498L0.833496 1.58643H6.63442L10.6397 6.8817L15.2721 1.58643ZM14.2854 16.4754H15.8432L5.78799 3.1807H4.11638L14.2854 16.4754Z" fill="currentColor"></path></svg></a><a href="https://www.linkedin.com/company/floatboat/" target="_blank" rel="noopener noreferrer" class="inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]" aria-label="LinkedIn" title="LinkedIn"><svg viewBox="0 0 20 20" width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg" class="size-5"><g clip-path="url(#clip0_floatboat_footer_linkedin)"><path d="M18.5195 0H1.47656C0.660156 0 0 0.644531 0 1.44141V18.5547C0 19.3516 0.660156 20 1.47656 20H18.5195C19.3359 20 20 19.3516 20 18.5586V1.44141C20 0.644531 19.3359 0 18.5195 0ZM5.93359 17.043H2.96484V7.49609H5.93359V17.043ZM4.44922 6.19531C3.49609 6.19531 2.72656 5.42578 2.72656 4.47656C2.72656 3.52734 3.49609 2.75781 4.44922 2.75781C5.39844 2.75781 6.16797 3.52734 6.16797 4.47656C6.16797 5.42188 5.39844 6.19531 4.44922 6.19531ZM17.043 17.043H14.0781V12.4023C14.0781 11.2969 14.0586 9.87109 12.5352 9.87109C10.9922 9.87109 10.7578 11.0781 10.7578 12.3242V17.043H7.79688V7.49609H10.6406V8.80078H10.6797C11.0742 8.05078 12.043 7.25781 13.4844 7.25781C16.4883 7.25781 17.043 9.23438 17.043 11.8047V17.043Z" fill="currentColor"></path></g><defs><clipPath id="clip0_floatboat_footer_linkedin"><rect width="20" height="20" fill="white"></rect></clipPath></defs></svg></a><a href="https://discord.gg/Ecp2PR24H4" target="_blank" rel="noopener noreferrer" class="inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]" aria-label="Discord" title="Discord"><svg viewBox="0 0 20 20" width="20" height="20" fill="none" xmlns="http://www.w3.org/2000/svg" class="size-5"><path d="M16.9308 3.4629C15.6561 2.87799 14.2892 2.44707 12.8599 2.20025C12.8339 2.19549 12.8079 2.20739 12.7945 2.2312C12.6187 2.54388 12.4239 2.9518 12.2876 3.27242C10.7503 3.04228 9.22099 3.04228 7.71527 3.27242C7.57887 2.94467 7.37707 2.54388 7.20048 2.2312C7.18707 2.20819 7.16107 2.19629 7.13504 2.20025C5.70659 2.44628 4.33963 2.87721 3.06411 3.4629C3.05307 3.46766 3.04361 3.4756 3.03732 3.48591C0.444493 7.35954 -0.265792 11.138 0.0826501 14.8695C0.0842267 14.8878 0.0944749 14.9053 0.108665 14.9164C1.81934 16.1726 3.47642 16.9353 5.10273 17.4408C5.12876 17.4488 5.15634 17.4393 5.1729 17.4178C5.55761 16.8925 5.90054 16.3385 6.19456 15.756C6.21192 15.7219 6.19535 15.6814 6.15989 15.6679C5.61594 15.4616 5.098 15.21 4.59977 14.9243C4.56037 14.9013 4.55721 14.8449 4.59347 14.8179C4.69831 14.7394 4.80318 14.6576 4.9033 14.5751C4.92141 14.56 4.94665 14.5568 4.96794 14.5664C8.24107 16.0608 11.7846 16.0608 15.0191 14.5664C15.0404 14.5561 15.0657 14.5592 15.0846 14.5743C15.1847 14.6568 15.2895 14.7394 15.3952 14.8179C15.4314 14.8449 15.4291 14.9013 15.3897 14.9243C14.8914 15.2155 14.3735 15.4616 13.8288 15.6671C13.7933 15.6806 13.7775 15.7219 13.7949 15.756C14.0952 16.3377 14.4381 16.8917 14.8157 17.417C14.8315 17.4393 14.8599 17.4488 14.8859 17.4408C16.5201 16.9353 18.1772 16.1726 19.8879 14.9164C19.9028 14.9053 19.9123 14.8886 19.9139 14.8703C20.3309 10.5562 19.2154 6.80878 16.9568 3.4867C16.9513 3.4756 16.9419 3.46766 16.9308 3.4629ZM6.68335 12.5974C5.69792 12.5974 4.88594 11.6927 4.88594 10.5816C4.88594 9.47056 5.68217 8.56585 6.68335 8.56585C7.69239 8.56585 8.49651 9.4785 8.48073 10.5816C8.48073 11.6927 7.68451 12.5974 6.68335 12.5974ZM13.329 12.5974C12.3435 12.5974 11.5316 11.6927 11.5316 10.5816C11.5316 9.47056 12.3278 8.56585 13.329 8.56585C14.338 8.56585 15.1421 9.4785 15.1264 10.5816C15.1264 11.6927 14.338 12.5974 13.329 12.5974Z" fill="currentColor"></path></svg></a></div></div><div class="h-px w-full bg-black/[0.08]"></div><div class="flex flex-col gap-4 px-10 py-6 max-lg:px-5 sm:flex-row sm:items-start sm:justify-between"><p class="text-[14px] leading-[1.43] font-normal text-[#71717a]">© <!-- -->2026<!-- --> AOE Tech Labs Limited. The Proactive Agent that Runs Work from the Calendar.</p><div class="flex flex-wrap items-center justify-start gap-2 sm:justify-center sm:gap-6"><a aria-label="Blog" title="Blog" class="flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]" href="/blog">Blog</a><a aria-label="Privacy Policy" title="Privacy Policy" class="flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]" href="/privacy">Privacy Policy</a><a aria-label="Terms of Service" title="Terms of Service" class="flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]" href="/terms">Terms of Service</a><a href="/cdn-cgi/l/email-protection#42212d2c3623213602242e2d2336202d23366c232b" class="flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]">Contact: <span class="__cf_email__" data-cfemail="cfaca0a1bbaeacbb8fa9a3a0aebbada0aebbe1aea6">[email&#160;protected]</span></a></div></div></div></footer></div></div><!--$--><!--/$--><!--$--><!--/$-->
vendor: 108 bytes, line 792
792<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
792<script src="/_next/static/chunks/webpack-8f3d1c2fe360a532.js" id="_R_" async=""></script>
792<script>(self.__next_f=self.__next_f||[]).push([0])</script>
792<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n6:I[80777,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[80777,[],\"ViewportBoundary\"]\nb:I[80777,[],\"MetadataBoundary\"]\nd:I[27640,[],\"\"]\n:HL[\"/_next/static/media/0515dfa9f102d1d7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/6c596dfcddeca1e9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/77eab352399a5d46-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/aedce4b2d5fa94f8-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/23683334fdafa38e.css\",\"style\"]\n:HL[\"/_next/static/css/d37476854e9e226d.css\",\"style\"]\n:HL[\"/_next/static/css/df8c8bd97929f65b.css\",\"style\"]\n:HL[\"/_next/static/css/25e14d6b291367e6.css\",\"style\"]\n:HL[\"/_next/static/css/66b5b10d64d19620.css\",\"style\"]\n:HL[\"/_next/static/css/cecdbce2880c059c.css\",\"style\"]\n:HL[\"/_next/static/css/5179a0aea5cc6527.css\",\"style\"]\n:HL[\"/_next/static/css/22104ef03c7d8884.css\",\"style\"]\n:HL[\"/_next/static/css/a53781f132c132c1.css\",\"style\"]\n"])</script>
792<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"a059eqN48sXgyme4tzSca\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"(landing)\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/23683334fdafa38e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d37476854e9e226d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/df8c8bd97929f65b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/25e14d6b291367e6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,\"$L3\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/66b5b10d64d19620.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/cecdbce2880c059c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5179a0aea5cc6527.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/22104ef03c7d8884.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a53781f132c132c1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L4\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L9\",null,{\"children\":\"$@a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":false}\n"])</script>
792<script>self.__next_f.push([1,"e:Tc4c,"])</script>
792<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https://floatboat.ai/#webpage\",\"url\":\"https://floatboat.ai/\",\"name\":\"Floatboat — Proactive Agent OS for Calendar-Driven Work\",\"description\":\"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac \u0026 Windows.\",\"isPartOf\":{\"@id\":\"https://floatboat.ai/#website\"},\"publisher\":{\"@id\":\"https://floatboat.ai/#organization\"}},{\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://floatboat.ai/\"}]},{\"@type\":\"SoftwareApplication\",\"@id\":\"https://floatboat.ai/#software\",\"name\":\"floatboat AI\",\"alternateName\":\"floatboat Agent\",\"applicationCategory\":\"ProductivityApplication\",\"operatingSystem\":\"macOS 13+, Windows 10+\",\"description\":\"A native operating system-level AI agent that integrates with local files and workflow tools without data migration. Features include active context awareness and persona automation.\",\"softwareVersion\":\"0.1.0-beta\",\"fileSize\":\"120MB\",\"downloadUrl\":\"https://floatboat.ai/download\",\"author\":{\"@id\":\"https://floatboat.ai/#organization\"},\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"availability\":\"https://schema.org/PreOrder\",\"description\":\"Limited beta access is currently available.\"},\"featureList\":[\"Local context awareness\",\"No-upload file processing\",\"Cross-application integration\",\"Persona automation\",\"No-code workflow automation\"],\"screenshot\":[{\"@type\":\"ImageObject\",\"url\":\"https://floatboat.ai/assets/screenshot-dashboard.jpg\",\"caption\":\"floatboat Floating Interface on macOS\",\"contentUrl\":\"https://floatboat.ai/assets/screenshot-dashboard.jpg\"},{\"@type\":\"ImageObject\",\"url\":\"https://floatboat.ai/assets/screenshot-workflow.jpg\",\"caption\":\"No-code Workflow Automation Builder\",\"contentUrl\":\"https://floatboat.ai/assets/screenshot-workflow.jpg\"},{\"@type\":\"ImageObject\",\"url\":\"https://floatboat.ai/assets/screenshot-files.jpg\",\"caption\":\"Local File Integration Demo\",\"contentUrl\":\"https://floatboat.ai/assets/screenshot-files.jpg\"}]},{\"@type\":\"FAQPage\",\"@id\":\"https://floatboat.ai/#faq\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is Floatboat?\",\"acceptedA
792nswer\":{\"@type\":\"Answer\",\"text\":\"Floatboat is a native OS-level AI agent that helps you manage workflows and process local files without uploading data to the cloud.\"}},{\"@type\":\"Question\",\"name\":\"Does Floatboat upload my private files to the cloud?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Floatboat is designed with a privacy-first architecture. It processes files locally and only interacts with external LLMs when strictly necessary and authorized.\"}},{\"@type\":\"Question\",\"name\":\"Which operating systems does Floatboat support?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Currently, Floatboat supports macOS 13+ and Windows 10+. Linux support is on our roadmap.\"}},{\"@type\":\"Question\",\"name\":\"Is Floatboat free to use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Floatboat is currently in beta. We will offer both free and premium tiers upon official launch.\"}}]}]}"])</script>
792<script>self.__next_f.push([1,"5:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$e\"}}],\"$Lf\"]\nf:[\"$undefined\",[\"$@10\"]]\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
792<script>self.__next_f.push([1,"c:[[\"$\",\"title\",\"0\",{\"children\":\"Floatboat — Proactive Agent OS for Calendar-Driven Work\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac \u0026 Windows.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"agentic calendar, proactive AI agents, calendar AI, AI scheduling, agent OS, AI workspace, Google Calendar AI, Notion Calendar AI, Lark AI, desktop AI agent\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://floatboat.ai/\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Floatboat — Proactive Agent OS for Calendar-Driven Work\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac \u0026 Windows.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://floatboat.ai/\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Floatboat\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://floatboat.ai/landing-og-image.webp\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:site\",\"content\":\"https://floatboat.ai\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Floatboat — Proactive Agent OS for Calendar-Driven Work\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac \u0026 Windows.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://floatboat.ai/landing-og-image.webp\"}]]\n"])</script>
792<script>self.__next_f.push([1,"8:null\n"])</script>
792<script>self.__next_f.push([1,"11:I[90200,[\"2765\",\"static/chunks/2765-2b12b1302ecaa569.js\",\"7177\",\"static/chunks/app/layout-f4984f3acd65440f.js\"],\"\"]\n"])</script>
792<script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_d2b0e4 __variable_102aba\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.ico\"}],[[\"$\",\"link\",\"en\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://floatboat.ai/\"}],[\"$\",\"link\",\"zh\",{\"rel\":\"alternate\",\"hrefLang\":\"zh\",\"href\":\"https://floatboat.ai/zh\"}]],[],[],[],[[\"$\",\"$1\",\"google-analytics\",{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              window.dataLayer = window.dataLayer || [];\\n              function gtag(){dataLayer.push(arguments);}\\n              gtag('js', new Date());\\n              gtag('config', 'G-1MSQ86E7CY');\\n            \"}}],[\"$\",\"$L11\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-1MSQ86E7CY\",\"strategy\":\"afterInteractive\",\"async\":true}]]}],[\"$\",\"$1\",\"microsoft-uet\",{\"children\":[\"$\",\"$L11\",null,{\"id\":\"microsoft-uet-script\",\"strategy\":\"lazyOnload\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n            (function(w,d,t,u,o)\\n            {\\n              w[u]=w[u]||[],\\n              o.ts=(new Date).getTime();\\n              var n=d.createElement(t);\\n              n.src=\\\"https://bat.bing.net/bat.js?ti=\\\"+o.ti+(\\\"uetq\\\"!=u?\\\"\u0026q=\\\"+u:\\\"\\\"),\\n              n.async=1,\\n              n.onload=n.onreadystatechange=function()\\n              {\\n                var s=this.readyState;\\n                s\u0026\u0026\\\"loaded\\\"!==s\u0026\u0026\\\"complete\\\"!==s||(o.q=w[u],w[u]=new UET(o),w[u].push(\\\"pageLoad\\\"),n.onload=n.onreadystatechange=null)\\n              };\\n              var i=d.getElementsByTagName(t)[0];\\n              i.parentNode.insertBefore(n,i);\\n            })(window, document, \\\"script\\\", \\\"uetq\\\", {\\n              ti:\\\"187252976\\\",\\n              enableAutoSpaTracking:true\\n            });\\n          \"}}]}],[\"$\",\"$1\",\"taboola-pixel\",{\"children\":[[\"$\",\"script\",null,{\"id\":\"taboola-pixel-bootstrap\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n              window.__taboolaPixelIds=[\\\"2042232\\\",\\\"2044646\\\"];\\n              window.__taboolaPixelId=\\\"2042232\\\";\\n              window._tfa=window._tfa||[];\\n              window.__taboolaPageViewSentById=window.__taboolaPageViewSentById||{};\\n              window.__taboolaPixelIds.forEach(function(accountId){\\n                var numericAccountId=Number(accountId);\\n                var pixelId=accountId\u0026\u0026Number.isFinite(numericAccountId)?numericAccountId:accountId;\\n                if(!window.__taboolaPageViewSentById[accountId]){\\n                  window.__taboolaPageViewSentById[accountId]=true;\\n                  window._tfa.push({notify:\\\"event\\\",name:\\\"page_view\\\",id:pixelId});\\n                }\\n              });\\n              window.__taboolaPageViewSent=true;\\n            \"}}],[[\"$\",\"$L11\",\"2042232\",{\"id\":\"taboola-pixel-script-2042232\",\"strategy\":\"lazyOnload\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n                  !function(t,f,a,x){\\n                    if(!document.getElementById(x)){\\n                      t.async=1;\\n                      t.src=a;\\n                      t.id=x;\\n                      f.parentNode.insertBefore(t,f);\\n                    }\\n                  }(document.createElement(\\\"script\\\"),\\n                    document.getElementsByTagName(\\\"script\\\")[0],\\n                    \\\"https://cdn.taboola.com/libtrc/unip/2042232/tfa.js\\\",\\n                    \\\"tb_tfa_script_2042232\\\");\\n                \"}}],[\"$\",\"$L11\",\"2044646\",{\"id\":\"taboola-pixel-script-2044646\",\"strategy\":\"lazyOnload\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n                  !function(t,f,a,x){\\n                    if(!document.getElementById(x)){\\n                      t.async=1;\\n                      t.src=a;\\n                      t.id=x;\\n                      f.parentNode.insertBefore(t,f);\\n                    }\\n                  }(document.createElement(\\\"script\\\"),\\n                    document.getElementsByTagName(\\\"script\\\")[0],\\n                    \\\"https://cdn.taboola.com/libtrc/unip/2044646/tfa.js\\\",\\n                    \\\"tb_tfa_
792script_2044646\\\");\\n                \"}}]]]}],\"$L12\"],[],[],[],[],\"$L13\"]}],\"$L14\"]}]\n"])</script>
792<script>self.__next_f.push([1,"15:I[60388,[\"2765\",\"static/chunks/2765-2b12b1302ecaa569.js\",\"7177\",\"static/chunks/app/layout-f4984f3acd65440f.js\"],\"\"]\n16:I[43580,[],\"\"]\n17:I[38282,[],\"\"]\n"])</script>
792<script>self.__next_f.push([1,"18:I[69106,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"Image\"]\n"])</script>
792<script>self.__next_f.push([1,"19:I[28413,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"\"]\n"])</script>
792<script>self.__next_f.push([1,"1a:I[68427,[\"2765\",\"static/chunks/2765-2b12b1302ecaa569.js\",\"7177\",\"static/chunks/app/layout-f4984f3acd65440f.js\"],\"AttributionWebCollector\"]\n1b:I[64687,[\"2765\",\"static/chunks/2765-2b12b1302ecaa569.js\",\"7177\",\"static/chunks/app/layout-f4984f3acd65440f.js\"],\"TaboolaPixelRouteTracker\"]\n1c:I[16959,[\"2765\",\"static/chunks/2765-2b12b1302ecaa569.js\",\"7177\",\"static/chunks/app/layout-f4984f3acd65440f.js\"],\"RedditPixelRouteTracker\"]\n1d:I[43506,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"default\"]\n12:[\"$\",\"$1\",\"reddit-pixel\",{\"children\":[\"$\",\"$L11\",null,{\"id\":\"reddit-pixel-script\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n            !function(w,d){\\n              if(!w.rdt){\\n                var p=w.rdt=function(){\\n                  p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)\\n                };\\n                p.callQueue=[];\\n                var t=d.createElement(\\\"script\\\");\\n                t.src=\\\"https://www.redditstatic.com/ads/pixel.js?pixel_id=a2_j5d6tjvg0ccu\\\";\\n                t.async=!0;\\n                var s=d.getElementsByTagName(\\\"script\\\")[0];\\n                s.parentNode.insertBefore(t,s)\\n              }\\n            }(window,document);\\n            window.__redditPixelId=\\\"a2_j5d6tjvg0ccu\\\";\\n            rdt('init', \\\"a2_j5d6tjvg0ccu\\\");\\n            if(!window.__redditPageVisitSent){\\n              window.__redditPageVisitSent=true;\\n              rdt('track', 'PageVisit');\\n            }\\n          \"}}]}]\n13:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@graph\\\":[{\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://floatboat.ai/#organization\\\",\\\"name\\\":\\\"Floatboat\\\",\\\"url\\\":\\\"https://floatboat.ai\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://floatboat.ai/logo.svg\\\"}},{\\\"@type\\\":\\\"WebSite\\\",\\\"@id\\\":\\\"https://floatboat.ai/#website\\\",\\\"name\\\":\\\"Floatboat\\\",\\\"url\\\":\\\"https://floatboat.ai\\\",\\\"publisher\\\":{\\\"@id\\\":\\\"https://floatboat.ai/#organization\\\"}}]}\"}}]\n"])</script>
792<script>self.__next_f.push([1,"14:[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"className\":\"overflow-x-hidden\",\"children\":[[\"$\",\"$L15\",null,{\"color\":\"#6466F1\",\"initialPosition\":0.08,\"crawlSpeed\":200,\"height\":3,\"crawl\":true,\"showSpinner\":true,\"easing\":\"ease\",\"speed\":200}],[\"$\",\"$L16\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L17\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex h-screen flex-col items-center justify-center gap-4\",\"children\":[[\"$\",\"$L18\",null,{\"src\":\"/logo.svg\",\"alt\":\"Logo\",\"width\":80,\"height\":80}],[\"$\",\"h1\",null,{\"className\":\"text-2xl font-normal\",\"children\":\"Page not found\"}],[\"$\",\"$L19\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:pointer-events-none [\u0026_svg:not([class*='size-'])]:size-4 shrink-0 [\u0026_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-4 py-2 has-[\u003esvg]:px-3 mt-4\",\"children\":[[\"$\",\"$7\",null,{\"fallback\":[\"$\",\"div\",null,{\"style\":{\"width\":24,\"height\":24}}],\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-left\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1l729n\",{\"d\":\"m12 19-7-7 7-7\"}],[\"$\",\"path\",\"x3x0zl\",{\"d\":\"M19 12H5\"}],\"$undefined\"]}]}],[\"$\",\"span\",null,{\"children\":\"Back to Home\"}]],\"data-slot\":\"button\",\"ref\":null}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L1a\",null,{\"enabled\":true}],[],[[\"$\",\"$1\",\"taboola-pixel\",{\"children\":[\"$\",\"$7\",null,{\"fallback\":null,\"children\":[\"$\",\"$L1b\",null,{}]}]}],[\"$\",\"$1\",\"reddit-pixel\",{\"children\":[\"$\",\"$7\",null,{\"fallback\":null,\"children\":[\"$\",\"$L1c\",null,{}]}]}]],[],[]]}]\n"])</script>
792<script>self.__next_f.push([1,"3:[\"$\",\"$L1d\",null,{\"formats\":\"$undefined\",\"locale\":\"en\",\"messages\":{\"common\":{\"metadata\":{\"title\":\"Floatboat\",\"description\":\"The World's 1st AI Vibe Work Agent. An outcome-oriented, context-native workspace for the AI-Native era.\",\"keywords\":\"floatboat, floatboat.ai, ai office environment, vibe work, outcome-oriented workspace\"},\"sign\":{\"sign_in_title\":\"Sign In\",\"sign_in_description\":\"Sign in to your account\",\"desktop_auto_return\":\"After signing in, you'll be redirected back to the desktop app\",\"sign_up_title\":\"Sign Up\",\"sign_up_description\":\"Create an account\",\"email_title\":\"Email\",\"email_placeholder\":\"Input your email here\",\"password_title\":\"Password\",\"password_placeholder\":\"Input your password here\",\"new_password_title\":\"New Password\",\"confirm_password_title\":\"Confirm Password\",\"confirm_password_placeholder\":\"Confirm your new password\",\"forgot_password\":\"Forgot password?\",\"forgot_password_title\":\"Forgot Password\",\"forgot_password_description\":\"Enter your email and we will send you a reset link.\",\"forgot_password_tip\":\"For security, the reset link is only sent if the email is registered.\",\"forgot_password_submit\":\"Send reset link\",\"forgot_password_resend\":\"Resend reset link\",\"forgot_password_sent\":\"Reset email sent. Please check your inbox.\",\"forgot_password_sent_description\":\"If an account exists for {email}, a reset link has been sent.\",\"sign_up_failed\":\"Sign up failed. Please try again later.\",\"sign_in_failed\":\"Sign in failed. Please try again later.\",\"social_signup_disabled\":\"An account could not be created with this sign-in method. Please sign in with an email verification code to continue.\",\"send_verification_failed\":\"Request failed. Please try again later.\",\"or\":\"Or\",\"continue\":\"Continue\",\"no_account\":\"Don't have an account?\",\"already_have_account\":\"Already have an account?\",\"email_sign_in\":\"Sign in with Email\",\"send_email_code\":\"Send verification code\",\"email_code_title\":\"Verification code\",\"email_code_placeholder\":\"Enter the 6-digit code\",\"email_code_sent\":\"Verification code sent. Check your email.\",\"email_code_invalid\":\"Enter a valid 6-digit verification code.\",\"email_code_rejected\":\"Invalid verification code. Please try again or request a new code.\",\"email_code_expired\":\"Verification code expired. Please request a new code.\",\"email_code_too_many_attempts\":\"Too many incorrect attempts. Please request a new verification code.\",\"verify_email_code\":\"Verify and continue\",\"resend_email_code\":\"Resend code\",\"resend_email_code_countdown\":\"Resend code ({seconds}s)\",\"change_email\":\"Change email\",\"use_password_sign_in\":\"Use password instead\",\"use_email_code_sign_in\":\"Use verification code instead\",\"email_password_required\":\"Email and password are required.\",\"invite_code_unavailable\":\"Credits redemption code is unavailable.\",\"show_password\":\"Show password\",\"hide_password\":\"Hide password\",\"google_sign_in_title\":\"Sign in with Google\",\"github_sign_in_title\":\"Sign in with GitHub\",\"close_title\":\"Close\",\"cancel_title\":\"Cancel\",\"sign_out_title\":\"Sign Out\",\"billing_title\":\"Billing\",\"name_title\":\"Name\",\"name_placeholder\":\"Input your name here\",\"invite_code_title\":\"Credits redemption code\",\"invite_code_placeholder\":\"Optional\",\"email_verification_hint\":\"Use an email address you can access. You must verify your email after signing up.\",\"admin_title\":\"Admin System\",\"developer_center_title\":\"Developer Center\",\"agent_bot_config_title\":\"Link Mode Config\",\"im_web_title\":\"IM Web\",\"credits_title\":\"Credits: {credits}\",\"credits_menu_title\":\"Credits\",\"verify_email_sent\":\"Verification email sent. Please check your inbox.\",\"verify_email_required\":\"Please verify your email address before signing in.\",\"resend_verification\":\"Resend verification email\",\"resend_verification_sent\":\"Verification email resent. Please check your inbox.\",\"verify_email_page_title\":\"Check your email\",\"verify_email_page_description\":\"To continue, click the link sent to\",\"verify_email_continue\":\"Continue\",\"verify_email_tip\":\"After verifying, click “Continue”.\",\"verify_email_not_verified_yet\":\"Not verified yet. Please click the link in your email first.\",\"verify_email_account_mismatch\":\"Signed in as {current}. This page is waiting for {expected}.\",\"resend_verification_countdown\":\"Resend verification email ({seconds}s)\",\"resend_verification_wait\":\"Please wait {seconds}s before resending.\",\"back_to_sign_in\":\"Back to Sign In\",\"reset_password_title\":\"Set a New Password\",\"reset_password_description\":\"Choose a new password for your account.\",\"reset_password_tip\":\"Use at least 8 characters. Avoid reusing old passwords.\",\"reset_password_submit\":\"Reset password\",\"reset_password_success\":\"Password reset successfully.\",\"reset_password_success_description\":\"Your password has been updated. You can now sign in with the new password.\",\"reset_password_invali
792d_token\":\"This reset link is invalid or has expired. Please request a new one.\",\"reset_password_mismatch\":\"The two passwords do not match.\",\"reset_password_min_length\":\"Password must be at least 8 characters.\",\"email_required\":\"Please enter your email address.\",\"invalid_email\":\"Please enter a valid email address.\",\"web_signup_disabled\":\"Please download the desktop client to sign up. Web sign-up is temporarily unavailable.\",\"web_signup_disabled_title\":\"Web sign-up unavailable\",\"web_signup_disabled_download_prefix\":\"You can download the desktop client here:\",\"web_signup_disabled_download_link\":\"Open download page\",\"web_signup_disabled_confirm\":\"OK\",\"signup_risk_blocked\":\"This email cannot be used for registration.\",\"signup_risk_blocked_email\":\"This email address is blocked from registration.\",\"signup_risk_blocked_domain\":\"This email domain is not allowed for registration.\",\"signup_risk_disposable_domain\":\"Disposable email addresses are not allowed.\",\"signup_risk_suspicious_local_part\":\"This email pattern looks risky. Please use a different address.\",\"signup_risk_duplicate_email\":\"This email already exists or maps to an existing mailbox. Please sign in instead.\",\"signup_risk_ip_rate_limit\":\"Too many sign-up attempts from your network. Please try again later.\"},\"account_handoff\":{\"pending_title\":\"Confirm in Floatboat Desktop\",\"pending_description\":\"Floatboat Desktop received this sign-in request. Confirm which account to use in the desktop app.\",\"approved_title\":\"Signing you in\",\"approved_description\":\"The account was approved in Floatboat Desktop. This browser is finishing sign-in.\",\"rejected_title\":\"Sign-in was not approved\",\"rejected_description\":\"Floatboat Desktop declined this request. You can return to the previous page and keep using the website normally.\",\"expired_title\":\"This request expired\",\"expired_description\":\"No account was authorized in time. Return to the previous page to continue normally.\",\"completed_title\":\"Sign-in completed\",\"completed_description\":\"This request has already been used. Return to the previous page to continue.\",\"error_title\":\"Sign-in could not be completed\",\"error_description\":\"The Desktop handoff was interrupted. Return to the previous page and continue normally.\",\"return\":\"Return to previous page\"},\"payment\":{\"choose_payment_method\":\"Choose Payment Method\",\"choose_payment_method_description\":\"\",\"cancel_title\":\"Cancel\"},\"locale_detector\":{\"title\":\"We detected your browser language is {locale}. Switch to it?\",\"switch_to\":\"Switch to {locale}\"},\"legal\":{\"sign_in_expired\":\"Your sign-in request has expired. Please sign in again.\",\"title\":\"Legal Agreements\",\"updated_title\":\"Review legal agreements\",\"updated_desc\":\"To continue, please review and accept the Terms of Service and Privacy Policy.\",\"agree_prefix\":\"I have read and agree to the\",\"terms\":\"Terms of Service\",\"privacy\":\"Privacy Policy\",\"and\":\"and\",\"sign_up_notice\":\"By creating an account, you agree to the\",\"sign_in_notice\":\"By signing in, you confirm you have read and agree to the\",\"banner_title\":\"Action required\",\"banner_desc_oauth\":\"Your sign-in is paused until you accept the latest Terms and Privacy.\",\"banner_desc_generic\":\"Please accept the latest Terms and Privacy to continue.\",\"must_agree\":\"You must agree to the Terms and Privacy to continue.\",\"continue\":\"Continue\",\"accepted\":\"Accepted. You can sign in now.\",\"back_to_sign_in\":\"Back to Sign In\",\"version_label\":\"Version\",\"locale_label\":\"Locale\"},\"footer\":{\"blog\":\"Blog\",\"floatboat_tagline\":\"Sail onward with what you've learned\",\"about\":\"About Us\",\"contact\":\"Contact Us\",\"refund\":\"Refund Policy\",\"shipping\":\"Shipping\",\"payment\":\"Payment\"},\"share\":{\"combo_modal\":{\"title\":\"Share Combo Skills\",\"share_method\":\"Share method\",\"only_this_method\":\"Only this method\",\"type_private\":\"Private\",\"type_public\":\"Public\",\"hint_private\":\"Requires code\",\"hint_public\":\"Anyone can view\",\"expiration\":\"Expiration\",\"expires_in_1d\":\"1 day\",\"expires_in_7d\":\"7 days\",\"expires_in_30d\":\"30 days\",\"expires_permanent\":\"Permanent\",\"expiration_hint\":\"The link will stop working after it expires.\",\"generating\":\"Generating...\",\"generate_link\":\"Generate link\",\"generated\":\"Link generated\",\"share_link\":\"Share link\",\"extraction_code\":\"Code\",\"expires_at\":\"Expires at\",\"copied\":\"Copied\",\"copy_share_text\":\"Copy share text\",\"edit_settings\":\"Edit share settings\",\"footer_tip\":\"Anyone with the link (and code, if applicable) can view this page. Share c
792arefully.\",\"error_missing_combo_id\":\"Missing Combo Skills ID\",\"error_missing_resource_id\":\"Missing resource ID\",\"error_generate_failed\":\"Failed to generate link\",\"copy_success\":\"Copied to clipboard\",\"copy_failed\":\"Copy failed. Please copy manually.\",\"expires_line\":\"Expires at: {value}\",\"copy_text_private\":\"I'm sharing the Combo Skills \\\"{title}\\\" with you.\\nLink: {link}\\nCode: {code}{expiresLine}\\nOpen the link to view.\",\"copy_text_public\":\"I'm sharing the Combo Skills \\\"{title}\\\" with you.\\nLink: {link}{expiresLine}\\nOpen the link to view.\"}}},\"landing\":{\"metadata\":{\"title\":\"Floatboat — Proactive Agent OS for Calendar-Driven Work\",\"description\":\"Floatboat turns your calendar into proactive agent workflows. Connect Google Calendar, Notion Calendar, Lark, or any calendar — and let AI agents prep, execute, and follow up at the right time. Mac \u0026 Windows.\",\"keywords\":\"agentic calendar, proactive AI agents, calendar AI, AI scheduling, agent OS, AI workspace, Google Calendar AI, Notion Calendar AI, Lark AI, desktop AI agent\"},\"header\":{\"id\":\"header\",\"variant\":\"floatboat\",\"className\":\"[--landing-header-bottom-align-offset:-2.8px] [--landing-header-right-bottom-align-offset:0px]\",\"brand\":{\"title\":\"floatboat\",\"logo\":{\"src\":\"/logo.svg\",\"alt\":\"floatboat\",\"width\":126,\"height\":36},\"url\":\"/\"},\"nav\":{\"items\":[{\"title\":\"Product\",\"children\":[{\"title\":\"Flow Mode\",\"description\":\"Speak freely while Floatboat turns your words into finished work\",\"url\":\"/flow-mode\"},{\"title\":\"AI Scheduling Assistant\",\"description\":\"A calendar agent that runs the blocks it books\",\"url\":\"/ai-scheduling-assistant\"},{\"title\":\"AI File Organizer\",\"description\":\"Auto-sort and rename messy folders, fully on-device\",\"url\":\"/ai-file-organizer\"},{\"title\":\"FloatIM\",\"description\":\"Agent-native group chat for humans and agents\",\"url\":\"/floatim\"},{\"title\":\"Skills Marketplace\",\"description\":\"Run open Agent Skills natively in Floatboat\",\"url\":\"/skills-marketplace\"}]},{\"title\":\"Marketplace\",\"children\":[{\"title\":\"Combo Store\",\"description\":\"Discover and install reusable Combo Skills\",\"url\":\"/combostore\",\"icon\":\"ShoppingBag\"},{\"title\":\"Workflow Store\",\"description\":\"Discover ready-to-run workflow automations\",\"url\":\"/workflowstore\",\"icon\":\"Webhook\"},{\"title\":\"Workbench Store\",\"description\":\"Discover and install workbenches for your tasks\",\"url\":\"/workbenchstore\",\"icon\":\"LayoutGrid\"},{\"title\":\"Timeshop\",\"description\":\"Browse subscribable automation calendars\",\"url\":\"/timeshop\",\"icon\":\"CalendarDays\"},{\"title\":\"Clawbot Store\",\"description\":\"Discover WeChat Agents you can try instantly\",\"url\":\"/clawbot\",\"icon\":\"MessageCircle\"}]},{\"title\":\"Resources\",\"children\":[{\"title\":\"Blog\",\"description\":\"Ideas, guides, and user stories\",\"url\":\"/blog\",\"icon\":\"FileText\"},{\"title\":\"News\",\"description\":\"The latest from Floatboat\",\"url\":\"/en/news/harness-benchmark?from=header\",\"icon\":\"Newspaper\"},{\"title\":\"Wishlist\",\"description\":\"Submit feature requests and help shape our roadmap\",\"url\":\"/wishlist\",\"icon\":\"HeartPlus\"}]},{\"title\":\"Pricing\",\"url\":\"/pricing\"}]},\"buttons\":[{\"title\":\"Sign in\",\"url\":\"/sign-in\",\"target\":\"_self\",\"variant\":\"outline\"},{\"title\":\"Download\",\"url\":\"/download/success?from=landing\",\"target\":\"_self\"}],\"user_nav\":{\"show_name\":true,\"show_credits\":true,\"show_sign_out\":true,\"items\":[{\"title\":\"Billing\",\"url\":\"/settings/billing\",\"icon\":\"CreditCard\"},{\"title\":\"Activity\",\"url\":\"/activity\",\"icon\":\"Activity\"}]},\"show_sign\":false,\"show_theme\":false,\"show_locale\":true},\"aoe_home\":{\"id\":\"aoe_home\",\"block\":\"aoe-landing-home\"},\"aoe_landing\":{\"hero\":{\"badge\":\"The 1st AI Vibe Work Platform\",\"title\":{\"line_1\":\"Never Explain\",\"line_2\":\"Yourself\",\"highlight\":\"Again.\"},\"subtitle\":{\"prefix\":\"AOE turns\",\"highlight_1\":\"the way you work\",\"middle\":\"into\",\"highlight_2\":\"repeatable work instincts\"}
792,\"description\":\"With your intent and instincts captured, action no longer needs extra explanation.\",\"stats\":{\"prompt_eng\":\"Prompt Eng.\",\"coding\":\"Coding\",\"workflow_bld\":\"Workflow Bld.\",\"search\":\"Search\"},\"actions\":{\"download\":\"Download AOE\",\"marketplace\":\"View Marketplace\"}},\"comparison\":{\"title\":{\"prefix\":\"Introducing:\",\"highlight\":\"Vibe Work\"},\"description\":\"The inevitable evolution of human productivity.\",\"stages\":{\"hard\":{\"title\":\"Hard Work\",\"line_1\":\"Manual execution. Physical effort.\",\"quote\":\"“Doing the work.”\"},\"smart\":{\"title\":\"Smart Work\",\"line_1\":\"Digital tools. Workflow management.\",\"quote\":\"“Managing the work.”\"},\"vibe\":{\"title\":\"Vibe Work\",\"line_1\":\"Intent-Driven. Context-Native.\",\"quote\":\"“Commanding the result.”\"}},\"agents_era\":{\"title\":\"The Era of so-called “Agents”\",\"items\":[{\"title\":\"Human Drudgery\",\"description\":\"Endless Prompt Eng., Reviewing, Coding, and Searching.\"},{\"title\":\"Technical Barrier\",\"description\":\"Requires Prompt Engineering, Workflow Logic, and Python skills.\"},{\"title\":\"Context Amnesia\",\"description\":\"Disconnected from your files. Manual uploads required every time.\"}]},\"aoe_era\":{\"title\":\"The Era of “AOE”\",\"items\":[{\"title\":\"Decisive Flow\",\"description\":\"Pure outcome verification. You vibe, it works.\"},{\"title\":\"Seamless Action\",\"description\":\"Minimized Prompt Eng. Automated Coding \u0026 Workflow Bld.\"},{\"title\":\"Context-Native Memory\",\"description\":\"Deep, secure connection to your local \u0026 cloud reality.\"}]}},\"features\":{\"title\":{\"prefix\":\"The\",\"brand\":\"AOE\",\"brand_suffix_separator\":\" \",\"suffix\":\"Framework.\"},\"description\":\"Moving beyond the endless chat box. A native environment built to replace manual software mastery with autonomous delivery.\",\"cards\":[{\"title_line_1\":\"Tacit\",\"title_highlight\":\"Engine.\",\"description\":\"Create without the burden of explaining. AOE captures the 80% of expertise you know but cannot articulate.\",\"footer\":\"Private Black Box\"},{\"title_line_1\":\"Infinite\",\"title_highlight\":\"Tools.\",\"description\":\"Generate your tool, own the outcome. When AOE detects a “Nuance Gap,” it instantly architects a micro-app for you.\",\"footer\":\"No Coding Required\"},{\"title_line_1\":\"AOE\",\"title_highlight\":\"Combo.\",\"description\":\"Installable skills with human intuition. Encapsulate your taste and judgment into executable units.\",\"footer\":\"Monetize Expertise\"}]},\"vibe_demo\":{\"title\":{\"prefix\":\"See\",\"highlight\":\"Vibe Work\",\"suffix\":\"in Action\"},\"description\":{\"line_1\":\"From a vague 4-word goal to a finalized outcome.\",\"line_2\":\"AOE bridges the gap using your tacit knowledge.\"},\"top_bar\":\"AOE Vibe Agent Active\",\"initial_prompt\":\"What do you want to achieve?\",\"back\":\"Back\",\"task_label\":\"Task\",\"pipeline\":{\"title\":\"Outcome Pipeline\",\"step\":\"Step\",\"steps\":[\"Scan\",\"Decode\",\"Construct\",\"Deliver\"]},\"stages\":{\"scan\":{\"title\":\"Scanning Context Environment\",\"description\":\"Mapping your workspace into a live context graph.\"},\"decode\":{\"title\":\"Identifying Tacit Patterns\",\"description\":\"Decoding intent from historical outcomes.\"},\"construct\":{\"title\":\"Auto-Constructing Outcome\",\"description\":\"No prompt engineering required.\"},\"deliver\":{\"title\":\"Delivered, Ready for Review\",\"description\":\"AOE assembles the full output and hands it back as a concrete artifact.\"}},\"pattern_found\":\"Pattern Found: Executive Strategy Framework\",\"ready\":\"Ready.\",\"final_output\":\"Final Output\",\"output_files\":{\"brand_launch\":\"Brand_Launch_vFinal.pdf\",\"market_analysis\":\"Market_Analysis_Q3.docx\"},\"output_description\":\"Complete executable strategy ready for stakeholder review.\",\"review_results\":\"Review Results\",\"try_another\":\"Try another vibe\",\"tasks\":[{\"id\":1,\"label\":\"Prepare Q3 Market Analysis\"},{\"id\":2,\"label\":\"Create Brand Launch Strategy\"},{\"id\":3,\"label\":\"Draft Investor Update Email\"}],\"example_files\":[{\"name\":\"Market_Notes.xlsx\"},{\"name\":\"Brand_Assets.fig\"},{\"name\":\"Stakeholder_Emails.eml\"},{\"name\":\"Competitor_Sites\"},{\"name\":\"Team_Chat_Threads\"}],\"insights\":[{\"label\":\"Revenue Signals\"},{\"label\":\"Risk Flags\"},{\"label\":\"Narrative Voice\"}],\"logs\":{\"default\":[{\"text\":\"\u003e Analyzing competitive landscape... OK\",\"color\":\"text-brand-blue\"},{\"text\":\"\u003e Cross-referencing Q2 revenue patterns... Done\",\"color\":\"text-brand-blue\"},{\"text\":\"\u003e Predicting Q3 churn based on market sentiment...\",\"color\":\"text-brand-red\"},{\"text\":\"\u003e Synthesizing recommendation deck...\",\"color\":\"text-slate-400\"},{\"text\":\"... Initiating Outcome Construction ...\",\"color\":\"text-slate-500\"}],\"brand_launch\":[{\"text\":\"\u003e Finalizing multi-channel calendar... OK\",\"color\":\"text-brand-blue\"},{\"text\":\"\u003e Discrepancy: Influencer budget overreach. Auto-balancing...\",\"color\":\"text-brand-red\"},{\"text\":\"\u003e Draft section 2: Asset Deployment Logic...\",\"color\":\"text-slate-400\"},{\"text\":\"\u003e Syncing visual guidelines from 'Brand_Assets.fig'...\",\"color\":\"text-slate-400\"},{\"text\":\"... Initiating Outcome Construction ...\",\"color\":\"text-slate-500\"}]}}
792,\"combo_skills\":{\"title_highlight\":\"ComboStore\",\"title_line_2\":\"No Need To Master. Just Install.\",\"description\":{\"prefix\":\"Why learn for 10,000 hours when you can install\",\"suffix\":\"expertise in 10 seconds?\"},\"skill_examples\":[\"Senior PM Logic\",\"GTM Strategy\",\"Viral Marketing\",\"Legal Analysis\",\"Crisis Management\"],\"skills\":[{\"title\":\"Senior Product Manager\",\"author\":\"Alex Chen\",\"downloads\":\"12k\",\"tags\":[\"PRD\",\"Roadmap\",\"Jira\"]},{\"title\":\"GTM Strategy Lead\",\"author\":\"Sarah Jenkins\",\"downloads\":\"8.5k\",\"tags\":[\"Market Entry\",\"GTM\",\"Sales\"]},{\"title\":\"Growth Hacker\",\"author\":\"Mike Ross\",\"downloads\":\"22k\",\"tags\":[\"SEO\",\"Conversion\",\"Copy\"]}],\"by\":\"by\",\"install\":\"Install Combo\"},\"trust\":{\"title\":{\"prefix\":\"You Don't Like It,\",\"separator\":\" \",\"highlight\":\"You Don't Pay.\"},\"description\":{\"main\":\"We are so confident AOE will revolutionize your workflow that our pricing model is based on your satisfaction.\",\"highlight\":\"If the result isn't perfect, you get a refund.\"},\"action\":\"Start Risk-Free Trial\"}},\"testimonials\":{\"id\":\"testimonials\",\"label\":\"Trusted\",\"title\":\"Outcome-native teams ship faster.\",\"description\":\"AOE replaces brittle workflows with repeatable instincts — without losing taste and nuance.\",\"items\":[{\"name\":\"Maya Patel\",\"role\":\"Product Lead\",\"quote\":\"AOE turned our messy tribal knowledge into a repeatable operating rhythm. Less explaining, more shipping.\",\"image\":{\"src\":\"/imgs/avatars/1.png\",\"alt\":\"maya\"}},{\"name\":\"Evan Wu\",\"role\":\"Indie Builder\",\"quote\":\"The Combo workflow is the first time I felt software adapt to my process, not the other way around.\",\"image\":{\"src\":\"/imgs/avatars/2.png\",\"alt\":\"evan\"}},{\"name\":\"Sofia Garcia\",\"role\":\"Ops \u0026 Strategy\",\"quote\":\"AOE captures intent and context, then delivers outcomes. It feels like a workspace, not a chat box.\",\"image\":{\"src\":\"/imgs/avatars/3.png\",\"alt\":\"sofia\"}}]},\"faq\":{\"id\":\"faq\",\"label\":\"FAQ\",\"title\":\"Vibe-Check FAQ\",\"description\":\"Everything you need to know about outcome-native work.\",\"items\":[{\"question\":\"What exactly is 'Vibe Work'?\",\"answer\":\"Vibe Work is our term for intent-driven output. Unlike traditional tools that require you to master menus or write complex prompts, AOE observes your context and aligns with your intent to deliver final results. You provide the taste and judgment; AOE handles the mechanics.\"},{\"question\":\"Is my data used to train your models?\",\"answer\":\"No. AOE is built on a context-native privacy model. Your local data and cloud connections are used in real-time to generate outcomes for you, but they are never ingested into a global training set. Pro and Enterprise users can also enable air-gapped mode for total offline security.\"},{\"question\":\"What are 'Combos' and how do they work?\",\"answer\":\"Combos are modular, installable expertise packages. Think of them as an expert-in-a-box. When you install a Strategy Combo, your AOE environment gains specific logic, templates, and decision nuance that helps you consistently produce high-quality outcomes.\"},{\"question\":\"How does the 10-hour satisfaction guarantee work?\",\"answer\":\"If you feel AOE hasn't saved you at least 10 hours of manual work in your first 30 days, you can request a refund from your settings. We don't ask for justifications — if it's not working for you, you shouldn't pay.\"},{\"question\":\"Can I cancel my subscription anytime?\",\"answer\":\"Yes. You can cancel anytime. All features remain active until the end of your billing cycle.\"},{\"question\":\"Do you offer team training for Hive Mind?\",\"answer\":\"Yes. Our strategy team provides hands-on integration workshops for teams to ensure your organization's tacit knowledge is correctly codified into your environment.\"}]},\"cta\":{\"id\":\"cta\",\"title\":\"Download AOE. Install your first Combo or Workflow.\",\"description\":\"Start with pure output in minutes — no setup, no ceremony.\",\"buttons\":[{\"title\":\"Download AOE\",\"url\":\"/download\",\"target\":\"_self\",\"icon\":\"Zap\"},{\"title\":\"Explore Marketplace\",\"url\":\"/marketplace\",\"target\":\"_self\",\"variant\":\"outline\",\"icon\":\"Box\"}],\"className\":\"bg-muted\"},\"footer\":{\"id\":\"footer\",\"variant\":\"floatboat\",\"brand\":{\"title\":\"\",\"description\":\"The world's first AI Vibe Work Agent — an outcome-oriented, context-native workspace for the AI-native era.\",\"logo\":{\"src\":\"/logo.svg\",\"alt\":\"AOE\",\"width\":1024,\"height\"
792:1024},\"url\":\"/\"},\"nav\":{\"items\":[{\"title\":\"Product\",\"children\":[{\"title\":\"Features\",\"url\":\"/#features-overview\",\"target\":\"_self\"},{\"title\":\"Manifesto\",\"url\":\"/manifesto\",\"target\":\"_self\"}]},{\"title\":\"Resources\",\"children\":[{\"title\":\"Marketplace\",\"url\":\"/marketplace\",\"target\":\"_self\"},{\"title\":\"Docs\",\"url\":\"/docs\",\"target\":\"_self\"}]},{\"title\":\"Community\",\"children\":[{\"title\":\"Discord\",\"url\":\"https://aoe.chat\",\"target\":\"_blank\"},{\"title\":\"GitHub\",\"url\":\"https://aoe.chat\",\"target\":\"_blank\"}]}]},\"social\":{\"items\":[{\"title\":\"X\",\"icon\":\"RiTwitterXFill\",\"url\":\"https://aoe.chat\",\"target\":\"_blank\"},{\"title\":\"Github\",\"icon\":\"Github\",\"url\":\"https://aoe.chat\",\"target\":\"_blank\"},{\"title\":\"Discord\",\"icon\":\"RiDiscordFill\",\"url\":\"https://aoe.chat\",\"target\":\"_blank\"},{\"title\":\"Email\",\"icon\":\"Mail\",\"url\":\"mailto:[email protected]\",\"target\":\"_self\"}]},\"agreement\":{\"items\":[{\"title\":\"Privacy Policy\",\"url\":\"/privacy-policy\"},{\"title\":\"Terms of Service\",\"url\":\"/terms-of-service\"}]},\"show_theme\":false,\"show_locale\":false,\"show_built_with\":false}},\"showcases\":{\"metadata\":{\"title\":\"Marketplace\",\"description\":\"Explore Combo Store, Workflow Store, and community builds.\"},\"showcases\":{\"id\":\"showcases\",\"groups\":[{\"name\":\"all\",\"title\":\"All\"},{\"name\":\"ai-chatbot\",\"title\":\"Strategy\"},{\"name\":\"ai-image\",\"title\":\"Creative\"},{\"name\":\"ai-video\",\"title\":\"Ops\"},{\"name\":\"ai-audio\",\"title\":\"Sales\"},{\"name\":\"ai-music\",\"title\":\"Marketing\"},{\"name\":\"ai-coding\",\"title\":\"Product\"},{\"name\":\"other\",\"title\":\"Other\"}],\"sr_only_title\":\"Marketplace\",\"title\":\"Marketplace\",\"description\":\"Install Combo skills and Workflow automations in seconds.\",\"items\":[{\"title\":\"ThinkAny\",\"description\":\"AI Search Engine\",\"url\":\"https://thinkany.ai\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/7.png\",\"alt\":\"showcases\"},\"group\":\"ai-chatbot\"},{\"title\":\"HeyBeauty\",\"description\":\"AI Virtual Try On\",\"url\":\"https://heybeauty.ai\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/5.png\",\"alt\":\"showcases\"},\"group\":\"ai-image\"},{\"title\":\"AI Wallpaper\",\"description\":\"AI Wallpaper Generator\",\"url\":\"https://aiwallpaper.shop\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/1.png\",\"alt\":\"showcases\"},\"group\":\"ai-image\"},{\"title\":\"AI Cover\",\"description\":\"AI Cover Generator\",\"url\":\"https://aicover.design\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/2.png\",\"alt\":\"showcases\"},\"group\":\"ai-image\"},{\"title\":\"GPTs Works\",\"description\":\"GPTs Directory\",\"url\":\"https://gpts.works\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/3.png\",\"alt\":\"showcases\"},\"group\":\"other\"},{\"title\":\"Melodisco\",\"description\":\"AI Music Player\",\"url\":\"https://melodis.co\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/4.png\",\"alt\":\"showcases\"},\"group\":\"ai-music\"},{\"title\":\"Pagen\",\"description\":\"AI Landing Page Generator\",\"url\":\"https://pagen.so\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/6.png\",\"alt\":\"showcases\"},\"group\":\"ai-coding\"},{\"title\":\"SoraFM\",\"description\":\"AI Video Generator\",\"url\":\"https://sorafm.trys.ai\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/8.png\",\"alt\":\"showcases\"},\"group\":\"ai-video\"},{\"title\":\"PodLM\",\"description\":\"AI Podcast Generator\",\"url\":\"https://podlm.ai\",\"target\":\"_blank\",\"image\":{\"src\":\"/imgs/cases/9.png\",\"alt\":\"showcases\"},\"group\":\"ai-audio\"}]}},\"blog\":{\"metadata\":{\"title\":\"Blog\",\"description\":\"Read about our latest product features, solutions, and updates.\",\"keywords\":\"floatboat blog, product updates, workflow guides, automation tips\"},\"blog\":{\"id\":\"blog\",\"sr_only_title\":\"FloatBoat Blog\",\"title\":\"FloatBoat Blog\",\"description\":\"Automation tips,workflow strategies,and product updates for non-technical professionals.\"},\"page\":{\"all\":\"All\",\"no_content\":\"No Content\",\"home\":\"Home\",\"crumb\":\"Blog\",\"toc\":\"Table of Contents\",\"tldr\":\"TL;DR\",\"share\":\"Share this article\",\"copy_link\":\"Copy link\",\"copied\":\"Link copied\",\"min_read\":\"{minutes} min read\",\"related_combos\":\"Related Combos\",\"related_articles\":\"Related Articles\",\"subscribe_title\":\"Get automation tips for your workflow\",\"subscribe_description\":\"Weekly insights for non-technical professionals. No spam ever.\",\"subscribe_placeholder\":\"Enter your email\",\"subscribe_button\":\"Subscribe\",\"offer_banner\":{\"aria_label\":\"Try Floatboat Harness for one dollar and view pricing\",\"coin\":\"$$1\",\"coin_unit\":\"\",\"eyebrow\":\"ONE DOLLAR · START YOUR FIRST REAL TASK\",\"title\":\"Try Floatboat Harness for $1\",\"action\":\"Try for $1\"}}},\"updates\":{\"metadata\":{\"title\":\"Update Logs\",\"description\":\"View product update logs, including latest features and improvements.\"},\"updates\":{\"id\":\"updates\",\"title\":\"Update Logs\",\"description\":\"View product update logs, including latest features and improvements.\"}},\"pricing\":{\"metadata\":{\"title\":\"Floatboat Pricing\",\"description\":\"Upgrade to Floatboat Pro.\"},\"pricing\":{\"id\":\"pricing\",\"items\":[{\"title\":\"Lite\",\"description\":\"5,000 credits per month\",\"interval\":\"month\",\"amount\":2000,\"currency\":\"USD\",\"product_id\":\"credits-5000-lite-monthly\",\"product_name\":\"Floatboat Lite (5,000 credits / month)\",\"payment_providers\":[\"stripe\"],\"currencies\":[{\"currency\":\"CNY\",\"amount\":14000,\"price\":\"Â¥140\",\"original_price\":\"\",\"payment_providers\":[\"stripe\"]}],\"credits\":5000,\"valid_days\":30},{\"title\":\"Lite\",\"description\":\"5,000 credits granted monthly\",\"interval\":\"year\",\"amount\":19900,\"currency\":\"USD\",\"product_id\":\"credits-5000-lite-yearly\",\"product_name\":\"Floatboat Lite (60,000 credits / year)\",\"payment_providers\":[\"stripe\"],\"currencies\":[{\"currency\":\"CNY\",\"amount\":139900,\"price\":\"Â¥1,399\",\"original_price\":\"Â¥1,680\",\"payment_providers\":[\"stripe\"]}],\"credits\":60000,\"valid_days\":365},{\"title\":\"Standard\",\"interval\":\"month\",\"amount\":1998,\"currency\":\"USD\",\"product_id\":\"credits-5000-monthly\",\"product_name\":\"Floatboat Pro Standard (5,000 credits / month)\",\"credits\":5000,\"valid_days\":30},{\"title\":\"Standard\",\"interval\":\"year\",\"amount\":20376,\"currency\":\"USD\",\"product_id\":\"credits-5000-yearly\",\"product_name\":\"Floatboat Pro Standard (60,000 credits / year)\",\"credits\":60000,\"valid_days\":365},{\"title\":\"Pro\",\"interval\":\"month\",\"amount\":3998,\"currency\":\"USD\",\"product_id\":\"credits-10000-monthly\",\"product_name\":\"Floatboat Pro (10,000 credits / month)\",\"credits\":10000,\"valid_days\":30},{\"title\":\"Pro\",\"interval\":\"year\",\"amount\":40776,\"currency\":\"USD\",\"product_id\":\"credits-10000-yearly\",\"product_name\":\"Floatboat Pro (120,000 credits / year)\",\"credits\":120000,\"valid_days\":365},{\"title\":\"Pro\",\"interval\":\"month\",\"amount\":5998,\"currency\":\"USD\",\"product_id\":\"credits-15000-monthly\",\"product_name\":\"Floatboat Pro (15,000 credits / month)\",\"credits\":15000,\"valid_days\":30},{\"title\":\"Pro\",\"interval\":\"year\",\"amount\":59976,\"currency\":\"USD\",\"product_id\":\"credits-15000-yearly\",\"product_name\":\"Floatboat Pro (180,000 credits / year)\",\"credits\":180000,\"valid_days\":365},{\"title\":\"Pro\",\"interval\":\"month\",\"amount\":11998,\"currency\":\"USD\",\"product_id\":\"credits-30000-monthly\",\"product_name\":\"Floatboat Pro (30,000 credits / month)\",\"credits\":30000,\"valid_days\":30},{\"title\":\"Pro\",\"interval\":\"year\",\"amount\":119976,\"currency\":\"USD\",\"product_id\":\"credits-30000-yearly\",\"product_name\":\"Floatboat Pro (360,000 credits / year)\",\"credits\":360000,\"valid_days\":365},{\"title\":\"Extended\",\"interval\":\"month\",\"amount\":19998,\"currency\":\"USD\",\"product_id\":\"credits-50000-monthly\",\"product_name\":\"Floatboat Pro Extended (50,000 credits / month)\",\"credits\":50000,\"valid_days\":30},{\"title\":\"Extended\",\"interval\":\"year\",\"amount\":200376,\"currency\":\"USD\",\"product_id\":\"credits-50000-yearly\",\"product_name\":\"Floatboat Pro Extended (600,000 credits / year)\",\"credits\":600000,\"valid_days\":365}]},\"page\":{\"current_plan\":\"Current Plan\",\"processing\":\"Processing\",\"header\":{\"badge_user_protection_program\":\"User Protection Program\",\"eyebrow_default\":\"Floatboat Pricing\",\"title_default\":\"All in Floatboat AI\",\"desc_default\":\"New AI models are available to you automatically as soon as they launch. Billed monthly, cancel anytime.\",\"title_upp\":\"Activate your User Protection membership\",\"title_upp_activated\":\"Your User Protection membership is activated\",\"desc_upp\":\"Choose a plan to 
792join Floatboat’s experiment toward pay-for-results AI. Most early users start with Pro Monthly at $39.98.\",\"upp_notice\":\"If AI doesn't deliver value, users shouldn't bear all the cost. Protected credit recovery remains subject to the User Protection Program guidelines.\"},\"toggle\":{\"monthly\":\"Monthly\",\"annually\":\"Yearly\",\"save_percent\":\"2 months free\"},\"highlight\":{\"most_popular\":\"MOST POPULAR\",\"program_recommended\":\"PROGRAM RECOMMENDED\"},\"cards\":{\"lite\":{\"title\":\"Lite\",\"subtitle\":\"5,000 credits each month\",\"button_get_lite\":\"Get Lite\",\"button_current_plan\":\"Current Plan\",\"button_not_available\":\"Not Available\",\"intro_monthly\":\"First month {intro}, then {renewal}/month\",\"annual_total\":\"{total}/year, billed annually\",\"deepseek_only\":\"\",\"monthly_credits\":\"5,000 credits refreshed monthly\"},\"free\":{\"title\":\"Free\",\"subtitle\":\"Start with free credits\",\"button_download\":\"Download to try\",\"button_current_plan\":\"Current Plan\",\"note_no_payment\":\"Download the desktop app to begin\"},\"pro\":{\"title\":\"Pro\",\"subtitle\":\"Customizable monthly usage\",\"button_get_pro\":\"Get Pro\",\"button_join_with_pro\":\"Join with Pro\",\"button_current_plan\":\"Current Plan\",\"button_not_available\":\"Not Available\",\"credits_slider_aria\":\"Choose Pro monthly credits\"},\"max\":{\"title\":\"Max\",\"subtitle\":\"Extended usage for sustained work\",\"button_get_max\":\"Get Max\",\"button_current_plan\":\"Current Plan\",\"button_not_available\":\"Not Available\"}},\"billing\":{\"billed_monthly\":\"billed monthly\",\"billed_yearly\":\"billed yearly\",\"billed_annually_with_total\":\"billed annually, {total}/year\",\"per_month_suffix\":\"/mo\"},\"units\":{\"credits_per_month\":\"{credits} credits /mo\",\"credits_month\":\"{credits} credits month\"},\"benefits\":{\"daily_refresh_300\":\"300 FloatSchedule credits refreshed daily\",\"html_publish_5mb\":\"HTML publishing (up to 5MB per file)\",\"html_publish_20mb\":\"HTML publishing (up to 20MB per file)\",\"flow_mode_link\":\"Flow Mode\",\"flow_mode_link_aria\":\"Learn about Flow Mode\",\"flow_mode_description\":\"Speak, edit, and ship in one flow\",\"standard_lane\":\"Standard Processing Lane\",\"selected_models_features\":\"Access to selected models only \u0026 features\",\"infinite_tasks\":\"Infinite concurrent tasks\",\"priority_lane\":\"Priority Processing Lane\",\"all_models_features\":\"Access to all models \u0026 features\",\"early_beta\":\"Early access to beta features\",\"account_manager\":\"Account Manager Support\",\"desktop_storage\":\"Unlimited storage, with files staying on your computer\",\"document_batching\":\"AI batch document parsing and format conversion\",\"ai_browser\":\"A full AI browser that automates web actions for you\",\"agent_messaging\":\"Use your Agent through Telegram and Feishu/Lark\",\"video_pipeline\":\"Batch download videos for transcription, translation, and burn-in\",\"audio_processing\":\"Process audio, turn recordings into text, and summarize key points\",\"skills_library\":\"Free access to massive skills, distill everything into skills\",\"upp_eligible_strong\":\"Eligible for User Protection credit recovery\",\"benefit_details_aria\":\"Show benefit details\"},\"protection\":{\"hint_annual\":\"Credit recovery is capped per month. On this annual plan, requests can recover up to {cap} in credits each month.\",\"hint_monthly\":\"Credit recovery is capped at the value of this subscription. On this plan, requests can recover up to {cap} in credits.\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"items\":[{\"question\":\"What are credits in Floatboat?\",\"answer\":\"Credits represent real work performed by floatboat. Whenever floatboat processes information and produces outcomes, credits are consumed.\"},{\"question\":\"Do unused credits transfer to the next billing period?\",\"answer\":\"No. Credits reset at the start of each billing period. Unused monthly credits do not roll over to the next billing period. For subscribers, the 300 FloatSchedule credits refresh every 24 hours at midnight UTC and do not accumulate if unused.\"},{\"question\":\"How is my usage calculated?\",\"answer\":\"Usage is calculated per task, based on the actual work required to complete it. Credits are only consumed when work is executed.\"},{\"question\":\"What can I do if I run out of credits?\",\"answer\":\"If you run out of credits, you can upgrade your plan to a higher tier to receive more monthly credits.\"},{\"question\":\"Which AI models does Floatboat support?\",\"answer\":\"Floatboat integrates leading frontier models from OpenAI, DeepSeek, Zhipu, Moonshot, MiniMax, Alibaba, and more — covering text, image, and video. Depending on your task, Floatboat automatically routes to the best-fit model so you don't have to choose.\"},{\"question\":\"How can I check my remaining credit balance?\",\"answer\":\"Your remaining credits and usage are visible in your account dashboard and update in real time.\"},{\"question\":\"Can I change or cancel my subscription plan?\",\"answer\":\"Yes, you can upgrade or cancel your subscription at any time.\"}]},\"booster\":{\"badge\":\"Limited Time\",\"eyebrow\":\"Booster Pack\",\"title\":\"Need extra credits right now?\",\"description\":\"Buy a one-time booster pack without changing your current subscription. Booster credits stay valid for 1 year and can be purchased in quantities up to 20 packs per checkout.\",\"card_subtitle\":\"One-time top-up for temporary bursts of usage\",\"per_pack_suffix\":\"per pack\",\"quantity\":\"Quantity\",\"valid_for_one_year\":\"Valid for 1 year\",\"note\":\"Booster packs are billed separately from your subscription and do not change renewal terms.\",\"cny_hint\":\"WeChat Pay is only available when CNY pricing is selected.\",\"cny_total_hint\":\"Current CNY total: {amount}\",\"actions\":{\"card\":\"Pay with Credit Card\",\"wechat\":\"Pay with WeChat Pay\"},\"metrics\":{\"per_pack\":\"Credits per pack\",\"expiry\":\"Expiry\",\"max_quantity\":\"Max packs per checkout\"},\"summary\":{\"total_credits\":\"Total credits\",\"total_price\":\"Total price\"}},\"toasts\":{\"signing_in\":\"Signing in, please try again in a moment.\",\"checkout_failed\":\"checkout failed: {message}\",\"pricing_item_not_found\":\"pricing item not found\"},\"errors\":{\"checkout_url_missing\":\"checkout url not found\"}}},\"combo\":{\"store\":{\"header\":{\"home_title\":\"Home\",\"logo_alt\":\"Logo\",\"title\":\"Floatboat\",\"search_placeholder\":\"Search...\",\"nav_about\":\"About Us\",\"nav_combo_store\":\"Combo Store\",\"nav_workflow_store\":\"Workflow Store\",\"nav_workbench_store\":\"Workbench Store\",\"nav_marketplace\":\"Marketplace\",\"nav_timeshop\":\"Timeshop\",\"nav_clawbot\":\"Clawbot\",\"nav_resources\":\"Resources\",\"nav_pricing\":\"Pricing\",\"nav_billing\":\"Billing\",\"nav_activity\":\"Activity\",\"try_for_free\":\"Try for free\"},\"list\":{\"category_title\":\"Category\",\"all_discoveries\":\"All Discoveries\",\"filter_title\":\"Filter\",\"language_title\":\"Language\",\"platform_title\":\"Platform\",\"rating_title\":\"Rating\",\"all_option\":\"All\",\"all_ratings\":\"All ratings\",\"stars_plus\":\"{stars}+ stars\",\"search_results\":\"Search results\",\"recommended\":\"Recommended for you\",\"found_results\":\"Found {total, plural, one {# result} other {# results}} for \\\"{q}\\\"\",\"something_went_wrong\":\"Something went wrong\",\"retry\":\"Retry\",\"no_combos_found\":\"No combos found\",\"adjust_filters\":\"Try adjusting your filters or search keywords.\",\"clear_filters\":\"Clear filters\"},\"themes\":{\"nav_label\":\"Themes\",\"title\":\"Themes\",\"all_themes\":\"All Themes\",\"page_description\":\"Browse themes to find matching combo collections.\",\"view_collection\":\"View Collection\",\"view_more\":\"View More\",\"combo_count\":\"{count} combos\",\"preview_fallback\":\"Preview a curated set of combos in this theme.\",\"intro_fallback\":\"A shared theme atmosphere for this curated combo set.\",\"empty_preview\":\"No preview combos in this theme yet.\",\"load_failed\":\"Failed to load themes. Please refresh and try again.\",\"empty_list\":\"No matching themes yet.\",\"back_to_list\":\"Back to Themes\",\"detail_fallback\":\"This theme groups together a cohesive set of combos.\",\"detail_section_title\":\"Combos in This Theme\",\"detail_section_hint\":\"Displayed in the order 
792configured in admin.\",\"detail_empty\":\"No combos in this theme yet.\",\"not_found_title\":\"Theme Not Found\",\"meta_title\":\"Combo Themes\",\"meta_description\":\"Browse curated themes and open the matching combo collections.\"},\"card\":{\"na\":\"N/A\",\"untitled_combo\":\"Untitled Combo\",\"open_combo_aria\":\"Open {name}\",\"card_alt\":\"{name} card\",\"screenshot_alt\":\"{name} screenshot\",\"logo_alt\":\"{name} logo\",\"editor_choice\":\"Editor's Choice\",\"uncategorized\":\"Uncategorized\",\"trending\":\"Trending\"},\"footer\":{\"logo_alt\":\"Logo\",\"tagline\":\"Sail onward with what you've learned\",\"copyright\":\"© 2025 AOE Tech Labs Limited. The Proactive Agent that Runs Work from the Calendar.\",\"privacy\":\"Privacy\",\"terms\":\"Terms\",\"social_email\":\"Email\",\"social_twitter\":\"Twitter\",\"social_github\":\"GitHub\",\"social_linkedin\":\"LinkedIn\"},\"detail\":{\"back_to_store\":\"Back to combostore\",\"something_went_wrong\":\"Something went wrong\",\"retry\":\"Retry\",\"opening\":\"Opening...\",\"get_combo\":\"Get Combo Skills\",\"open_failed\":\"Couldn't send the request to Floatboat. Please try again.\",\"download\":\"Download\",\"checking_sign_in\":\"Checking sign-in status…\",\"combo_info_missing\":\"Combo info missing. Please refresh and try again.\",\"reviews_count\":\"({count} reviews)\",\"installs_count\":\"{count} installs\",\"preview\":\"Preview {index}\",\"about\":\"About\",\"no_description\":\"No description provided.\",\"whats_new\":\"What's new\",\"details\":\"Details\",\"language\":\"Language\",\"version\":\"Version\",\"published\":\"Published\",\"last_updated\":\"Last updated\",\"support\":\"Support\",\"no_support_email\":\"No support email provided.\",\"website\":\"Website\",\"privacy_policy\":\"Privacy policy\",\"tags\":\"Tags\",\"no_tags\":\"No tags available.\",\"date_dash\":\"—\"},\"workbench\":{\"empty\":\"No reviewed workbenches yet.\",\"install\":\"Install in Floatboat\",\"details\":\"Details\"}}},\"workflow\":{\"store\":{\"header\":{\"home_title\":\"Home\",\"nav_workflow_store\":\"Workflow Store\",\"meta_description\":\"Browse ready-to-run Floatboat workflows and automations.\"},\"list\":{\"title\":\"Workflow Store\",\"description\":\"Discover sealed workflows that can run browser automation, webhook tasks, scheduled jobs, and follow-up actions in Floatboat.\",\"search_placeholder\":\"Search workflows...\",\"all_workflows\":\"All Workflows\",\"found_results\":\"Found {total, plural, one {# workflow} other {# workflows}} for \\\"{q}\\\"\",\"clear_filters\":\"Clear filters\",\"something_went_wrong\":\"Something went wrong\",\"empty_title\":\"No workflows found\",\"empty_description\":\"Try a different keyword or category.\"},\"card\":{\"untitled_workflow\":\"Untitled Workflow\",\"uncategorized\":\"Uncategorized\",\"by_author\":\"by {author}\",\"installs\":\"{count, plural, one {# install} other {# installs}}\",\"manual_trigger\":\"Manual\",\"view_detail\":\"View workflow\",\"no_description\":\"No description provided.\"},\"detail\":{\"back_to_store\":\"Back to Workflow Store\",\"something_went_wrong\":\"Something went wrong\",\"no_description\":\"No description provided.\",\"install\":\"Install in Floatboat\",\"installing\":\"Opening Floatboat...\",\"install_failed\":\"Unable to install this workflow. Please try again.\",\"client_binding_required\":\"Open the Floatboat client you want to use and sign in again before installing.\",\"client_upgrade_required\":\"Update Floatboat and sign in again before installing this Workflow.\",\"checking_sign_in\":\"Checking sign-in status...\",\"about\":\"About\",\"run_profile\":\"Run profile\",\"inputs\":\"Inputs\",\"inputs_empty\":\"No inputs required.\",\"input_required\":\"required\",\"input_optional\":\"optional\",\"compatibility\":\"Compatibility\",\"compatibility_empty\":\"No compatibility notes provided.\",\"connected_accounts\":\"Connected accounts\",\"connected_accounts_empty\":\"No connected account requirements provided.\",\"examples\":\"Examples and screenshots\",\"examples_empty\":\"No examples provided.\",\"triggers\":\"Triggers\",\"manual_trigger\":\"Manual run\",\"capabilities\":\"Capabilities\",\"capabilities_empty\":\"No capability summary provided.\",\"version\":\"Version {version}\",\"author\":\"Author\",\"unknown_author\":\"Unknown author\",\"installs\":\"Installs\",\"published\":\"Published\",\"package\":\"Package\",\"date_dash\":\"—\"}}},\"calendar\":{\"store\":{\"list\":{\"title\":\"Timeshop\",\"description\":\"Browse and subscribe to automation calendars shared by the community.\",\"search_placeholder\":\"Search calendars...\",\"category_title\":\"Category\",\"all_discoveries\":\"All Discoveries\",\"language_title\":\"Language\",\"all_option\":\"All\",\"category_all\":\"All\",\"category_general\":\"General\",\"category_work\":\"Work\",\"category_life\":\"Life\",\"category_education\":\"Education\",\"category_tech\":\"Tech\",\"category_entertainment\":\"Entertainment\",\"type_title\":\"Type\",\"type_all\":\"All\",\"type_official\":\"Official\",\"type_community\":\"Community\",\"sort_title\":\"Sort by\",\"sort_latest\":\"Latest\",\"sort_popular\":\"Popular\",\"sort_updated\":\"Recently Updated\",\"found_results\":\"Found {total, plural, one {# result} other {# results}} for \\\"{q}\\\"\",\"something_went_wrong\":\"Something went wrong\",\"retry\":\"Retry\",\"no_feeds_foun
792d\":\"No calendar feeds found\",\"clear_filters\":\"Clear filters\",\"my_feeds_title\":\"My Calendars\",\"my_feeds_empty\":\"You haven't uploaded any calendars yet.\"},\"card\":{\"updated\":\"Updated\",\"events\":\"events\",\"subs\":\"subs\",\"uncategorized\":\"Uncategorized\",\"official\":\"Official\",\"anonymous\":\"Anonymous\",\"publisher_by\":\"by {publisher}\",\"ai_badge\":\"AI\",\"category_general\":\"General\",\"category_work\":\"Work\",\"category_life\":\"Life\",\"category_education\":\"Education\",\"category_tech\":\"Tech\",\"category_entertainment\":\"Entertainment\",\"subscribe\":\"Subscribe\",\"subscribe_opening\":\"Opening...\",\"subscribe_open_failed\":\"Couldn't send the request to Floatboat. Please try again.\",\"subscribe_download\":\"Download\",\"trigger_before_start\":\"{time} before start\",\"trigger_before_end\":\"{time} before end\",\"trigger_at_absolute\":\"At scheduled time\",\"and_more\":\"and {count} more events\",\"status_pending_review\":\"In Review\",\"status_published\":\"Published\",\"status_rejected\":\"Rejected\",\"status_draft\":\"Draft\"},\"detail\":{\"back_to_list\":\"Back to Timeshop\",\"not_found\":\"Calendar feed not found.\",\"subscribe_in_floatboat\":\"Subscribe in Floatboat\",\"opening\":\"Opening...\",\"open_failed\":\"Couldn't send the request to Floatboat. Please try again.\",\"download\":\"Download\",\"copy_url\":\"Copy URL\",\"copied\":\"Copied!\",\"delete\":\"Delete\",\"deleting\":\"Deleting...\",\"delete_confirm\":\"Are you sure you want to delete this calendar feed? This cannot be undone.\",\"delete_success\":\"Calendar feed deleted.\",\"delete_failed\":\"Failed to delete calendar feed.\",\"expand_more\":\"Expand more\",\"collapse\":\"Collapse\",\"label_category\":\"Category\",\"label_language\":\"Language\",\"label_events\":\"Events\",\"label_subscribers\":\"Subscribers\",\"label_tags\":\"Tags\",\"label_published\":\"Published\",\"label_updated\":\"Updated\",\"label_subscribe_url\":\"Subscribe URL\",\"status_pending_review\":\"This feed is pending review and only visible to you. It will appear publicly once approved.\",\"status_rejected\":\"This feed was rejected\",\"event_details_title\":\"Event Details\",\"label_schedule\":\"Schedule\",\"label_recurrence\":\"Recurrence\",\"label_location\":\"Location\",\"label_description\":\"Description\",\"label_automation_objective\":\"Automation Objective\",\"label_trigger\":\"Trigger\",\"trigger_before_start\":\"{time} before start\",\"trigger_before_end\":\"{time} before end\",\"trigger_at_absolute\":\"At scheduled time\",\"label_source_url\":\"Source URL\",\"official\":\"Official\",\"publisher_by\":\"by {publisher}\",\"empty_value\":\"—\",\"recurrence_every\":\"Every {unit}\",\"recurrence_every_interval\":\"Every {interval} {unit}s\",\"recurrence_unit_day\":\"day\",\"recurrence_unit_week\":\"week\",\"recurrence_unit_month\":\"month\",\"recurrence_unit_year\":\"year\"}}},\"developer\":{\"combos\":{\"status\":{\"draft\":\"Draft\",\"in_review\":\"In review\",\"approved\":\"Approved\",\"rejected\":\"Rejected\",\"published\":\"Published\"},\"time\":{\"just_now\":\"Just now\",\"minutes_ago\":\"{minutes}m ago\",\"hours_ago\":\"{hours}h ago\",\"days_ago\":\"{days}d ago\"},\"common\":{\"loading\":\"Loading...\",\"retry\":\"Retry\",\"back\":\"Back\",\"cancel\":\"Cancel\",\"continue\":\"Continue\",\"purchase_price_credits\":\"Purchase price (credits)\",\"upgrade_price_credits\":\"Upgrade price (credits)\"},\"toast\":{\"in_review_cannot_edit\":\"Combos in review can't be edited. Please wait for review to complete.\",\"saved_and_submitted\":\"\\\"{name}\\\" has been saved and submitted for review.\",\"created_and_submitted\":\"Created and submitted for review. Status is now in review.\",\"copied_combo_id\":\"Copied Combo ID\",\"aoe_package_encrypted\":\"The .aoe package was validated and encrypted.\"},\"confirm\":{\"submit_review\":\"Saving changes will submit a new review request. Continue?\",\"resubmit_review\":\"After saving, the new version will enter re-review. The old version stays online. Continue?\"},\"errors\":{\"price_credits_invalid\":\"Credits must be an integer between 0 and {max}.\",\"gzip_not_supported\":\"This browser doesn't support gzip (CompressionStream), unable to generate runtime.enc\",\"content_key_length\":\"contentKey must be 32 bytes\",\"load_failed\":\"Failed to load\",\"save_failed\":\"Failed to save\",\"create_failed\":\"Create failed\",\"submit_review_failed\":\"Failed to submit for review\",\"upload_link_failed\":\"Failed to get upload URL\",\"upload_failed\":\"Upload failed\",\"commit_failed\":\"Commit failed\",\"delete_failed\":\"Delete failed\",\"copy_failed\":\"Copy failed. Please copy manually.\",\"dify_key_required\":\"Please verify Dify App Key first\",\"dify_key_missing\":\"Missing Dify App Key. Please go back and verify again.\",\"dify_key_input_required\":\"Please enter Dify App Key (e.g. app-xxxx)\",\"dify_key_invalid\":\"Invalid key\",\"dify_key_verify_failed\":\"Key verification failed\",\"dify_mode_not_supported\":\"Unsupported Dify mode: {mode} (currently only supports agent-chat / advanced-chat / workflow)\",\"aoe_generate_missing_combo_id\":\"Failed to generate .aoe: missing comboId\",\"aoe_package_extension\":\"Please select a file with the .aoe extension.\",\"aoe_package_invalid_archive\":\"This .aoe file is damaged or is not a valid package.\",\"aoe_package_manifest_missing\":\"This .aoe package is missing manifest.json.\",\"aoe_package_manifest_invalid\":\"The manifest.json in this .aoe package is invali
792d.\",\"aoe_package_already_encrypted\":\"This .aoe package is already encrypted. In the Floatboat desktop app, select the Combo you want to upload, open its details, then select Publish to upload it.\",\"aoe_package_no_sources\":\"This .aoe package has no source files to encrypt.\",\"aoe_package_crypto_not_supported\":\"This browser doesn't support package encryption. Please use an up-to-date browser.\",\"aoe_package_not_ready\":\"The .aoe package isn't ready. Please select it again.\",\"aoe_package_prepare_failed\":\"Unable to validate and encrypt this .aoe package. Please check the file and try again.\",\"max_screenshots\":\"You can upload up to 8 screenshots\",\"combo_name_min_length\":\"Combo name must be at least 2 characters\",\"core_intro_min_length\":\"Core introduction must be at least 10 characters\",\"combo_load_failed_fallback\":\"Unable to load this Combo. Please try again later.\",\"unknown\":\"Unknown\",\"no_reason_provided\":\"No specific reason provided. Please ensure your content follows the platform guidelines.\"},\"dashboard\":{\"title\":\"Developer Center\",\"subtitle\":\"Manage combos and monitor feedback and growth.\",\"refresh_title\":\"Refresh list\",\"refresh\":\"Refresh\",\"asset_management_title\":\"Combo management\",\"counts\":\"{total} total · showing {shown}\",\"back_to_dashboard\":\"Back to dashboard\",\"create_new_combo\":\"Create new Combo\",\"search_placeholder\":\"Search: name / description / ID\",\"sort_aria_label\":\"Sort\",\"sort_updated_desc\":\"Recently updated\",\"sort_updated_asc\":\"Oldest updated\",\"sort_name_asc\":\"Name A→Z\",\"sort_name_desc\":\"Name Z→A\",\"status_all\":\"All\",\"status_in_review\":\"In review\",\"status_approved\":\"Approved\",\"status_rejected\":\"Rejected\",\"status_published\":\"Published\",\"empty_title\":\"No combos created yet\",\"empty_desc\":\"Create one manually, or import from Dify to auto-fill details.\",\"create_first\":\"Create your first Combo\",\"no_results_title\":\"No matching results\",\"try_clear_filters\":\"Try clearing the search keyword or switching status filters.\",\"clear_filters\":\"Clear filters\",\"no_short_description\":\"(No description)\",\"updated_prefix\":\"Updated {time}\",\"edit_action_title\":\"Edit\",\"copy_combo_id_title\":\"Copy Combo ID\"},\"edit\":{\"title\":\"Edit Combo\",\"review_rejected_title\":\"Review rejected\",\"review_in_progress_title\":\"In review\",\"review_in_progress_desc\":\"Your Combo is queued for audit. You can keep editing, but saving will update the version under review.\",\"reason_prefix\":\"Reason: \",\"feedback_date_prefix\":\"Feedback date: \",\"language_switch_title\":\"Switch page language\",\"language_switch_aria_label\":\"Switch page language\",\"share_friends_only\":\"Share with friends only\",\"saving\":\"Saving...\",\"submit_update_and_review\":\"Submit update for review\",\"submit_update_and_rereview\":\"Submit update for re-review\",\"combo_icon\":\"Combo icon\",\"combo_cover\":\"Combo cover\",\"suggest_size\":\"Suggested size: 512x512\",\"support_formats\":\"Supports PNG, JPG, WebP\",\"combo_name\":\"Combo name\",\"category\":\"Category\",\"language\":\"Language\",\"platform\":\"Platform\",\"core_intro\":\"Core introduction\",\"version_management\":\"Version\",\"version_management_hint\":\"For example: 1.0.1. If current status is APPROVED, bump the version before re-review.\",\"full_description\":\"Full description\",\"changelog_label\":\"Changelog\",\"changelog_placeholder\":\"Describe changes in this version for review and version history...\",\"screenshots_title\":\"Screenshots ({count})\",\"add_screenshot\":\"Add screenshot\",\"confirm_delete_screenshot\":\"Delete this screenshot?\",\"screenshot_record_missing\":\"Screenshot asset record not found. Please refresh and try again.\",\"upload\":\"Upload\",\"demo_video_title\":\"Demo video ({count})\",\"add_video\":\"Add video\",\"add_demo_video\":\"Add demo video\",\"video_support\":\"Supports MP4, MOV (max 50MB)\",\"package_title\":\"Combo package\",\"last_updated_prefix\":\"Last updated: \",\"reupload_package\":\"Re-upload package\"},\"create\":{\"title\":\"Create new Combo\",\"subtitle\":\"Choose a creation method\",\"import_from_dify\":\"Import from Dify\",\"import_desc\":\"Enter Dify App Key to auto-fetch name / description\",\"manual_create\":\"Manual create\",\"manual_desc\":\"Fill in details and upload assets manually\",\"dify_key_title\":\"Import from Dify\",\"dify_key_subtitle\":\"Enter Dify App Key and verify\",\"dify_verify_hint\":\"We will verify the key by calling GET https://api.dify.ai/v1/info\",\"verified\":\"Verified\",\"no_description\":\"(No description)\",\"checking\":\"Checking...\",\"recheck\":\"Re-check\",\"check_key\":\"Check key\",\"import_combo_title\":\"Import Combo from Dify\",\"import_combo_hint\":\"Pre-filled from /v1/info: name / description. Please complete the rest.\",\"optional\":\"(Optional)\",\"uncategorized_option\":\"Uncategorized\",\"combo_name_placeholder\":\"Enter Combo name...\",\"core_intro_placeholder\":\"In one sentence, describe what problem this Combo solves...\",\"screenshots_label\":\"Product screenshots (up to 8)\",\"add\":\"Add\",\"promo_video\":\"Promo video\",\"upload_video\":\"Click to upload demo video (MP4)\",\"video_constraints\":\"16:9 ratio / up to 100MB\",\"upload_combo_assets\":\"Upload combo package\",\"choose_file\":\"Choose file\",\"aoe_only\":\"Only .aoe\",\"package_preparing\":\"Validating and encrypting...\",\"package_ready\":\"Encrypted and ready: {name}\",\"abandon\":\"Discard\",\"submitting\":\"Submitting...\",\"create_and_submit\":\"Create and submit for review\",\"publish_new\":\"Publish new Combo\",\"audit_hint\":\"After submitting, we will c
792omplete the initial audit within 24 hours.\",\"combo_name_example\":\"e.g. PDF Smart Master\",\"initial_version\":\"Initial version\",\"initial_version_placeholder\":\"e.g. 1.0.0\",\"cover_selected\":\"Cover selected\",\"upload_cover\":\"Click to upload cover image\",\"cover_auto_gen\":\"If not uploaded, backend will auto-generate from the Combo name.\",\"upload_icon\":\"Click to upload icon\"},\"detail\":{\"back_to_developer_center\":\"Back to Developer Center\",\"load_failed\":\"Failed to load\",\"cannot_load_combo\":\"Unable to load this Combo. Please try again later.\",\"checking_sign_in\":\"Checking sign-in status…\",\"combo_info_missing\":\"Combo info missing. Please refresh and try again.\",\"open_failed\":\"Unable to open AoEs. Please install it first.\",\"download\":\"Download\",\"preview\":\"Preview {index}\",\"combo_id\":\"Combo ID\",\"untitled_combo\":\"Untitled Combo\",\"opening\":\"Opening...\",\"install\":\"Install\",\"share\":\"Share\",\"edit\":\"Edit\",\"about\":\"About\",\"no_description\":\"No description provided.\",\"changelog\":\"Changelog\",\"details\":\"Details\",\"status\":\"Status\",\"version\":\"Version\",\"submitted_at\":\"Submitted\",\"published_at\":\"Published\",\"last_updated\":\"Last updated\",\"contact\":\"Contact\",\"website\":\"Website\",\"date_dash\":\"—\",\"no_short_description\":\"(No description)\"}},\"assets\":{\"title\":\"Assets\",\"subtitle\":\"Upload and manage your Combo asset files\",\"upload\":{\"title\":\"Upload assets\",\"kind_label\":\"Asset type\",\"choose_file\":\"Choose file\",\"hint\":\"Tip: After uploading, you can attach assets when creating or editing a Combo. Assets are served via CloudFront CDN.\"},\"kinds\":{\"icon\":\"Icon\",\"screenshot\":\"Screenshot\",\"video\":\"Video\",\"package\":\"Package\"},\"list\":{\"title\":\"Uploaded assets\",\"loading\":\"Loading...\",\"retry\":\"Retry\",\"empty\":\"No assets uploaded yet\",\"asset_alt\":\"Asset\"},\"actions\":{\"back\":\"Back\",\"confirm_delete\":\"Are you sure you want to delete this asset?\"},\"alerts\":{\"load_failed\":\"Failed to load\",\"upload_address_failed\":\"Failed to get upload URL\",\"upload_storage_failed\":\"Failed to upload to storage service\",\"save_resource_failed\":\"Failed to save asset info\",\"upload_success\":\"Upload succeeded\",\"upload_failed\":\"Upload failed\",\"delete_failed\":\"Delete failed\"}},\"center\":{\"title\":\"Developer Center\",\"nav\":{\"creator\":\"Developer Data\",\"comboskills\":\"Combo Skills\",\"workflows\":\"Workflows\",\"timeshop\":\"Timeshop\",\"clawbot\":\"Clawbot\",\"feature_access\":\"Feature Access\",\"workbenches\":\"Workbenches\"},\"pages\":{\"creator_title\":\"Developer Data\",\"creator_subtitle\":\"Creator credit balance and activity.\",\"comboskills_title\":\"Combo Skills\",\"comboskills_subtitle\":\"Create, edit, and submit Combos for review.\",\"workflows_title\":\"Workflows\",\"workflows_subtitle\":\"Review and manage Workflow Store submissions in the Developer Center.\",\"workbenches_title\":\"Workbenches\",\"workbenches_subtitle\":\"Review workbench store submissions. Approved versions appear in the Skills Store as new copies.\",\"timeshop_title\":\"Timeshop\",\"timeshop_subtitle\":\"View and manage the automation calendars you published.\",\"timeshop_admin_title\":\"Timeshop Admin\",\"timeshop_admin_subtitle\":\"Review and manage automation calendars.\",\"clawbot_title\":\"Clawbot\",\"clawbot_subtitle\":\"Configure WeChat open access for external users to scan and enter Agent Spaces.\"},\"creator\":{\"available\":\"Available creator credits\",\"earned\":\"Lifetime earned\",\"redeemed\":\"Lifetime redeemed\",\"redeem_title\":\"Redeem creator credits\",\"redeem_amount\":\"Creator credits\",\"redeem_action\":\"Redeem\",\"redeeming\":\"Redeeming\",\"redeem_ratio\":\"{creator} creator credits = {newapi} NewAPI credits\",\"activity\":\"Recent activity\",\"empty\":\"No creator-credit activity yet.\",\"download_reward\":\"Combo download reward\",\"redemption\":\"Redeemed to NewAPI credits\",\"pending\":\"Pending\",\"acked\":\"Completed\",\"failed\":\"Failed\",\"load_error\":\"Failed to load developer data.\",\"redeem_success\":\"Redemption submitted\",\"balance_after\":\"Balance {balance}\",\"source_credits\":\"Based on {credits} download credits\"},\"actions\":{\"manage_assets\":\"Asset library\",\"manage_combos\":\"Manage Combos\",\"manage_workflows\":\"Manage Workflows\",\"manage_billing\":\"Pricing management\",\"open_workflow_store\":\"Open Workflow Store\",\"open_workbench_store\":\"Open Workbench Store\",\"manage_timeshop\":\"Manage Timeshop\",\"my_timeshop\":\"My calendars\",\"o
792pen_timeshop\":\"Open Timeshop\",\"open_timeshop_admin\":\"Admin review\",\"manage_clawbot\":\"Manage Clawbot\"},\"workflows\":{\"management_title\":\"Workflow submission management\",\"no_access_title\":\"Reviewer access required\",\"no_access_description\":\"Workflow Store submissions and source inspection are available only to reviewers and admins.\",\"back\":\"Back to Workflows\"},\"workbenches\":{\"management_title\":\"Workbench reviews\",\"no_access_title\":\"Admin access required\",\"no_access_description\":\"Workbench store review is available only to admins.\",\"empty\":\"No submissions in this view.\",\"source\":\"Source\",\"submitted_at\":\"Submitted\",\"publish\":\"Approve and publish\",\"pending\":\"Pending review\",\"processed\":\"Processed\",\"view\":\"View and review\",\"back\":\"Back to reviews\",\"overview\":\"Overview\",\"code\":\"Source\",\"diff\":\"Changes\",\"history\":\"Review history\",\"author\":\"Author\",\"description\":\"Description\",\"changelog\":\"Release notes\",\"unknown\":\"Not declared\",\"compatibility\":\"Compatibility\",\"versions\":\"Version history\",\"search\":\"Find a file\",\"compare\":\"Base version\",\"no_comparison\":\"Select a version\",\"files\":\"{count} files\",\"loading\":\"Loading…\",\"retry\":\"Retry\",\"request_failed\":\"The request failed. Your input has been kept. Please retry.\",\"conflict\":\"This review has changed. The latest state is shown; check it before submitting again.\",\"no_history\":\"No review decisions yet.\",\"reason\":\"Review comments\",\"reason_hint\":\"Required when requesting changes or rejecting.\",\"reason_required\":\"Please explain what needs to change.\",\"start\":\"Start review\",\"request_changes\":\"Request changes\",\"reject\":\"Reject\",\"publish_confirm\":\"Publish {name} {version}? It will immediately become the store version.\",\"confirm_publish\":\"Confirm and publish\",\"cancel\":\"Cancel\",\"success\":\"Decision saved.\",\"binary\":\"This binary file cannot be previewed as text.\",\"too_large\":\"This file exceeds the preview limit. No partial content is shown.\",\"removed\":\"This file is absent in this version.\",\"sensitive_changes\":\"Dependencies, runtime or migrations changed. Review compatibility before publishing.\",\"previous\":\"Previous\",\"next\":\"Next\",\"showing_files\":\"Showing {shown} of {total} files. Narrow the search to find more.\",\"empty_files\":\"No matching files.\",\"source_failed\":\"Source could not be loaded or verified. Retry before making a decision.\",\"old_version\":\"Previous version\",\"new_version\":\"Submitted version\",\"status\":{\"submitted\":\"Submitted\",\"in_review\":\"In review\",\"changes_requested\":\"Changes requested\",\"rejected\":\"Rejected\",\"published\":\"Published\",\"archived\":\"Archived\"},\"change\":{\"added\":\"Added\",\"modified\":\"Modified\",\"deleted\":\"Deleted\",\"unchanged\":\"Unchanged\",\"uncompared\":\"File\"},\"compatibility_fields\":{\"runtime\":\"Runtime\",\"sdkVersion\":\"SDK version\",\"buildProfile\":\"Build profile\",\"minDesktopVersion\":\"Minimum desktop version\"},\"capabilities\":\"Declared capabilities\",\"file_tree\":\"Source files\",\"expand_all\":\"Expand all folders\",\"collapse_all\":\"Collapse all folders\",\"no_files_found\":\"No matching files.\",\"show_more_files\":\"Show more files\",\"metadata_from_source\":\"Historical release information was read from the manifest in this submitted package.\",\"metadata_unavailable\":\"Some release information could not be verified. Refresh to try again.\",\"optional_not_provided\":\"Not provided (optional)\",\"no_capabilities\":\"No platform capabilities used\",\"no_managed_build\":\"No managed build required\",\"capability_labels\":{\"llm\":\"Model calls\",\"agent\":\"Agent tasks\",\"asr\":\"Speech recognition\",\"workflows\":\"Workflows\",\"connected-services\":\"Connected services\",\"calendar\":\"Calendar\",\"automation\":\"Automation\"},\"publisher\":{\"title\":\"Workbenches\",\"subtitle\":\"View your workbench submissions, versions, and review progress.\",\"store\":\"Workbench Store\",\"review\":\"Admin review\",\"refresh\":\"Refresh\",\"failed\":\"Workbench information could not be loaded. Please retry.\",\"empty\":\"No workbenches submitted yet\",\"empty_page\"
792:\"No workbenches on this page\",\"submit_hint\":\"Submit a workbench from its menu in Floatboat to track versions and review results here.\",\"total\":\"{count, plural, one {# workbench} other {# workbenches}}\",\"latest\":\"Latest submission\",\"current\":\"Current store version\",\"no_release\":\"No versions yet\",\"not_listed\":\"Not listed\",\"versions\":\"{count, plural, one {# version} other {# versions}}\",\"view_store\":\"View in store\",\"view\":\"View versions\",\"back\":\"Back to my workbenches\",\"pagination\":\"Workbench pages\",\"page\":\"Page {page}\",\"source_failed\":\"Source could not be loaded or verified. Please retry.\",\"listing_status\":{\"draft\":\"Not listed\",\"published\":\"Listed\",\"unlisted\":\"Unlisted\",\"tombstone\":\"Archived\"}},\"diff_current\":\"Current version: {version}\",\"diff_select_base\":\"Select another published version to compare.\",\"diff_no_changes\":\"No file changes between these versions.\",\"diff_no_text_changes\":\"No text changes (empty file or file metadata changed).\",\"diff_too_complex\":\"This diff is too large to display. View the file in Source.\",\"diff_no_newline\":\"No newline at end of file\",\"diff_line_counts\":\"{added, plural, one {# line added} other {# lines added}}, {deleted, plural, one {# line deleted} other {# lines deleted}}\",\"changed_files\":\"{count, plural, one {# changed file} other {# changed files}}\"},\"timeshop\":{\"tabs\":{\"mine\":\"My calendars\",\"review\":\"Review Queue\",\"management\":\"Management\",\"upload\":\"Upload Official\"},\"stats\":{\"total\":\"Total\",\"published\":\"Published\",\"pending\":\"In Review\",\"rejected\":\"Rejected\"},\"updated\":\"Updated {date}\",\"view\":\"View\",\"empty\":\"You haven't published any calendars yet.\",\"error\":\"Failed to load your calendars.\",\"retry\":\"Retry\"},\"clawbot\":{\"refresh\":\"Refresh\",\"new\":\"New Clawbot\",\"tabs\":{\"mine\":\"My Clawbots\",\"review\":\"Review Queue\",\"management\":\"Management\"},\"management\":\"Clawbot management\",\"total\":\"{count} total\",\"active\":\"Active {count}\",\"listed\":\"Listed {count}\",\"loading\":\"Loading Clawbots...\",\"empty_title\":\"No Clawbots created yet\",\"empty_subtitle\":\"Create one from an online Agent Space.\",\"empty_action\":\"Create your first Clawbot\",\"stats\":{\"remaining\":\"Remaining\",\"total\":\"Total\",\"connection\":\"Connections\",\"duration\":\"Duration\"},\"hours\":\"{count}h\",\"minutes\":\"{count}m\",\"market_listed\":\"Listed\",\"market_unlisted\":\"Unlisted\",\"review_pending\":\"In review\",\"review_approved\":\"Listed\",\"review_rejected\":\"Rejected\",\"review_unlisted\":\"Unlisted\",\"view\":\"View\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"review\":{\"title\":\"Clawbot Review Queue\",\"subtitle\":\"Review submissions requesting public Clawbot marketplace listing.\",\"management_title\":\"Clawbot Management\",\"management_subtitle\":\"Manage every Clawbot submitted to the public marketplace, including listed, in-review, rejected, and unlisted entries.\",\"loading\":\"Loading review queue...\",\"empty_title\":\"No Clawbots pending review\",\"empty_subtitle\":\"New public listing submissions will appear here.\",\"empty_management_title\":\"No public marketplace Clawbots\",\"empty_management_subtitle\":\"Clawbots submitted to the public marketplace will appear here.\",\"details\":\"Details\",\"back\":\"Back to list\",\"pending\":\"Pending review\",\"approved\":\"Approved\",\"rejected\":\"Rejected\",\"unlist\":\"Unlist\",\"unlist_reason\":\"Enter unlisting reason\",\"unlisted\":\"Unlisted\",\"market_profile\":\"Marketplace profile\",\"access_config\":\"Access config\",\"submission\":\"Submission\",\"full_description\":\"Full description\",\"welcome_message\":\"Welcome message\",\"owner\":\"Owner\",\"publication_id\":\"Publication ID\",\"workspace\":\"Workspace\",\"target_bot\":\"Target Bot\",\"host\":\"Host\",\"public_entry\":\"Public entry\",\"publish_mode\":\"Publish mode\",\"access_policy\":\"Access policy\",\"status\":\"Status\",\"review_status\":\"Review status\",\"max_connections\":\"Total connection cap\",\"active_connections\":\"Active connection cap\",\"request_limit\":\"Request limit\",\"connection_duration\":\"Connection duration\",\"category\":\"Category\",\"tags\":\"Tags\",\"language\":\"Language\",\"platform\":\"Platform\",\"website\":\"Website\",\"support\":\"Supp
792ort\",\"created_at\":\"Submitted\",\"updated_at\":\"Updated\",\"none\":\"None\",\"missing\":\"Missing\",\"open\":\"Open\",\"approve\":\"Approve\",\"reject\":\"Reject\"},\"dialog\":{\"title_create\":\"Publish new Clawbot\",\"title_edit\":\"Edit Clawbot\",\"subtitle\":\"Choose the Agent Space to open up and add the key details for its marketplace card.\",\"device\":\"Device\",\"device_placeholder\":\"Select device\",\"agent_space\":\"Agent Space\",\"agent_space_placeholder\":\"Select Agent Space\",\"name\":\"Name\",\"name_placeholder\":\"e.g. Writing assistant\",\"category\":\"Category\",\"category_placeholder\":\"Select category\",\"uncategorized\":\"Uncategorized\",\"description\":\"Description\",\"description_placeholder\":\"Describe in a sentence or two what this Clawbot is good for.\",\"welcome_message\":\"Welcome message\",\"welcome_message_placeholder\":\"Sent to the WeChat visitor right after the connection is created.\",\"default_owner_name\":\"the provider\",\"default_agent_name\":\"Agent\",\"default_welcome_message\":\"Welcome to Agent {agentName}, created by {ownerName} with Floatboat. Ask me a question or describe what you need here. Website: https://floatboat.ai\",\"max_connections\":\"Total connections\",\"ttl_minutes\":\"Connection duration (minutes)\",\"market_listed\":\"List on the public Clawbot marketplace\",\"status_title\":\"Access status\",\"status_desc\":\"Once disabled, external users can no longer create new connections.\",\"cancel\":\"Cancel\",\"save\":\"Save changes\",\"saving\":\"Saving\",\"create\":\"Create \u0026 submit\",\"error_target\":\"Please select a device and Agent Space to open up.\",\"error_name\":\"Please enter a name.\",\"error_description\":\"Please enter a description.\",\"saved\":\"Open access entry saved.\"},\"connections\":{\"summary\":\"Connections {active}/{total}\",\"refresh\":\"Refresh\",\"empty\":\"No external WeChat connections yet\",\"col_identity\":\"WeChat identity\",\"col_status\":\"Status\",\"col_expires\":\"Expires\",\"col_actions\":\"Actions\",\"revoke\":\"Revoke\",\"revoking\":\"Revoking\"}}},\"im_bot_config\":{\"badge_label\":\"Link Mode\",\"title\":\"IM Bot Access \u0026 Device Routing\",\"subtitle\":\"Connect Feishu, Telegram, WeChat, Discord, Slack, and WeCom bots to your Floatboat devices, then route messages into the right Agent Space.\",\"loading\":\"Loading...\",\"choose_platform\":\"Choose a platform to continue\",\"configured\":\"Configured\",\"locale_switcher\":{\"title\":\"Switch page language\",\"aria_label\":\"Switch page language\"},\"detail_subtitle\":\"Fill in credentials and bind this bot to a target device Agent Space.\",\"summary\":{\"hosts\":\"Connected devices\",\"online_hosts\":\"Online now\",\"workspaces\":\"Synced Agent Spaces\"},\"device_status\":{\"online\":\"Online\",\"offline\":\"Offline\"},\"platform_labels\":{\"darwin\":\"macOS\",\"windows\":\"Windows\",\"linux\":\"Linux\",\"unknown\":\"Unknown\"},\"device_list\":{\"title\":\"My Devices\",\"description\":\"These are the desktop hosts reported through channel-api for the current account. Expand a device to inspect its synced Agent Spaces.\",\"columns\":{\"device\":\"Device\",\"instance_id\":\"Host Instance ID\",\"status\":\"Status\",\"workspaces\":\"Agent Spaces\",\"last_seen\":\"Last online\",\"actions\":\"Actions\"},\"empty\":\"No devices found yet. Open desktop Lobster Mode first and wait for host/Agent Space sync.\",\"expand\":\"Show Agent Spaces\",\"collapse\":\"Hide Agent Spaces\",\"refresh\":\"Refresh devices\",\"refreshing\":\"Refreshing...\",\"workspace_empty\":\"This device has not synced any Agent Space yet.\",\"workspace_name_fallback\":\"Unnamed Agent Space\",\"workspace_id\":\"Agent Space ID\",\"bot_id\":\"Bot ID\",\"status_active\":\"Active\",\"never_seen\":\"Not seen yet\"},\"platform_card\":{\"configured_target\":\"Bound to {target}\",\"configured_target_fallback\":\"Saved target: {target}\",\"no_target\":\"No target Agent Space selected yet\",\"bot_count\":\"{count} bots configured\"},\"platform_list\":{\"subtitle\":\"Click a platform card to browse configured bots, or use the add entry in the top-right corner.\",\"empty\":\"No bot has been configured for this platform yet. Click Add Bot to get started.\",\"columns\":{\"bot_account_id\":\"Bot\",\"device\":\"Target device\",\"target\":\"Target Agent Space\",\"receive_mode\":\"Group receive mode\",\"status\":\"Status\",\"edit\":\"Edit\"},\"status_active\":\"Active\",\"status_paused\":\"Paused\",\"status_revoked\":\"Revoked\"},\"target\":{\"title\":\"Routing Target\",\"description\":\"Choose which desktop device and Agent Space should receive messages from this IM bot.\",\"host_label\":\"Device\",\"host_placeholder\":\"Select a device\",\"workspace_label\":\"Agent Space\",\"workspace_placeholder\":\"Default Agent Space: Remo\",\"workspace_default_option\":\"Use default Agent Space\",\"workspace_loading\":\"Loading Agent Space list...\",\"host_empty\":\"No device is available yet. Open desktop Lobster Mode first so the host can be synced.\",\"workspace_empty\":\"This device has not synced any Agent Space yet.\",\"workspace_default_label\":\"Default Agent Space\",\"current_binding\":\"Existing binding\",\"missing_target\":\"The saved target_bot_id no longer matches the current Agent Space registry. Please reselect and save again.\"},\"confirm\":{\"discard_changes\":\"You have unsaved changes. Discard them and go back?\"},\"receive_mode\":{\"title\":\"Group receive mode\",\"hint\":\"Takes effect after saving\",\"all\":\"All\",\"toast_all_messages\":\"Bot will now receive all group messages.\",\"toast_mention_only\":\"Bot will now only receive @mention messages.\",\"toast_error\":\"Failed to update receive mode.\"},\"feishu_event_url\":\"Feishu event subscription URL\",\"telegram_webhook\":{\"webhook_url\":\"Telegram webhook URL\",\"webhook_url_hint\":\"Telegram should point to the callback path for the current bot_account_id.\",\"command_title\":\"Next step: run the Telegram webhook command\",\"command_description\":\"After saving the config, run the curl below in your terminal so Telegram can deliver messages to AoE.\"},\"actions\":{\"back_to_developer\":\"Back to Developer Center\",\"back_list\":\"Back to list\",\"cancel\":\"Cancel\",\"confirm\":\"Save\",\"add\":\"Add Bot\",\"delete\":\"Unbind\",\"confirm_delete\":\"Confirm unbind\",\"deleting\":\"Unbinding...\",\"save\":\"Save binding\",\"saving\":\"Saving...\",\"edit\":\"Edit configuration\",\"copy\":\"Copy\",\"generate_qr\":\"Get QR Code\",\"regenerate_qr\":\"Refresh QR Code\",\"checking\":\"Checking...\",\"open_link\":\"Open Link\"},\"platforms\":{\"feishu\":{\"name\":\"Feishu / Lark\",\"description\":\"Connect your Feishu custom app and route messages into a selected Floatboat Agent Space.\"},\"telegram\":{\"name\":\"Telegram\",\"description\":\"Connect your Telegram bot and route messages into a selected Floatboat Agent Space.\"},\"wechat\":{\"name\":\"WeChat\",\"description\":\"Connect your WeChat account via QR login and route messages into a selected Floatboat Agent Space.\"},\"discord\":{\"name\":\"Discord\",\"description\":\"Connect your Discord bot and route messages into a selected Floatboat Agent Space via Gateway WebSocket.\"},\"slack\":{\"name\":\"Slack\",\"description\":\"Connect your Slack bot and route messages into a selected Floatboat Agent Space via Events API.\"},\"wecom\":{\"name\":\"WeCom\",\"description\":\"Connect your WeCom (Enterprise WeChat) self-built app to receive and send messages.\"}},\"form\":{\"feishu_title\":\"Feishu Configuration\",\"feishu_description\":\"Configure your Feishu credentials and bind the bot to the device Agent Space that should receive messages.\",\"telegram_title\":\"Telegram Configuration\",\"telegram_description\":\"Fill in Telegram credentials and bind the bot to a target device Agent Space.\",\"bot_account_id\":\"Bot Account ID\",\"bot_account_hint\":\"2-64 lowercase chars: a-z, 0-9, -, _. Used in webhook path.\",\"bot_account_locked\":\"bot_account_id is locked once a config already exists.\",\"feishu_app_id\":\"App ID\",\"feishu_verification_token\":\"Verification Token\",\"app_secret\":\"App Secret\",\"webhook_secret\":\"Encrypt Key (Optional)\",\"telegram_bot_name\":\"Bot Name (Optional)\",\"telegram_bot_token\":\"App Secret\",\"telegram_webhook_secret\":\"Webhook Secret (Optional)\",\"wechat_title\":\"WeChat Configuration\",\"wechat_description\":\"Click to fetch a login QR code, scan it with WeChat, then save the returned Bot Token. WeChat uses long-poll for message delivery.\",\"wechat_bot_token\":\"Bot Token (iLink)\",\"discord_title\":\"Discord Configuration\",\"discord_description\":\"Fill in Discord bot credentials. Discord uses Gateway WebSocket for message delivery — no webhook URL is needed.\",\"discord_app_id\":\"Application ID\",\"discord_bot_token\":\"Bot Token\",\"discord_note\":\"Discord uses Gateway WebSocket for receiving messages. No webhook URL setup is required.\",\"slack_title\":\"Slack Configuration\",\"slack_description\":\"Fill in Slack bot credentials and set up the Events API webhook URL.\",\"slack_app_id\":\"App ID\",\"slack_bot_token\":\"Bot Token (xoxb-...)\",\"slack_signing_secret\":\"Signing Secret\",\"show_secret\":\"Show secret\",\"hide_secret\":\"Hide secret\",\"edit_secret\":\"Edit secret\",\"reenter_secret\":\"Re-enter current or new secret\",\"optional\":\"Optional\",\"wecom_title\":\"WeCom Configuration\",\"wecom_description\":\"Configure your WeCom self-built app credentials and callback settings.\",\"wecom_corp_i
792d\":\"Corp ID\",\"wecom_corp_id_hint\":\"The enterprise ID (corpid) from your WeCom admin console.\",\"wecom_agent_id\":\"Agent ID\",\"wecom_agent_id_hint\":\"The agentid of your self-built app.\",\"wecom_corp_secret\":\"Corp Secret\",\"wecom_corp_secret_hint\":\"The secret of your self-built app.\",\"wecom_callback_token\":\"Callback Token\",\"wecom_callback_token_hint\":\"The Token configured for the callback URL.\",\"wecom_encoding_aes_key\":\"EncodingAESKey\",\"wecom_encoding_aes_key_hint\":\"The EncodingAESKey for message encryption/decryption (43 characters).\",\"wecom_note\":\"After saving, configure the callback URL in the WeCom admin console under your self-built app settings.\"},\"wechat_qr\":{\"title\":\"QR Login\",\"description\":\"Request a QR code and scan it directly with WeChat. The Bot Token will be filled in automatically after a successful scan.\",\"waiting\":\"QR code generated. Scan it with WeChat to authorize the bot.\",\"polling\":\"Waiting for scan result...\",\"scanned\":\"Scan detected. Waiting for login confirmation...\",\"success\":\"Scan succeeded and the Bot Token has been filled in. Review routing and save the config.\",\"expired\":\"This QR code has expired. Request a new one.\",\"no_image\":\"The login session was created, but the API did not return a renderable QR image.\",\"qrcode\":\"QR Token\",\"raw_payload\":\"QR Payload\",\"status\":\"Current status\",\"help\":\"If the QR image cannot be rendered, copy the QR payload or open the login link to debug the response.\"},\"slack_webhook\":{\"webhook_url\":\"Slack Events API webhook URL\",\"webhook_url_hint\":\"Set this URL in your Slack app's Event Subscriptions settings.\"},\"wecom_webhook\":{\"webhook_url_label\":\"Callback URL\",\"webhook_url_hint\":\"Enter this URL in the WeCom admin console as the callback URL for your self-built app.\"},\"discord_guide\":{\"title\":\"Discord Setup Guide\",\"open_platform\":\"Open Discord Developer Portal\",\"step_1_title\":\"Create application\",\"step_1_desc\":\"Create a new application in Discord Developer Portal.\",\"step_2_title\":\"Create bot\",\"step_2_desc\":\"Go to the Bot section and create a bot. Copy the Bot Token.\",\"step_3_title\":\"Enable intents\",\"step_3_desc\":\"Enable Message Content Intent and Server Members Intent under Privileged Gateway Intents.\",\"step_4_title\":\"Invite bot\",\"step_4_desc\":\"Generate an invite URL with bot permissions (Send Messages, Read Message History) and add the bot to your server.\"},\"slack_guide\":{\"title\":\"Slack Setup Guide\",\"open_platform\":\"Open Slack API Console\",\"step_1_title\":\"Create app\",\"step_1_desc\":\"Create a new Slack app from the Slack API console.\",\"step_2_title\":\"Get credentials\",\"step_2_desc\":\"Copy the Bot Token (xoxb-...) from OAuth \u0026 Permissions, and the Signing Secret from Basic Information.\",\"step_3_title\":\"Configure event subscriptions\",\"step_3_desc\":\"Enable Events API and set the Request URL to the webhook URL shown below. Subscribe to message.channels, message.im, and app_mention events.\",\"step_4_title\":\"Install to workspace\",\"step_4_desc\":\"Install the app to your Slack workspace and grant the required bot scopes.\"},\"wecom_guide\":{\"title\":\"WeCom Setup Guide\",\"open_platform\":\"Open WeCom Admin Console\",\"step_1_title\":\"Create a self-built app\",\"step_1_desc\":\"Go to the WeCom admin console → Apps \u0026 Mini Programs → Self-built → Create App.\",\"step_2_title\":\"Get credentials\",\"step_2_desc\":\"Note down the Corp ID (from My Enterprise), Agent ID, and Secret from the app details page.\",\"step_3_title\":\"Configure callback URL\",\"step_3_desc\":\"In the app settings, set the callback URL to the webhook URL shown after saving. Enter the Token and EncodingAESKey you configured here.\",\"step_4_title\":\"Set trusted IP\",\"step_4_desc\":\"Add the server IP to the trusted IP whitelist in the app settings.\"},\"feishu_guide\":{\"title\":\"Feishu Setup Guide\",\"open_platform\":\"Open developer console\",\"step_1_title\":\"Create app\",\"step_1_desc\":\"Create a custom app in Feishu Open Platform.\",\"step_2_title\":\"Get credentials\",\"step_2_desc\":\"Copy App ID and App Secret from the app credential page.\",\"step_3_title\":\"Configure event subscription\",\"step_3_desc\":\"Set request URL in Event Subscriptions and fill Verification Token (and Encrypt Key if enabled).\",\"step_4_title\":\"Grant permissions\",\"step_4_desc\":\"Enable message receive/send related permissions for your app.\"},\"success\":{\"title\":\"Configuration saved\",\"description\":\"This IM bot configuration has been saved. You can keep editing or return to configure another platform.\",\"bound_host\":\"Device\",\"bound_workspace\":\"Agent Space\"},\"toast\":{\"save_success\":\"Configuration saved\",\"delete_success\":\"Configuration deleted\",\"copy_success\":\"Copied to clipboard\",\"copy_failed\":\"Copy failed, please copy manually\",\"refresh_success\":\"Device list refreshed\",\"wechat_qr_loaded\":\"WeChat QR code generated\",\"wechat_qr_success\":\"WeChat scan succeeded and Bot Token was filled in\"},\"errors\":{\"load_failed\":\"Failed to load configuration\",\"save_failed\":\"Failed to save configuration\",\"delete_failed\":\"Failed to delete configuration\",\"hosts_load_failed\":\"Failed to load device list\",\"workspaces_load_failed\":\"Failed to load Agent Spaces\",\"invali
792d_bot_account_id\":\"Invalid bot_account_id. Use 2-64 chars: a-z, 0-9, -, _\",\"feishu_app_id_required\":\"App ID is required for Feishu\",\"feishu_verification_token_required\":\"Verification Token is required for Feishu\",\"app_secret_required\":\"App Secret is required\",\"wechat_qr_load_failed\":\"Failed to fetch the WeChat QR code\",\"wechat_qr_status_failed\":\"Failed to check the WeChat QR login status\",\"wechat_qr_missing_token\":\"The QR login response did not include a QR token for polling\",\"wecom_agent_id_required\":\"Agent ID is required for WeCom.\"}}},\"admin\":{\"feature_access\":{\"title\":\"Feature Access\",\"subtitle\":\"Manage which users can access new product capabilities.\",\"no_access\":\"Feature Access administrator permission is required.\",\"feature_management\":\"Features\",\"feature_management_description\":\"Create and manage staged product access.\",\"preset_groups\":\"Access preset groups\",\"preset_groups_description\":\"Use server-side preset groups as the only rollout boundary and manage which accounts may use each capability bundle. Clients still consume independent Feature Keys.\",\"preset_groups_server_only\":\"Preset groups, memberships, and capability bundles exist only on the server; clients never receive group data.\",\"preset_group_create\":\"Create preset group\",\"preset_group_create_description\":\"Create a server-side capability bundle and select the independent Feature Keys clients may consume.\",\"preset_group_create_reason_placeholder\":\"Explain why this preset group is needed\",\"preset_group_created\":\"Preset group created.\",\"preset_group_availability\":\"Availability\",\"preset_group_availabilities\":{\"disabled\":\"Disabled\",\"members\":\"Selected members\",\"internal\":\"All internal accounts\",\"internal_or_members\":\"Internal accounts + selected members\",\"authenticated\":\"All signed-in accounts\",\"public\":\"Public\"},\"preset_group_capabilities\":\"Included Feature Keys\",\"preset_group_capabilities_description\":\"Change which keys this server-side group contains. Clients still request and consume entitlements per key.\",\"preset_group_members\":\"Allowed accounts\",\"preset_group_members_description\":\"Only members receive this group's capabilities. Capabilities are unioned when an account belongs to multiple groups.\",\"preset_group_extra_members\":\"Additional selected accounts\",\"preset_group_internal_or_members_description\":\"All internal accounts receive this group's capabilities automatically. Add a small number of non-internal accounts here as exceptions.\",\"preset_group_members_not_used\":\"The current availability mode does not use a member list.\",\"preset_group_uses_internal_accounts\":\"This preset group automatically uses the global internal account list; individual group membership is unnecessary.\",\"preset_group_empty_members\":\"No accounts have been added to this preset group.\",\"preset_group_empty\":\"No access preset groups are registered.\",\"preset_group_reason_required\":\"A change reason is required before saving.\",\"preset_group_reason_placeholder\":\"Explain why this preset group or its included Feature Keys are changing\",\"preset_group_saved\":\"Preset group updated.\",\"preset_group_member_removed\":\"Account removed from the preset group.\",\"feature_keys\":\"Feature Key management\",\"feature_keys_description\":\"Maintain the stable keys shared by clients and the server. Keys cannot be renamed after creation; preset groups only compose them.\",\"feature_key_create\":\"Create Feature Key\",\"feature_key_create_description\":\"Create one stable independent key. Released clients request capabilities by this exact key, so do not reuse or rename it.\",\"feature_key_description_placeholder\":\"Explain which page, entry point, or client capability this Key controls\",\"feature_key_description_help\":\"The description identifies this Key over time; the change reason is only recorded for this audit event.\",\"feature_key_description_missing\":\"No description\",\"feature_key_reason_placeholder\":\"Explain why this Feature Key is needed\",\"feature_key_created\":\"Feature Key created.\",\"feature_key_deleted\":\"Feature Key deleted and removed from related preset groups.\",\"feature_key_delete_title\":\"Delete this Feature Key?\",\"feature_key_delete_description\":\"This cannot be undone. The key will also be removed from every preset group that contains it.\",\"feature_key_delete_affected_groups\":\"This key will be removed from these preset groups:\",\"feature_key_delete_no_groups\":\"No preset group currently contains this key.\",\"feature_key_delete_reason_placeholder\":\"Explain why this Feature Key should be deleted\",\"feature_key_used_by\":\"Preset groups\",\"feature_key_empty\":\"No Feature Keys are registered.\",\"rollout_gates\":\"Rollout gates\",\"rollout_gates_description\":\"Manage rollout audience, compatibility and emergency availability separately from account capability policy.\",\"account_access\":\"Account access\",\"account_access_description\":\"Select a canonical Desktop account and configure its complete capability matrix below the master rollout gate.\",\"select_account\":\"Select a Desktop account\",\"account_access_loading\":\"Loading account capability policy\",\"account_access_load_failed\":\"Account capability policy could not be loaded.\",\"account_access_no_draft\":\"No account policy draft is available.\",\"account_access_reason_required\":\"Enter a reason before previewing or saving.\",\"account_access_preview_failed\":\"Account capability preview failed.\",\"account_access_saved\":\"Account capability matrix saved.\",\"account_access_conflict\"
792:\"This account policy changed elsewhere.\",\"account_access_conflict_description\":\"Your draft has not been overwritten. Reload the current policy, review the differences, and preview again.\",\"reload_current_policy\":\"Reload current policy\",\"canonical_account\":\"Canonical Desktop account\",\"master_gate\":\"Master gate\",\"feature_family\":\"Feature family\",\"family_default\":\"Family default\",\"revision\":\"Revision\",\"family_revision\":\"Family revision\",\"policy_set_revision\":\"Policy-set revision\",\"account_policy_revision\":\"Account policy revision\",\"gate_revision\":\"Gate revision\",\"client_binding_revision\":\"Client binding revision\",\"capability_aware_min_version\":\"Capability-aware minimum version\",\"client_protocol_version\":\"Client protocol version\",\"client_catalog_digest\":\"Client catalog digest\",\"backend_route_revision\":\"Backend route revision\",\"current_release_contract\":\"Current release contract\",\"master_gate_status\":\"Master gate status\",\"master_gate_min_version\":\"Master gate minimum app version\",\"master_gate_updated_at\":\"Master gate updated at\",\"family_governance\":\"Family governance\",\"family_governance_description\":\"Manage the global Family enforcement state and release-disabled capability activation independently from any account matrix.\",\"family_governance_empty\":\"No Feature Family is registered.\",\"enforcement_permission_available\":\"You can perform the separately guarded family enforcement operation when all release predicates are satisfied.\",\"enforcement_title\":\"Family enforcement\",\"enforcement_description\":\"Shadow evaluates the complete account policy without restricting runtime behavior. Enforcement is monotonic and makes every saved matrix authoritative in one guarded transaction.\",\"enforcement_already_active\":\"Account capability policy is authoritative. Rollback requires a capability-aware release or disabling the master gate.\",\"enforcement_permission_required\":\"The dedicated Feature Access enforcement permission is required to preview or commit this operation.\",\"preview_enforcement\":\"Preview enforcement\",\"enforcement_preview_failed\":\"Family enforcement preview failed.\",\"enforcement_commit_failed\":\"Family enforcement commit failed.\",\"enforcement_committed\":\"Family capability policy is now enforced.\",\"enforcement_irreversible_title\":\"This transition cannot return to shadow through the normal API.\",\"enforcement_irreversible_description\":\"The commit revalidates every release, Gate, policy, expiry and coverage digest. Every saved account matrix becomes authoritative immediately.\",\"enforcement_impact\":\"Enforcement impact\",\"policy_accounts\":\"Accounts with policy\",\"affected_accounts\":\"Affected accounts\",\"configured_allows\":\"Configured allows\",\"configured_de
792nies\":\"Configured denies\",\"safe_after\":\"Entitlement drain safe after\",\"challenge_expires\":\"Challenge expires\",\"type_exact_phrase\":\"Type {phrase} exactly.\",\"enforcement_reason_placeholder\":\"Explain why release evidence and account policy are ready for enforcement\",\"commit_enforcement\":\"Enforce account policy\",\"capability_activation_title\":\"Release capability activation\",\"capability_activation_description\":\"Disabled capabilities remain unavailable until their exact release tuple, four-platform coverage and release attestations pass a separately guarded activation.\",\"capability_activation_empty\":\"No release-disabled capability is awaiting activation.\",\"capability_activation_non_expanding\":\"Activation preserves deny-until-explicit-allow, so accounts without an explicit allow do not gain access.\",\"preset_impact\":\"Preset impact\",\"preset_impact_description\":\"All {count} account presets remain non-authoritative for this capability after activation.\",\"preset_template_includes\":\"Template includes key\",\"preset_template_excludes\":\"Template excludes key\",\"preset_requires_explicit_allow\":\"explicit account allow still required\",\"capability_disabled_preconfiguration\":\"This release-disabled capability may store an explicit account override, but runtime access remains denied until guarded activation.\",\"capability_activation_permission_required\":\"The dedicated Feature Access enforcement permission is required to preview or commit capability activation.\",\"preview_capability_activation\":\"Preview activation\",\"capability_activation_preview_failed\":\"Capability activation preview failed.\",\"capability_activation_commit_failed\":\"Capability activation commit failed.\",\"capability_activation_committed\":\"The release capability is active.\",\"capability_activation_irreversible_title\":\"This promotes the candidate release tuple and activates the capability atomically.\",\"capability_activation_irreversible_description\":\"Commit revalidates the Family, capability, Gate drain, policy digest, exact four-platform coverage and release attestations. A stale challenge must be previewed again.\",\"capability_activation_reason_placeholder\":\"Explain why this exact release capability is ready for activation\",\"commit_capability_activation\":\"Activate capability\",\"deployment_release_id\":\"Deployment release ID\",\"backend_commit_sha\":\"Backend commit SHA\",\"coverage_evidence\":\"Coverage manifests\",\"coverage_active_pointers\":\"Active signed coverage pointers\",\"coverage_active\":\"Active · passed\",\"coverage_sequence\":\"Source sequence\",\"coverage_build\":\"Build ID\",\"coverage_valid_until\":\"Valid until\",\"coverage_content_hash\":\"Content hash\",\"coverage_sources\":{\"backend_ci\":\"Backend\",\"desktop_macos_ci\":\"macOS\",\"desktop_windows_ci\":\"Windows\",\"desktop_linux_ci\":\"Linux\"},\"shadow_hard_error_status\":\"Shadow hard-error status\",\"shadow_hard_errors_clear\":\"Clear\",\"shadow_hard_error_count\":\"Hard errors\",\"shadow_covered_boundaries\":\"Covered boundaries\",\"shadow_coverage_digest\":\"Shadow coverage digest\",\"explicit_allows\":\"Explicit allows\",\"explicit_denies\":\"Explicit denies\",\"implicit_denies\":\"Implicit denies\",\"immediate_access_accounts\":\"Accounts allowed at activation\",\"immediate_access_accounts_description\":\"These accounts have an active explicit leaf allow that becomes effective if this exact activation commits unchanged. Actual entitlement still requires the master gate and a compatible device; presets and family defaults are excluded.\",\"no_immediate_access_accounts\":\"No account will gain capability access at activation.\",\"activation_defaults\":{\"inherit_family\":\"Inherit family\",\"deny_until_explicit_allow\":\"Deny until explicit allow\"},\"enforcement_modes\":{\"shadow\":\"Shadow\",\"enforced\":\"Enforced\"},\"family_modes\":{\"allow_unset\":\"Allow unset capabilities\",\"deny_unset\":\"Deny unset capabilities\"},\"account_family_mode\":\"Account family mode\",\"account_family_modes\":{\"inherit_family\":\"Inherit family default\",\"allow_unset\":\"Allow capabilities without an override\",\"deny_unset\":\"Deny capabilities without an override\"},\"account_access_presets\":\"Composable presets\",\"account_access_presets_description\":\"Presets only edit the visible matrix. Combining presets unions explicit allows and sets the family mode to deny all unset capabilities.\",\"account_access_preset_names\":{\"viewer\":\"Viewer\",\"runner\":\"Runner\",\"automator\":\"Automator\",\"user_author\":\"User author\",\"agent_author\":\"Agent author\",\"local_importer\":\"Local importer\",\"package_remover\":\"Package remover\",\"owner_exporter\":\"Owner exporter\",\"store_browser\":\"Store browser\",\"store_installer\":\"Store installer\",\"store_submitter\":\"Store submitter\",\"full_access\":\"Full access\"},\"apply_presets\":\"Apply selected presets\",\"capability\":\"Capability\",\"override\":\"Account override\",\"expiry\":\"Override expiry\",\"current_configured\":\"Current configured\",\"current_effective\":\"Current effective\",\"target_effective\":\"Preview effective\",\"policy_effective\":\"Policy effective\",\"current_policy_effective\":\"Current policy effective\",\"target_policy_effective\":\"Preview policy effective\",\"policy_effective_baseline\":\"Calculated against the approved compatible-client baseline (app {appVersion}, protocol {protocol}); this is not proof for any real device.\",\"device_effective\":\"Device effective\",\"device_effective_description\":\"Each active binding is evaluated with its exact platform, release attestation, build, app version, protocol, catalog and current revocation state.\",\"no_active_device_evidence\":\"No active device evidence\",\"device_binding_summary\":\"Build {build} · app {version} · binding r{revision} · attestation {attestation} · expires {expiresAt}\",\"capability_names\":{\"read\":\"Read workflows\",\"author_user\":\"User authoring\",\"author_agent\":\"Agent authoring\",\"execute\":\"Execute workflows\",\"trigger_webhook\":\"Webhook trigger\",\"trigger_schedule\":\"Schedule trigger\",\"trigger_custom_command\":\"Custom Command trigger\",\"package_import\":\"Import local package\",\"package_remove\":\"Remove local package\",\"package_export\":\"Export owner package\",\"store_browse\":\"Browse Workflow Store\",\"store_install\":\"Install from Workflow Store\",\"store_submit\":\"Submit to Workflow Store\",\"unknown\":\"Unknown capability\"},\"capability_override_label\":\"Override for {capability}\",\"capability_expiry_label\":\"Expiry for {capability}
792\",\"inherit\":\"Inherit\",\"allow\":\"Allow\",\"deny\":\"Deny\",\"allowed\":\"Allowed\",\"denied\":\"Denied\",\"effective\":\"Effective\",\"decision_reasons\":{\"parent_feature_denied\":\"Master gate denied\",\"capability_disabled\":\"Capability disabled by release\",\"shadow_compatibility_allow\":\"Shadow compatibility allow\",\"account_override_allow\":\"Account override allows\",\"account_override_deny\":\"Account override denies\",\"account_family_allow\":\"Account family mode allows\",\"account_family_deny\":\"Account family mode denies\",\"family_default_allow\":\"Family default allows\",\"family_default_deny\":\"Family default denies\",\"evaluation_failed\":\"Evaluation failed\"},\"account_access_reason_placeholder\":\"Explain why this account needs the complete matrix change\",\"preview_changes\":\"Preview changes\",\"save_matrix\":\"Save matrix\",\"preview_ready\":\"Preview is current for this draft\",\"preview_results\":\"Preview and revisions\",\"post_expiry\":\"Post-expiry decisions\",\"post_expiry_empty\":\"No expiring overrides affect this matrix.\",\"post_expiry_summary\":\"{allowed} allowed · {denied} denied\",\"account_access_audit\":\"Account policy audit\",\"account_access_audit_description\":\"Immutable whole-matrix changes for this exact account subject and family.\",\"audit_actor_action\":\"{actor} · {action}\",\"audit_revisions\":\"Family r{family} · policy set r{policySet} · account r{account}\",\"system_actor\":\"System\",\"retry\":\"Retry\",\"refresh\":\"Refresh\",\"load_more\":\"Load more\",\"internal_accounts\":\"Internal accounts\",\"internal_accounts_description\":\"Maintain internal accounts once here. Preset groups using the internal availability mode automatically use this list.\",\"internal_account_picker_title\":\"Add internal account\",\"internal_account_picker_description\":\"Search real accounts by name or email. All internal-account preset groups apply automatically after adding one.\",\"internal_account_added\":\"Internal account added.\",\"internal_account_removed\":\"Internal account removed.\",\"status\":\"Status\",\"statuses\":{\"disabled\":\"Off\",\"internal\":\"Internal accounts only\",\"allowlist\":\"Allowlisted users\",\"public\":\"All users\"},\"name\":\"Name\",\"key\":\"Key\",\"description\":\"Description\",\"min_version\":\"Minimum app version\",\"updated_at\":\"Updated\",\"created_at\":\"Created\",\"actions\":\"Actions\",\"optional\":\"Optional\",\"none\":\"None\",\"create\":\"Create\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"remove\":\"Remove\",\"cancel\":\"Cancel\",\"save\":\"Save\",\"create_gate\":\"Create feature\",\"edit_gate\":\"Edit feature\",\"create_gate_description\":\"Use a stable key that product code can reference.\",\"edit_gate_description\":\"Update this feature's staged availability.\",\"empty_gates\":\"No features have been configured.\",\"delete_gate_title\":\"Delete feature?\",\"delete_gate_description\":\"Deleting {name} removes its active access policy and allowlist. This cannot be undone.\",\"gate_created\":\"Feature created.\",\"gate_deleted\":\"Feature deleted.\",\"saved\":\"Feature updated.\",\"save_failed\":\"Feature Access update failed.\",\"load_failed\":\"Feature Access data could not be loaded.\",\"allowed_users\":\"Allowed users\",\"allowed_users_description\":\"Internal accounts and these users can access the feature.\",\"save_before_users\":\"Create the feature before adding users.\",\"add_user\":\"Add user\",\"empty_users\":\"No users added.\",\"empty_internal_accounts\":\"No internal accounts added.\",\"unavailable_user\":\"Unavailable account\",\"user\":\"User\",\"email\":\"Email\",\"added_at\":\"Added\",\"user_added\":\"User added.\",\"user_removed\":\"User removed.\",\"user_picker_title\":\"Select a user\",\"user_picker_description\":\"Search existing accounts by name or email.\",\"search_users\":\"Search users\",\"searching\":\"Searching\",\"no_users_found\":\"No users found.\",\"already_added\":\"Added\",\"add\":\"Add\",\"recent_changes\":\"Recent changes\",\"audit_change\":\"Configuration changed\",\"audit_loading\":\"Loading recent changes\",\"audit_load_failed\":\"Recent changes could not be loaded.\",\"empty_audit\":\"No changes recorded.\",\"public_title\":\"Open this feature to all users?\",\"public_description\":\"This is a high-risk change. Every compatible user will gain access; website features also become available to signed-out visitors.\",\"estimated_audience\":\"Estimated newly enabled signed-in users\",\"confirmation_phrase\":\"Confirmation phrase\",\"reason\":\"Reason\",\"public_reason_placeholder\":\"Explain why this feature is ready for public access\",\"confirm_public\":\"Open to all users\",\"public_committed\":\"Feature is now available to all users.\"},\"feature-flags\":{\"eyebrow\":\"Release controls\",\"title\":\"Feature flags\",\"subtitle\":\"Control deployed behavior for authenticated accounts, run stable percentage rollouts, and inspect experiments without changing security access.\",\"types\":{\"boolean\":\"Boolean\",\"multivariate\":\"Multivariate\"},\"statuses\":{\"draft\":\"Draft\",\"active\":\"Active\",\"paused\":\"Paused\",\"archived\":\"Archived\",\"running\":\"Running\",\"stopped\":\"Stopped\",\"invali
792d\":\"Invalid\",\"insufficient\":\"Insufficient\",\"provisional\":\"Provisional\",\"valid\":\"Valid\",\"no_snapshot\":\"No snapshot\",\"generating\":\"Generating\",\"generation_error\":\"Generation failed\",\"not_ready\":\"Not ready\",\"pass\":\"Pass\",\"fail\":\"Fail\",\"fresh\":\"Fresh\",\"stale\":\"Stale\"},\"tabs\":{\"label\":\"Feature Flag workbench\",\"flags\":\"Flags\",\"experiments\":\"Experiments\",\"audit\":\"Audit\"},\"detail_tabs\":{\"label\":\"Feature Flag detail\",\"overview\":\"Overview\",\"targeting\":\"Targeting\",\"overrides\":\"Overrides\",\"preview\":\"Preview\",\"experiments\":\"Experiments\",\"audit\":\"Audit\"},\"experiment_tabs\":{\"label\":\"Experiment workspace\",\"setup\":\"Setup \u0026 readiness\",\"results\":\"Results\",\"audit\":\"Audit\"},\"actions\":{\"new_flag\":\"New flag\",\"refresh\":\"Refresh\",\"search\":\"Search\",\"apply_filters\":\"Apply filters\",\"retry\":\"Retry\",\"reset_filters\":\"Reset filters\",\"back_to_flags\":\"Back to flags\",\"back_to_templates\":\"Back to templates\",\"back\":\"Back\",\"cancel\":\"Cancel\",\"confirm\":\"Confirm\",\"create_draft\":\"Create draft\",\"save\":\"Save\",\"save_rollout\":\"Save rollout\",\"pause\":\"Pause\",\"resume\":\"Resume\",\"activate\":\"Activate\",\"archive\":\"Archive\",\"edit\":\"Edit\",\"view\":\"View\",\"delete\":\"Delete\",\"add_override\":\"Add override\",\"save_override\":\"Save override\",\"review_impact\":\"Review impact\",\"run_preview\":\"Run preview\",\"new_experiment\":\"New experiment\",\"start_experiment\":\"Start experiment\",\"stop_experiment\":\"Stop experiment\",\"generate_snapshot\":\"Generate snapshot\",\"refresh_snapshot\":\"Refresh snapshot\",\"go_to_configuration\":\"Open setting\",\"open_audit\":\"Open audit\",\"reauthenticate\":\"Sign in again\"},\"states\":{\"loading\":\"Loading Feature Flags\",\"refreshing\":\"Refreshing from the server\",\"refresh_stale\":\"Refresh failed. The visible rows may be stale.\",\"empty\":{\"title\":\"No records yet\",\"description\":\"Create the first item when the required permission is available.\"},\"no_match\":{\"title\":\"No matching records\",\"description\":\"Change or reset the current search and filters.\"},\"error\":{\"title\":\"Could not load this view\",\"description\":\"The previous successful data was not replaced. Retry the server request.\"},\"forbidden\":{\"title\":\"Permission required\",\"description\":\"This view requires an independent Feature Flags administrator permission.\"}},\"filters\":{\"flag_search\":\"Key or name\",\"experiment_search\":\"Flag key\",\"audit_search\":\"Object identity or action\",\"search_placeholder\":\"Search Feature Flags\",\"audit_placeholder\":\"Search redacted audit records\",\"type\":\"Type\",\"lifecycle\":\"Lifecycle\",\"experiment\":\"Experiment\",\"result_status\":\"Result status\",\"result_status_all\":\"All result statuses\",\"object_type\":\"Object type\",\"action\":\"Action\",\"action_placeholder\":\"Exact action, for example flag.pause\",\"actor\":\"Actor reference\",\"actor_placeholder\":\"Exact stable reference or system\",\"actor_reference_invalid\":\"Use the stable actor reference shown in Audit, not a name or email.\",\"from\":\"From (UTC)\",\"to\":\"To (UTC, inclusive)\",\"date_range_invalid\":\"The end date must be on or after the start date.\",\"sort\":\"Sort\",\"types\":{\"all\":\"All types\",\"boolean\":\"Boolean\",\"multivariate\":\"Multivariate\"},\"lifecycles\":{\"all\":\"All lifecycles\",\"draft\":\"Draft\",\"active\":\"Active\",\"paused\":\"Paused\",\"archived\":\"Archived\",\"running\":\"Running\",\"stopped\":\"Stopped\"},\"experiments\":{\"all\":\"Any experiment\",\"none\":\"No experiment\",\"draft\":\"Draft\",\"running\":\"Running\",\"stopped\":\"Stopped\"},\"sorts\":{\"updated_desc\":\"Recently updated\",\"updated_asc\":\"Oldest updated\"}},\"list\":{\"total\":\"{count, plural, =0 {No records} one {# record} other {# records}}\",\"flag\":\"Flag\",\"type\":\"Type\",\"lifecycle\":\"Lifecycle\",\"rollout\":\"Rollout\",\"variants\":\"Variants\",\"experiment\":\"Experiment / result\",\"revision\":\"Revisions\",\"updated\":\"Updated\",\"enrollment\":\"Enrollment ends\",\"primary_metric\":\"Primary metric\",\"actions\":\"Actions\",\"delete_running_blocker\":\"Stop the running experiment first.\",\"archive_success\":\"Feature Flag archived permanently.\"},\"pagination\":{\"label\":\"Pagination\",\"page\":\"Page {page} of {pages}\",\"previous\":\"Previous\",\"next\":\"Next\"},\"audit\":{\"title\":\"Audit\",\"redacted_description\":\"Audit records show stable references, revisions, digests, and reasons. Payload values, prompts, account profiles, salts, buckets, and user lists are not shown.\",\"empty\":\"No audit records are available.\",\"time\":\"Time\",\"actor\":\"Actor\",\"revisions\":\"Before / after revision\",\"digests\":\"Before / after digest\",\"object_types\":{\"all\":\"All objects\",\"flag\":\"Flag\",\"variant\":\"Variant\",\"override\":\"Override\",\"experiment\":\"Experiment\",\"snapshot\":\"Snapshot\"}},\"templates\":{\"title\":\"Create a feature flag\",\"description\":\"Choose a safe starting point. Templates only prefill this browser form and never change production state.\",\"blank\":{\"title\":\"Start from scratch\",\"description\":\"Create a Boolean draft with no random rollout.\"},\"boolean_rollout\":{\"title\":\"Boolean percentage\",\"description\":\"Prepare a Boolean flag for a later stable percentage rollout.\",\"default_name\":\"Percentage rollout\"},\"exact_user\":{\"title\":\"Exact users\",\"description\":\"Create a draft, then select canonical accounts in a separately authorized step.\"},\"multivariate\":{\"title\":\"Multivariate\",\"description\":\"Prepare stable control and treatment Variants with typed payloads.\"},\"multivariate_experiment\":{\"title\":\"Multivariate experiment\",\"description\":\"Create a zero-rollout draft, then configure a separate binary-conversion experiment.\"}},\"permissions\":{\"write_required\":\"Feature Flag write permission is required to create a draft.\",\"read_only_write_required\":\"Read-only access: Feature Flag write permission is required to edit this Flag.\",\"write_followup_required\":\"Write permission is required.\",\"rollout_followup_required\":\"You may create the draft, but rollout permission is required to add an expanding exact-user override.\",\"experiment_followup_required\":\"You may create the draft, but experiment permission is required for the next step.\",\"rollout_required\":\"Rollout permission is required because this change expands who can receive the behavior.\",\"assignment_write_required\":\"Rollout permission is required to change the minimum app version, Variants, weights, or payloads.\",\"rollout_edit_required\":\"Rollout permission is required to increase the percentage audience; write permission can still reduce it.\",\"experiment_required\":\"Experiment permission is required for this action.\",\"experiment_rollout_required\":\"Starting an Experiment also requires rollout permission.\",\"mutation_blocked\":\"Changes are blocked while this page is read only or awaiting recovery.\"},\"create\":{\"title\":\"New Feature Flag\",\"draft_only\":\"First save creates a zero-rollout draft\",\"created\":\"Feature Flag draft created.\",\"first_save_title\":\"First save has no production audience\",\"first_save_description\":\"The server creates only a draft Flag with rollout 0. Exact overrides and draft Experiments are separate operations after a stable Flag identity exists. A later step failing does not und
792o or hide this created Flag.\"},\"fields\":{\"key\":\"Key\",\"user\":\"User\",\"name\":\"Name\",\"description\":\"Description\",\"type\":\"Type\",\"min_app_version\":\"Minimum app version\",\"optional\":\"Optional\",\"all_users\":\"All authenticated active users\",\"basis_points\":\"Basis points\",\"variants\":\"Variants\",\"variant_key\":\"Variant key\",\"weight_basis_points\":\"Weight (basis points)\",\"control\":\"Control\",\"payload_type\":\"Payload type\",\"payload\":\"Typed payload\",\"reason\":\"Change reason\",\"override_value\":\"Override value\",\"variant\":\"Variant\",\"expiry\":\"Expiry\",\"app_version\":\"App version\",\"rolloutBasisPoints\":\"Rollout basis points\",\"minAppVersion\":\"Minimum app version\"},\"payload_types\":{\"string\":\"String\",\"number\":\"Number\",\"boolean\":\"Boolean\",\"json\":\"JSON\"},\"editor\":{\"saved\":\"Saved server state confirmed.\",\"states\":{\"clean\":\"Saved\",\"dirty\":\"Unsaved changes\",\"invalid\":\"Fix validation errors\",\"saving\":\"Saving\",\"saved\":\"Saved\",\"conflict\":\"Conflict requires review\",\"read-only\":\"Read only\",\"archived\":\"Archived\",\"blocked\":\"Session expired\",\"failed\":\"Save failed; draft retained\"},\"identity\":{\"title\":\"Definition\",\"description\":\"Keep identity, compatibility, and value contracts explicit.\",\"key_help\":\"Enter the business key. The flag. prefix is added automatically, and the full key cannot be changed or reused after creation.\",\"key_immutable\":\"Key is immutable and cannot be reused.\",\"type_immutable\":\"Type is immutable after creation.\",\"boolean_description\":\"Returns false or true.\",\"multivariate_description\":\"Returns false or one stable Variant key.\"},\"rollout\":{\"title\":\"Percentage rollout\",\"description\":\"One stable audience percentage after account and version ceilings. This does not grant security access.\",\"boolean_title\":\"Value allocation\",\"boolean_description\":\"When the Flag is active, eligible users without an exact override receive true or false through stable random bucketing. Adjusting the true share automatically fills the remainder with false.\",\"true_share\":\"true share\",\"true_basis_points\":\"true (basis points)\",\"boolean_value_text\":\"true {truePercentage}, false {falsePercentage}\",\"boolean_precision_help\":\"This configures random bucketing only; exact-user overrides are separate. Precision is one basis point (0.01%), and users outside the true allocation receive false.\",\"precision_help\":\"The shared value is an integer from 0 to 10000. One basis point equals 0.01%.\"},\"variants\":{\"title\":\"Variants\",\"description\":\"Order, integer weights, a single control, and typed payloads form the assignment contract.\",\"add\":\"Add Variant\",\"remove\":\"Remove {key}\",\"move_up\":\"Move {key} up\",\"move_down\":\"Move {key} down\",\"control_label\":\"Control Variant\",\"control\":\"Control\",\"treatment\":\"Treatment\",\"locked\":\"Assignment fields are frozen\",\"locked_description\":\"Stop the running Experiment or first save rollout as 0 before changing assignment fields.\",\"running_experiment_blocker\":\"Experiment {experiment} is running. Stop it and close its windows before changing assignment fields.\",\"rollout_blocker\":\"Save rollout as 0 in a separate operation before changing order, weights, payloads, or version eligibility.\",\"stable_key_retained\":\"Saved Variant keys cannot be removed or reused.\",\"add_payload\":\"Add payload\",\"remove_payload\":\"Remove payload\",\"payload_help\":\"JSON is validated from its raw text so duplicate keys are rejected before parsing.\",\"total\":\"Total: {total} basis points ({percentage})\"}},\"validation\":{\"summary_title\":\"Fix these fields before saving\",\"invalid_flag_key\":\"Enter a valid business key of up to 195 characters using lowercase letters, numbers, dots, underscores, or hyphens.\",\"name_required\":\"Name is required.\",\"invalid_semver\":\"Enter a strict semantic version such as 1.2.3.\",\"variants_minimum\":\"A Multivariate Flag needs at least two Variants.\",\"invalid_variant_key\":\"Enter a valid stable Variant key.\",\"duplicate_variant_key\":\"Variant keys must be unique in this Flag.\",\"invali
792d_variant_weight\":\"Variant weight must be an integer from 0 to 10000.\",\"single_control_required\":\"Select exactly one control Variant.\",\"variant_weight_total\":\"Variant weights must total exactly 10000 basis points.\",\"invalid_json\":\"Enter valid JSON.\",\"duplicate_json_key\":\"JSON object keys cannot be duplicated.\",\"invalid_ijson\":\"Payload must be valid I-JSON.\",\"invalid_type\":\"Payload contains an unsupported value.\",\"secret_rejected\":\"Payload resembles a secret or credential and cannot be saved.\",\"payload_required\":\"Enter a payload value.\",\"invalid_number\":\"Enter a finite number.\",\"invalid_boolean\":\"Select true or false.\",\"payload_too_large\":\"Canonical typed payload exceeds 131072 UTF-8 bytes.\",\"invalid_payload\":\"Payload is invalid.\",\"reason_required\":\"Enter a change reason from 1 to 500 characters.\",\"experiment_name_required\":\"Experiment name is required.\",\"experiment_rollout_invalid\":\"Start rollout must be an integer from 1 to 10000 basis points.\",\"experiment_enrollment_invalid\":\"Enrollment end must be a valid future time.\",\"experiment_sample_invalid\":\"Experiment minimum sample must be a positive integer.\",\"experiment_metric_required\":\"Add at least one registered Metric.\",\"experiment_primary_required\":\"Select exactly one primary Metric.\",\"experiment_metric_invalid\":\"Complete every Metric with a unique key, registered event, window, cutoff, and positive minimum sample.\",\"experiment_manifest_required\":\"Add at least one consumer treatment manifest.\",\"experiment_manifest_invalid\":\"Complete every treatment with valid versions, Variant, reference, and sha256 digest.\"},\"reason\":{\"title\":\"Audit reason\",\"create_description\":\"Explain why this Flag is being created. The UI does not insert a default reason.\",\"placeholder\":\"Explain why this managed change is necessary\",\"length\":\"{count} / 500 characters\"},\"dirty_guard\":{\"title\":\"Discard unsaved changes?\",\"description\":\"Your complete local draft is still available. Stay here to keep editing, or explicitly discard it before navigating.\",\"keep_editing\":\"Keep editing\",\"discard\":\"Discard draft\"},\"reauth\":{\"restored_unchanged\":\"Your session is restored and the latest server revision is still r{revision}. Review the retained draft and explicitly retry the action.\",\"recovery_unavailable\":\"The re-authentication draft handoff is missing, expired, or invalid. The latest saved server revision is shown.\",\"storage_failed\":\"The draft could not be stored for re-authentication. Keep this page open and try again.\"},\"recovery\":{\"session_expired\":{\"title\":\"Your session expired\",\"description\":\"Your local draft is retained. Sign in again in a new tab, return here, and explicitly retry the action.\"},\"permission_revoked\":{\"title\":\"Your permission was revoked\",\"description\":\"The server rejected this change. Your local draft remains available to review or copy, but it cannot be submitted until access is restored.\"},\"object_gone\":{\"title\":\"This object is no longer available\",\"description\":\"It may have been removed or become unavailable. Your local draft remains available to review or copy, but it cannot be saved to this object.\"}},\"summary\":{\"effective\":\"Effective now\",\"active_rollout\":\"{rollout} random rollout\",\"inactive_rollout\":\"{lifecycle}; random rollout not served\",\"flag_revision\":\"Flag revision\",\"assignment_revision\":\"Assignment revision\",\"rollout\":\"Effective rollout\",\"experiment\":\"Running Experiment\",\"no_running_experiment\":\"None\"},\"review\":{\"before\":\"Before\",\"after\":\"After\",\"audience\":\"Affected audience\",\"effective_at\":\"Effective\",\"stop_method\":\"How to stop\",\"audit\":\"Audit object\",\"confirm\":\"I reviewed the impact and authorize this change.\",\"definition_title\":\"Review definition change\",\"definition_description\":\"Server validation and CAS run after you confirm this saved definition change.\",\"rollout_title\":\"Review rollout change\",\"rollout_description\":\"Increasing rollout is an audie
792nce expansion. Reductions still require a reason and CAS.\",\"revision_value\":\"Flag revision {revision}\",\"pending_revision\":\"New server revision after commit\",\"assignment_audience\":\"Authenticated active users who pass the version ceiling\",\"metadata_audience\":\"Administrators and future evaluations\",\"after_save\":\"After atomic save and audit commit\",\"next_evaluation\":\"The next server evaluation\",\"immediately\":\"Immediately after atomic commit\",\"pause_or_zero\":\"Pause the Flag or save rollout as 0\",\"pause_or_reduce\":\"Pause or reduce rollout in a separate change\",\"edit_again\":\"Save another metadata change\",\"canonical_active_users\":\"Canonical authenticated active users\",\"all_evaluations\":\"All future evaluations\",\"pause\":\"Emergency Pause\",\"after_start\":\"After atomic Experiment start\",\"assignment_warning\":\"Assignment-affecting changes require rollout 0 and cannot proceed while an Experiment is running.\"},\"conflict\":{\"title\":\"This Flag changed on the server\",\"description\":\"Your draft was not overwritten. Compare the saved base, your local edits, and the latest server revision. Choose whether to discard or explicitly review and reapply your changes.\",\"field\":\"Field\",\"base\":\"Saved base\",\"local\":\"Local draft\",\"latest\":\"Latest server\",\"discard_local\":\"Discard local draft\",\"review_reapply\":\"Review and reapply\",\"retry_latest\":\"Reload latest\",\"latest_load_failed\":\"The latest server revision could not be loaded. Your local draft is still preserved.\",\"experiment_changed\":\"The Experiment changed on the server. Reload and review its latest revision before retrying.\",\"experiment_title\":\"This Experiment changed on the server\",\"experiment_description\":\"The attempted change was not applied. Compare the saved base, your local intent, and the latest server revision before deciding how to continue.\",\"experiment_loading\":\"Loading the latest Experiment revision\",\"experiment_reapply_description\":\"Review and reapply adopts the latest Experiment and Flag revisions while preserving your local intent. You must review and confirm again; the action is never retried automatically.\",\"experiment_fields\":{\"revision\":\"Experiment revision\",\"flagRevision\":\"Flag revision\",\"lifecycle\":\"Lifecycle\",\"snapshotState\":\"Snapshot state\",\"snapshotStatus\":\"Snapshot status\",\"action\":\"Action\",\"name\":\"Name\",\"rolloutBasisPoints\":\"Rollout basis points\",\"enrollmentEndAt\":\"Enrollment end\",\"minimumSampleSize\":\"Minimum sample size\",\"metrics\":\"Metrics\",\"consumerManifests\":\"Consumer manifests\",\"reason\":\"Reason\"}},\"lifecycle\":{\"pause_title\":\"Pause this Flag now?\",\"pause_description\":\"Pause is an independent mutation using the latest saved server revision. Invalid local fields do not block it.\",\"pause_warning\":\"All future evaluations return false. Saved rollout, Variants, and overrides remain available for review.\",\"pause_experiment_warning\":\"All future evaluations return false and the running Experiment is atomically stopped. Unsubmitted exposure tokens become invalid.\",\"resume_separately\":\"Resume requires a separately confirmed expansion.\",\"activate_title\":\"Activate this Flag?\",\"activate_description\":\"Activation makes the current saved assignment available to the configured audience.\",\"archive_title\":\"Archive this Flag permanently?\",\"archive_description\":\"Archive is irreversible. The Flag key and Variant identities remain reserved forever while redacted audit and aggregates remain available.\",\"archive_warning\":\"Archived Flags cannot be restored or reused.\",\"archive_running_blocker\":\"Stop the running Experiment before archiving this Flag.\",\"archive_irreversible\":\"Archive cannot be undone.\",\"danger_zone\":\"Lifecycle danger zone\"},\"overrides\":{\"title\":\"Exact user overrides\",\"description\":\"Overrides bind only to canonical account IDs and permanently exclude that user from random sampling in this assignment revision.\",\"empty\":\"No exact user overrides are configured.\",\"add_title\":\"Add exact user override\",\"edit_title\":\"Edit exact user override\",\"dialog_description\":\"Pin one result for a specific user. Before saving, preview the effective change and its impact on Experiment reporting.\",\"conflict_title\":\"This user override changed on the server\",\"conflict_description\":\"Your user, value, expiry, and reason are preserved. Compare the saved base, local draft, and latest server state before choosing how to continue.\",\"conflict_loading\":\"Loading the latest Flag and user override\",\"conflict_none\":\"None\",\"conflict_reapply_description\":\"Review and reapply adopts the latest Flag and override revisions while preserving your local fields. You must run impact Preview and confirm again; it never retries automatically.\",\"override_revision\":\"Override revision\",\"variant_unavailable\":\"not present in the latest Flag\",\"effective_value_label\":\"Effective value for this user\",\"percentage_bypass_help\":\"After prerequisite checks pass, an exact override skips percentage rollout and keeps returning the selected result until it expires.\",\"lifecycle_notices\":{\"draft\":\"This Flag is a draft. You can save the override now, but it will not take effect until the Flag is active and the account and app-version checks pass.\",\"paused\":\"This Flag is paused. All users return false while paused; this override is evaluated only after the Flag resumes.\",\"archived\":\"This Flag is archived. Exact overrides cannot be added or changed.\"},\"dialog_values\":{\"boolean_off\":\"Return false (feature off)\",\"boolean_on\":\"Return true (feature on)\",\"multivariate_off\":\"Return false (no Variant or Payload)\",\"variant\":\"Pin to {variant} ({role}, {payload}
792)\",\"invalid_multivariate_on\":\"Invalid saved value: on (not supported by Multivariate Flags)\",\"invalid_boolean_variant\":\"Invalid saved value: Variant {variant} (not supported by Boolean Flags)\",\"invalid_variant\":\"Invalid saved value: Variant {variant} (no longer exists)\"},\"variant_roles\":{\"control\":\"control\",\"non_control\":\"non-control Variant\"},\"payload_states\":{\"present\":\"has Payload\",\"absent\":\"no Payload\"},\"selection_help\":{\"boolean_off\":\"This user always returns false and skips percentage rollout.\",\"boolean_on\":\"After lifecycle, account, and app-version checks pass, this user always returns true and skips percentage rollout.\",\"multivariate_off\":\"This user returns false, receives no Variant or Payload, and skips percentage rollout.\",\"variant\":\"After lifecycle, account, and app-version checks pass, this user always receives Variant {variant} ({payload}) and skips percentage rollout.\"},\"invalid_value_help\":\"The saved override value does not match this Flag type. Select a valid result before previewing or saving.\",\"values\":{\"off\":\"Returns false\",\"on\":\"Returns true\",\"variant\":\"Specific Variant\"},\"no_expiry\":\"No expiry\",\"expiry_database_time\":\"After expiry, this user returns to normal rollout evaluation. Server time is authoritative.\",\"excluded\":\"Excluded for this revision\",\"contaminated\":\"Manual contamination\",\"impact_title\":\"Effective result impact\",\"impact_values\":{\"boolean_false\":\"false (feature off)\",\"boolean_true\":\"true (feature on)\",\"multivariate_false\":\"false (no Variant)\",\"variant\":\"{variant} (Variant)\"},\"decision_sources\":{\"missing_flag\":\"Flag does not exist\",\"invalid_definition\":\"Flag definition is invalid\",\"flag_not_active\":\"Flag is not active\",\"inactive_account\":\"Account is inactive\",\"version_required\":\"App version is required\",\"version_invalid\":\"App version is invalid\",\"version_too_low\":\"App version is too low\",\"override_off\":\"Exact override returns false\",\"override_on\":\"Exact override returns true\",\"override_variant\":\"Exact override selects a Variant\",\"invalid_override\":\"Exact override is invalid\",\"rollout_miss\":\"Percentage rollout did not match\",\"rollout_boolean\":\"Boolean percentage rollout matched\",\"rollout_variant\":\"Multivariate percentage rollout matched\"},\"classifications\":{\"expansion\":\"Expansion\",\"restriction\":\"Restriction\"},\"exclusion_warning\":\"Any override history permanently excludes this user from random Experiment sampling for the current assignment revision, even after deletion or expiry.\",\"contamination_warning\":\"This user already has a random exposure. Changing the override marks manual contamination and excludes the user from results.\",\"confirm_impact\":\"I reviewed the effective before/after result and understand that this user is excluded from random Experiment sampling.\",\"delete_title\":\"Delete this override?\",\"delete_description\":\"The production evaluator determines whether deletion expands or restricts effective behavior.\",\"evaluate_after_delete\":\"Production evaluator result after deletion\",\"recreate\":\"Create a new exact override. The existing revision exclusion remains.\"},\"user_search\":{\"label\":\"Search users\",\"placeholder\":\"Search users by name or email\",\"privacy\":\"Search terms and profile fields are sent in the request body and are not stored in this page URL or redacted audit summaries.\",\"searching\":\"Searching users\",\"failed\":\"User search failed. Try again.\",\"retry\":\"Retry search\",\"empty\":\"No users found.\",\"results\":\"User search results\",\"selected\":\"Selected\"},\"preview\":{\"title\":\"Saved assignment preview\",\"description\":\"Use the production evaluator to explain one canonical user's saved result. Preview creates no override, exposure, or conversion.\",\"dirty_title\":\"This page has unsaved changes\",\"dirty_description\":\"Preview uses saved Flag revision {revision}, not the visible local draft.\",\"continue_saved\":\"Continue and preview the saved revision.\",\"no_side_effects\":\"No override, exposure, or conversion is created.\",\"empty\":\"Select a canonical user and run Preview to inspect the saved decision path.\",\"final_value\":\"Final value\",\"decisive_source\":\"Decisive source\",\"version_ceiling\":\"Version ceiling\",\"compatible\":\"Compatible\",\"incompatible\":\"Blocked\",\"override_expiry\":\"Override expiry\",\"rollout_path\":\"Rollout bucket / threshold\",\"variant_interval\":\"Variant interval\",\"evaluated_at\":\"Evaluated at {time} using database time.\"},\"experiments\":{\"title\":\"Experiments\",\"description\":\"Each Experiment has an explicit identity, frozen assignment, readiness, lifecycle, snapshots, and audit trail.\",\"empty\":\"No Experiments are attached to this Flag.\",\"multivariate_only\":\"Experiments require a Multivariate Flag.\",\"zero_rollout_required\":\"Save random rollout as 0 before creating an Experiment.\",\"already_randomized\":\"This assignment revision has already randomly served users.\",\"not_configured\":\"Not configured\",\"action_saved\":\"Experiment state confirmed by the server.\",\"start_blocked\":\"Resolve every readiness blocker before Start.\",\"start_title\":\"Start this Experiment?\",\"start_description\":\"Start atomically freezes the assignment, rollout, Variants, payload digests, manifests, Metrics, time windows, and method version.\",\"start_freeze_warning\":\"Running assignment fields become read only. The Experiment cannot return to draft.\",\"stop_title\":\"Stop this Experiment early?\",\"stop_description\":\"No new exp
792osure tokens are issued. Existing accepted exposures may continue conversion attribution until their frozen windows close.\",\"early_stop_warning\":\"Early termination permanently makes confirmatory results invalid. The Experiment cannot resume.\",\"existing_exposures\":\"Existing accepted random exposures\",\"stop_method\":\"Independent CAS Stop or emergency Flag Pause\",\"no_resume\":\"Stopped Experiments cannot resume.\",\"archive_title\":\"Archive this Experiment permanently?\",\"archive_description\":\"Archive preserves redacted audit and aggregate snapshots while reserving this Experiment identity.\",\"archive_warning\":\"Archive is irreversible and is blocked while running or attribution windows remain open.\",\"archive_running_blocker\":\"Stop the running Experiment before archiving it.\",\"archive_blocked_attribution\":\"Archive becomes available after attribution closes at {date}.\",\"audit_bound\":\"This audit link is bound to Experiment {id}; it never switches to the latest Experiment.\",\"readiness_title\":\"Start readiness\",\"readiness_description\":\"Every frozen-contract prerequisite is shown separately.\",\"frozen_contract_title\":\"Frozen experiment contract\",\"frozen_contract_description\":\"The assignment, Variants, Metrics, treatment manifests, and enrollment terms shown here were frozen when the Experiment started.\",\"ready\":\"Ready\",\"blocked\":\"Blocked\",\"enrollment\":\"Enrollment\",\"started\":\"Started\",\"ends\":\"Enrollment ends\",\"metrics\":\"Metrics\",\"consumer_manifests\":\"Consumer treatment manifests\",\"flag_assignment\":\"Flag assignment\",\"variant_contract\":\"Variant contract\",\"no_payload\":\"No payload\",\"metric_window\":\"Window: {seconds}s · minimum mature sample: {minimum}\",\"duration_seconds\":\"{count, plural, one {# second} other {# seconds}}\",\"duration_minutes\":\"{count, plural, one {# minute} other {# minutes}}\",\"minimum_sample_summary\":\"minimum mature sample {count}\",\"metric_roles\":{\"primary\":\"Primary\",\"secondary\":\"Exploratory secondary\",\"guardrail\":\"Exploratory guardrail\"},\"readiness\":{\"flag\":\"Flag assignment is ready\",\"variants\":\"Variant contract is ready\",\"metric\":\"Primary Metric is ready\",\"manifest\":\"Consumer treatment manifests are ready\",\"enrollment\":\"Enrollment contract is ready\",\"flag_active\":\"Flag is active\",\"rollout_zero\":\"Random rollout is 0 before Start\",\"never_randomized\":\"Assignment revision has never randomly served\",\"positive_variants\":\"At least two positive-weight Variants\",\"single_control\":\"Exactly one control Variant\",\"primary_metric\":\"Exactly one registered primary Metric\",\"consumer_manifest\":\"Consumer treatment manifests are complete\",\"enrollment_window\":\"Enrollment and analysis cutoffs are valid\",\"minimum_samples\":\"Minimum sample prerequisites are frozen\"},\"readiness_reasons\":{\"flag\":\"Flag must be active, Multivariate, rollout 0, and never randomly served.\",\"variants\":\"At least two positive-weight Variants with exactly one control and a total weight of 100% are required.\",\"metric\":\"Exactly one registered primary Metric with a complete analysis window is required.\",\"manifest\":\"Every supported consumer version range must map all positive-weight Variants.\",\"enrollment\":\"A future enrollment end, positive rollout, and positive minimum sample size are required.\"}},\"experiment_editor\":{\"create_title\":\"Create Experiment draft\",\"edit_title\":\"Edit Experiment draft\",\"description\":\"Configure the proposed enrollment, primary binary metric, and versioned consumer treatments. Nothing is randomized until a separate Start confirmation.\",\"edit_action\":\"Edit draft\",\"create_draft\":\"Create Experiment draft\",\"name\":\"Experiment name\",\"rollout\":\"Start rollout (basis points)\",\"enrollment_end\":\"Enrollment ends\",\"minimum_sample\":\"Experiment minimum sample\",\"add_metric\":\"Add Metric\",\"remove_metric\":\"Remove Metric\",\"metric_key\":\"Metric key\",\"metric_name\":\"Metric name\",\"primary_conversion\":\"Primary conversion\",\"metric_role\":\"Metric role\",\"event_key\":\"Registered event key\",\"select_event\":\"Select a registered event\",\"event_source\":\"Event source\",\"conversion_window\":\"Conversion window (seconds)\",\"privacy_class\":\"Privacy class\",\"analysis_cutoff\":\"Analysis cutoff\",\"metric_minimum_sample\":\"Metric minimum sample\",\"add_manifest\":\"Add treatment\",\"remove_manifest\":\"Remove treatment\",\"consumer_context\":\"Consumer context\",\"consumer_build\":\"Consumer build\",\"min_consumer_version\":\"Minimum consumer version\",\"max_consumer_version\":\"Maximum version (optional)\",\"select_variant\":\"Select Variant\",\"treatment_ref\":\"Treatment reference\",\"treatment_digest\":\"Treatment digest\"},\"results\":{\"method_version\":\"Method version\",\"no_snapshot_description\":\"No immutable result snapshot is available. Generate one with an explicit reason when permission allows.\",\"generating_description\":\"A new immutable snapshot is being generated from server facts. Any previous snapshot remains visible and is not presented as the latest result.\",\"generation_error_description\":\"The latest snapshot generation failed. Any previous immutable snapshot remains visible; retry with an explicit reason when permission allows.\",\"generate_title\":\"Generate a result snapshot?\",\"generate_description\":\"Snapshot generation is an independent, auditable mutation. An existing snapshot remains visible if generation fails.\",\"new_snapshot\":\"New immutable snapshot from current server facts\",\"generated_at\":\"Generated\",\"cutoff\":\"Analysis cutoff\",\"next_recompute\":\"Next recompute\",\"fact_revision\":\"Fact revision\",\"exposure_watermark\":\"Exposure watermark\",\"conversion_watermark\":\"Conversion watermark\",\"no_winner\":\"Result status and data quality do not declare a winner, causal conclusion, or automatic rollout action.\",\"quality_title\":\"Data quality\",\"assignment_exclusions\":\"Assignment exclusions\",\"manual_contamination\":\"Manual contamination\",\"cross_variant_contamination\":\"Cross-Variant contamination\",\"immature_windows\":\"Immature windows\",\"manifest_mismatch\":\"Manifest mismatches\",\"data_gaps\":\"Data gaps\",\"srm_table\":\"Sample ratio mismatch expected and observed counts\",\"expected\":\"Expected\",\"observed\":\"Observed\",\"erasure_adjusted\":\"Adjusted after account erasure\",\"variant_results\":\"Variant results\",\"variant_table\":\"Variant exposure and conversion results\",\"metric_results\":\"Metric results\",\"metric_variant_table\":\"Variant exposure and conversion results for {metric}\",\"exploratory_description\":\"Exploratory only. This Metric is outside the confirmatory primary family and must not be interpreted as confirmatory evidence.\",\"random_exposures\":\"Random exposures\",\"mature_denominator\":\"Mature denominator\",\"conversions\":\"Conversions\",\"rate\":\"Rate\",\"wilson_interval\":\"Wilson 95% interval\",\"comparisons\":\"Treatment versus control\",\"no_comparisons\":\"No comparisons are available.\",\"absolute_difference\":\"Absolute risk difference\",\"newcombe_interval\":\"Newcombe 95% interval\",\"relative_lift\":\"Relative lift\",\"raw_p_value\":\"Raw p-value\",\"holm_p_value\":\"Holm-adjusted p-value\",\"not_calculated\":\"Not calculated / insufficient sample\"},\"errors\":{\"load_failed\":\"Could not load Feature Flag data.\",\"save_failed\":\"The change failed. Your local draft was retained.\",\"archive_conflict\"
792:\"This Feature Flag changed elsewhere. The list was refreshed; review it and try again.\",\"preview_failed\":\"Preview failed. No side effect was created.\"}},\"tools\":{\"prompt_converter\":{\"title\":\"Prompt Payload Converter\",\"description\":\"Bilingual AoE Guidelines and Feature Flag JSON payload\",\"contract\":\"Contract\",\"local_only\":\"Content is processed only in this browser\",\"actions\":{\"generate_json\":\"Generate JSON\",\"extract_markdown\":\"Extract Markdown\",\"format_json\":\"Format\",\"import_markdown\":\"Import .md\",\"copy_markdown\":\"Copy Markdown\",\"download_markdown\":\"Download Markdown\",\"copy_json\":\"Copy JSON\",\"download_json\":\"Download JSON\"},\"markdown\":{\"title\":\"Markdown Sources\",\"english\":\"English\",\"chinese\":\"Chinese\",\"editor_label\":\"{language} Markdown\",\"english_placeholder\":\"Paste the complete English AoE Guidelines\",\"chinese_placeholder\":\"Paste the complete Chinese AoE Guidelines\",\"characters\":\"{count} characters\",\"placeholder_compatible\":\"Placeholder precheck passed\",\"english_required\":\"English Markdown is required.\",\"chinese_required\":\"Chinese Markdown is required.\"},\"json\":{\"title\":\"JSON Payload Value\",\"description\":\"Ready for the candidate JSON Payload field\",\"editor_label\":\"JSON Payload Value\",\"placeholder\":\"Paste a payload value or full typed payload\",\"valid\":\"Valid structure\",\"matches_markdown\":\"Matches the Markdown sources\",\"differs_from_markdown\":\"Differs from the Markdown sources\",\"empty\":\"Generate or paste JSON\",\"payload_size\":\"Full payload: {current} / {limit} UTF-8 bytes\",\"payload_too_large\":\"The full payload exceeds the {limit} UTF-8 byte limit.\"}
792,\"errors\":{\"invalid_json\":\"JSON is invalid.\",\"root_object_required\":\"The JSON root must be an object.\",\"unexpected_field\":\"Unsupported field: {path}.\",\"invalid_envelope\":\"A full typed payload must contain exactly type and value.\",\"invalid_payload_value\":\"The payload value must be an object containing only contractVersion and sourceByLanguage.\",\"invalid_payload_type\":\"The typed payload type must be json.\",\"invalid_contract_version\":\"contractVersion must be aoe-guidelines/v1.\",\"invalid_source_by_language\":\"sourceByLanguage must be an object containing only en and zh.\",\"language_missing\":\"The {language} Markdown source is missing.\",\"language_type_invalid\":\"The {language} Markdown source must be a string.\",\"language_empty\":\"The {language} Markdown source is empty.\",\"unknown_placeholder\":\"The {language} Markdown contains unsupported placeholders: {placeholders}. Allowed: {allowed}.\",\"malformed_placeholder\":\"The {language} Markdown contains malformed placeholder syntax. Use {syntax}.\",\"feature_tool_rules_count\":\"The {language} Markdown must contain {slot} exactly once (found {count}).\",\"feature_tool_rules_location\":\"{slot} in the {language} Markdown must be inside the capability-boundary segment.\",\"file_read_failed\":\"The Markdown file could not be read.\"},\"toasts\":{\"sources_required\":\"Complete both the English and Chinese Markdown sources.\",\"json_required\":\"Paste or generate JSON first.\",\"json_generated\":\"JSON generated from both Markdown sources.\",\"markdown_extracted\":\"Both Markdown sources were extracted from JSON.\",\"markdown_extracted_with_issues\":\"Markdown extracted. Fix the placeholder issues before generating JSON.\",\"json_formatted\":\"JSON formatted as a payload value.\",\"copied\":\"Copied {target}.\",\"copy_failed\":\"Copy failed.\",\"download_started\":\"Downloaded {target}.\",\"markdown_imported\":\"Imported {language} Markdown.\"}}},\"sidebar\":{\"header\":{\"brand\":{\"title\":\"ShipAny Two\",\"logo\":{\"src\":\"/logo.svg\",\"alt\":\"ShipAny Two\"},\"url\":\"/admin\"},\"show_trigger\":false,\"version\":\"1.6.0\"},\"main_navs\":[{\"title\":\"System\",\"items\":[{\"title\":\"Users \u0026 Permissions\",\"icon\":\"User\",\"is_expand\":true,\"children\":[{\"title\":\"Users\",\"url\":\"/admin/users\",\"icon\":\"User\",\"permission\":\"admin.users.read\"},{\"title\":\"Roles\",\"url\":\"/admin/roles\",\"icon\":\"Users\",\"permission\":\"admin.roles.read\"},{\"title\":\"Permissions\",\"url\":\"/admin/permissions\",\"icon\":\"ShieldCheck\",\"permission\":\"admin.permissions.read\"},{\"title\":\"Feature Access\",\"url\":\"/admin/feature-access\",\"icon\":\"ToggleRight\",\"permission\":\"admin.feature-access.read\"},{\"title\":\"Feature Flags\",\"url\":\"/admin/feature-flags\",\"icon\":\"Flag\",\"permission\":\"admin.feature-flags.read\"}]},{\"title\":\"Pages \u0026 Content\",\"icon\":\"FileText\",\"children\":[{\"title\":\"Categories\",\"icon\":\"Folder\",\"url\":\"/admin/categories\",\"permission\":\"admin.categories.read\"},{\"title\":\"Posts\",\"icon\":\"FileText\",\"url\":\"/admin/posts\",\"permission\":\"admin.posts.read\"}]},{\"title\":\"Payments \u0026 Credits\",\"icon\":\"DollarSign\",\"children\":[{\"title\":\"Payments\",\"url\":\"/admin/payments\",\"icon\":\"DollarSign\",\"permission\":\"admin.payments.read\"},{\"title\":\"Subscriptions\",\"url\":\"/admin/subscriptions\",\"icon\":\"CreditCard\",\"permission\":\"admin.subscriptions.read\"},{\"title\":\"Credits\",\"url\":\"/admin/credits\",\"icon\":\"Coins\",\"permission\":\"admin.credits.read\"},{\"title\":\"Invite Codes\",\"url\":\"/admin/invite-codes\",\"icon\":\"Ticket\",\"permission\":\"admin.invite-codes.read\"},{\"title\":\"Gift Cards\",\"url\":\"/admin/gift-cards\",\"icon\":\"Gift\",\"permission\":\"admin.gift-cards.read\"},{\"title\":\"Credit Campaigns\",\"url\":\"/admin/credit-campaigns\",\"icon\":\"Sparkles\",\"permission\":\"admin.settings.read\"}]}]},{\"title\":\"Business\",\"items\":[{\"title\":\"AI Tasks\",\"url\":\"/admin/ai-tasks\",\"icon\":\"Brain\",\"permission\":\"admin.ai-tasks.read\"},{\"title\":\"Combo Management\",\"url\":\"/developer/combo-admin\",\"icon\":\"Package\",\"permission\":\"admin.combo.read\"}
792,{\"title\":\"Workflow Management\",\"url\":\"/developer/workflow-admin\",\"icon\":\"Workflow\",\"permission\":\"admin.workflow-store.review\"},{\"title\":\"Workbench Management\",\"url\":\"/developer/workbench-admin\",\"permission\":\"admin.workbench-store.review\",\"icon\":\"LayoutGrid\"},{\"title\":\"User Groups\",\"url\":\"/admin/workflow-store/audiences\",\"icon\":\"Users\",\"permission\":\"admin.workflow-store.audience.read\"},{\"title\":\"AI Chats\",\"url\":\"/admin/chats\",\"icon\":\"MessageCircle\",\"permission\":\"admin.ai-tasks.read\"},{\"title\":\"Notifications\",\"url\":\"/admin/notifications\",\"icon\":\"Bell\",\"permission\":\"admin.notifications.read\"},{\"title\":\"EDM\",\"url\":\"/admin/edm\",\"icon\":\"Mail\",\"permission\":\"admin.edm.read\"}]},{\"title\":\"Common Tools\",\"items\":[{\"title\":\"Prompt MD / JSON Converter\",\"url\":\"/admin/tools/prompt-converter\",\"icon\":\"ArrowLeftRight\",\"permission\":\"admin.feature-flags.read\"}]}],\"bottom_nav\":{\"items\":[{\"title\":\"Settings\",\"url\":\"/admin/settings/general\",\"icon\":\"Settings\",\"permission\":\"admin.settings.read\"},{\"title\":\"API Keys\",\"url\":\"/admin/apikeys\",\"icon\":\"Key\",\"permission\":\"admin.apikeys.read\"}]},\"user\":{\"nav\":{\"items\":[{\"title\":\"Profile\",\"url\":\"/settings/profile\",\"icon\":\"User\",\"target\":\"_blank\"}]},\"show_email\":false,\"show_signout\":true,\"signout_callback\":\"/\"},\"footer\":{\"nav\":{\"items\":[{\"title\":\"Home\",\"url\":\"/\",\"icon\":\"Home\",\"target\":\"_blank\"},{\"title\":\"GitHub\",\"url\":\"https://github.com/your-app-name\",\"icon\":\"Github\",\"target\":\"_blank\"},{\"title\":\"Twitter\",\"url\":\"https://twitter.com/your-app-name\",\"icon\":\"RiTwitterXFill\",\"target\":\"_blank\"},{\"title\":\"Discord\",\"url\":\"https://discord.gg/your-app-name\",\"icon\":\"RiDiscordFill\",\"target\":\"_blank\"},{\"title\":\"Email\",\"url\":\"mailto:[email protected]\",\"icon\":\"Mail\",\"target\":\"_blank\"}]},\"show_theme\":false,\"show_locale\":false},\"variant\":\"sidebar\"},\"users\":{\"fields\":{\"id\":\"ID\",\"name\":\"Name\",\"avatar\":\"Avatar\",\"email\":\"Email\",\"entry_source\":\"Entry Source\",\"invite_source\":\"Invite Source\",\"utm_source\":\"UTM Source\",\"utm_medium\":\"UTM Medium\",\"utm_campaign\":\"UTM Campaign\",\"email_verified\":\"Email Verified\",\"remaining_credits\":\"Remaining Credits\",\"used_credits\":\"Used Credits\",\"conversation_count\":\"Conversations\",\"created_at\":\"Created At\",\"paid_status\":\"Paid\",\"first_paid_at\":\"First Paid At\",\"last_paid_at\":\"Last Paid At\",\"actions\":\"Actions\",\"roles\":\"Roles\",\"tags\":\"Tags\",\"manual_subscription\":\"Manual Subscription\",\"manual_subscription_active\":\"Manual Subscription Override\",\"manual_subscription_active_tip\":\"When enabled and not expired, desktop billing status falls back to active and NewAPI is synced to the subscription VIP group.\",\"manual_subscription_expires_at\":\"Manual Subscription Expires At\",\"manual_subscription_expires_at_tip\":\"Time zone: Beijing (UTC+8). Leave empty for no expiration.\"},\"manual_subscription\":{\"no_expiration\":\"No expiration\",\"status\":{\"active\":\"Active\",\"expired\":\"Expired\",\"off\":\"Off\"}},\"paid_status\":{\"paid\":\"Paid\",\"unpaid\":\"Unpaid\",\"summary\":\"{count} orders / {amount} {currency}\"},\"list\":{\"title\":\"Users\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\"},\"buttons\":{\"add\":\"Add User\",\"edit\":\"Edit User\",\"view\":\"View User\",\"view_info\":\"View Info\",\"delete\":\"Delete User\",\"edit_roles\":\"Edit Roles\",\"change_context\":\"Change Context\",\"increase_quota\":\"Increase Credits\",\"batch_increase_quota\":\"Bulk Increase Credits\",\"batch_tags\":\"Bulk Tags\"},\"selection\":{\"selected\":\"Selected\",\"copy_selected\":\"Copy selected emails\",\"copied_message\":\"Copied {count} emails\"},\"search\":{\"keyword\":{\"title\":\"Search\",\"placeholder\":\"Email / Name / User ID / Invite Code\"}},\"column_visibility\":{\"trigger\":\"Columns\",\"title\":\"Show columns\",\"reset\":\"Reset default\"},\"column_filters\":{\"text_placeholder\":\"Filter…\",\"all\":\"All\",\"clear\":\"Clear filter\",\"date_from\":\"From date (Beijing time)\",\"date_to\":\"To date (Beijing time)\",\"verified\":\"Verified\",\"unverified\":\"Unverified\",\"non_empty\":\"Non-empty\"},\"stats\":{\"last_24h\":\"Last 24h\",\"last_7d\":\"Last 7 days\",\"last_30d\":\"Last 30 days\",\"people\":\"{count} new users\",\"hint\":\"New registrations from active accounts\"},\"tag_filter\":{\"trigger\":\"Filter by tags\",\"all\":\"All tags\",\"empty\":\"No tags yet\",\"clear\":\"Clear tag filter\"},\"invite_source\":{\"system_code\":\"System invite code: {code}\"}}
792,\"increase_quota\":{\"title\":\"Increase Credits\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"increase_quota\":\"Increase Credits\"},\"fields\":{\"quota\":\"Credits\",\"pool_type\":\"Pool Type\",\"expire_at\":\"Expire At (optional)\",\"expire_at_tip\":\"Time zone: Beijing (UTC+8). Leave empty for no expiration.\",\"message\":\"Message\",\"message_placeholder\":\"Reason / note (optional)\"},\"pool_types\":{\"event\":\"event\",\"daily\":\"daily\",\"subscription\":\"subscription\",\"addon\":\"addon\",\"free\":\"free\"},\"buttons\":{\"submit\":\"Increase\"}},\"grant_credits\":{\"title\":\"Grant Credits\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"grant_credits\":\"Grant Credits\"},\"fields\":{\"credits\":\"Credits\",\"valid_days\":\"Validity (days)\",\"valid_days_tip\":\"Leave empty or set to 0 for the default validity period.\",\"description\":\"Description\",\"description_placeholder\":\"Grant reason / note (optional)\"},\"buttons\":{\"submit\":\"Grant Credits\"}},\"batch_increase_quota\":{\"title\":\"Bulk Increase Credits\",\"description\":\"Grant NewAPI credits to the currently selected users in one batch.\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"batch_increase_quota\":\"Bulk Increase Credits\"},\"summary\":{\"selected_count\":\"Selected Users\"},\"fields\":{\"selected_users\":\"Selected Users\"},\"buttons\":{\"submit\":\"Increase in Batch\"},\"messages\":{\"no_users\":\"No valid users were selected\",\"success\":\"Credits granted successfully\"}},\"batch_tags\":{\"title\":\"Bulk Tag Users\",\"description\":\"Add or remove user tags for the currently selected users.\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"batch_tags\":\"Bulk Tags\"},\"summary\":{\"selected_count\":\"Selected Users\"},\"fields\":{\"selected_users\":\"Selected Users\",\"mode\":\"Action\",\"tags\":\"Tags\",\"tags_placeholder\":\"Type a tag and press Enter; use commas for multiple tags\",\"tags_tip\":\"Existing tags:\",\"tags_tip_empty\":\"No tags exist yet. New tags will be created on submit.\"},\"modes\":{\"add\":\"Add Tags\",\"remove\":\"Remove Tags\"},\"buttons\":{\"submit\":\"Apply\",\"submitting\":\"Applying...\"},\"messages\":{\"no_users\":\"No valid users were selected\",\"no_tags\":\"Select or enter tags\",\"add_success\":\"Tags added successfully\",\"remove_success\":\"Tags removed successfully\"},\"dialog\":{\"title\":\"Bulk Tag Users\",\"description\":\"Add or remove tags for the selected users without leaving the users list.\",\"existing_trigger\":\"Select existing tags\",\"existing_label\":\"Existing tags\",\"empty_existing\":\"No existing tags\",\"new_placeholder\":\"Type a new tag and press Enter; use commas for multiple tags\"}},\"edit\":{\"title\":\"Edit User\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"edit\":\"Edit\"},\"buttons\":{\"submit\":\"Update\"}},\"edit_roles\":{\"title\":\"Edit Roles\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"edit_roles\":\"Edit Roles\"},\"buttons\":{\"submit\":\"Update\"}},\"context\":{\"title\":\"Change Context\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"context\":\"Change Context\"},\"summary\":{\"user\":\"User\",\"user_id\":\"User ID\"},\"editor\":{\"title\":\"userContext JSON\",\"description\":\"Edit the full userContext object. The root value must be a JSON object.\"},\"buttons\":{\"format\":\"Format\",\"reset\":\"Reset\",\"copy\":\"Copy\",\"save\":\"Save\",\"saving\":\"Saving...\"},\"messages\":{\"invalid_json\":\"Invalid JSON\",\"root_object_required\":\"Root value must be a JSON object\",\"no_changes\":\"No unsaved changes\",\"copied\":\"Copied\",\"copy_failed\":\"Failed to copy\",\"save_success\":\"User context saved\",\"save_failed\":\"Failed to save user context\",\"clear_confirm\":\"This will clear the entire userContext. Continue?\",\"large_delete_confirm\":\"This removes several top-level keys from userContext. Continue?\"}},\"view_info\":{\"title\":\"Session Info\",\"description\":\"View this user's NewAPI conversation session consumption.\",\"crumbs\":{\"admin\":\"Admin\",\"users\":\"Users\",\"view_info\":\"View Info\"},\"summary\":{\"user\":\"User\",\"newapi_user_id\":\"NewAPI User ID\"},\"basic_info\":{\"title\":\"Basic Information\",\"description\":\"Account, payment, credit, and referral overview.\",\"username\":\"Username\",\"registered_at\":\"Registered At\",\"paid_user\":\"Paid User\",\"paid\":\"Paid\",\"unpaid\":\"Not Paid\",\"last_paid_at\"
792:\"Last Paid At\",\"credits\":\"Credits\",\"remaining_credits\":\"Remaining\",\"used_credits\":\"Used\",\"invited_users\":\"Invited Users\",\"invite_count\":\"{count} users invited\",\"invitee\":\"Invitee\",\"payment_status\":\"Payment Status\",\"no_invited_users\":\"No invited users yet.\",\"showing_first\":\"Showing the first {shown} of {total} invited users.\"},\"fields\":{\"session_title\":\"Session Title\",\"transaction_count\":\"Request Count\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\",\"net_consumed\":\"Consumed Credits\"},\"empty\":\"No conversation sessions found\",\"messages\":{\"user_not_bound\":\"This user is not bound to a NewAPI user ID\",\"load_failed\":\"Failed to load session info\"},\"trace\":{\"title\":\"Session Trace\",\"preview\":\"Trace Preview\",\"remote_preview\":\"Remote trace preview\",\"description\":\"Inspect this session's execution from agent and NewAPI trace spans.\",\"summary\":{\"title\":\"Session Summary\",\"session_id\":\"Session ID\",\"session_title\":\"Session Title\",\"net_consumed\":\"Consumed Credits\",\"trace_count\":\"Trace Count\"},\"spans\":{\"title\":\"Span Timeline\",\"description\":\"Data comes from trace spans in SigNoz ClickHouse.\"},\"conversation\":{\"title\":\"Conversation\",\"description\":\"Grouped by turn: user input, tool calls, and assistant output.\",\"turn\":\"Turn\",\"llm_requests\":\"LLM requests\",\"llm_request\":\"LLM request\",\"tool_calls\":\"Tool calls\",\"user\":\"User\",\"assistant\":\"Assistant\",\"returned_text\":\"Returned text\"},\"gateway\":{\"title\":\"NewAPI gateway requests\",\"description\":\"This session is represented by NewAPI gateway spans rather than agent turn spans.\",\"request\":\"Gateway request\"},\"actions\":{\"show\":\"show\",\"hide\":\"hide\"},\"fields\":{\"timestamp\":\"Time\",\"name\":\"Span\",\"status\":\"Status\",\"duration\":\"Duration\",\"trace\":\"Trace\",\"model\":\"Model\",\"provider\":\"Provider\",\"channel\":\"Channel\",\"transport\":\"Transport\",\"request_id\":\"Request ID\",\"first_byte\"
792:\"First byte\",\"upstream_duration\":\"Upstream duration\",\"response_bytes\":\"Response bytes\",\"chunks\":\"Chunks\",\"retries\":\"Retries\",\"request_sha\":\"Request SHA\",\"message_id\":\"Message ID\",\"generation\":\"Generation\",\"tools\":\"Tools\",\"tool\":\"Tool\",\"type\":\"Type\",\"error_type\":\"Error type\",\"failure_category\":\"Failure category\",\"input_tokens\":\"Input tokens\",\"output_tokens\":\"Output tokens\",\"turn_input_tokens\":\"Turn input tokens\",\"turn_output_tokens\":\"Turn output tokens\",\"total_tokens\":\"Total tokens\",\"cached_tokens\":\"Cached tokens\",\"cache_creation_tokens\":\"Cache creation tokens\",\"payload\":\"Tool Call\"},\"empty\":\"No trace was found for this session\",\"query_timeout\":\"The trace query took too long. Narrow the session time range or try again later.\",\"too_large\":\"This trace is larger than the 20 MiB admin viewer limit. Open it in SigNoz/ClickHouse or narrow the query before retrying.\"}}},\"roles\":{\"fields\":{\"id\":\"ID\",\"name\":\"Name\",\"title\":\"Title\",\"description\":\"Description\",\"status\":\"Status\",\"sort\":\"Sort\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\",\"permissions\":\"Permissions\",\"actions\":\"Actions\"},\"list\":{\"title\":\"Roles\",\"crumbs\":{\"admin\":\"Admin\",\"roles\":\"Roles\"},\"buttons\":{\"create\":\"Create Role\",\"edit\":\"Edit Role\",\"edit_permissions\":\"Edit Permissions\",\"delete\":\"Delete Role\"}},\"edit\":{\"title\":\"Edit Role\",\"crumbs\":{\"admin\":\"Admin\",\"roles\":\"Roles\",\"edit\":\"Edit Role\"},\"buttons\":{\"submit\":\"Update\"}},\"edit_permissions\":{\"title\":\"Edit Permissions\",\"crumbs\":{\"admin\":\"Admin\",\"roles\":\"Roles\",\"edit_permissions\":\"Edit Permissions\"},\"buttons\":{\"submit\":\"Update\"}}},\"permissions\":{\"fields\":{\"id\":\"ID\",\"code\":\"Code\",\"title\":\"Title\",\"resource\":\"Resource\",\"action\":\"Action\",\"description\":\"Description\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\"},\"list\":{\"title\":\"Permissions\",\"crumbs\":{\"admin\":\"Admin\",\"permissions\":\"Permissions\"}}},\"categories\":{\"fields\":{\"slug\":\"Slug\",\"title\":\"Title\",\"description\":\"Description\",\"status\":\"Status\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\"},\"list\":{\"title\":\"Categories\",\"crumbs\":{\"admin\":\"Admin\",\"categories\":\"Categories\"},\"buttons\":{\"add\":\"Add Category\",\"edit\":\"Edit Category\",\"view\":\"View Category\",\"delete\":\"Delete Category\"},\"tabs\":{\"all\":\"All\",\"published\":\"Published\",\"pending\":\"Pending\",\"draft\":\"Draft\",\"archived\":\"Archived\"}},\"add\":{\"title\":\"Add Category\",\"crumbs\":{\"admin\":\"Admin\",\"categories\":\"Categories\",\"add\":\"Add Category\"},\"buttons\":{\"submit\":\"Add Category\"}},\"edit\":{\"title\":\"Edit Category\",\"crumbs\":{\"admin\":\"Admin\",\"categories\":\"Categories\",\"edit\":\"Edit Category\"},\"buttons\":{\"submit\":\"Edit Category\"}}},\"posts\":{\"fields\":{\"slug\":\"Slug\",\"title\":\"Title\",\"description\":\"Description\",\"image\":\"Image\",\"content\":\"Content\",\"categories\":\"Categories\",\"tags\":\"Tags\",\"is_featured\":\"Featured\",\"related_combo\":\"Related Combo\",\"related_combo_placeholder\":\"Select a combo\",\"related_combo_search\":\"Search combos...\",\"related_blog\":\"Related Article\",\"related_blog_placeholder\":\"Select an article\",\"related_blog_search\":\"Search articles...\",\"author_name\":\"Author Name\",\"author_role\":\"Author Role\",\"author_image\":\"Author Image\",\"status\":\"Status\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\",\"deleted_at\":\"Deleted At\"},\"list\":{\"title\":\"Posts\",\"crumbs\":{\"admin\":\"Admin\",\"posts\":\"Posts\"},\"buttons\":{\"add\":\"Add Post\",\"edit\":\"Edit Post\",\"view\":\"View Post\",\"delete\":\"Delete Post\"},\"tabs\":{\"all\":\"All\",\"published\":\"Published\",\"pending\":\"Pending\",\"draft\":\"Draft\",\"archived\":\"Archived\"}},\"add\":{\"title\":\"Add Post\",\"crumbs\":{\"admin\":\"Admin\",\"posts\":\"Posts\",\"add\":\"Add Post\"},\"buttons\":{\"submit\":\"Add Post\"}},\"edit\":{\"title\":\"Edit Post\",\"crumbs\":{\"admin\":\"Admin\",\"posts\":\"Posts\",\"edit\":\"Edit Post\"},\"buttons\":{\"submit\":\"Edit Post\"}},\"delete\":{\"title\":\"Delete Post\",\"description\":\"This action will archive the post and set deleted time. You can restore it later from the database if needed.\",\"crumbs\":{\"admin\":\"Admin\",\"posts\":\"Posts\",\"delete\":\"Delete Post\"},\"buttons\":{\"submit\":\"Delete Post\"}}},\"payments\":{\"fields\":{\"order_no\":\"Order No\",\"user\":\"User\",\"amount\":\"Amount\",\"product\":\"Product\",\"description\":\"Description\",\"type\":\"Type\",\"provider\":\"Provider\",\"created_at\":\"Created At\",\"status\":\"Status\",\"action\":\"Action\"},\"list\":{\"title\":\"Payments\",\"crumbs\":{\"admin\":\"Admin\",\"payments\":\"Payments\"},\"tabs\":{\"all\":\"All\",\"subscription\":\"Subscription\",\"one-time\":\"One-Time\",\"renew\":\"Renew\"},\"stats\":{\"last_24h\":\"Last 24h\",\"last_7d\":\"Last 7 days\",\"last_30d\":\"Last 30 days\",\"people\":\"{count} paying users\",\"hint\":\"Distinct users with paid orders, renewals excluded\"}
792,\"filters\":{\"status\":{\"title\":\"Status\",\"options\":{\"all\":\"All\",\"paid\":\"Paid\",\"created\":\"Created\",\"failed\":\"Failed\"}},\"provider\":{\"title\":\"Provider\",\"options\":{\"all\":\"All\",\"stripe\":\"Stripe\",\"creem\":\"Creem\",\"lemonsqueezy\":\"Lemonsqueezy\",\"paypal\":\"Paypal\"}}},\"search\":{\"keyword\":{\"title\":\"Keyword\",\"placeholder\":\"Order No / Email / Name / User ID\"},\"order_no\":{\"title\":\"Order No\",\"placeholder\":\"Order No\"}}}},\"subscriptions\":{\"fields\":{\"subscription_no\":\"Subscription No\",\"user\":\"User\",\"amount\":\"Amount\",\"interval\":\"Interval\",\"provider\":\"Provider\",\"created_at\":\"Created At\",\"current_period_start\":\"Current Period Start\",\"current_period_end\":\"Current Period End\",\"status\":\"Status\",\"description\":\"Description\",\"action\":\"Action\"},\"list\":{\"title\":\"Subscriptions\",\"crumbs\":{\"admin\":\"Admin\",\"subscriptions\":\"Subscriptions\"},\"tabs\":{\"all\":\"All\",\"month\":\"Month\",\"year\":\"Year\"}}},\"credits\":{\"fields\":{\"transaction_no\":\"Transaction No\",\"user\":\"User\",\"amount\":\"Amount\",\"remaining\":\"Remaining\",\"type\":\"Type\",\"scene\":\"Scene\",\"description\":\"Description\",\"created_at\":\"Created At\",\"expires_at\":\"Expires At\",\"metadata\":\"Metadata\",\"action\":\"Action\"},\"list\":{\"title\":\"Credits\",\"crumbs\":{\"admin\":\"Admin\",\"credits\":\"Credits\"},\"tabs\":{\"all\":\"All\",\"grant\":\"Grant\",\"consume\":\"Consume\"}}},\"credit-campaigns\":{\"title\":\"Campaign rewards\",\"crumb_admin\":\"Admin\",\"tabs_config\":\"Configuration\",\"tabs_stats\":\"Stats\",\"description\":\"Edit the full campaign JSON on the left (every field explicit and editable); the right shows a live preview of the client card. Click or select a step's JSON and the preview follows it. Changes take effect on clients within a minute after saving. Note: enabled=false only stops the campaign — first-login credits fall back to the legacy one-shot grant (amount from the newapi_first_login_credits_amount system config; the master switch newapi_first_login_credits_enabled must stay on). Users granted before enabling are never re-granted day 1. startsAt is the participation cutoff: only users who registered after it take part — earlier users never receive retroactive grants (the editor auto-fills it with the current time when unset).\",\"json_editor\":\"Campaign JSON\",\"invalid_json\":\"Invalid JSON: {message}\",\"parsed_ok\":\"Valid JSON · {steps} steps\",\"preview\":\"Live preview\",\"preview_step\":\"Step {index} · {key} · {mode} · {hours}h after signup\",\"preview_state_claimable\":\"Claimable\",\"preview_state_granted\":\"Granted\",\"preview_state_success\":\"Claimed\",\"preview_help\":\"The preview shares the production config parser and copy interpolation; placeholders like {amount} and {day_2Amount} resolve to real amounts. Adjust afterHours (cumulative hours since signup) to change step intervals.\",\"preview_empty\":\"Fix the JSON to see the card preview.\",\"copy_zh\":\"中文\",\"copy_en\":\"English\",\"mode_automatic\":\"Automatic\",\"mode_manual\":\"Manual claim\",\"save\":\"Save\",\"saving\":\"Saving…\",\"saved\":\"Saved\",\"save_failed\":\"Save failed\",\"stats_registered\":\"Registered users\",\"stats_active\":\"Entered campaign\",\"stats_disabled\":\"campaign disabled\",\"stats_step_cell\":\"Step {index} · {key}\",\"stats_col_step\":\"Step\",\"stats_col_mode\":\"Mode\",\"stats_col_amount\":\"Amount\",\"stats_col_granted\":\"Granted\",\"stats_col_rate\":\"Grant rate\",\"stats_col_window_open\":\"In window\",\"stats_col_upcoming\":\"Not yet due\",\"stats_col_expired\":\"Expired\",\"stats_col_credits\":\"Credits issued\",\"stats_recent_title\":\"Recent grants\",\"stats_col_time\":\"Time\",\"stats_col_user\":\"User\",\"stats_col_status\":\"Status\",\"stats_status_pending\":\"Pending\",\"stats_status_acked\":\"Delivered\",\"stats_status_failed\":\"Failed\",\"stats_empty_steps\":\"The campaign has no steps.\",\"stats_empty\":\"No grants yet.\",\"stats_search\":\"Search\",\"stats_search_placeholder\":\"Email or user ID\",\"stats_page_info\":\"{from}–{to} of {total}\",\"stats_prev\":\"Previous\",\"stats_next\":\"Next\"},\"invite-codes\":{\"fields\":{\"quantity\":\"Quantity\",\"code\":\"Code\",\"inviter_name\":\"Inviter\",\"total_invites\":\"Total Invites\",\"remaining_invites\":\"Remaining\",\"reward_credits\":\"Credits\",\"reward_expires_at\":\"Credits Expire\",\"expires_at\":\"Code Expire\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\"},\"list\":{\"title\":\"Invite Codes\",\"crumbs\":{\"admin\":\"Admin\",\"invite_codes\":\"Invite Codes\"},\"buttons\":{\"add\":\"Add Invite Code\",\"edit\":\"Edit\"},\"selection\":{\"selected\":\"Selected\",\"copy_selected\":\"Copy selected\",\"copied_single\":\"Copied\",\"copied_message\"
792:\"Copied {count} links\"}},\"add\":{\"title\":\"Add Invite Code\",\"crumbs\":{\"admin\":\"Admin\",\"invite_codes\":\"Invite Codes\",\"add\":\"Add Invite Code\"},\"tips\":{\"quantity\":\"When greater than 1, multiple invite codes will be created with the same settings except for the code itself.\",\"code\":\"Leave empty to auto-generate. A manual invite code is only used when quantity is 1.\",\"remaining_invites\":\"Optional. Defaults to total invites.\",\"reward_expires_at\":\"Optional. Leave empty for no credit expiration.\",\"expires_at\":\"Optional. Leave empty for no invite code expiration.\"},\"messages\":{\"created_single\":\"Invite code created\",\"created_batch\":\"Created {count} invite codes\"},\"buttons\":{\"submit\":\"Create\"}},\"edit\":{\"title\":\"Edit Invite Code\",\"crumbs\":{\"admin\":\"Admin\",\"invite_codes\":\"Invite Codes\",\"edit\":\"Edit\"},\"buttons\":{\"submit\":\"Save\"}}},\"gift-cards\":{\"fields\":{\"quantity\":\"Quantity\",\"code\":\"Code\",\"name\":\"Batch Name\",\"status\":\"Status\",\"type\":\"Type\",\"created_by\":\"Created By\",\"purchaser\":\"Purchaser\",\"redeemed_by\":\"Redeemed By\",\"redeemed_at\":\"Redeemed At\",\"benefit_expires_at\":\"Benefit Expires\",\"purchase_no\":\"Purchase\",\"purchase_status\":\"Purchase Status\",\"order_no\":\"Order\",\"payment_status\":\"Payment Status\",\"stripe_reference\":\"Stripe Reference\",\"amount\":\"Amount\",\"currency\":\"Currency\",\"paid_at\":\"Paid At\",\"fulfilled_at\":\"Fulfilled At\",\"note\":\"Note\",\"channel\":\"Channel\",\"plan_code\":\"Plan Code\",\"credits_amount\":\"Credits\",\"activation_valid_days\":\"Valid Days\",\"capabilities\":\"Feature Access capabilities\",\"render_text\":\"Image display copy\",\"include_membership\":\"Include membership\",\"redeem_expires_at\":\"Redeem Deadline\",\"created_at\":\"Created At\",\"updated_at\":\"Updated At\"},\"types\":{\"campaign\":\"Campaign\",\"partner\":\"Partner\",\"support\":\"Support\",\"internal\":\"Internal\"},\"list\":{\"title\":\"Gift Cards\",\"purchased_title\":\"Purchased Gift Cards\",\"purchased_description\":\"Paid gift cards are retained as financial records. Available cards may be disabled but never deleted.\",\"tabs\":{\"system\":\"System Gift Cards\",\"purchased\":\"Purchased Gift Cards\"},\"crumbs\":{\"admin\":\"Admin\",\"gift_cards\":\"Gift Cards\"},\"buttons\":{\"add\":\"Add Gift Cards\",\"disable\":\"Disable\",\"export_image\":\"Export Image\",\"export_selected_images\":\"Export Images\",\"delete_selected\":\"Delete selected\"},\"selection\":{\"selected\":\"Selected\",\"copy_selected\":\"Copy codes\",\"copied_single\":\"Copied\",\"copied_message\":\"Copied {count} gift card codes\",\"confirm_delete\":\"Delete the selected gift cards? Redeemed gift cards will be skipped.\",\"deleted_message\":\"Deleted {count} gift cards\"},\"filters\":{\"status\":{\"title\":\"Status\",\"options\":{\"all\":\"All Statuses\",\"active\":\"Active\",\"available\":\"Available\",\"disabled\":\"Disabled\",\"expired\":\"Expired\",\"redeemed\":\"Redeemed\"}},\"type\":{\"title\":\"Type\",\"options\":{\"all\":\"All Types\"}}},\"search\":{\"keyword\":{\"title\":\"Search\",\"placeholder\":\"Code, note, channel, type, plan, creator\"},\"purchased\":{\"title\":\"Search\",\"placeholder\":\"Code, purchaser, purchase, order, Stripe reference\"}},\"column_visibility\":{\"trigger\":\"Columns\",\"title\":\"Show columns\",\"reset\":\"Reset default\"}},\"add\":{\"title\":\"Add Gift Cards\",\"crumbs\":{\"admin\":\"Admin\",\"gift_cards\":\"Gift Cards\",\"add\":\"Add Gift Cards\"},\"tips\":{\"quantity\":\"When greater than 1, multiple gift cards will be created with the same settings except for the code itself.\",\"code\":\"Leave empty to auto-generate. A manual code is only used when quantity is 1.\",\"note\":\"Internal remark shown in the admin list. It is not shown to users.\",\"activation_valid_days\":\"After redemption, credits and capabilities expire after this many days; membership uses the same window when included.\",\"capabilities\":\"Grant the selected Feature Access capabilities when the card is redeemed.\",\"render_text\":\"Optional extra benefit copy shown on the gift card 
792image. Maximum 20 characters.\",\"include_membership\":\"Turn off to grant only credits and capabilities without creating gift-card membership.\",\"redeem_expires_at\":\"The latest time when this code can be redeemed.\"},\"capabilities\":{\"expand\":\"Select capabilities\",\"collapse\":\"Hide capabilities\",\"selected\":\"{count} selected\",\"search_placeholder\":\"Search capabilities\",\"empty\":\"No capabilities match your search\",\"no_options\":\"No capabilities available\"},\"messages\":{\"created_single\":\"Gift card created\",\"created_batch\":\"Created {count} gift cards\",\"copied_created_codes\":\"Copied {count} created gift card codes\"},\"buttons\":{\"submit\":\"Create\"}},\"disable\":{\"title\":\"Disable Gift Card\",\"purchased_title\":\"Disable Purchased Gift Card\",\"crumbs\":{\"admin\":\"Admin\",\"gift_cards\":\"Gift Cards\",\"disable\":\"Disable\"},\"form\":{\"title\":\"Disable this gift card?\",\"description\":\"Disabled gift cards can no longer be redeemed. Existing redeemed credits and memberships are not changed.\",\"purchased_title\":\"Disable this purchased gift card?\",\"purchased_description\":\"Only an Available purchased card can be disabled. Its purchase, payment, and audit records will be retained.\"},\"messages\":{\"disabled\":\"Gift card disabled\",\"purchased_disabled\":\"Purchased gift card disabled\",\"purchased_unavailable\":\"Only an Available purchased gift card can be disabled\"},\"buttons\":{\"submit\":\"Disable\"}}},\"settings\":{\"groups\":{\"email_auth\":\"Email Auth\",\"google_auth\":\"Google Auth\",\"github_auth\":\"Github Auth\",\"basic_payment\":\"Basic Payment\",\"booster_payment\":\"Booster Pack\",\"gift_card_purchase\":\"Gift Card Purchase\",\"stripe\":\"Stripe\",\"creem\":\"Creem\",\"paypal\":\"Paypal\",\"resend\":\"Resend\",\"r2\":\"Cloudflare R2\",\"s3\":\"AWS S3\",\"openrouter\":\"OpenRouter\",\"replicate\":\"Replicate\",\"fal\":\"Fal\",\"google_analytics\":\"Google Analytics\",\"clarity\":\"Clarity\",\"microsoft_uet\":\"Microsoft Advertising UET\",\"taboola_pixel\":\"Taboola Pixel\",\"reddit_ads\":\"Reddit Ads\",\"plausible\":\"Plausible\",\"openpanel\":\"OpenPanel\",\"vercel_analytics\":\"Vercel Analytics\",\"adsense\":\"Adsense\",\"affonso\":\"Affonso\",\"promotekit\":\"PromoteKit\",\"tawk\":\"Tawk\",\"crisp\":\"Crisp\",\"credit\":\"Credit\",\"credits_ops_onboarding\":\"NewAPI First Login\",\"credits_ops_daily\":\"NewAPI FloatSchedule Refresh\",\"credits_ops_annual_unlimited\":\"NewAPI Annual Unlimited\",\"newapi_subscription_vip\":\"NewAPI Subscription VIP\",\"credits_ops_whitelist\":\"NewAPI Whitelist\",\"appinfo\":\"App Info\",\"combo_recommendations\":\"Combo Recommendations\",\"campaigns\":\"Campaigns\",\"campaign_first_voyage\":\"First Voyage\",\"workflow_store_release_updates\":\"Workflow Store Publishing and Updates\",\"combo_translation\":\"Combo Bilingual Translation\",\"combo_creator_credits\":\"Combo Creator Credits\"},\"group_descriptions\":{\"newapi_subscription_vip\":\"NewAPI user group per membership level and entitlement source\",\"workflow_store_release_updates\":\"Control Workflow Store submissions, review publishing, current-release changes, and client updates.\",\"gift_card_purchase\":\"Configure pricing, credit ranges, and purchase limits for paid gift cards.\",\"campaign_first_voyage\":\"Controls the floating card on the /campaign/first-voyage landing page.\",\"combo_creator_credits\":\"Configure creator-credit reward and redemption ratios.\"},\"fields\":{\"combo_creator_reward_ratio_bps\":{\"title\":\"Download credits to creator credits (bps)\",\"tip\":\"10000 means 1:1. The creator reward is rounded down.\"},\"combo_creator_redemption_ratio_bps\":{\"title\":\"Creator credits to NewAPI credits (bps)\",\"tip\":\"10000 means 1:1. The NewAPI credit amount is rounded down.\"},\"newapi_subscription_vip_group\":{\"title\":\"Paid Tiers Default Group\",\"tip\":\"Every level or entitlement source below that is left empty falls back to this group. Defaults to vip.\"},\"newapi_subscription_group_free\":{\"title\":\"NewAPI Group - Free\",\"tip\":\"NewAPI user group for this membership level. Empty falls back to default.\"},\"newapi_subscription_group_lite\":{\"title\":\"NewAPI Group - Lite\",\"tip\":\"NewAPI user group for this membership level. Empty falls back to default.\"},\"newapi_subscription_group_plus\":{\"title\":\"NewAPI Group - Plus\",\"tip\":\"NewAPI user group for this membership level. Empty falls back to the Paid Tiers Default Group above.\"},\"newapi_subscription_group_pro\":{\"title\":\"NewAPI Group - Pro\",\"t
792ip\":\"NewAPI user group for this membership level. Empty falls back to the Paid Tiers Default Group above.\"},\"newapi_subscription_group_max\":{\"title\":\"NewAPI Group - Max\",\"tip\":\"NewAPI user group for the max plan. Empty falls back to the Paid Tiers Default Group above.\"},\"workflow_store_release_update_protocol_enabled\":{\"title\":\"Enable Workflow Store publishing and updates\",\"tip\":\"Changes take effect immediately across Backend instances. Turning this off keeps Marketplace reads, installed Workflows, and existing Runs available. An explicit WORKFLOW_STORE_RELEASE_UPDATE_PROTOCOL_ENABLED=false environment value remains the emergency override.\"},\"gift_card_credits_per_usd\":{\"title\":\"Gift Card Credits Per USD\",\"tip\":\"Authoritative paid gift card rate: 1 USD = N credits.\"},\"gift_card_credit_step\":{\"title\":\"Gift Card Credit Adjustment Step\",\"tip\":\"Credits changed by each adjustment button on the gift card purchase page.\"},\"gift_card_max_user_failed_redeems_per_day\":{\"title\":\"Max Failed Redeems Per User Per Day\",\"tip\":\"Failed gift card redemption attempts allowed per user per UTC day before HTTP 429 blocking. Empty falls back to 5.\"},\"gift_card_max_ip_failed_redeems_per_day\":{\"title\":\"Max Failed Redeems Per IP Per Day\",\"tip\":\"Failed gift card redemption attempts allowed per source IP per UTC day before HTTP 429 blocking. Empty falls back to 200.\"},\"campaign_first_voyage_sticky_bar_enabled\":{\"title\":\"Show Try Floatboat for $1 sticky card\",\"tip\":\"Off by default. Turn on to show the floating card at the bottom of /campaign/first-voyage.\"},\"gift_card_purchase_render_text\":{\"title\":\"Purchased Gift Card Image Copy\",\"tip\":\"Optional extra benefit copy shown on purchased gift card images. Maximum 20 characters.\"},\"gift_card_usd_to_cny_rate\":{\"title\":\"Gift Card USD to CNY Rate\",\"tip\":\"Authoritative paid gift card pricing rate: 1 USD = N CNY.\"},\"gift_card_min_credits\":{\"title\":\"Gift Card Minimum Credits Per Card\"},\"gift_card_max_credits\":{\"title\":\"Gift Card Maximum Credits Per Card\"},\"gift_card_max_quantity\":{\"title\":\"Gift Card Maximum Quantity Per Purchase\"},\"gift_card_max_total_usd_minor\":{\"title\":\"Gift Card Maximum USD Total (cents)\",\"tip\":\"Default 1,000,000 cents = USD 10,000.\"},\"gift_card_max_total_cny_minor\":{\"title\":\"Gift Card Maximum CNY Total (fen)\",\"tip\":\"Default 7,000,000 fen = CNY 70,000.\"},\"newapi_subscription_group_gift_card\":{\"title\":\"NewAPI Group - Gift Card\",\"tip\":\"NewAPI user group for members holding an active gift card membership. Empty falls back to the Paid Tiers Default Group above.\"},\"newapi_subscription_group_manual_override\":{\"title\":\"NewAPI Group - Manual Override\",\"tip\":\"NewAPI user group for members activated manually from the admin user page. Empty falls back to the Paid Tiers Default Group above.\"}},\"edit\":{\"title\":\"Settings\",\"crumbs\":{\"admin\":\"Admin\",\"settings\":\"Settings\"},\"tabs\":{\"general\":\"General\",\"privacy_policy\":\"Legal\",\"auth\":\"Auth\",\"payment\":\"Payment\",\"credit\":\"Credits Ops\",\"email\":\"Email\",\"storage\":\"Storage\",\"ai\":\"AI\",\"combo_ai\":\"ComboAI\",\"analytics\":\"Analytics\",\"ads\":\"Ads\",\"affiliate\":\"Affiliate\",\"customer_service\":\"Customer Service\"},\"buttons\":{\"submit\":\"Save\"}},\"pricing_models\":{\"title\":\"Pricing model list\",\"description\":\"Choose an icon, enter the model ID used by the model service, and set the display name shown on the pricing page. Disabled rows remain saved but are not rendered.\",\"model_number\":\"Model {index}\",\"fields\":{\"icon\":\"Icon\",\"model_id\":\"Model ID\",\"display_name\":\"Display name\",\"enabled\":\"Enabled\"},\"placeholders\":{\"model_id\":\"gpt-5.5\",\"display_name\":\"GPT-5.5\"},\"icons\":{\"gemini\":\"Gemini\",\"claude\":\"Claude\",\"nano-banana\":\"Nano Banana\",\"openai\":\"OpenAI\",\"deepseek\":\"DeepSeek\",\"seedance\":\"Seedance\",\"glm\":\"GLM\",\"alibaba\":\"Alibaba\",\"chatglm\":\"ChatGLM\",\"copilot\":\"Copilot\",\"cursor\":\"Cursor\",\"doubao\":\"Doubao\",\"grok\":\"Grok\",\"kimi\":\"Kimi\",\"meta\":\"Meta\",\"minimax\":\"MiniMax\",\"mistral\":\"Mistral\",\"qwen\":\"Qwen\",\"tencent\":\"Tencent\",\"volcengine\":\"Volcengine\",\"xiaomi-mimo\":\"Xiaomi MiMo\",\"zhipu\":\"Zhipu / GLM\"},\"actions\":{\"add\":\"Add model\",\"save\":\"Save model list\",\"saving\":\"Saving…\",\"remove\":\"Remove model {index}\",\"move_up\":\"Move model {index} up\",\"move_down\":\"Move model {index} down\",\"drag\":\"Drag to reorder model {index}\"},\"toasts\":{\"saved\":\"Pricing models updated\",\"save_failed\":\"Failed to save pricing models\"}},\"homepage_models\":{\"title\":\"Homepage model list\",\"description\":\"Shown on the Chinese homepage only. It does not change the pricing page or the campaign page. Until this is saved, the page uses its default 9 models.\",\"heading\":\"Heading\"},\"campaign_pricing_models\":{\"title\":\"Campaign pricing model list\",\"description\":\"Same editor as the pricing page list. These models appear on /campaign/first-voyage/pricing. Disabled rows remain saved but are not rendered.\"}},\"apikeys\":{\"fields\":{\"title\":\"Title\",\"key\":\"Key\",\"user\":\"User\",\"status\":\"Status\",\"created_at\":\"Created At\",\"action\":\"Action\"},\"list\":{\"title\":\"API Keys\",\"crumbs\":{\"admin\":\"Admin\",\"apikeys\":\"API Keys\"}}},\"ai-tasks\":{\"fields\":{\"task_id\":\"Task ID\",\"media_type\":\"Media Type\",\"provider\":\"Provider\",\"model\":\"Model\",\"prompt\":\"Prompt\",\"options\":\"Options\",\"user\":\"User\",\"status\":\"Status\",\"cost_credits\":\"Cost Credits\",\"result\":\"Result\",\"created_at\":\"Created At\",\"action\":\"Action\",\"scene\":\"Scene\"},\"list\":{\"title\":\"AI Tasks\",\"crumbs\":{\"admin\":\"Admin\",\"ai-tasks\":\"AI Tasks\"},\"tabs\":{\"all\":\"All\",\"music\":\"Music\",\"image\":\"Image\",\"video\":\"Video\",\"audio\":\"Audio\",\"text\":\"Text\"},\"buttons\":{\"view\":\"View Task\",\"refresh\":\"Refresh Task\"}
792,\"empty_message\":\"No tasks found\"}},\"workflow-store-review\":{\"crumbs\":{\"admin\":\"Admin\",\"submissions\":\"Workflow Review\"},\"tabs\":{\"all\":\"All\",\"pending\":\"Needs review\",\"attention\":\"Needs attention\",\"submitted\":\"Submitted\",\"in_review\":\"In review\",\"changes_requested\":\"Changes requested\",\"rejected\":\"Rejected\",\"approved\":\"Legacy approved (re-confirm)\",\"published\":\"Published\",\"archived\":\"Withdrawn\",\"unlisted\":\"Unlisted\",\"revoked\":\"Revoked\"},\"fields\":{\"workflow\":\"Workflow\",\"package\":\"Package\",\"owner\":\"Owner\",\"status\":\"Status\",\"review_status\":\"Version review\",\"marketplace_status\":\"Store listing\",\"submitted_at\":\"Submitted at\",\"reviewed_at\":\"Reviewed at\",\"review_decision\":\"Review decision\",\"review_comment\":\"Review comment\",\"action\":\"Action\",\"slug\":\"Slug\",\"version\":\"Version\",\"package_id\":\"Package ID\",\"package_hash\":\"Package hash\",\"min_desktop_version\":\"Minimum Desktop version\",\"source_version_range\":\"Supported source versions\",\"platforms\":\"Platforms\",\"architectures\":\"Architectures\"},\"marketplace_status\":{\"current_version_published\":\"Current version listed\",\"previous_version_published\":\"Previous version still listed\",\"other_version_published\":\"Another version is listed\",\"not_published\":\"Not listed\"},\"actions\":{\"review\":\"Review\",\"continue_review\":\"Continue review\",\"view_result\":\"View result\",\"manage\":\"Manage\"},\"list\":{\"title\":\"Workflow Store Review\",\"description\":\"Review submitted sealed workflow packages. Source is decrypted on demand only in this review surface.\",\"card_title\":\"Submission Queue\",\"empty\":\"No submissions\",\"empty_search\":\"No workflows match “{query}”\",\"search_label\":\"Search workflow submissions\",\"search_placeholder\":\"Search name, file, slug, or submitter\",\"search_action\":\"Search\",\"clear_search\":\"Clear\",\"version_count\":\"{count} versions\",\"billing\":\"Pricing\",\"latest_activity\":\"Latest activity\"},\"history\":{\"title\":\"Version history\"},\"billing\":{\"title\":\"Pricing\",\"inherit_current\":\"Automatically inherits current version v{version}.\",\"inherit_latest\":\"No current version; automatically inherits the latest published version v{version}.\",\"first_release\":\"First publication defaults to free.\",\"free\":\"Free\",\"per_run\":\"{credits} credits / run\",\"per_run_template\":\"{credits} credits / run\",\"modify\":\"Change pricing\",\"restore\":\"Restore inherited pricing\",\"mode\":\"Pricing mode\",\"credits\":\"Credits per run\",\"charge_timing\":\"Charge timing\",\"on_start\":\"When the run starts\",\"on_success\":\"After a successful run\",\"unknown_outcome\":\"Unknown outcome\",\"keep_charge\":\"Keep the charge\",\"refund_after_timeout\":\"Refund after timeout\",\"publish_summary\":\"Approve and publish this version\",\"unchanged\":\"Unchanged\",\"changed\":\"Changed\",\"version\":\"Version\",\"visibility\":\"Visibility\",\"public_exposure\":\"Public\",\"targeted_exposure\":\"Targeted accounts\",\"immediate_publish\":\"After confirmation, this version immediately becomes the current downloadable Store version.\",\"unavailable_title\":\"Pricing data needs repair\",\"unavailable_description\":\"The current or historical release has a missing or invalid pricing snapshot. Details remain available, but approval is blocked until the data is repaired.\",\"cancel\":\"Cancel\",\"confirm\":\"Approve and publish\"},\"detail\":{\"description\":\"Inspect the submitted .workflow.fbw package directly. Source preview does not create a review copy or permanent source record.\",\"submission_card\":\"Submission\",\"package_card\":\"Package\",\"manifest_card\":\"Public manifest\",\"summary_card\":\"Capability summary\",\"release_notes_card\":\"Release notes\"},\"source\":{\"title\":\"Source preview\",\"description\":\"Load source by decrypting the submitted package for this page.\",\"load\":\"Load source\",\"loading\":\"Loading\",\"source_hash\":\"Source hash\"},\"decision\":{\"title\":\"Review decision\",\"comment_placeholder\":\"Add review notes, optional.\",\"start_review\":\"Start review\",\"request_changes\":\"Request changes\",\"reject\":\"Reject\",\"approve\":\"Approve\",\"saving\":\"Saving\",\"visibility_draft_title\":\"Visibility changes are not saved\",\"visibility_draft_description\":\"Review does not change visibility. Save or discard the current draft before continuing.\",\"visibility_draft_action\":\"Review visibility\",\"exposure_title\":\"Publication exposure\",\"exposure_description\":\"Publication exposure is managed separately in Workflow Visibility.\",\"exposure_public\":\"Public\",\"exposure_public_description\":\"Visible in the public catalog to eligible standard and anonymous viewers.\",\"exposure_targeted\":\"Targeted\",\"exposure_targeted_description\":\"Visible only to actively assigned users or user group members; no targets means no consumer visibility.\",\"exposure_current\":\"Saved Workflow Visibility exposure: {exposure}.\",\"exposure_required\":\"Select the saved exposure to enable first publication.\",\"exposure_mismatch\":\"This selection does not match the saved Workflow Visibility exposure ({exposure}). Save that exposure first, then select it again after refresh.\",\"last_decision\":\"Last action\",\"start_description\":\"Start the review before submitting a decision.\",\"in_review_description\":\"After approval, this version immediately becomes the current downloadable version. Legacy approved rows must also be re-confirmed here.\",\"completed_title\":\"Review completed\",\"completed_description\":\"This review decision is immutable. Every retained candidate occupies its SemVer; after changes are requested or a submission is rejected, the next upload must use a strictly higher version.\",\"no_comment\":\"No review comment\"},\"current_release\":{\"title\":\"Current Release management\",\"description\":\"Approval already publishes and switches current atomically. This panel only restores a previously published Release or clears current.\",\"current_release\":\"Current live Release ID\",\"no_current_release\":\"No formally published current version\",\"candidate_release\":\"Version on this page\",\"current_badge\":\"Current live version\",\"historical_badge\":\"Published history\",\"impact_title\":\"Impact preview\",\"reason_label\":\"Operation reason\",\"reason_placeholder\":\"Record why this current-version change is needed\",\"confirmation_label\":\"Strong confirmation\",\"confirmation_help\":\"Type the following value exactly to continue:\",\"clear_confirmation_value\":\"CLEAR CURRENT\",\"cancel\":\"Cancel\",\"confirm\":\"Confirm change\",\"saving\":\"Applying\",\"error\":\"Failed to change current Release\",\"unavailable\":\"This Release cannot become current here;
792 choose Approve on the review page for a pending review.\",\"rollback\":{\"action\":\"Set historical Release as current\",\"title\":\"Change current to a historical Release\",\"description\":\"Move the current pointer to this exact previously published Release.\",\"impact\":\"Clients still use the normal compatibility resolver. Compatible clients may update to the lower or older target; incompatible clients receive manual reinstall guidance.\"},\"clear\":{\"action\":\"Clear current Release\",\"title\":\"Clear the Listing current Release\",\"description\":\"Remove the current pointer and unlist the Listing until a safe published history version is restored, or a higher version is approved.\",\"impact\":\"Catalog discovery, new installs, and updates stop. Existing local files, grants, historical Runs, and billing records remain intact.\"}},\"unlist\":{\"action\":\"Unlist\",\"saving\":\"Unlisting\",\"confirm\":\"Unlist “{name}” from Workflow Store? Existing installations and grants will remain active.\",\"error\":\"Failed to unlist workflow\"},\"danger_zone\":{\"title\":\"Danger zone\",\"description\":\"Each action has an exact scope. Deleting a draft, withdrawing a Release, deleting an empty Listing, and revoking a Package are separate operations.\",\"delete_record\":{\"action\":\"Delete Store record\",\"title\":\"Delete Store record\",\"description\":\"Remove this terminal non-public listing from Workflow Admin. The package, grants, installations, billing history, and review history remain intact.\",\"reason_label\":\"Reason (optional)\",\"reason_placeholder\":\"Why is this management record being removed?\",\"cancel\":\"Cancel\",\"confirm\":\"Delete record\",\"saving\":\"Deleting\",\"error\":\"Failed to delete Store record\"},\"withdraw_release\":{\"action\":\"Withdraw Release\",\"title\":\"Withdraw this exact Release\",\"description\":\"Archive this Release so it cannot become current again. Other Releases, Package history, installations, Runs, and Billing records remain intact.\",\"current_impact\":\"This is the current Release. Confirming will atomically clear the current pointer and unlist the Listing; it will not choose a historical replacement implicitly.\",\"historical_impact\":\"This is not the current Release. Confirming archives only this Release and leaves the Listing current pointer unchanged.\",\"confirmation_label\":\"Confirm Workflow name\",\"confirmation_help\":\"Type “{name}” exactly to enable withdrawal.\",\"reason_label\":\"Withdrawal reason\",\"reason_placeholder\":\"Explain why this exact Release must be withdrawn.\",\"cancel\":\"Cancel\",\"confirm\":\"Withdraw Release\",\"saving\":\"Withdrawing\",\"error\":\"Failed to withdraw Workflow Release\"},\"delete_listing\":{\"action\":\"Delete empty Listing\",\"title\":\"Permanently delete empty Listing\",\"description\":\"Physically delete and release the Registry name only for a never-submitted empty shell with no Release, Grant, Run, Billing, installation, Ticket, target, audit, or pending operation reference. Any real submission history keeps the name permanently occupied.\",\"blocked\":\"This Listing still has business references. Unlist it instead; the server will reject physical deletion with HTTP 409.\",\"confirmation_label\":\"Strong confirmation\",\"confirmation_help\":\"Type “{phrase}” exactly to enable physical deletion.\",\"reason_label\":\"Deletion reason\",\"reason_placeholder\":\"Explain why this empty Listing should be permanently deleted.\",\"cancel\":\"Cancel\",\"confirm\":\"Delete Listing permanently\",\"saving\":\"Deleting\",\"error\":\"Failed to delete Workflow Listing\"},\"revoke_package\":{\"action\":\"Revoke Package\",\"title\":\"Revoke sealed Workflow Package\",\"description\":\"Stop future server-side install, unlock, and execution authorization for this package and revoke its grants and activations. This action is irreversible in Workflow Admin.\",\"offline_boundary\":\"Paid and online-authorized executions stop immediately after revocation. Already-running work is not force-stopped, and a fully offline free installation may remain usable only until its existing lease or cache expires.\",\"confirmation_label\":\"Confirm Workflow name\",\"confirmation_help\":\"Type “{name}” exactly to enable revocation.\",\"reason_label\":\"Revocation reason\",\"reason_placeholder\":\"Describe the security or policy reason for revocation.\",\"cancel\":\"Cancel\",\"confirm\":\"Revoke Package\",\"saving\":\"Revoking\",\"error\":\"Failed to revoke Workflow Package\"}},\"listing_maintenance\":{\"title\":\"Empty Listing maintenance\",\"blockers\":\"Deletion blockers\",\"none\":\"None\"}},\"workflow-store-audience\":{\"title\":\"User Groups\",\"subtitle\":\"Create user groups and control which Workflows their members and individual accounts can discover.\",\"no_access\":\"You do not have permission to view user groups.\",\"create\":\"Create user group\",\"empty\":\"No user groups have been created.\",\"select\":\"Select a user group to manage its policy and members.\",\"members\":\"Members\",\"listings\":\"Assigned Workflows\",\"no_members\":\"No members\",\"no_listings\":\"No assigned Workflows\",\"save\":\"Save changes\",\"saving\":\"Saving\",\"saved\":\"User group access saved\",\"save_failed\":\"Failed to save Workflow Store access\",\"edit\":\"Edit\",\"edit_title\":\"Edit user group\",\"edit_description\":\"Update this user group's catalog policy and status.\",\"change_reason_title\":\"Confirm access change\",\"change_reason_description\":\"Enter a reason before saving. It will be recorded in the access audit log.\",\"confirm_change\":\"Save change\",\"revision_conflict\"
792:\"This user group was changed in another session. The latest version has been loaded and your edits were preserved; review them and try again.\",\"revision_conflict_refresh_failed\":\"This user group changed in another session, but the latest version could not be loaded. Your edits are still preserved; refresh the page before retrying.\",\"reason\":\"Change reason\",\"reason_placeholder\":\"Why is this access being changed?\",\"name\":\"User group name\",\"key\":\"Stable key\",\"description\":\"Description\",\"catalog_scope\":\"Member catalog scope\",\"status\":\"User group status\",\"search_users\":\"Search users by name or email\",\"search\":\"Search\",\"searching\":\"Searching\",\"add_member\":\"Add member\",\"remove_member\":\"Remove\",\"expires_at_optional\":\"Expiration date (optional)\",\"expires_at_local_help\":\"Access expires at 23:59 on the selected date in your local time zone. Clear the value for permanent access.\",\"never_expires\":\"No expiration\",\"save_member_expiry\":\"Save member expiration\",\"cancel\":\"Cancel\",\"create_title\":\"Create user group\",\"create_description\":\"Members of a targeted user group see only explicitly assigned Workflows.\",\"scope\":{\"standard\":\"Public + assigned\",\"curated_only\":\"Assigned only\",\"disabled\":\"No Store access\"},\"audience_status\":{\"active\":\"Active\",\"suspended\":\"Suspended\"},\"policy\":{\"title\":\"User catalog policy and preview\",\"description\":\"Set an explicit account policy, preview the exact Store catalog, and compare two accounts before enabling access.\",\"search_label\":\"Find accounts\",\"no_users\":\"No matching accounts found.\",\"explicit_scope\":\"Explicit user policy\",\"explicit_scope_for\":\"Explicit user policy for {user}\",\"inherit\":\"Inherit default and user group policy\",\"effective\":\"Effective: {scope}\",\"saved\":\"User catalog policy saved\",\"preview\":\"Preview catalog\",\"preview_for\":\"Preview saved catalog for {user}\",\"save_for\":\"Save catalog policy for {user}\",\"preview_requires_save\":\"Save this policy before previewing the account catalog.\",\"preview_saved_only\":\"This preview reflects the saved policy, not unsaved changes.\",\"preview_title\":\"Catalog for {user}\",\"preview_count\":\"{count} visible Workflows · {scope}\",\"preview_empty\":\"This account currently has an empty Workflow Store catalog.\",\"reason_public\":\"Public catalog\",\"reason_direct\":\"Direct assignment\",\"compare_title\":\"Compare account catalogs\",\"compare_description\":\"Verify the exact Workflow intersection before enabling access.\",\"compare_left\":\"First account\",\"compare_right\":\"Second account\",\"compare\":\"Compare\",\"compare_result\":\"{left} and {right} share {count} Workflows\"},\"audit\":{\"title\":\"Access audit history\",\"description\":\"Filter and review audited user-group, user-policy, and Workflow visibility changes.\",\"filter_action\":\"Action\",\"all_actions\":\"All actions\",\"filter_actor\":\"Changed by\",\"filter_actor_placeholder\":\"Search administrator name or email\",\"filter_from\":\"From\",\"filter_to\":\"To\",\"apply_filters\":\"Apply filters\",\"reset_filters\":\"Reset\",\"invalid_date_range\":\"The start time must be earlier than or equal to the end time.\",\"loading\":\"Loading access history\",\"load_failed\":\"Access history could not be loaded.\",\"retry\":\"Retry\",\"empty\":\"No access changes match these filters.\",\"showing_count\":\"Showing {count} audited changes\",\"load_more\":\"Load more\",\"system\":\"System\",\"no_reason\":\"No reason recorded\",\"no_summary\":\"No safe structured fields changed in this event.\",\"changed_to\":\"changed to\",\"value_none\":\"Not set\",\"value_empty_list\":\"None\",\"value_true\":\"Yes\",\"value_false\":\"No\",\"action_unknown\":\"Other access change ({action})\",\"actions\":{\"audience_create\":\"User group created\",\"audience_update\":\"User group settings updated\",\"audience_members_replace\":\"User group members updated\",\"user_policy_update\":\"User catalog policy updated\",\"user_policy_reset\":\"User catalog policy reset\",\"listing_access_update\":\"Workflow visibility targets updated\",\"listing_catalog_remove\":\"Access target removed from catalog\",\"customer_authorization_terminate\":\"Access authorization terminated\"},\"resource_types\":{\"listing\":\"Workflow\",\"audience\":\"User group\",\"user\":\"User\"},\"fields\":{\"exposureMode\":\"Exposure\",\"accessRevision\":\"Access revision\",\"catalogScope\":\"Catalog scope\",\"status\":\"Status\",\"key\":\"Stable key\",\"name\":\"Name\",\"description\":\"Description\",\"targetUserId\":\"Target user\",\"targetAudienceId\":\"Target user group\",\"directUserIds\":\"Direct user IDs\",\"directUserCount\":\"Direct users\",\"audienceIds\":\"User group IDs\",\"audienceCount\":\"User groups\",\"memberUserIds\":\"Member user IDs\",\"memberCount\":\"Members\",\"memberAssignments\":\"Member assignments\",\"directUserAssignments\":\"Direct-user assignments\",\"audienceAssignments\":\"User group assignments\",\"activeMemberCount\":\"Active members\",\"revokedMemberCount\":\"Revoked members\",\"expiringMemberCount\":\"Expiring members\",\"targetCount\":\"Targets\",\"activeTargetCount\":\"Active targets\",\"revokedTargetCount\":\"Revoked targets\",\"expiringTargetCount\":\"Expiring targets\",\"revokedTicketUserCount\":\"Users with tickets revoked\",\"retainedRuntimeUserCount\":\"Users retaining runtime access\",\"runtimeTerminationUserCount\":\"Users with runtime terminated\",\"listingPackageCount\":\"Workflow packages affected\",\"revokedGrantCount\":\"Package grants revoked\",\"truncatedFields\":\"Truncated detail fields\"}},\"listing\":{\"title\":\"Store visibility\",\"description\":\"Set who can see the Workflow after a Release is formally published. This does not review or publish a Release and does not change the current Store version.\",\"exposure\":\"Exposure\",\"public\":\"Public marketplace\",\"targeted\":\"Targeted user groups and users only\",\"public_help\":\"When a formally published current Store version exists, standard and anonymous users can discover this Workflow. Without a current version it remains absent from the marketplace.\",\"targeted_help\":\"When a formally published current Store version exists, only members of selected user groups and exact users can discover, install, or redownload this Workflow.\",\"audiences\":\"User groups\",\"direct_users\":\"Exact users\",\"no_direct_users\":\"No exact users assigned\",\"add_user\":\"Add exact user\",\"audience_unavailable_suspended\":\"Cannot be targeted while this user group is suspended.\",\"audience_unavailable_disabled\":\"Cannot be targeted because this user group has no Store access.\",\"user_unavailable_disabled\":\"Cannot be assigned because this account has no Store access.\",\"authorization_title\":\"Access authorization\",\"authorization_description\":\"Catalog removal stops discovery and redownload. Termination also revokes existing package grants and device activations.\",\"unsaved_draft_blocks_authorization\":\"Save or discard the visibility draft before removing or terminating a saved authorization.\",\"remove_from_catalog\":\"Remove from catalog\",\"remove_title\":\"Remove from catalog?\",\"remove_description\":\"This stops the target from discovering or redownloading this Workflow. Enter a reason to continue.\",\"removed_from_catalog\":\"Catalog access removed\",\"terminate_authorization\":\"Terminate authorization\",\"terminate_title\":\"Terminate access authorization?\",\"terminate_description\":\"This revokes catalog access, outstanding download tickets, package grants, and device activations. Type TERMINATE to continue.\",\"terminate_target\":\"Authorization target\",\"terminate_listing\":\"Workflow slug\",\"terminate_label\":\"Confirmation\",\"terminated\":\"Access authorization terminated\",\"audit_title\":\"Access history\",\"audit_description\":\"Recent audited changes for this Workflow visibility policy.\",\"audit_actions\":{\"listing_access_update\":\"Visibility targets updated\",\"listing_catalog_remove\":\"Access target removed from catalog\",\"customer_authorization_terminate\":\"Access authorization terminated\"},\"audit_action_unknown\":\"Other access change ({action})\",\"audit_system\":\"System\",\"audit_no_reason\":\"No reason recorded\",\"audit_empty\":\"No visibility changes have been recorded yet.\",\"revision\":\"Access revision {revision}\",\"unsaved\":\"Unsaved changes\",\"empty_warning\":\"This targeted Workflow has no user groups or exact users and will be invisible to every marketplace user.\",\"public_confirm_title\":\"Set the post-publication visibility to public?\",\"public_confirm_description\":\"This only changes who can see a formally published Release; it does not review or publish one. Without a current Store version, saving still will not list the Workflow. Type PUBLIC to confirm.\",\"public_impact_users\":\"Currently targeted users\",\"public_impact_audiences\":\"Assigned user groups\",\"public_impact_direct_users\":\"Direct users\",\"public_confirm_label\":\"Confirmation\",\"public_confirm_placeholder\":\"PUBLIC\",\"save\":\"Save visibility (does not publish)\",\"previewing\":\"Reviewing impact\",\"saved\":\"Workflow visibility saved;
792 unpublished versions were not listed\",\"conflict\":\"Access changed in another session. Refresh and review the latest settings.\"}},\"workflow-billing\":{\"title\":\"Run billing\",\"description\":\"Set the authoritative Credits price for sealed workflow runs. New account entitlements use the default policy; existing account entitlements remain free until a policy is explicitly assigned.\",\"policies\":\"Policy revisions\",\"create_policy\":\"Create policy revision\",\"policy_name\":\"Policy name\",\"credits_per_run\":\"Credits per run\",\"charge_timing\":\"Charge timing\",\"on_start\":\"Charge after start\",\"on_success\":\"Keep charge only on success\",\"unknown_outcome\":\"Unknown outcome\",\"keep_charge\":\"Keep charge\",\"refund_after_timeout\":\"Refund after timeout\",\"create_draft\":\"Create draft\",\"activate\":\"Activate\",\"disable\":\"Disable\",\"set_default\":\"Set as default\",\"default_policy\":\"Default for new account entitlements\",\"default_policy_help\":\"The default applies to account entitlements created later. Switch existing accounts individually below or make them free.\",\"policy_in_use\":\"This policy is still the default or is assigned to an active account entitlement. Switch those assignments first.\",\"entitlements\":\"Account entitlement billing\",\"entitlement_account\":\"Authorized account\",\"policy\":\"Policy\",\"free\":\"Free\",\"save\":\"Save\",\"runs\":\"Billing runs\",\"refresh\":\"Refresh\",\"empty_runs\":\"No billing runs yet\",\"status\":\"Status\",\"outcome\":\"Outcome\",\"user\":\"User\",\"error\":\"Workflow billing operation failed\",\"saved\":\"Workflow billing updated\",\"run\":\"Run\",\"credits\":\"Credits\",\"receipt\":\"NewAPI transaction receipt\",\"copy_receipt\":\"Copy NewAPI transaction receipt\",\"open_receipt\":\"Open NewAPI transaction receipt\",\"receipt_copied\":\"NewAPI transaction receipt copied\",\"revision\":\"Revision\",\"effective_at\":\"Effective at (optional)\",\"expires_at\":\"Expires at (optional)\",\"edit_draft\":\"Edit draft\",\"update_draft\":\"Update draft\",\"cancel_edit\":\"Cancel edit\",\"delete_draft\":\"Delete draft\",\"pending_paid_until\":\"Billing starts after existing free offline leases expire\",\"policy_statuses\":{\"draft\":\"Draft\",\"active\":\"Active\",\"disabled\":\"Disabled\"},\"run_statuses\":{\"authorizing\":\"Authorizing\",\"authorization_failed\":\"Authorization failed\",\"authorized\":\"Reserved\",\"started\":\"Running\",\"settled_charged\":\"Charged\",\"refund_pending\":\"Refund pending\",\"settled_refunded\":\"Refunded\"},\"outcomes\":{\"not_started\":\"Not started\",\"succeeded\":\"Succeeded\",\"failed\":\"Failed\",\"cancelled\":\"Cancelled\",\"timed_out\":\"Timed out\",\"unknown\":\"Unknown\"}},\"chats\":{\"fields\":{\"title\":\"Title\",\"user\":\"User\",\"status\":\"Status\",\"model\":\"Model\",\"provider\":\"Provider\",\"created_at\":\"Created At\",\"action\":\"Action\"},\"list\":{\"title\":\"AI Chats\",\"crumbs\":{\"admin\":\"Admin\",\"chats\":\"AI Chats\"},\"tabs\":{\"all\":\"All\",\"pending\":\"Pending\",\"completed\":\"Completed\",\"failed\":\"Failed\"},\"buttons\":{\"view\":\"View Chat\",\"new\":\"New Chat\"},\"empty_message\":\"No chats found\"}},\"notifications\":{\"title\":\"System Notifications\",\"create_title\":\"Create Notification\",\"detail_fallback_title\":\"Notification detail\",\"sections\":{\"delivery\":\"Delivery\",\"targeting_rules\":\"Targeting Rules\",\"content\":\"Content\",\"options\":\"Options\"},\"columns\":{\"title\":\"Title\",\"target\":\"Target\",\"level\":\"Level\",\"status\":\"Status\",\"published\":\"Published\",\"expires\":\"Expires\"},\"fields\":{\"target\":\"Target\",\"target_agent\":\"Target Agent\",\"level\":\"Level\",\"status\":\"Status\",\"published\":\"Published\",\"expires\":\"Expires\",\"os\":\"OS\",\"os_version\":\"OS Version\",\"app_version\":\"App Version\",\"language\":\"Language\",\"region\":\"Region\",\"plan\":\"Plan\",\"action_url\":\"Action URL\",\"action_url_optional\":\"Action URL (optional)\",\"created_by\":\"Created By\",\"created\":\"Created\",\"updated\":\"Updated\",\"id\":\"ID\",\"agent_id\":\"Agent ID\",\"account\":\"Account\",\"accounts\":\"Accounts\"},\"buttons\":{\"refresh\":\"Refresh\",\"create\":\"Create\",\"back\":\"Back\",\"cancel\":\"Cancel\",\"publish\":\"Publish\",\"publishing\":\"Publishing...\",\"lifecycle\":\"Lifecycle\",\"remove_account\":\"Remove account\"},\"messages\":{\"loading\":\"Loading...\",\"empty\":\"No notifications\",\"delete_confirm\":\"Delete this notification?\",\"fetch_failed\":\"fetch failed\",\"request_failed\":\"Request failed\",\"load_failed\":\"Failed to load notification\",\"no_content\":\"No content\",\"all\":\"All\",\"no_limit\":\"No limit\",\"not_available\":\"-\",\"updated\":\"Updated {time}\",\"account_separators\":\"Separate accounts with commas, spaces, or new lines. Duplicates are removed automatically.\",\"
792invalid_accounts\":\"{count} account(s) do not look like valid email addresses.\",\"account_limit\":\"A maximum of {limit} accounts can be published at once.\",\"accounts_not_found\":\"{count} account(s) were not found. No notifications were published; fix the highlighted accounts and retry.\",\"batch_publish_partial\":\"Published to {published} account(s); {failed} failed. The list now contains only failed accounts.\"},\"targets\":{\"broadcast\":\"Broadcast (all users)\",\"agent\":\"Specific User\",\"rules_only\":\"Rules Only\"},\"levels\":{\"info\":\"Info - auto dismiss\",\"warning\":\"Warning - manual dismiss\",\"urgent\":\"Urgent - forced banner\"},\"platforms\":{\"macos_arm64\":\"Mac Silicon\",\"macos_x64\":\"Mac Intel\",\"windows_x64\":\"Windows\"},\"locales\":{\"en\":\"English\",\"zh_CN\":\"中文\"},\"plans\":{\"free\":\"Free\",\"pro_39\":\"Pro 39\",\"pro_199\":\"Pro 199\",\"addon\":\"Booster\"},\"placeholders\":{\"agent_id\":\"User agent ID\",\"account\":\"Paste user emails separated by commas, spaces, or new lines\",\"app_version_min\":\"Min (e.g. 1.3.0)\",\"app_version_max\":\"Max (e.g. 2.0.0)\",\"region\":\"e.g. CN, US, JP (comma separated, empty = all)\",\"title_en\":\"Title (EN)\",\"body_en\":\"Body (EN)\",\"title_zh\":\"标题\",\"body_zh\":\"正文\",\"action_url\":\"https://...\"},\"versions\":{\"min\":\"Min\",\"max\":\"Max\",\"min_gte\":\"Min (\u003e=)\",\"max_lt\":\"Max (\u003c)\"},\"lifecycle\":{\"title\":\"Lifecycle Notifications\",\"sections\":{\"create\":\"Create lifecycle rule\",\"rules\":\"Rules\"},\"columns\":{\"name\":\"Name\",\"event\":\"Event\",\"audience\":\"Audience\",\"status\":\"Status\",\"delay\":\"Delay\",\"created\":\"Created\"},\"fields\":{\"name\":\"Name\",\"event\":\"Lifecycle Event\",\"audience\":\"Audience\",\"tags\":\"Tags\",\"level\":\"Level\",\"action_url\":\"Action URL\",\"delay_seconds\":\"Delay seconds\",\"expires_in_seconds\":\"Expires after seconds\",\"active\":\"Active\"},\"audience\":{\"all_users\":\"All users who trigger this event\",\"tagged_any\":\"Users with any selected tag\",\"tagged_all\":\"Users with all selected tags\"},\"buttons\":{\"back\":\"Back\",\"refresh\":\"Refresh\",\"create\":\"Create rule\",\"creating\":\"Creating...\"},\"messages\":{\"loading\":\"Loading...\",\"empty\":\"No lifecycle rules\",\"delete_confirm\":\"Delete this lifecycle rule?\",\"fetch_failed\":\"fetch failed\",\"request_failed\":\"Request failed\"},\"placeholders\":{\"name\":\"FloatCup signup follow-up\",\"tags\":\"世界杯用户, creator\",\"action_url\":\"https://floatboat.ai/...\",\"expires_in_seconds\":\"Empty = never expires\",\"title_en\":\"Title (EN)\",\"body_en\":\"Body (EN)\",\"title_zh\":\"标题\",\"body_zh\":\"正文\"},\"locales\":{\"en\":\"English\",\"zh_CN\":\"中文\"},\"levels\":{\"info\":\"Info\",\"warning\":\"Warning\",\"urgent\":\"Urgent\"}}},\"edm\":{\"title\":\"EDM\",\"subtitle\":\"Create one-time or lifecycle email campaigns with Resend.\",\"buttons\":{\"create\":\"Create campaign\",\"edit\":\"Edit draft\",\"refresh\":\"Refresh\",\"back\":\"Back to EDM\",\"save_draft\":\"Save draft\",\"save_changes\":\"Save changes\",\"save_activate\":\"Create lifecycle rule\",\"save_send\":\"Save and send\",\"save_schedule\":\"Save and schedule\",\"send_test\":\"Send test email\",\"upload_image\":\"Upload image\",\"send_now\":\"Start sending\",\"retry\":\"Retry failed\",\"pause\":\"Pause\",\"activate\":\"Activate\",\"delete\":\"Delete\"},\"columns\":{\"name\":\"Campaign\",\"type\":\"Type\",\"status\":\"Status\",\"trigger\":\"Trigger / schedule\",\"recipients\":\"Recipients\",\"sent\":\"Successful\",\"failed\":\"Failed\",\"pending\":\"Pending\",\"created\":\"Created\"},\"fields\":{\"name\":\"Campaign name\",\"type\":\"Campaign type\",\"one_time\":\"One-time campaign\",\"lifecycle\":\"Lifecycle campaign\",\"lifecycle_event\":\"Lifecycle event\",\"delay_seconds\":\"Delay after event (seconds)\",\"audience_mode\":\"Audience\",\"all_users\":\"All users\",\"tagged_any\":\"Users with any selected tag\",\"tagged_all\":\"Users with all selected tags\",\"include_tags\":\"Included tags\",\"exclude_tags\":\"Excluded tags\",\"schedule\":\"Send time\",\"send_immediately\":\"Send immediately\",\"send_later\":\"Schedule for later\",\"sender_name\":\"Sender name (optional)\",\"reply_to\":\"Reply-to email (optional)\",\"subject\":\"Subject\",\"html_body\":\"HTML content\",\"text_body\":\"Plain-text content (optional)\",\"image_alt\":\"Image alt text\",\"image_alt_placeholder\":\"Describe the image\",\"test_account\":\"Test account email\",\"test_name\":\"Test nickname (for an email not registered as a user)\",\"active\":\"Activate immediately\",\"message_id\":\"Resend message ID\",\"attempts\":\"Attempts\",\"last_error\":\"Last error\"},\"sections\":{\"basic\":\"Basic settings\",\"audience\":\"Audience rules\",\"content\":\"Email content\",\"test\":\"Test delivery\",\"preview\":\"HTML preview\",\"stats\":\"Delivery results\",\"deliveries\":\"Recipients and deliveries\"},\"messages\":{\"loading\":\"Loading...\",\"empty\":\"No EDM campaigns yet.\",\"request_failed\":\"Request failed\",\"created\":\"Campaign created.\",\"test_sent\":\"Test email sent to {email}.\",\"delete_confirm\":\"Delete this campaign and all delivery records?\",\"placeholder_help\":\"Available placeholders:\",\"alt_required\":\"Please enter alt text before uploading an image.\",\"image_help\":\"Images must use absolute HTTP/HTTPS URLs and every image requires alt text.\",\"batch_help\":\"One-time campaigns use Resend Batch API in groups of 100. Successful means Resend accepted the email, including scheduled emails.\",\"exclude_help\":\"Excluded tags always take priority over included tags.\",\"no_tags\":\"No user tags are available.\",\"running\":\"This campaign is being processed in the background. Statistics refresh automatically.\",\"draft_edit_only\":\"Only unstarted one-time drafts can be edited.\"},\"statuses\":{\"draft\":\"Draft\",\"running\":\"Running\",\"scheduled\":\"Scheduled\",\"active\":\"Active\",\"paused\":\"Paused\",\"completed\":\"Completed\",\"partial_failed\":\"Partially failed\",\"failed\":\"Failed\",\"pending\":\"Pending\",\"processing\":\"Processing\",\"sent\":\"Successful\"}}},\"pages\":{\"about\":{\"metadata\":{\"title\":\"About Us\",\"description\":\"Learn why we built Floatboat and our mission to carry human intelligence forward.\",\"keywords\":\"about floatboat, ai vibe work, mission, story\"}},\"blog\":{\"metadata\":{\"title\":\"Blog\",\"description\":\"Read latest product features, solutions, and updates.\"},\"page\":{\"title\":\"ShipAny Blog\",\"sections\":{\"blog\":{\"id\":\"blog\",\"title\":\"Blog\",\"description\":\"Read latest product features, solutions, and updates.\"}}},\"messages\":{\"all\":\"All\",\"no_content\":\"No Content\",\"crumb\":\"Blog\",\"toc\":\"Table of Contents\"}},\"features\":{\"metadata\":{\"title\":\"Features Explore AOE’s core c
792apabilities and how the platform works.\",\"description\":\"Explore AOE’s core capabilities and how the platform works.\",\"keywords\":\"aoe features, vibe work, tacit engine, combo skills\"}},\"manifesto\":{\"metadata\":{\"title\":\"Manifesto\",\"description\":\"Read the AOE manifesto for outcome-native, context-native work.\",\"keywords\":\"aoe manifesto, outcome-native, context-native\"}},\"use_cases\":{\"metadata\":{\"title\":\"Use Cases\",\"description\":\"See practical ways AOE accelerates real work across roles.\",\"keywords\":\"aoe use cases, productivity, workflow automation\"}},\"resources\":{\"metadata\":{\"title\":\"Resources\",\"description\":\"Browse updates, articles, and other resources in the AOE knowledge base.\",\"keywords\":\"aoe resources, updates, blog, knowledge base\"}},\"showcases\":{\"metadata\":{\"title\":\"Floatboat Marketplace\",\"description\":\"Explore installable Combo skills and Workflow automations for Floatboat.\",\"keywords\":\"Floatboat marketplace, Combo Store, Workflow Store, workflow automations, agent skills\"},\"marketplace\":{\"eyebrow\":\"Marketplace\",\"title\":\"Install the way work gets done.\",\"description\":\"Floatboat Marketplace brings together reusable agent skills and ready-to-run workflow automations. Combo Store and Workflow Store are peer surfaces: choose a skill when the agent should reason with you, or choose a workflow when the process should execute directly.\",\"stores\":[{\"title\":\"Combo Store\",\"eyebrow\":\"Composable skills\",\"description\":\"Install reusable agent skills for research, writing, planning, operations, and domain-specific work. Combos teach Floatboat how to reason through a type of task.\",\"href\":\"/combostore\",\"cta\":\"Browse Combo Store\",\"image\":\"/imgs/floatboat/agent-workspace/combo/card-center.webp\",\"imageAlt\":\"Combo Store card preview\",\"icon\":\"combo\",\"chips\":[\"Agent skills\",\"Reusable expertise\",\"Interactive runs\"]},{\"title\":\"Workflow Store\",\"eyebrow\":\"Executable automation\",\"description\":\"Install fixed workflows for webhook, schedule, browser automation, callbacks, and closed-loop business operations. Workflows are designed to run without exposing source code.\",\"href\":\"/workflowstore\",\"cta\":\"Browse Workflow Store\",\"image\":\"/imgs/floatboat/landing/homepage-revamp/feature-3.webp\",\"imageAlt\":\"Workflow automation preview\",\"icon\":\"workflow\",\"chips\":[\"Webhook ready\",\"Scheduled runs\",\"Browser actions\"]}],\"secondary_title\":\"More market surfaces\",\"secondary_links\":[{\"title\":\"Timeshop\",\"description\":\"Subscribe to automation calendars that can trigger work on schedule.\",\"href\":\"/timeshop\",\"icon\":\"time\"},{\"title\":\"Clawbot Store\",\"description\":\"Discover WeChat Agents that can be tried directly from the marketing site.\",\"href\":\"/clawbot\",\"icon\":\"clawbot\"}]}},\"pricing\":{\"metadata\":{\"title\":\"Floatboat Pricing\",\"description\":\"Upgrade to Floatboat Pro.\",\"keywords\":\"floatboat pricing, floatboat pro, credits\"}},\"share\":{\"errors\":{\"load_failed\":\"Failed to load\",\"code_required\":\"Code required\",\"code_invalid\":\"Invalid code\",\"link_unavailable_title\":\"Link unavailable\",\"link_unavailable_desc\":\"This share link may have expired or is invalid.\",\"combo_info_missing\":\"Combo Skills info missing. Please refresh and try again.\",\"open_client_failed\":\"Unable to open the client. Please install AoE first.\"},\"actions\":{\"retry\":\"Retry\",\"continue\":\"Continue\",\"verifying\":\"Verifying...\",\"checking_sign_in\":\"Checking sign-in status…\",\"back_home\":\"Back to home\",\"install\":\"Install\",\"opening\":\"Opening...\",\"download\":\"Download\"},\"code\":{\"title\":\"Code required\",\"desc\":\"Enter the code provided by the sharer to continue.\",\"placeholder\":\"e.g. 7K3A\"},\"resource\":{\"timeshop\":\"Timeshop\",\"clawbot\":\"Clawbot\",\"description_fallback\":\"This private share is ready. Continue to open the resource.\",\"subscribe\":\"Subscribe in Floatboat\",\"open\":\"Open\",\"private_hint\":\"Password verified for this private share.\",\"public_hint\":\"This public share can be opened directly.\",\"expires_at\":\"Expires at: {value}\"},\"combo\":{\"untitled\":\"Untitled Combo Skills\",\"no_short_description\":\"(No description)\",\"ver
792sion\":\"Version\",\"updated_at\":\"Updated\",\"about\":\"About\",\"no_description\":\"No description provided.\",\"changelog\":\"Changelog\",\"details\":\"Details\",\"status\":\"Status\",\"submitted_at\":\"Submitted\",\"published_at\":\"Published\",\"last_updated\":\"Last updated\",\"date_dash\":\"—\",\"preview\":\"Preview {index}\"}},\"wishlist\":{\"metadata\":{\"title\":\"Wishlist\",\"description\":\"Share your feature requests and help shape the Floatboat roadmap.\",\"keywords\":\"floatboat wishlist, feature requests, product roadmap, user feedback\"}},\"download\":{\"metadata\":{\"title\":\"Download Floatboat for Mac \u0026 Windows\",\"description\":\"Download the Floatboat desktop app for macOS and Windows. The all-in-one AI agent workspace for one-person companies.\",\"keywords\":\"download floatboat, floatboat app, ai desktop app, mac, windows\"}},\"terms\":{\"metadata\":{\"title\":\"Terms of Service — Floatboat\",\"description\":\"Floatboat Terms of Service, covering AI \u0026 agentic capabilities, user content, memory \u0026 privacy, fees, and liability.\",\"keywords\":\"floatboat terms, terms of service, user agreement\"}},\"privacy\":{\"metadata\":{\"title\":\"Privacy Policy — Floatboat\",\"description\":\"How Floatboat handles your data, memory, and content. Files stay on your computer; agents run locally.\",\"keywords\":\"floatboat privacy, privacy policy, data, local\"}},\"connectors\":{\"metadata\":{\"title\":\"Floatboat Connector - Browse 1,355 Connectors\",\"description\":\"Connect your Agent to 1,355 apps, data services, developer tools, and AI platforms. Browse the Floatboat connector directory by service, business category, or connection setup.\",\"keywords\":\"floatboat connectors, app connectors, agent tools, integrations\"}},\"models\":{\"metadata\":{\"title\":\"AI Models — Floatboat\",\"description\":\"Every leading AI model in one desktop client. Floatboat routes your work to the best-fit model from OpenAI, DeepSeek, Zhipu, Moonshot, MiniMax, Alibaba, and more — covering text, image, and video.\",\"keywords\":\"ai models, floatboat models, openai, deepseek, zhipu, moonshot, minimax, llama, text, image, video\"}}},\"settings\":{\"sidebar\":{\"title\":\"Settings\",\"referral_standard_title\":\"Invite Friends\",\"nav\":{\"items\":[{\"title\":\"Profile\",\"url\":\"/settings/profile\",\"icon\":\"User\"},{\"title\":\"Referral\",\"url\":\"/settings/referral\",\"icon\":\"Users\"},{\"title\":\"Credits\",\"url\":\"/settings/credits\",\"icon\":\"Coins\"},{\"title\":\"Gift Cards\",\"url\":\"/settings/gift-cards\",\"icon\":\"Gift\"},{\"title\":\"Billing\",\"url\":\"/settings/billing\",\"icon\":\"CreditCard\"}]},\"top_nav\":{\"items\":[{\"title\":\"Settings\",\"url\":\"/settings\",\"icon\":\"Settings\"}]}},\"profile\":{\"fields\":{\"email\":\"Email\",\"name\":\"Name\",\"avatar\":\"Avatar\"},\"edit\":{\"title\":\"Profile\",\"description\":\"Update your profile\",\"crumbs\":{\"settings\":\"Settings\",\"profile\":\"Profile\"},\"buttons\":{\"submit\":\"Save\"}}},\"referral\":{\"title\":\"Referral\",\"creditUnit\":\"credits\",\"disabled\":\"Invitations are currently unavailable.\",\"metadata\":{\"title\":\"Invite Friends\",\"description\":\"Share your personal invite link and invite friends to try Floatboat.\"},\"hero\":{\"eyebrow\":\"Referral Program\",\"title\":\"Invite friends and earn credits\",\"subtitle\":\"Earn {signupRewardCredits} credits after someone signs up with your link and uses Floatboat for the first time, plus credits worth {paymentRewardPercent}% of their first payment.\",\"revShareValue\":\"Credits\",\"standard\":{\"title\":\"Invite friends to try Floatboat\",\"subtitle\":\"Share your personal invite link so friends can get started quickly. When a friend makes their first subscription payment, you’ll receive credits worth {paymentRewardPercent}% of it.\"},\"badges\":{\"signupLabel\":\"Sign-up + first use\",\"paymentLabel\":\"Payment\",\"signup\":\"First-use reward\",\"payment\":\"Payment reward\"}},\"invite\":{\"codeLabel\":\"Your invite code\",\"linkLabel\":\"Your invite link\",\"unavailable\":\"Unavailable\"},\"share\":{\"eyebrow\":\"Share\",\"title\":\"Your referral link\",\"description\":\"Copy your link and share it where it makes sense.\",\"codeChip\":\"Invite code: {code}\",\"tip\":\"Works well in communities, social posts, and email\",\"copyCta\":\"Copy Link\",\"copySuccess\":\"Invite link copied\",\"copyFailed\":\"Failed to copy invite link\",\"shareVia\":\"Share via\",\"shareText\":\"Try Floatboat: an AI work environment for writing, coding, and research. If you sign up with my link and use Floatboat for the first time, I’ll receive {signupRewardCredits} credits, plus credits worth {paymentRewardPercent}% of your first subscription payment.\",\"standardShareText\":\"Try Floatboat, an AI work environment for writing, coding, and research. You can get started through my invite link. When you make your first subscription payment, I’ll receive credits worth {paymentRewardPercent}% of it.\",\"emailSubject\":\"Try Floatboat\",\"social\":{\"x\":\"Share on X\",\"linkedin\":\"Share on LinkedIn\",\"facebook\":\"Share on Facebook\",\"whatsapp\":\"Share on WhatsApp\",\"telegram\":\"Share on Telegram\",\"reddit\":\"Share on Reddit\",\"email\":\"Share by email\"}},\"dashboard\":{\"eyebrow\":\"Overview\",\"description\":\"A simple view of your referral performance.\",\"totalEarnedLabel\":\"Total Credits Earned\",\"totalEarnedHint\":\"Combined from first-use rewards and payment rewards.\",\"standard\":{\"description\":\"See your invitations, paid conversions, and subscription payment rewards.\",\"totalEarnedLabel\":\"Payment Rewards Earned\",\"totalEarnedHint\":\"Credits earned when invited friends make their first subscription payment.\"},\"stats\":{\"invitedUsers\":\"Invited users\",\"paidReferrals\":\"Paid referrals\",\"paymentRewards\":\"Payment rewards\"}},\"recent\":{\"title\":\"Recent referrals\",\"description\":\"See who signed up through your link and how much each referral has earned for you.\",\"standardDescription\":\"See who recently signed up through your link and the credits earned after their subscription payment.\",\"empty\":\"No referrals yet.\",\"notPaid\":\"Not yet\",\"columns\":{\"user\":\"User\",\"rewards\":\"Rewards Earned\",\"signedUpAt\":\"Signed up at\",\"firstPaidAt\":\"First paid at\"}}},\"security\":{\"fields\":{\"email\":\"Email\",\"password\":\"Password\",\"new_password\":\"New Password\",\"confirm_password\":\"Confirm Password\"},\"reset_password\":{\"title\":\"Reset Password\",\"description\":\"Reset your password by email\",\"tip\":\"We will send a reset link to your current email address.\",\"crumbs\":{\"settings\":\"Settings\",\"security\":\"Security\"},\"buttons\":{\"submit\":\"Send reset email\"}},\"delete_account\":{\"title\":\"Delete Account\",\"description\":\"Delete your account\",\"tip\":\"Are you sure you want to delete your account? This action cannot be undone.\",\"confirmation\":\"Permanently delete your Floatboat account? This cannot be undone.\",\"deleted\":\"Your account has been deleted.\",\"failed\":\"Unable to delete your account. Please try again.\",\"crumbs\":{\"settings\":\"Settings\",\"security\":\"Security\"},\"buttons\":{\"submit\":\"Delete\"}}},\"billing\":{\"fields\":{\"subscription_no\":\"Subscription No\",\"interval\":\"Interval\",\"provider\":\"Provider\",\"current_period\":\"Current Period\",\"plan\":\"Plan\",\"status\":\"Status\",\"amount\":\"Amount\",\"created_at\":\"Created At\",\"end_time\":\"End Time\",\"action\":\"Action\"}
792,\"view\":{\"title\":\"Current Plan\",\"tip\":\"Your subscription will auto renew on {date}\",\"end_tip\":\"Your subscription will be auto canceled on {date}\",\"payment_attention_tip\":\"Your subscription needs payment attention. Use Manage Subscription to update your payment details.\",\"payment_support_tip\":\"Your subscription needs payment attention, but its billing portal is unavailable. Contact support so we can recover it without creating a duplicate subscription.\",\"other_site_tip\":\"This subscription was purchased on another site. You can manage billing here, but plan changes must be made on the original site.\",\"lite_intro_renewal_processing\":\"The subscription renewal status is being processed. Refresh shortly.\",\"no_subscription\":\"No plan\",\"buttons\":{\"adjust\":\"Upgrade Plan\",\"subscribe\":\"Upgrade Plan\",\"manage\":\"Manage Subscription\",\"contact_support\":\"Contact Support\",\"cancel\":\"Cancel Subscription\"}},\"list\":{\"title\":\"Billing History\",\"description\":\"View your billing history\",\"tabs\":{\"all\":\"All\",\"active\":\"Active\",\"pending_cancel\":\"Pending Cancel\",\"canceled\":\"Canceled\",\"trialing\":\"Trialing\",\"paused\":\"Paused\",\"expired\":\"Expired\"}},\"retrieve\":{\"title\":\"Manage Subscription\",\"portal_unavailable\":\"We could not open the subscription management portal.\",\"contact_support\":\"Contact Support\",\"lite_intro_restriction_notice\":\"Introductory subscriptions can be canceled only during the final three days of the first billing period.\",\"continue_to_portal\":\"Continue to Manage Subscription\",\"back_to_billing\":\"Back to Billing\",\"close\":\"Close\"},\"cancel\":{\"title\":\"Cancel Subscription\",\"description\":\"Are you sure you want to cancel your subscription?\",\"fields\":{\"subscription_no\":\"Subscription No\",\"subscription_amount\":\"Subscription Amount\",\"interval_cycle\":\"Interval Cycle\",\"subscription_created_at\":\"Subscription Created At\",\"current_period\":\"Current Period\",\"start_at\":\"Start At\",\"end_at\":\"End At\"},\"crumbs\":{\"settings\":\"Settings\",\"billing\":\"Billing\",\"cancel\":\"Cancel Subscription\"},\"buttons\":{\"confirm_cancel\":\"Confirm Cancel\"}}},\"payments\":{\"fields\":{\"order_no\":\"Order No\",\"user\":\"User\",\"amount\":\"Amount\",\"product_name\":\"Product Name\",\"price\":\"Price\",\"paid_amount\":\"Paid Amount\",\"discount_amount\":\"Discount Amount\",\"description\":\"Description\",\"type\":\"Type\",\"provider\":\"Provider\",\"created_at\":\"Created At\",\"status\":\"Status\",\"action\":\"Action\",\"actions\":{\"view_invoice\":\"View Invoice\"}},\"list\":{\"title\":\"Payments\",\"description\":\"View your payments\",\"tabs\":{\"all\":\"All\",\"one-time\":\"One-Time\",\"subscription\":\"Subscription\",\"renew\":\"Renew\"}}},\"credits\":{\"fields\":{\"pool_type\":\"Pool Type\",\"amount\":\"Amount\",\"date\":\"Date\",\"details\":\"Details\",\"change\":\"Change\",\"transaction_no\":\"Transaction No\",\"description\":\"Description\",\"type\":\"Type\",\"scene\":\"Scene\",\"credits\":\"Credits\",\"expires_at\":\"Expires At\",\"created_at\":\"Created At\",\"action\":\"Action\"},\"list\":{\"title\":\"Credits Records\",\"empty\":\"No credit entries yet.\",\"beta_tip\":\"During the beta phase, detailed Credits Records are temporarily unavailable.\",\"tabs\":{\"all\":\"All\",\"grant\":\"Grant\",\"consume\":\"Consume\"}},\"view\":{\"title\":\"Credits Balance\",\"summary\":{\"total\":\"Total Credits\",\"remaining\":\"Available Credits\",\"expired\":\"Expired Credits\",\"used\":\"Used Credits\"},\"daily_refresh\":{\"title\":\"FloatSchedule Credits\",\"description\":\"Refreshes FloatSchedule credits to {amount} daily at {time} (UTC+0)\",\"subscriberDescription\":\"Subscribers receive {amount} FloatSchedule credits daily at {time} (UTC+0)\"},\"buttons\":{\"purchase\":\"Purchase Credits\",\"upgrade_subscription\":\"Get Credits\"}},\"referral_banner\":{\"badge\":\"Want more credits?\",\"copy\":\"Share your invite link with friends and earn more credits.\",\"cta\":\"Go to Referrals\",\"standard\":{\"badge\":\"Invite friends to Floatboat\",\"copy\":\"Share your personal invite link and earn credits worth {paymentRewardPercent}% when a friend makes their first subscription payment.\",\"cta\":\"Invite Friends\"}},\"gift_card_banner\":{\"badge\":\"Have a gift card?\",\"copy\":\"Redeem your co
792de to activate the included credits.\",\"cta\":\"Redeem Gift Card\",\"purchase_cta\":\"Buy Gift Cards\"}},\"gift-cards\":{\"page\":{\"title\":\"Gift Cards\",\"description\":\"Manage the gift cards you purchased. Available cards contain bearer credentials, so share them only with someone you trust.\"},\"pending\":{\"title\":\"Payment confirmation in progress\",\"description\":\"Stripe has returned you to Floatboat. Your gift cards will appear here as soon as the signed payment confirmation is processed.\"},\"fulfilled\":{\"title\":\"Your gift cards are ready\",\"description\":\"{count, plural, one {# gift card was created.} other {# gift cards were created.}}\"},\"failed\":{\"title\":\"Payment was not completed\",\"description\":\"Stripe reported that this payment failed or expired. No gift cards were created.\"},\"list\":{\"empty_title\":\"No gift cards found\",\"empty_description\":\"Buy a gift card or adjust the current filter and search.\"},\"filters\":{\"all\":\"All\",\"available\":\"Available\",\"redeemed\":\"Redeemed\",\"expired\":\"Expired\",\"disabled\":\"Disabled\"},\"status\":{\"available\":\"Available\",\"redeemed\":\"Redeemed\",\"expired\":\"Expired\",\"disabled\":\"Disabled\"},\"search\":{\"label\":\"Search purchased gift cards\",\"placeholder\":\"Full redemption code or last 4 characters\",\"submit\":\"Search\"},\"fields\":{\"code\":\"Redemption code\",\"credits\":\"Credits\",\"purchased_at\":\"Purchased\",\"redeem_deadline\":\"Redeem by\",\"redeemed_at\":\"Redeemed\",\"benefit_expires_at\":\"Benefit expires\",\"redeemed_by\":\"Redeemed by\",\"redeemer_unavailable\":\"Unavailable\"},\"benefit\":{\"description\":\"{credits} credits plus Pro membership for one calendar year after redemption.\",\"capabilities\":\"Feature Access capabilities\"},\"actions\":{\"buy\":\"Buy gift cards\",\"try_again\":\"Try again\",\"copy\":\"Copy code\",\"copy_redeem_link\":\"Copy redemption link\",\"download\":\"Download\",\"share\":\"Share\",\"gift\":\"Gift\",\"create_link\":\"Create gift link\",\"copy_link\":\"Copy link\"},\"gift\":{\"title\":\"Gift this card\",\"description\":\"Bind this card to the recipient's Floatboat login email. The redemption code will be disabled.\",\"recipient_email\":\"Recipient login email\",\"recipient_email_placeholder\":\"[email protected]\",\"creating\":\"Creating link\",\"link_label\":\"Private gift link\",\"link_warning\":\"This link can only be claimed by the selected account. Share it privately.\",\"active_title\":\"Private gift link is active\",\"active_recipient\":\"Bound to {email}\",\"active_expires\":\"Link expires {date}\",\"revoke\":\"Revoke link\",\"revoke_confirm\":\"Revoke this gift link? The card will become available again.\"},\"share\":{\"title\":\"Floatboat Gift Card\",\"native_text\":\"Redeem this Floatboat Gift Card using the code in the image.\",\"warning_title\":\"Sharing transfers access to this gift card\",\"warning_description\":\"Anyone with this image or redemption code can use an Available card. Confirm only when you are ready to give it to the recipient.\",\"cancel\":\"Cancel\",\"confirm\":\"Share gift card\",\"sharing\":\"Preparing share\"},\"messages\":{\"code_copied\":\"Redemption code copied\",\"redeem_link_copied\":\"Redemption link copied\",\"shared\":\"Gift card shared\",\"share_fallback_copied\":\"Redemption code and link copied\",\"gift_link_created\":\"Private gift link created\",\"gift_link_copied\":\"Gift link copied\",\"gift_link_revoked\":\"Gift link revoked\"},\"pagination\":{\"label\":\"Gift card pages\",\"previous\":\"Previous\",\"next\":\"Next\",\"summary\":\"Page {page} of {totalPages} · {total} cards\"},\"errors\":{\"status\":\"Could not refresh payment confirmation. We will keep trying.\",\"clipboard\":\"Could not access the clipboard\",\"share_retry\":\"Native sharing failed. Confirm again to copy the code and link instead.\",\"gift_link_failed\":\"Could not create a gift link\",\"gift_link_revoke_failed\":\"Could not revoke the gift link\"}},\"apikeys\":{\"fields\":{\"title\":\"Title\",\"key\":\"Key\",\"created_at\":\"Created At\",\"action\":\"Action\"}
792,\"list\":{\"title\":\"API Keys\",\"empty_message\":\"No API Keys\",\"buttons\":{\"add\":\"Create API Key\",\"edit\":\"Edit\",\"delete\":\"Delete\"}},\"add\":{\"title\":\"Create API Key\",\"crumbs\":{\"apikeys\":\"API Keys\",\"add\":\"Create API Key\"},\"buttons\":{\"submit\":\"Create\"}},\"edit\":{\"title\":\"Edit API Key\",\"crumbs\":{\"apikeys\":\"API Keys\",\"edit\":\"Edit API Key\"},\"buttons\":{\"submit\":\"Update\"}},\"delete\":{\"title\":\"Delete API Key\",\"crumbs\":{\"apikeys\":\"API Keys\",\"delete\":\"Delete API Key\"},\"buttons\":{\"submit\":\"Confirm Delete\"}}}},\"gift-card\":{\"buy\":{\"navigation\":{\"buy\":\"Buy\",\"manage\":\"Manage\",\"label\":\"Gift card sections\"},\"hero\":{\"eyebrow\":\"Floatboat Gift Cards\",\"title\":\"Turn your thought into a gift card\",\"subtitle\":\"Choose the credits and quantity to fit your budget, then send a gift made for them.\"},\"custom\":{\"eyebrow\":\"A gift that fits\",\"title\":\"Shape the gift your way\",\"description\":\"Choose the credits and quantity that fit your budget, then send a gift made for them.\"},\"fields\":{\"credits\":\"Credits per card\",\"credits_hint\":\"Adjust between {min} and {max} credits in {step}-credit increments.\",\"quantity\":\"Number of cards\",\"currency\":\"Payment currency\"},\"actions\":{\"refresh_quote\":\"Get secure quote\",\"checkout\":\"Continue to payment\",\"decrease_credits\":\"Decrease credits by the quick step\",\"increase_credits\":\"Increase credits by the quick step\",\"decrease_quantity\":\"Decrease the number of cards\",\"increase_quantity\":\"Increase the number of cards\"},\"quick\":{\"eyebrow\":\"CNY purchase\",\"title\":\"CNY 10,000 gift card\",\"description\":\"Each card includes 350,000 credits and one year of Pro membership.\",\"button\":\"Buy now\"},\"summary\":{\"title\":\"Purchase details\",\"price\":\"Price\",\"credits\":\"Card credits\",\"per_card\":\"Credits per card\",\"quantity\":\"Quantity\",\"total_credits\":\"Total credits\",\"total\":\"Order total\",\"empty\":\"Continue with the purchase to confirm the order details.\"},\"benefits\":{\"redeem_window\":\"Each purchased card can be redeemed for one calendar year after fulfillment.\",\"credit_window\":\"Granted credits remain usable for one calendar year after redemption.\"},\"errors\":{\"quote_failed\":\"Unable to create a gift card quote.\",\"checkout_failed\":\"Unable to start payment.\"},\"units\":{\"credits\":\"credits\"}},\"redeem\":{\"title\":\"Redeem Gift Card\",\"description\":\"Enter your gift card code to activate the included credits and membership access.\",\"hero\":{\"eyebrow\":\"Floatboat × Gift\",\"title\":\"Exclusive Gift · Launch Now\",\"subtitle\":\"Enter your code to unlock your Floatboat Premium time.\"},\"fields\":{\"code\":\"Gift Card Code\",\"code_placeholder\":\"GC...\"},\"form\":{\"title\":\"Gift card code\",\"description\":\"A code can be redeemed once. Redemption activates the credits, capabilities, and membership configured on this card.\",\"gift_link_description\":\"This private gift link is ready. Review the included benefits before claiming it.\"},\"purchase_prompt\":{\"title\":\"Want to send a gift card?\",\"description\":\"Choose the credits and quantity for someone important to you.\",\"action\":\"Buy a gift card\"},\"messages\":{\"no_auth\":\"Sign in before redeeming a gift card.\",\"redeemed\":\"Gift card redeemed\",\"empty_code\":\"Enter a gift card code\"},\"buttons\":{\"submit\":\"Redeem\",\"preview\":\"Validate Gift\",\"previewing\":\"Validating\",\"confirm\":\"Launch Now\",\"confirming\":\"Launching\",\"view_credits\":\"View Credits\",\"sign_in\":\"Sign In\"},\"modal\":{\"eyebrow\":\"Floatboat × Gift\",\"title\":\"Exclusive Gift · Launch Now\",\"description\":\"This gift card has passed validation. Confirm to activate the benefits configured on this card.\",\"credits_label\":\"Credits\",\"validity_label\":\"Validity\",\"one_calendar_year_value\":\"1 calendar year\",\"days_value\":\"days\",\"capabilities_label\":\"Capabilities\",\"expires_label\":\"Benefit Expires\"}}},\"ai\":{\"music\":{\"metadata\":{\"title\":\"AI Music Generator\",\"description\":\"Generate amazing music with AI\"},\"page\":{\"title\":\"AI Music Generator\",\"description\":\"Generate amazing music with AI\"},\"generator\":{\"title\":\"Music Generator\",\"prompt\":\"Prompt\",\"prompt_placeholder\":\"A love story of Romeo and Juliet\",\"generate\":\"Generate Music\",\"loading\":\"Loading...\",\"generating\":\"Generating...\",\"sign_in_to_generate\":\"Sign In to Generate Music\",\"credits_cost\":\"{credits} credits cost\",\"credits_remaining\":\"{credits} credits remaining\",\"buy_credits\":\"Buy Credits\",\"generation_progress\":\"Generation Progress\",\"time_cost\":\"This may take up to 2-3 minutes...\",\"generated_song\":\"Generated Song\",\"ready_to_play\":\"Ready to Play\",\"audio_generating\":\"Audio Generating...\",\"generating_song\":\"Generating Song...\",\"waiting_generation\":\"Please wait while we create your masterpiece\",\"no_song_generated\":\"No Song Generated\",\"downloading\":\"Downloading...\",\"download_success\":\"Download completed successfully\",\"download_failed\":\"Failed to download audio\",\"form\":{\"custom_mode\":\"Custom Mode\",\"title\":\"Title\",\"title_placeholder\":\"The Sound of Silence\",\"style\":\"Style of Music\",\"style_placeholder\":\"indie, electronic, synths, 120bpm, distorted\",\"instrumental\":\"Instrumental\",\"prompt\":\"Prompt\",\"prompt_placeholder\":\"A country folk song about love\",\"model\":\"Model\",\"lyrics\":\"Lyrics\",\"lyrics_placeholder\":\"Write your own lyrics, two verses (8 lines) for the best result\"}}},\"chat\":{\"sidebar\":{\"header\":{\"brand\":{\"title\":\"ShipAny Chat\",\"logo\":{\"src\":\"/logo.svg\",\"alt\":\"ShipAny Chat\"},\"url\":\"/chat\"},\"show_trigger\":false},\"buttons\":[{\"title\":\"New Chat\",\"icon\":\"Plus\",\"url\":\"/chat\",\"variant\":\"outline\"}],\"main_navs\":[{\"items\":[{\"title\":\"History\",\"icon\":\"History\",\"url\":\"/chat/history\"}]}],\"bottom_nav\":{\"items\":[]},\"user\":{\"nav\":{\"items\":[{\"title\":\"Profile\",\"url\":\"/settings/profile\",\"icon\":\"User\",\"target\":\"_blank\"}]},\"show_email\":false,\"show_signout\":true,\"signout_callback\":\"/chat\",\"signin_callback\":\"/chat\"},\"footer\":{\"nav\":{\"items\":[{\"title\":\"Home\",\"url\":\"/\",\"icon\":\"Home\",\"target\":\"_blank\"},{\"title\":\"GitHub\",\"url\":\"https://github.com/your-app-name\",\"icon\":\"Github\",\"target\":\"_blank\"},{\"title\":\"Twitter\",\"url\":\"https://twitter.com/your-app-name\",\"icon\":\"RiTwitterXFill\",\"target\":\"_blank\"},{\"title\":\"Discord\",\"url\":\"https://discord.gg/your-app-name\",\"icon\":\"RiDiscordFill\",\"target\":\"_blank\"},{\"title\":\"Email\",\"url\":\"mailto:[email protected]\",\"icon\":\"Mail\",\"target\":\"_blank\"}]},\"show_theme\":false,\"show_locale\":false},\"variant\":\"sidebar\"},\"library\":{\"title\":\"Library\",\"icon\":\"History\",\"url\":\"/chat/history\",\"more\":\"More\",\"actions\":{\"edit_title\":\"Edit Title\",\"share\":\"Share\",\"delete\":\"Delete\"}},\"generator\":{\"title\":\"What can I help you today?\",\"input_placeholder\":\"You can ask me anything\"},\"history\":{\"title\":\"Chat history\",\"description\":\"Review and revisit your previous conversations.\",\"empty\":\"No conversations yet.\",\"error\":\"Failed to load conversations.\",\"retry\":\"Try again\",\"signin\":\"Sign in to view your chat history.\",\"summary\":\"Showing {from}-{to} of {total}\",\"perPage\":\"Per page\",\"prev\":\"Previous\",\"next\":\"Next\",\"open\":\"Open chat\",\"untitled\":\"Untitled conversation\"}},\"image\":{\"metadata\":{\"title\":\"AI Image Generator\",\"description\":\"Generate images with AI models, support text-to-image and image-to-image.\"},\"page\":{\"title\":\"AI Image Generator\",\"description\":\"Generate images with AI models, support text-to-image and image-to-image.\"},\"generator\":{\"title\":\"Image Generator\",\"description\":\"Generate images with AI models, support text-to-image and image-to-image.\",\"tabs\":{\"text-to-image\":\"Text to Image\",\"image-to-image\":\"Image to Image\"},\"form\":{\"provider\":\"Provider\",\"model\":\"Model\",\"select_provider\":\"Select Provider\",\"select_model\":\"Select Model\",\"prompt\":\"Prompt\",\"prompt_placeholder\":\"Describe the details of the image, such as color, shape, texture, etc.\",\"reference_image\":\"Reference Image\",\"reference_image_placeholder\":\"Upload reference images, support multiple images\",\"some_images_failed_to_upload\":\"Some images failed to upload, please delete them and re-upload\",\"prompt_too_long\":\"Prompt is too long, please delete some content\"},\"generate\":\"Generate Images\",\"checking_account\":\"Checking Account...\",\"loading\":\"Loading...\",\"generating\":\"Generating...\",\"sign_in_to_generate\":\"Sign In to Generate Image\",\"credits_cost\":\"Cost {credits} credits\",\"credits_remaining\":\"Remaining {credits} credits\",\"buy_credits\":\"Buy Credits\",\"progress\":\"Progress\",\"generated_images\":\"Image Preview\",\"ready_to_generate\":\"Ready to Generate\",\"ready_for_generating\":\"Ready for Generating\",\"no_images_generated\":\"No Images Generated\"}},\"video\":{\"metadata\":{\"title\":\"AI Video Generator\",\"description\":\"Generate videos with AI models, support text-to-vi
792deo, image-to-video and video-to-video.\"},\"page\":{\"title\":\"AI Video Generator\",\"description\":\"Generate videos with AI models, support text-to-video, image-to-video and video-to-video.\"},\"generator\":{\"title\":\"Video Generator\",\"description\":\"Generate videos with AI models, support text-to-video, image-to-video and video-to-video.\",\"tabs\":{\"text-to-video\":\"Text to Video\",\"image-to-video\":\"Image to Video\",\"video-to-video\":\"Video to Video\"},\"form\":{\"provider\":\"Provider\",\"model\":\"Model\",\"select_provider\":\"Select Provider\",\"select_model\":\"Select Model\",\"prompt\":\"Prompt\",\"prompt_placeholder\":\"Describe the video content, such as scene, action, style, etc.\",\"reference_image\":\"Reference Image\",\"reference_image_placeholder\":\"Upload a reference image for video generation\",\"reference_video\":\"Reference Video URL\",\"reference_video_placeholder\":\"Enter the URL of the reference video\",\"some_images_failed_to_upload\":\"Image failed to upload, please delete and re-upload\",\"prompt_too_long\":\"Prompt is too long, please delete some content\"},\"generate\":\"Generate Video\",\"checking_account\":\"Checking Account...\",\"loading\":\"Loading...\",\"generating\":\"Generating...\",\"sign_in_to_generate\":\"Sign In to Generate Video\",\"credits_cost\":\"Cost {credits} credits\",\"credits_remaining\":\"Remaining {credits} credits\",\"buy_credits\":\"Buy Credits\",\"progress\":\"Progress\",\"generated_videos\":\"Video Preview\",\"ready_to_generate\":\"Ready to Generate\",\"ready_for_generating\":\"Ready for Generating\",\"no_videos_generated\":\"No Videos Generated\"}}},\"activity\":{\"sidebar\":{\"title\":\"Activity\",\"nav\":{\"items\":[{\"title\":\"AI Tasks\",\"url\":\"/activity/ai-tasks\",\"icon\":\"RiTaskLine\"},{\"title\":\"AI Chats\",\"url\":\"/activity/chats\",\"icon\":\"RiChat2Line\"},{\"title\":\"Wishlist\",\"url\":\"/wishlist\",\"icon\":\"RiListCheck2\"}]},\"top_nav\":{\"items\":[{\"title\":\"Activity\",\"url\":\"/activity\",\"icon\":\"Activity\"},{\"title\":\"Settings\",\"url\":\"/settings\",\"icon\":\"Settings\"}]}},\"ai-tasks\":{\"fields\":{\"title\":\"Title\",\"media_type\":\"Media Type\",\"provider\":\"Provider\",\"model\":\"Model\",\"prompt\":\"Prompt\",\"options\":\"Options\",\"status\":\"Status\",\"result\":\"Result\",\"cost_credits\":\"Cost Credits\",\"created_at\":\"Created At\",\"action\":\"Action\"},\"list\":{\"title\":\"AI Tasks\",\"tabs\":{\"all\":\"All\",\"music\":\"Music\",\"image\":\"Image\",\"video\":\"Video\",\"audio\":\"Audio\",\"text\":\"Text\"},\"buttons\":{\"view\":\"View Task\",\"refresh\":\"Refresh Task\"},\"empty_message\":\"No tasks found\"}},\"chats\":{\"fields\":{\"title\":\"Title\",\"status\":\"Status\",\"model\":\"Model\",\"provider\":\"Provider\",\"created_at\":\"Created At\",\"action\":\"Action\"},\"list\":{\"title\":\"AI Chats\",\"tabs\":{\"all\":\"All\",\"pending\":\"Pending\",\"completed\":\"Completed\",\"failed\":\"Failed\"},\"buttons\":{\"view\":\"View Chat\",\"new\":\"New Chat\"},\"empty_message\":\"No chats found\"}}}}
792,\"now\":\"$undefined\",\"timeZone\":\"UTC\",\"children\":\"$L1e\"}]\n"])</script>
792<script>self.__next_f.push([1,"1f:I[15760,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"ThemeProvider\"]\n20:I[90811,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"AppContextProvider\"]\n21:Tacf,"])</script>
792<script>self.__next_f.push([1,"{\"signup_onboarding\":{\"enabled\":true,\"timezone\":\"UTC\",\"displayName\":\"新用户注册福利\",\"startsAt\":\"2026-09-22T07:25:46.131Z\",\"steps\":[{\"key\":\"day_1\",\"label\":\"首日\",\"mode\":\"automatic\",\"amount\":200,\"afterHours\":0,\"displayHours\":0,\"copy\":{\"zh\":{\"title\":\"首日积分已到账\",\"message\":\"已送你 {amount} 积分,明天可领取 {day_2Amount} 积分\",\"amountLabel\":\"积分\",\"claimButtonLabel\":\"我知道了\",\"claimingLabel\":\"领取中…\",\"successTitle\":\"领取成功\",\"successMessage\":\"积分已到账\",\"errorTitle\":\"领取失败\",\"errorMessage\":\"积分领取失败或领取窗口已结束。\",\"linkOpeningLabel\":\"打开中…\",\"actionLink\":\"\",\"actionLinkLabel\":\"打开链接\",\"notificationTitle\":\"首日积分已到账\",\"notificationBody\":\"已送你 {amount} 积分,明天可领取 {day_2Amount} 积分\"},\"en\":{\"title\":\"Day 1 credits added\",\"message\":\"You've received {amount} credits. Claim {day_2Amount} credits tomorrow.\",\"amountLabel\":\"credits\",\"claimButtonLabel\":\"Got it\",\"claimingLabel\":\"Claiming…\",\"successTitle\":\"Credits claimed\",\"successMessage\":\"Credits have been added.\",\"errorTitle\":\"Claim failed\",\"errorMessage\":\"Credits could not be claimed, or the claim window has ended.\",\"linkOpeningLabel\":\"Opening…\",\"actionLink\":\"\",\"actionLinkLabel\":\"Open link\",\"notificationTitle\":\"Day 1 credits added\",\"notificationBody\":\"You've received {amount} credits. Claim {day_2Amount} credits tomorrow.\"}}},{\"key\":\"day_2\",\"label\":\"次日\",\"mode\":\"manual\",\"amount\":300,\"afterHours\":24,\"displayHours\":24,\"copy\":{\"zh\":{\"title\":\"新用户注册福利\",\"message\":\"今日可领取\",\"amountLabel\":\"积分\",\"claimButtonLabel\":\"立即领取\",\"claimingLabel\":\"领取中…\",\"successTitle\":\"领取成功\",\"successMessage\":\"积分已到账\",\"errorTitle\":\"领取失败\",\"errorMessage\":\"积分领取失败或领取窗口已结束。\",\"linkOpeningLabel\":\"打开中…\",\"actionLink\":\"aoe://action/open-and-prefill?prompt=%E5%B8%AE%E6%88%91%E4%BA%86%E8%A7%A3%E4%B8%80%E4%B8%8B%E7%A7%AF%E5%88%86%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95\",\"actionLinkLabel\":\"去使用积分\",\"notificationTitle\":\"新用户注册福利\",\"notificationBody\":\"今日可领取 {amount} 积分\"},\"en\":{\"title\":\"Welcome bonus\",\"message\":\"Claim today's credits\",\"amountLabel\":\"credits\",\"claimButtonLabel\":\"Claim now\",\"claimingLabel\":\"Claiming…\",\"successTitle\":\"Credits claimed\",\"successMessage\":\"Credits have been added.\",\"errorTitle\":\"Claim failed\",\"errorMessage\":\"Credits could not be claimed, or the claim window has ended.\",\"linkOpeningLabel\":\"Opening…\",\"actionLink\":\"aoe://action/open-and-prefill?prompt=Help%20me%20understand%20how%20to%20use%20my%20credits\",\"actionLinkLabel\":\"Use your credits\",\"notificationTitle\":\"Welcome bonus\",\"notificationBody\":\"Claim {amount} credits today\"}}}]}}"])</script>
792<script>self.__next_f.push([1,"1e:[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"$L20\",null,{\"initialConfigs\":{\"DOWNLOAD_WINDOWS_BASE_INSTALLER_URL\":\"https://release.aoe.chat/Floatboat-Setup-0.5.9-x64.exe\",\"DOWNLOAD_MAC_ARM_INSTALLER_URL\":\"https://release.aoe.chat/Floatboat-0.5.9-arm64.dmg\",\"DOWNLOAD_MAC_X86_INSTALLER_URL\":\"https://release.aoe.chat/Floatboat-0.5.9-x64.dmg\",\"google_client_id\":\"323850757254-rk6m1tbeaesj3cl8883dkps95bedveu5.apps.googleusercontent.com\",\"google_one_tap_enabled\":\"false\",\"google_auth_enabled\":\"true\",\"github_auth_enabled\":\"false\",\"email_auth_enabled\":\"true\",\"email_verification_enabled\":\"true\",\"aoe_download_windows_url\":\"https://release.aoe.chat/floatboat-0.1.1-universal.dmg\",\"user_protection_program_end_at_utc\":\"2026-04-09T21:01:00.000Z\",\"landing_user_protection_program_popup_enabled\":\"false\",\"landing_user_protection_program_link_enabled\":\"false\",\"aoe_download_macos_url\":\"https://release.aoe.chat/Floatboat%20Setup%200.1.0.exe\",\"stripe_enabled\":\"true\",\"select_payment_enabled\":\"false\",\"default_payment_provider\":\"stripe\",\"credit_campaigns_config\":\"$21\",\"newapi_first_login_credits_amount\":\"300\",\"user_protection_program_supported_version\":\"Floatboat 0.1.7 及以上\",\"web_signup_enabled\":\"false\",\"user_protection_program_supported_version_en\":\"Floatboat 0.1.7 or later\"},\"children\":[\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\"]}]}]\n"])</script>
792<script>self.__next_f.push([1,"27:I[17303,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"UtmCapture\"]\n28:I[12947,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"SilentAccountHandoff\"]\n29:I[57561,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"SignModal\"]\n2a:I[27048,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"583\",\"static/chunks/583-78a6037295e39d41.js\",\"64979\",\"static/chunks/64979-92e3e949c9b7587c.js\",\"98450\",\"static/chunks/app/%5Blocale%5D/layout-dbfe5eedb7bcc0ef.js\"],\"Toaster\"]\n"])</script>
792<script>self.__next_f.push([1,"2b:I[88580,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"FloatboatLandingHome\",1]\n"])</script>
792<script>self.__next_f.push([1,"22:[\"$\",\"$L27\",null,{}]\n23:[\"$\",\"$7\",null,{\"fallback\":null,\"children\":[\"$\",\"$L28\",null,{}]}]\n24:[\"$\",\"$L16\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L17\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n25:[\"$\",\"$L29\",null,{}]\n26:[\"$\",\"$L2a\",null,{\"position\":\"top-center\",\"richColors\":true}]\n10:[\"$\",\"$L2b\",\"aoe_home\",{\"homepageModelHeading\":\"让业界顶尖模型发挥超常实力\",\"homepageModels\":[{\"modelId\":\"Gemini-3.8-flash\",\"displayName\":\"Gemini-3.8-flash\",\"iconKey\":\"gemini\",\"enabled\":true,\"sortOrder\":10},{\"modelId\":\"Claude-opus-5\",\"displayName\":\"Claude-opus-5\",\"iconKey\":\"claude\",\"enabled\":true,\"sortOrder\":20},{\"modelId\":\"Claude-fable-5\",\"displayName\":\"Claude-fable-5\",\"iconKey\":\"claude\",\"enabled\":true,\"sortOrder\":30},{\"modelId\":\"kimi-k3\",\"displayName\":\"Kimi-K3\",\"iconKey\":\"kimi\",\"enabled\":true,\"sortOrder\":40},{\"modelId\":\"DeepSeek-v4.1-flash\",\"displayName\":\"DeepSeek-v4.1-flash\",\"iconKey\":\"deepseek\",\"enabled\":true,\"sortOrder\":50},{\"modelId\":\"GPT-6-Astra\",\"displayName\":\"GPT-6-Astra\",\"iconKey\":\"openai\",\"enabled\":true,\"sortOrder\":60},{\"modelId\":\"nano-banana-2\",\"displayName\":\"Nano Banana 2\",\"iconKey\":\"nano-banana\",\"enabled\":false,\"sortOrder\":70},{\"modelId\":\"GPT-image-2\",\"displayName\":\"GPT-image-2\",\"iconKey\":\"openai\",\"enabled\":true,\"sortOrder\":80},{\"modelId\":\"Seedance-2.5\",\"displayName\":\"Seedance-2.5\",\"iconKey\":\"seedance\",\"enabled\":true,\"sortOrder\":90},{\"modelId\":\"GPT-6-sol\",\"displayName\":\"GPT-6-sol\",\"iconKey\":\"openai\",\"enabled\":true,\"sortOrder\":100},{\"modelId\":\"GPT-6-luna\",\"displayName\":\"GPT-6-luna\",\"iconKey\":\"openai\",\"enabled\":true,\"sortOrder\":110}]}]\n"])</script>
792<script>self.__next_f.push([1,"2c:I[6706,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"27996\",\"static/chunks/app/%5Blocale%5D/(calendar-store)/layout-7e4996f4c5e08ed1.js\"],\"MarketplaceAccessProvider\"]\n"])</script>
792<script>self.__next_f.push([1,"4:[\"$\",\"$L2c\",null,{\"access\":{\"web.workflow-store\":false,\"web.workbench-store\":false},\"children\":\"$L2d\"}]\n"])</script>
792<script>self.__next_f.push([1,"2e:I[89377,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"LandingFloatboatBackground\"]\n"])</script>
792<script>self.__next_f.push([1,"2f:I[19726,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"Header\",1]\n"])</script>
792<script>self.__next_f.push([1,"30:T5e13,"])</script>
792<script>self.__next_f.push([1,"(function () {\n  var NS = '__aoeMacLandingFlow';\n  if (window[NS] \u0026\u0026 window[NS].booted) return;\n\n  function readCookie(name) {\n    var token = name + '=';\n    var parts = document.cookie.split(';');\n    for (var i = 0; i \u003c parts.length; i += 1) {\n      var value = parts[i].trim();\n      if (!value.startsWith(token)) continue;\n      try {\n        return decodeURIComponent(value.slice(token.length));\n      } catch {\n        return value.slice(token.length);\n      }\n    }\n    return '';\n  }\n\n  function hasManualDownloadMode() {\n    try {\n      var mode = String(new URLSearchParams(window.location.search).get('download_mode') || '')\n        .trim()\n        .toLowerCase();\n      if (mode === 'manual' || mode === 'manu') return true;\n    } catch {\n      // Fall back to cookie below.\n    }\n    var cookieMode = String(readCookie('fb_download_mode') || '')\n      .trim()\n      .toLowerCase();\n    return cookieMode === 'manual' || cookieMode === 'manu';\n  }\n\n  if (hasManualDownloadMode()) return;\n\n  var state = {\n    booted: true,\n    prepared: null,\n    payloadKey: '',\n    preparing: null,\n  };\n  window[NS] = state;\n\n  function detectMac() {\n    var uaDataPlatform = String(\n      (navigator.userAgentData \u0026\u0026 navigator.userAgentData.platform) || ''\n    );\n    var ua = String(navigator.userAgent || '');\n    var navPlatform = String(navigator.platform || '');\n    if (/mac/i.test(uaDataPlatform)) return true;\n    if (/mac/i.test(navPlatform) || /Macintosh/i.test(ua)) return true;\n    return false;\n  }\n\n  function isMacSafari() {\n    var uaDataPlatform = String(\n      (navigator.userAgentData \u0026\u0026 navigator.userAgentData.platform) || ''\n    );\n    var ua = String(navigator.userAgent || '');\n    var navPlatform = String(navigator.platform || '');\n    var isMac =\n      /mac/i.test(uaDataPlatform) || /mac/i.test(navPlatform) || /Macintosh/i.test(ua);\n    if (!isMac) return false;\n    var hasSafari = /\\bSafari\\//i.test(ua);\n    var isChromiumFamily =\n      /\\bChrome\\/|\\bChromium\\/|\\bCriOS\\/|\\bEdg\\/|\\bOPR\\/|\\bOPiOS\\/|\\bDuckDuckGo\\//i.test(\n        ua\n      );\n    return hasSafari \u0026\u0026 !isChromiumFamily;\n  }\n\n  if (!detectMac()) return;\n\n  function pickFirst(values) {\n    for (var i = 0; i \u003c values.length; i += 1) {\n      var text = String(values[i] || '').trim();\n      if (text) return text;\n    }\n    return '';\n  }\n\n  function randomId(prefix) {\n    if (window.crypto \u0026\u0026 typeof window.crypto.randomUUID === 'function') {\n      return prefix + '_' + window.crypto.randomUUID();\n    }\n    return prefix + '_' + Date.now() + '_' + Math.random().toString(16).slice(2, 12);\n  }\n\n  function getTaboolaPixelIds() {\n    var ids = [];\n    if (Array.isArray(window.__taboolaPixelIds)) {\n      ids = window.__taboolaPixelIds;\n    } else if (window.__taboolaPixelId) {\n      ids = String(window.__taboolaPixelId).split(',');\n    }\n    ids = ids\n      .map(function (id) {\n        return String(id || '').trim();\n      })\n      .filter(Boolean);\n    if (!ids.length) {\n      ids = ['2042232', '2044646'];\n    }\n    var seen = {};\n    return ids.filter(function (id) {\n      if (seen[id]) return false;\n      seen[id] = true;\n      return true;\n    });\n  }\n\n  function toTaboolaPixelId(value) {\n    var n = Number(value);\n    return value \u0026\u0026 Number.isFinite(n) ? n : value;\n  }\n\n  function sendTaboolaDownloadClick(params) {\n    try {\n      var queue = window._tfa || [];\n      if (typeof queue.push !== 'function') return;\n      window._tfa = queue;\n\n      var eventParams = {};\n      Object.keys(params || {}).forEach(function (key) {\n        if (key === 'event_callback' || key === 'event_timeout' || key === 'transport_type') {\n          return;\n        }\n        var value = params[key];\n        if (value === undefined || value === null) return;\n        if (\n          typeof value === 'string' ||\n          typeof value === 'number' ||\n          typeof value === 'boolean'\n        ) {\n          eventParam
792s[key] = value;\n        }\n      });\n\n      getTaboolaPixelIds().forEach(function (pixelId) {\n        queue.push(\n          Object.assign(\n            {\n              notify: 'event',\n              name: 'download_click',\n              id: toTaboolaPixelId(pixelId),\n            },\n            eventParams\n          )\n        );\n      });\n    } catch {\n      // ignore\n    }\n  }\n\n  function sendDownloadClick(downloadClickId, originalHref, arch, anchor) {\n    var downloadPlacement = '';\n    var downloadEntryPoint = '';\n    var downloadLinkText = '';\n    try {\n      var hrefUrl = new URL(String(originalHref || ''), window.location.href);\n      downloadPlacement = String(hrefUrl.searchParams.get('download_placement') || '');\n      downloadEntryPoint = String(hrefUrl.searchParams.get('download_entry_point') || '');\n      downloadLinkText = String(hrefUrl.searchParams.get('download_link_text') || '');\n    } catch {\n      // Keep the legacy default values below.\n    }\n    var params = {\n      transport_type: 'beacon',\n      platform: 'macos',\n      placement: downloadPlacement || 'landing_download',\n      entry_point: downloadEntryPoint || downloadPlacement || 'landing_download',\n      link_text:\n        downloadLinkText ||\n        String((anchor \u0026\u0026 anchor.textContent) || '').trim() ||\n        undefined,\n      link_url: String(originalHref || ''),\n      download_type: 'zip',\n      download_click_id: downloadClickId,\n    };\n    if (arch) params.arch = arch;\n\n    sendTaboolaDownloadClick(params);\n\n    if (typeof window.gtag === 'function') {\n      try {\n        window.gtag('event', 'download_click', params);\n      } catch {\n        // ignore\n      }\n    }\n\n    var payload = {\n      event_name: 'download_click',\n      request_id: randomId('web_evt'),\n      event_id: randomId('evt'),\n      event_time_client: new Date().toISOString(),\n      params: params,\n      context: {\n        page_url: window.location.href,\n        page_path: window.location.pathname,\n        referrer: document.referrer || '',\n        locale: navigator.language || '',\n      },\n    };\n    var body = '';\n    try {\n      body = JSON.stringify(payload);\n    } catch {\n      return;\n    }\n    if (!body) return;\n    try {\n      if (navigator.sendBeacon) {\n        var blob = new Blob([body], { type: 'application/json' });\n        if (navigator.sendBeacon('/api/analytics/events', blob)) return;\n      }\n    } catch {\n      // fallback below\n    }\n    try {\n      fetch('/api/analytics/events', {\n        method: 'POST',\n        headers: { 'content-type': 'application/json' },\n        body: body,\n        keepalive: true,\n        cache: 'no-store',\n      }).catch(function () {});\n    } catch {\n      // ignore\n    }\n  }\n\n  function buildPayload(defaultSource) {\n    var search = new URLSearchParams(window.location.search);\n    var channel = pickFirst([search.get('channel'), search.get('utm_source')]);\n    var campaign = pickFirst([search.get('campaign'), search.get('utm_campaign')]);\n    var creative = pickFirst([search.get('creative'), search.get('utm_content')]);\n    var clickId = pickFirst([\n      search.get('click_id'),\n      search.get('gclid'),\n      search.get('fbclid'),\n      search.get('ttclid'),\n      search.get('msclkid'),\n    ]);\n    var gclid = pickFirst([search.get('gclid')]);\n    var gbraid = pickFirst([search.get('gbraid')]);\n    var wbraid = pickFirst([search.get('wbraid')]);\n    var fbclid = pickFirst([search.get('fbclid')]);\n    var ttclid = pickFirst([search.get('ttclid')]);\n    var msclkid = pickFirst([search.get('msclkid')]);\n    var tblci = pickFirst([search.get('tblci')]);\n    var rdtCid = pickFirst([search.get('rdt_cid')]);\n    var source = pickFirst([search.get('source'), defaultSource]);\n\n    return {\n      channel: channel || undefined,\n      source: source || 'landing',\n      campaign: campaign || undefined,\n      creative: creative || undefined,\n      click_id: clickId || undefined,\n      gclid: gclid || undefined,\n      gbraid: gbraid || undefined,\n      wbraid: wbraid || undefined,\n      fbclid: fbclid || undefined,\n      ttclid: ttclid || undefined,\n      msclkid: msclkid || undefined,\n      tblci: tblci || undefined,\n      rdt_cid: rdtCid || undefined,\n      utm_source: channel || undefined,\n      utm_campaign: campaign || undefined,\n      utm_c
792ontent: creative || undefined,\n    };\n  }\n\n  function normalizePlatform(value) {\n    var platform = String(value || '').trim().toLowerCase();\n    if (platform === 'windows' || platform === 'win' || platform === 'pc') {\n      return 'windows';\n    }\n    if (platform === 'mac' || platform === 'macos' || platform === 'osx') {\n      return 'mac';\n    }\n    return '';\n  }\n\n  function normalizeArch(value) {\n    var arch = String(value || '').trim().toLowerCase();\n    if (arch === 'arm' || arch === 'arm64' || arch.indexOf('arm') \u003e= 0) return 'arm';\n    if (\n      arch === 'x86' ||\n      arch === 'x64' ||\n      arch === 'intel' ||\n      arch.indexOf('x86') \u003e= 0\n    ) {\n      return 'x86';\n    }\n    return '';\n  }\n\n  function parseDownloadIntent(rawHref) {\n    try {\n      var url = new URL(rawHref, window.location.href);\n      var forcedPlatform = normalizePlatform(url.searchParams.get('platform'));\n      var arch = normalizeArch(url.searchParams.get('arch'));\n      if (forcedPlatform) {\n        return {\n          platform: forcedPlatform,\n          arch: forcedPlatform === 'mac' ? arch : '',\n        };\n      }\n      if (arch) {\n        return {\n          platform: 'mac',\n          arch: arch,\n        };\n      }\n      return {\n        platform: '',\n        arch: '',\n      };\n    } catch {\n      return {\n        platform: '',\n        arch: '',\n      };\n    }\n  }\n\n  function getPayloadKey(payload, arch) {\n    try {\n      return JSON.stringify({ p: payload, arch: arch || 'arm' });\n    } catch {\n      return '';\n    }\n  }\n\n  function detectMacArchFromWebGL() {\n    try {\n      var c = document.createElement('canvas');\n      var gl = c.getContext('webgl') || c.getContext('experimental-webgl');\n      if (!gl) return undefined;\n      var ext = gl.getExtension('WEBGL_debug_renderer_info');\n      var renderer = ext ? String(gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) || '') : '';\n      if (!renderer) return undefined;\n      var r = renderer.toLowerCase();\n      if (r.indexOf('apple m1') \u003e= 0 || r.indexOf('apple m2') \u003e= 0 || r.indexOf('apple m3') \u003e= 0 ||\n          r.indexOf('apple m4') \u003e= 0 || r.indexOf('apple m5') \u003e= 0 || r.indexOf('apple processor') \u003e= 0) {\n        return 'arm';\n      }\n      if (r.indexOf('intel') \u003e= 0 || r.indexOf('amd') \u003e= 0) return 'x86';\n      if (r.indexOf('apple') \u003e= 0 \u0026\u0026 r.indexOf('apple gpu') \u003c 0) return 'arm';\n      return undefined;\n    } catch {\n      return undefined;\n    }\n  }\n\n  function detectMacArch(cb) {\n    if (isMacSafari()) {\n      cb(undefined);\n      return;\n    }\n    var uaData = navigator.userAgentData;\n    if (uaData \u0026\u0026 typeof uaData.getHighEntropyValues === 'function') {\n      uaData.getHighEntropyValues(['architecture']).then(function(v) {\n        var arch = String((v \u0026\u0026 v.architecture) || '').toLowerCase();\n        if (arch === 'arm' || arch.indexOf('arm') \u003e= 0) {\n          cb('arm'); return;\n        }\n        if (arch === 'x86' || arch === 'x64' || arch.indexOf('x86') \u003e= 0) {\n          cb('x86'); return;\n        }\n        cb(detectMacArchFromWebGL());\n      }).catch(function() {\n        cb(detectMacArchFromWebGL());\n      });\n    } else {\n      cb(detectMacArchFromWebGL());\n    }\n  }\n\n  function normalizePrepared(data) {\n    if (!data || typeof data !== 'object') return null;\n    var stateId = String(data.state_id || '').trim();\n    var downloadToken = String(data.download_token || '').trim();\n    if (!/^st_[A-Za-z0-9_-]{16,4096}\\.[A-Za-z0-9_-]{16,256}$/.test(stateId)) return null;\n    if (!/^[A-Za-z0-9_.~-]{8,256}$/.test(downloadToken)) return null;\n    var out = {\n      state_id: stateId,\n      download_token: downloadToken,\n      channel: String(data.channel || 'direct').trim() || 'direct',\n      expire_at: String(data.expire_at || '').trim(),\n    };\n    if (typeof data.signature_secret === 'string' \u0026\u0026 data.signature_secret.length \u003e 0) {\n      out.signature_secret = data.signature_secret;\n    }\n    return out;\n  }\n\n  function isPreparedValid(prepared) {\n    if (!prepared) return false;\n    var expireAt = String(prepared.expire_at || '').trim();\n    if (!expireAt) return true;\n    var parsed = Date.parse(expireAt);\n    if (!Number.isFinite(parsed)) return true;\n    return parsed \u003e Date.now() + 1000;\n  }\n\n  function getCachedPrepared(payload, arch) {\n    var key = getPayloadKey(payload, arch);\n    if (!key || key !== state.payloadKey) return null;\n    if (!isPreparedValid(state.prepared)) return null;\n    return state.prepared;\n  }\n\n  function prepareMac(payload, arch) {\n    var key = getPayloadKey(payload, arch || 'arm');\n    if (!key) return Promise.resolve(null);\n\n    var cached = getCachedPrepared(payload, arch);\n    if (cached) {\n      return Promise.resolve(cached);\n    }\n    if (state.preparing \u0026\u0026 state.payloadKey === key) {\n      return state.preparing;\n    }\n\n    state.payloadKey = key;\n    state.preparing = fetch('/download/mac/prepare', {\n      method: 'POST',\n      headers: {\n        'content-type': 'application/json',\n      },\n      body: JSON.stringify({\n        platform: 'mac',\n        arch: arch || 'arm',\n        channel: payload.channel,\n        source: payload.source,\n        campaign: payload.campaign,\n        creative: payload.creative,\n        click_id: payload.click_id,\n        gclid: payload.gclid,\n        gbraid: payload.gbraid,\n        wbraid: payload.wbraid,\n        fbclid: payload.fbclid,\n        ttclid: payload.ttclid,\n        msclkid: payload.msclkid,\n        tblci: payload.tblci,\n        rdt_cid: payload.rdt_cid,\n        utm_source: payload.utm_source,\n        utm_campaign: payload.utm_campaign,\n        utm_c
792ontent: payload.utm_content,\n      }),\n      cache: 'no-store',\n      credentials: 'same-origin',\n    })\n      .then(function (res) {\n        return res\n          .json()\n          .catch(function () {\n            return null;\n          })\n          .then(function (data) {\n            if (!res.ok) return null;\n            var prepared = normalizePrepared(data);\n            if (prepared) {\n              state.prepared = prepared;\n              return prepared;\n            }\n            return null;\n          });\n      })\n      .catch(function () {\n        return null;\n      })\n      .finally(function () {\n        state.preparing = null;\n      });\n\n    return state.preparing;\n  }\n\n  function syncCopy(text) {\n    if (!text) return false;\n    try {\n      var textarea = document.createElement('textarea');\n      textarea.value = text;\n      textarea.setAttribute('readonly', 'true');\n      textarea.style.position = 'fixed';\n      textarea.style.left = '-9999px';\n      textarea.style.top = '0';\n      document.body.appendChild(textarea);\n      textarea.focus();\n      textarea.select();\n      var ok = document.execCommand('copy');\n      textarea.remove();\n      return ok;\n    } catch {\n      return false;\n    }\n  }\n\n  function buildMacIssueHref(payload) {\n    var params = new URLSearchParams();\n    params.set('platform', 'mac');\n    var keys = Object.keys(payload);\n    for (var i = 0; i \u003c keys.length; i += 1) {\n      var key = keys[i];\n      var text = String(payload[key] || '').trim();\n      if (!text) continue;\n      params.set(key, text);\n    }\n    return '/download/mac/issue?' + params.toString();\n  }\n\n  function buildNextDownloadHref(rawHref, stateId, markIssued, arch, preferChooser, downloadClickId) {\n    var shouldMarkIssued = markIssued !== false;\n    try {\n      var nextUrl = new URL(rawHref, window.location.href);\n      if (preferChooser) {\n        var path = String(nextUrl.pathname || '');\n        if (/\\/download\\/success\\/?$/i.test(path)) {\n          nextUrl.pathname = path.replace(/\\/download\\/success\\/?$/i, '/download');\n        } else if (!/\\/download\\/?$/i.test(path)) {\n          nextUrl.pathname = '/download';\n        }\n      }\n      nextUrl.searchParams.set('from', 'landing');\n      if (!nextUrl.searchParams.get('source')) {\n        nextUrl.searchParams.set('source', 'landing');\n      }
792\n      if (shouldMarkIssued) {\n        nextUrl.searchParams.set('issued', '1');\n      } else {\n        nextUrl.searchParams.delete('issued');\n      }\n      if (stateId) {\n        nextUrl.searchParams.set('state_id', stateId);\n      } else {\n        nextUrl.searchParams.delete('state_id');\n      }\n      if (arch) {\n        nextUrl.searchParams.set('arch', arch);\n      } else {\n        nextUrl.searchParams.delete('arch');\n      }\n      if (downloadClickId) {\n        nextUrl.searchParams.set('download_click_id', downloadClickId);\n      } else {\n        nextUrl.searchParams.delete('download_click_id');\n      }\n      return nextUrl.pathname + nextUrl.search;\n    } catch {\n      var params = new URLSearchParams();\n      params.set('from', 'landing');\n      params.set('source', 'landing');\n      if (shouldMarkIssued) {\n        params.set('issued', '1');\n      }\n      if (stateId) {\n        params.set('state_id', stateId);\n      }\n      if (arch) {\n        params.set('arch', arch);\n      }\n      if (downloadClickId) {\n        params.set('download_click_id', downloadClickId);\n      }\n      return '/download?' + params.toString();\n    }\n  }\n\n  function getAnchorFromEventTarget(target) {\n    if (!target || typeof target.closest !== 'function') return null;\n    var anchor = target.closest('a[href]');\n    if (!anchor) return null;\n    return anchor;\n  }\n\n  function shouldSkipMacPrepare(anchor) {\n    if (!anchor) return false;\n    var raw = String(anchor.getAttribute('data-skip-mac-prepare') || '')\n      .trim()\n      .toLowerCase();\n    return raw === '1' || raw === 'true';\n  }\n\n  function isLandingDownloadLink(anchor) {\n    if (!anchor) return false;\n    if (shouldSkipMacPrepare(anchor)) return false;\n    var href = String(anchor.getAttribute('href') || '').trim();\n    if (!href || href === '#') return false;\n    var url;\n    try {\n      url = new URL(href, window.location.href);\n    } catch {\n      return false;\n    }\n\n    var path = String(url.pathname || '').toLowerCase();\n    var isDownloadPath = /\\/download(\\/success)?\\/?$/.test(path);\n    var from = String(url.searchParams.get('from') || '').toLowerCase();\n    var source = String(url.searchParams.get('source') || '').toLowerCase();\n    return isDownloadPath \u0026\u0026 (from === 'landing' || source === 'landing');\n  }\n\n  function handleTryForFreeClick(e) {\n    if (e.defaultPrevented) return;\n    if (typeof e.button === 'number' \u0026\u0026 e.button !== 0) return;\n    if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;\n\n    var anchor = getAnchorFromEventTarget(e.target);\n    if (!isLandingDownloadLink(anchor)) return;\n\n    var originalHref =\n      anchor.href || anchor.getAttribute('href') || '/download?from=landing\u0026source=landing';\n    var intent = parseDownloadIntent(originalHref);\n    if (intent.platform === 'windows') {\n      return;\n    }\n\n    e.preventDefault();\n    e.stopPropagation();\n    if (typeof e.stopImmediatePropagation === 'function') {\n      e.stopImmediatePropagation();\n    }\n\n    var payload = buildPayload('landing');\n    var downloadClickId = randomId('dc');\n    var clickTracked = false;\n    function trackClickOnce(arch) {\n      if (clickTracked) return;\n      clickTracked = true;\n      sendDownloadClick(downloadClickId, originalHref, arch, anchor);\n    }\n    if (intent.platform === 'mac' \u0026\u0026 intent.arch) {\n      trackClickOnce(intent.arch);\n      var preparedWithIntentArch = getCachedPrepared(payload, intent.arch);\n      if (preparedWithIntentArch) {\n        var preparedClip = {\n          download_token: preparedWithIntentArch.download_token,\n          channel:\n            preparedWithIntentArch.channel || payload.channel || payload.utm_source || 'direct',\n        };\n        if (preparedWithIntentArch.signature_secret) {\n          preparedClip.signature_secret = preparedWithIntentArch.signature_secret;\n        }\n        syncCopy(JSON.stringify(preparedClip));\n        window.location.assign(\n          buildNextDownloadHref(\n            originalHref,\n            preparedWithIntentArch.state_id,\n            false,\n            intent.arch,\n            false,\n            downloadClickId\n          )\n        );\n        return;\n      }\n      // Cache miss: wait for prepare instead of navigating without state_id.\n      // This ensures Intel/x86 links work even when user didn't hover (or cache was overwritten by arm).\n      prepareMac(payload, intent.arch).then(function (prepared) {\n        if (prepared) {\n          var clip = {\n            download_token: prepared.download_token,\n            channel:\n              prepared.channel || payload.channel || payload.utm_source || 'direct',\n          };\n          if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;\n          syncCopy(JSON.stringify(clip));\n          window.location.assign(\n            buildNextDownloadHref(originalHref, prepared.state_id, false, intent.arch, false, downloadClickId)\n          );\n        } else {\n          window.location.assign(\n            buildNextDownloadHref(originalHref, '', false, intent.arch, false, downloadClickId)\n          );\n        }\n      });\n      return;\n    }\n\n    detectMacArch(function (arch) {\n      trackClickOnce(arch);\n      if (arch === undefined) {\n        var fallbackHref = buildNextDownloadHref(\n          originalHref,\n          '',\n          false,\n          undefined,\n          true,\n          downloadClickId\n        );\n        window.location.assign(fallbackHref);\n        return;\n      }\n      var prepared = getCachedPrepared(payload, arch);\n      if (prepared) {\n        var clip = {\n          download_token: prepared.download_token,\n          channel: prepared.channel || payload.channel || payload.utm_source || 'direct',\n        };\n        if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;\n        syncCopy(JSON.stringify(clip));\n        window.location.assign(\n          buildNextDownloadHref(\n            originalHref,\n            prepared.state_id,\n            false,\n            arch,\n            false,\n            downloadClickId\n          )\n        );\n        return;\n      }\n      // Cache miss: wait for prepare to ensure we have state_id when possible.\n      prepareMac(payload, arch).then(function (prepared) {\n        if (prepared) {\n          var clip = {\n            download_token: prepared.download_token,\n            channel:\n              prepared.channel || payload.channel || payload.utm_source || 'direct',\n          };\n          if (prepared.signature_secret) clip.signature_secret = prepared.signature_secret;\n          syncCopy(JSON.stringify(clip));\n          window.location.assign(\n            buildNextDownloadHref(originalHref, prepared.state_id, false, arch, false, downloadClickId)\n          );\n        } else {\n          window.location.assign(\n            buildNextDownloadHref(originalHref, '', false, arch, false, downloadClickId)\n          );\n        }\n      });\n    });\n  }\n\n  function preheatIfTarget(target) {\n    var anchor = getAnchorFromEventTarget(target);\n    if (!isLandingDownloadLink(anchor)) return;\n    var originalHref =\n      anchor.href || anchor.getAttribute('href') || '/download?from=landing\u0026source=landing';\n    var intent = parseDownloadIntent(originalHref);\n    if (intent.platform === 'windows') return;\n\n    var payload = buildPayload('landing');\n    if (intent.platform === 'mac' \u0026\u0026 intent.arch) {\n      prepareMac(payload, intent.arch);\n      return;\n    }\n\n    detectMacArch(function(arch) {\n      if (arch !== undefined) prepareMac(payload, arch);\n    });\n  }\n\n  var initialPayload = buildPayload('landing');\n  detectMacArch(function(arch) {\n    if (arch !== undefined) prepareMac(initialPayload, arch);\n  });\n\n  document.addEventListener('mouseover', function (e) {\n    preheatIfTarget(e.target);\n  }, true);\n  document.addEventListener('focusin', function (e) {\n    preheatIfTarget(e.target);\n  }, true);\n  document.addEventListener('click', handleTryForFreeClick, true);\n})();"])</script>
792<script>self.__next_f.push([1,"2d:[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-[#f0eeeb] text-[#1b1a18] selection:bg-[#f7d68b]/60 relative font-sans flex flex-col\",\"children\":[[\"$\",\"$L2e\",null,{}],[\"$\",\"div\",null,{\"className\":\"relative z-10 flex min-h-screen flex-col\",\"children\":[[\"$\",\"$L2f\",null,{\"header\":{\"id\":\"header\",\"variant\":\"floatboat\",\"className\":\"[--landing-header-bottom-align-offset:-2.8px] [--landing-header-right-bottom-align-offset:0px]\",\"brand\":{\"title\":\"floatboat\",\"logo\":{\"src\":\"/logo.svg\",\"alt\":\"floatboat\",\"width\":126,\"height\":36},\"url\":\"/\"},\"nav\":{\"items\":[{\"title\":\"Product\",\"children\":[{\"title\":\"Flow Mode\",\"description\":\"Speak freely while Floatboat turns your words into finished work\",\"url\":\"/flow-mode\"},{\"title\":\"AI Scheduling Assistant\",\"description\":\"A calendar agent that runs the blocks it books\",\"url\":\"/ai-scheduling-assistant\"},{\"title\":\"AI File Organizer\",\"description\":\"Auto-sort and rename messy folders, fully on-device\",\"url\":\"/ai-file-organizer\"},{\"title\":\"FloatIM\",\"description\":\"Agent-native group chat for humans and agents\",\"url\":\"/floatim\"},{\"title\":\"Skills Marketplace\",\"description\":\"Run open Agent Skills natively in Floatboat\",\"url\":\"/skills-marketplace\"}]},{\"title\":\"Marketplace\",\"children\":[{\"title\":\"Combo Store\",\"description\":\"Discover and install reusable Combo Skills\",\"url\":\"/combostore\",\"icon\":\"ShoppingBag\"},{\"title\":\"Timeshop\",\"description\":\"Browse subscribable automation calendars\",\"url\":\"/timeshop\",\"icon\":\"CalendarDays\"},{\"title\":\"Clawbot Store\",\"description\":\"Discover WeChat Agents you can try instantly\",\"url\":\"/clawbot\",\"icon\":\"MessageCircle\"}]},{\"title\":\"Resources\",\"children\":[{\"title\":\"Blog\",\"description\":\"Ideas, guides, and user stories\",\"url\":\"/blog\",\"icon\":\"FileText\"},{\"title\":\"News\",\"description\":\"The latest from Floatboat\",\"url\":\"/en/news/harness-benchmark?from=header\",\"icon\":\"Newspaper\"},{\"title\":\"Wishlist\",\"description\":\"Submit feature requests and help shape our roadmap\",\"url\":\"/wishlist\",\"icon\":\"HeartPlus\"}]},{\"title\":\"Pricing\",\"url\":\"/pricing\"},{\"title\":\"About\",\"url\":\"/about\"}]},\"buttons\":[{\"title\":\"Sign in\",\"url\":\"/sign-in\",\"target\":\"_self\",\"variant\":\"outline\"},{\"title\":\"Download\",\"url\":\"/download/success?from=landing\",\"target\":\"_self\"}],\"user_nav\":{\"show_name\":true,\"show_credits\":true,\"show_sign_out\":true,\"items\":[{\"title\":\"Billing\",\"url\":\"/settings/billing\",\"icon\":\"CreditCard\"},{\"title\":\"Activity\",\"url\":\"/activity\",\"icon\":\"Activity\"}]},\"show_sign\":false,\"show_theme\":false,\"show_locale\":true}}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[[\"$\",\"script\",null,{\"id\":\"landing-mac-prehydrate-download-flow\",\"dangerouslySetInnerHTML\":{\"__html\":\"$30\"}}],\"$L31\",\"$L32\"]}],\"$L33\"]}]]}]\n"])</script>
792<script>self.__next_f.push([1,"34:I[38395,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"LocaleDetector\"]\n"])</script>
792<script>self.__next_f.push([1,"31:[\"$\",\"$L34\",null,{}]\n32:[\"$\",\"$L16\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L17\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"])</script>
792<script>self.__next_f.push([1,"35:I[23445,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"FloatboatFooterNewsletter\"]\n"])</script>
792<script>self.__next_f.push([1,"37:T741,"])</script>
792<script>self.__next_f.push([1,"M16.9308 3.4629C15.6561 2.87799 14.2892 2.44707 12.8599 2.20025C12.8339 2.19549 12.8079 2.20739 12.7945 2.2312C12.6187 2.54388 12.4239 2.9518 12.2876 3.27242C10.7503 3.04228 9.22099 3.04228 7.71527 3.27242C7.57887 2.94467 7.37707 2.54388 7.20048 2.2312C7.18707 2.20819 7.16107 2.19629 7.13504 2.20025C5.70659 2.44628 4.33963 2.87721 3.06411 3.4629C3.05307 3.46766 3.04361 3.4756 3.03732 3.48591C0.444493 7.35954 -0.265792 11.138 0.0826501 14.8695C0.0842267 14.8878 0.0944749 14.9053 0.108665 14.9164C1.81934 16.1726 3.47642 16.9353 5.10273 17.4408C5.12876 17.4488 5.15634 17.4393 5.1729 17.4178C5.55761 16.8925 5.90054 16.3385 6.19456 15.756C6.21192 15.7219 6.19535 15.6814 6.15989 15.6679C5.61594 15.4616 5.098 15.21 4.59977 14.9243C4.56037 14.9013 4.55721 14.8449 4.59347 14.8179C4.69831 14.7394 4.80318 14.6576 4.9033 14.5751C4.92141 14.56 4.94665 14.5568 4.96794 14.5664C8.24107 16.0608 11.7846 16.0608 15.0191 14.5664C15.0404 14.5561 15.0657 14.5592 15.0846 14.5743C15.1847 14.6568 15.2895 14.7394 15.3952 14.8179C15.4314 14.8449 15.4291 14.9013 15.3897 14.9243C14.8914 15.2155 14.3735 15.4616 13.8288 15.6671C13.7933 15.6806 13.7775 15.7219 13.7949 15.756C14.0952 16.3377 14.4381 16.8917 14.8157 17.417C14.8315 17.4393 14.8599 17.4488 14.8859 17.4408C16.5201 16.9353 18.1772 16.1726 19.8879 14.9164C19.9028 14.9053 19.9123 14.8886 19.9139 14.8703C20.3309 10.5562 19.2154 6.80878 16.9568 3.4867C16.9513 3.4756 16.9419 3.46766 16.9308 3.4629ZM6.68335 12.5974C5.69792 12.5974 4.88594 11.6927 4.88594 10.5816C4.88594 9.47056 5.68217 8.56585 6.68335 8.56585C7.69239 8.56585 8.49651 9.4785 8.48073 10.5816C8.48073 11.6927 7.68451 12.5974 6.68335 12.5974ZM13.329 12.5974C12.3435 12.5974 11.5316 11.6927 11.5316 10.5816C11.5316 9.47056 12.3278 8.56585 13.329 8.56585C14.338 8.56585 15.1421 9.4785 15.1264 10.5816C15.1264 11.6927 14.338 12.5974 13.329 12.5974Z"])</script>
792<script>self.__next_f.push([1,"33:[\"$\",\"footer\",null,{\"id\":\"footer\",\"className\":\"\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-[1440px]\",\"children\":[[\"$\",\"$L35\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 px-10 py-6 max-lg:px-5 sm:flex-row sm:items-center sm:justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-start gap-3\",\"children\":[\"$L36\",[\"$\",\"p\",null,{\"className\":\"text-[14px] leading-[1.43] font-medium text-[#7a7671]\",\"children\":\"Sail onward with what you've learned\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 text-[#7a7671]\",\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"className\":\"inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]\",\"aria-label\":\"Email\",\"title\":\"Email\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 20 20\",\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"size-5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.49984 2.5H17.4998C17.9601 2.5 18.3332 2.8731 18.3332 3.33333V16.6667C18.3332 17.1269 17.9601 17.5 17.4998 17.5H2.49984C2.0396 17.5 1.6665 17.1269 1.6665 16.6667V3.33333C1.6665 2.8731 2.0396 2.5 2.49984 2.5ZM16.6665 6.0316L10.0597 11.9483L3.33317 6.01328V15.8333H16.6665V6.0316ZM3.75939 4.16667L10.0514 9.71833L16.2507 4.16667H3.75939Z\",\"fill\":\"currentColor\"}]}]}],[\"$\",\"a\",null,{\"href\":\"https://x.com/float_schedule?s=11\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]\",\"aria-label\":\"X\",\"title\":\"X\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 20 20\",\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"size-5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.2721 1.58643H18.0833L11.9416 8.606L19.1668 18.1581H13.5095L9.07852 12.3648L4.00845 18.1581H1.19552L7.76469 10.6498L0.833496 1.58643H6.63442L10.6397 6.8817L15.2721 1.58643ZM14.2854 16.4754H15.8432L5.78799 3.1807H4.11638L14.2854 16.4754Z\",\"fill\":\"currentColor\"}]}]}],[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/company/floatboat/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]\",\"aria-label\":\"LinkedIn\",\"title\":\"LinkedIn\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 20 20\",\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"size-5\",\"children\":[[\"$\",\"g\",null,{\"clipPath\":\"url(#clip0_floatboat_footer_linkedin)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.5195 0H1.47656C0.660156 0 0 0.644531 0 1.44141V18.5547C0 19.3516 0.660156 20 1.47656 20H18.5195C19.3359 20 20 19.3516 20 18.5586V1.44141C20 0.644531 19.3359 0 18.5195 0ZM5.93359 17.043H2.96484V7.49609H5.93359V17.043ZM4.44922 6.19531C3.49609 6.19531 2.72656 5.42578 2.72656 4.47656C2.72656 3.52734 3.49609 2.75781 4.44922 2.75781C5.39844 2.75781 6.16797 3.52734 6.16797 4.47656C6.16797 5.42188 5.39844 6.19531 4.44922 6.19531ZM17.043 17.043H14.0781V12.4023C14.0781 11.2969 14.0586 9.87109 12.5352 9.87109C10.9922 9.87109 10.7578 11.0781 10.7578 12.3242V17.043H7.79688V7.49609H10.6406V8.80078H10.6797C11.0742 8.05078 12.043 7.25781 13.4844 7.25781C16.4883 7.25781 17.043 9.23438 17.043 11.8047V17.043Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"defs\",null,{\"children\":[\"$\",\"clipPath\",null,{\"id\":\"clip0_floatboat_footer_linkedin\",\"children\":[\"$\",\"rect\",null,{\"width\":\"20\",\"height\":\"20\",\"fill\":\"white\"}]}]}]]}]}],[\"$\",\"a\",null,{\"href\":\"https://discord.gg/Ecp2PR24H4\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex size-5 items-center justify-center transition-colors hover:text-[#1b1a18]\",\"aria-label\":\"Discord\",\"title\":\"Discord\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 20 20\",\"width\":\"20\",\"height\"
792:\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"className\":\"size-5\",\"children\":[\"$\",\"path\",null,{\"d\":\"$37\",\"fill\":\"currentColor\"}]}]}]]}]]}],\"$L38\",\"$L39\"]}]}]\n"])</script>
792<script>self.__next_f.push([1,"3d:I[8086,[\"49989\",\"static/chunks/965c2117-333029a03dfc9738.js\",\"28413\",\"static/chunks/28413-9326ab7eebc0ac14.js\",\"36022\",\"static/chunks/36022-fdd5521b6d18a903.js\",\"47087\",\"static/chunks/47087-9a4a3f791d50d32d.js\",\"42737\",\"static/chunks/42737-094a73f507764fe5.js\",\"18285\",\"static/chunks/18285-979e650218aee649.js\",\"26800\",\"static/chunks/26800-0c77c75744c0467d.js\",\"84914\",\"static/chunks/84914-924caff4b51f9c7a.js\",\"26191\",\"static/chunks/26191-c54929ddc396ab87.js\",\"73505\",\"static/chunks/73505-f40f9483f1ee04de.js\",\"46884\",\"static/chunks/46884-1cdb89dfe2716e74.js\",\"39881\",\"static/chunks/39881-a8f22a491fba1243.js\",\"1716\",\"static/chunks/1716-1c1feb45490e32ea.js\",\"61279\",\"static/chunks/61279-f8e69844764435f8.js\",\"69106\",\"static/chunks/69106-aae0b7a2f87d6bb1.js\",\"79653\",\"static/chunks/79653-c044dee34c0c89ec.js\",\"68192\",\"static/chunks/68192-1c4a6e60a9bf734d.js\",\"96114\",\"static/chunks/96114-264b4a43d7cbb489.js\",\"46120\",\"static/chunks/46120-e38245968da8f0ee.js\",\"874\",\"static/chunks/874-2631dd80638c5e4c.js\",\"53453\",\"static/chunks/53453-074d55101be3058c.js\",\"43049\",\"static/chunks/43049-af43fcc6552e6ea4.js\",\"42241\",\"static/chunks/42241-f555ba9bf2929329.js\",\"31479\",\"static/chunks/31479-e09e602d5c143378.js\",\"39352\",\"static/chunks/39352-385ed7d10a28bc26.js\",\"71784\",\"static/chunks/71784-89e128bad55e717d.js\",\"25411\",\"static/chunks/25411-614a277b4369c122.js\",\"6632\",\"static/chunks/6632-49f44b06c551cf4e.js\",\"47144\",\"static/chunks/app/%5Blocale%5D/(landing)/page-2703cf1153a6cb49.js\"],\"default\"]\n"])</script>
792<script>self.__next_f.push([1,":HL[\"/logo.svg\",\"image\"]\n38:[\"$\",\"div\",null,{\"className\":\"h-px w-full bg-black/[0.08]\"}]\n39:[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 px-10 py-6 max-lg:px-5 sm:flex-row sm:items-start sm:justify-between\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[14px] leading-[1.43] font-normal text-[#71717a]\",\"children\":[\"© \",2026,\" AOE Tech Labs Limited. The Proactive Agent that Runs Work from the Calendar.\"]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center justify-start gap-2 sm:justify-center sm:gap-6\",\"children\":[[\"$L3a\",\"$L3b\",\"$L3c\"],[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"className\":\"flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]\",\"children\":\"Contact: [email protected]\"}]]}]]}]\n36:[\"$\",\"$L3d\",null,{\"ref\":\"$undefined\",\"href\":\"/\",\"locale\":\"$undefined\",\"localeCookie\":{\"name\":\"NEXT_LOCALE\",\"sameSite\":\"lax\"},\"className\":\"inline-flex items-end gap-2\",\"aria-label\":\"floatboat\",\"title\":\"floatboat\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/logo.svg\",\"alt\":\"floatboat\",\"width\":775,\"height\":256,\"className\":\"h-9 w-auto\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"floatboat\"}]]}]\n"])</script>
792<script>self.__next_f.push([1,"3a:[\"$\",\"$L3d\",\"/blog\",{\"ref\":\"$undefined\",\"href\":\"/blog\",\"locale\":\"$undefined\",\"localeCookie\":\"$36:props:localeCookie\",\"aria-label\":\"Blog\",\"title\":\"Blog\",\"className\":\"flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]\",\"children\":\"Blog\"}]\n3b:[\"$\",\"$L3d\",\"/privacy\",{\"ref\":\"$undefined\",\"href\":\"/privacy\",\"locale\":\"$undefined\",\"localeCookie\":\"$36:props:localeCookie\",\"aria-label\":\"Privacy Policy\",\"title\":\"Privacy Policy\",\"className\":\"flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]\",\"children\":\"Privacy Policy\"}]\n3c:[\"$\",\"$L3d\",\"/terms\",{\"ref\":\"$undefined\",\"href\":\"/terms\",\"locale\":\"$undefined\",\"localeCookie\":\"$36:props:localeCookie\",\"aria-label\":\"Terms of Service\",\"title\":\"Terms of Service\",\"className\":\"flex h-10 items-center justify-center px-[10px] py-[5px] text-[14px] leading-[1.43] font-medium text-[#7a7671] transition-colors hover:text-[#1b1a18]\",\"children\":\"Terms of Service\"}]\n"])</script>
792<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"90c80b1687f14bfcaa17c7d144b154d9","r":1,"spa":2}' crossorigin="anonymous"></script>
792
793</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.