PageSourceSearch

https://www.webair.ai/_next/static/chunks/0mf-ac9cdmy1o.js?dpl=dpl_CUhBJ64MCkmL3iftm1cDprBoELpN

js webair.ai collected 2026-10-05 13:47:57 UTC 5,667 bytes, 22 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28478,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(75157);e.s(["Reveal",0,function({children:e,className:o,delay:n=0,stagger:i=!1,as:s="div"}){let l=r.useRef(null),[c,d]=r.useState(!1),[p,u]=r.useState(!1);return r.useEffect(()=>{d(!0);let e=l.current;if(!e)return;if("u"<typeof IntersectionObserver)return void u(!0);let t=new IntersectionObserver(e=>{for(let r of e)if(r.isIntersecting){u(!0),t.disconnect();break}},{threshold:0,rootMargin:"0px 0px -8% 0px"});return t.observe(e),()=>t.disconnect()},[]),(0,t.jsx)(s,{ref:l,className:(0,a.cn)(c&&(i?"reveal-stagger":"reveal"),(p||!c)&&"is-visible",o),style:n?{"--reveal-delay":`${n}ms`}:void 0,children:e})}])},28623,e=>{"use strict";let t=(0,e.i(56420).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
1],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],28623)},89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},87842,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(89664);let o=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);var n=e.i(28623),i=e.i(75157);let s="https://app.webair.ai/api/brain/mcp",l=[{id:"claude",label:"Claude",hint:"Claude Code adds it itself; claude.ai walks you through it.",prompt:`Connect my Webair AI Brain to you over MCP so you can use my memory.
2
3Server name: Webair Brain
4Server URL: ${s}
5Transport: streamable HTTP. Auth: OAuth — a Webair AI login window will open and I'll approve it myself.
6
7If you can add MCP servers in this environment (in Claude Code, run: claude mcp add --transport http webair-brain ${s}), add it now. If you can't, walk me through adding it as a custom connector in Settings, one step at a time, and wait for me at each step.
8
9Once it's connected, call brain_search with a question about me to confirm it works — and from then on, check my Brain for c
9ontext before asking me.`},{id:"chatgpt",label:"ChatGPT",hint:"ChatGPT walks you through adding it as a connector.",prompt:`I want to connect my Webair AI Brain to you as a connector (MCP), so you can use my memory.
10
11Connector name: Webair Brain
12MCP server URL: ${s}
13Auth: OAuth — a Webair AI login window will open and I'll approve it myself.
14
15Walk me through adding this as a custom connector in ChatGPT's settings on my plan, one step at a time, and wait for me at each step.
16
17Once it's added, use the Webair Brain tools (brain_search, brain_ask) for context about me before asking me questions.`},{id:"cursor",label:"Cursor",hint:"Cursor's agent writes the config file for you.",prompt:`Add my Webair AI Brain as an MCP server in Cursor.
18
191. Create or update ~/.cursor/mcp.json (or .cursor/mcp.json in this project) with:
20{ "mcpServers": { "webair-brain": { "url": "${s}" } } }
212. When Cursor prompts, I'll approve the OAuth window by logging into my Webair AI account.
223. Call brain_search to confirm the connection — and from then on, check my Brain for c
22ontext before asking me.`}];e.s(["McpConnectPrompts",0,function({className:e}){let[s,c]=(0,r.useState)(l[0].id),[d,p]=(0,r.useState)(!1),u=l.find(e=>e.id===s)??l[0],m=async()=>{try{await navigator.clipboard.writeText(u.prompt),p(!0),setTimeout(()=>p(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:(0,i.cn)("overflow-hidden rounded-3xl border border-border/60 bg-card shadow-sm",e),children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 border-b border-border/50 bg-muted/30 px-4 py-3 sm:px-5",children:[l.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>{c(e.id),p(!1)},"aria-pressed":e.id===s,className:(0,i.cn)("rounded-full px-4 py-1.5 text-sm font-semibold transition-colors",e.id===s?"bg-primary text-white shadow-sm":"text-muted-foreground hover:bg-black/[0.04] hover:text-foreground"),children:e.label},e.id)),(0,t.jsxs)("span",{className:"ml-auto hidden items-center gap-1.5 text-xs font-medium text-muted-foreground sm:inline-flex",children:[(0,t.jsx)(n.Sparkles,{className:"h-3.5 w-3.5 text-primary","aria-hidden":!0}),u.hint]})]}),(0,t.jsxs)("div",{className:"relative p-4 sm:p-5",children:[(0,t.jsx)("pre",{className:"max-h-72 overflow-y-auto whitespace-pre-wrap rounded-2xl bg-[#0b0b0f] p-4 pr-4 font-mono text-[12px] leading-relaxed text-white/85 sm:p-5 sm:text-[12.5px]",children:u.prompt}),(0,t.jsx)("button",{type:"button",onClick:m,className:(0,i.cn)("absolute right-7 top-7 inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-bold shadow-sm transition-colors sm:right-8 sm:top-8",d?"bg-emerald-500 text-white":"bg-white text-foreground hover:bg-white/90"),children:d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.Check,{className:"h-3.5 w-3.5","aria-hidden":!0})," Copied"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o,{className:"h-3.5 w-3.5","aria-hidden":!0})," Copy prompt"]})})]}),(0,t.jsx)("p",{className:"border-t border-border/50 bg-muted/20 px-5 py-3 text-xs leading-relaxed text-muted-foreground",children:"Your AI opens a Webair AI login window — you approve the connection yourself, and you can revoke it anytime. No tokens to paste."})]})}],87842)}]);

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.