PageSourceSearch

https://www.aideploy.co/_next/static/chunks/7819-7c55baf261d584fc.js

js aideploy.co collected 2026-10-03 23:11:59 UTC 36,529 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7819],{19844:(e,t,n)=>{n.d(t,{$7:()=>m,DO:()=>i,Fu:()=>r,Jd:()=>l,Xx:()=>d,_W:()=>c,jG:()=>a,jt:()=>s,yL:()=>o});let o=[{id:"llama3.2",displayName:"Llama 3.2",paramsLabel:"3B",tier:"fast",minMemoryGB:8,downloadGB:2},{id:"qwen3",displayName:"Qwen 3",paramsLabel:"8B",tier:"balanced",minMemoryGB:16,downloadGB:6},{id:"glm4",displayName:"GLM-4",paramsLabel:"9B",tier:"balanced",minMemoryGB:16,downloadGB:6},{id:"gpt-oss",displayName:"gpt-oss",paramsLabel:"20B",tier:"advanced",minMemoryGB:32,downloadGB:14},{id:"glm-4.7-flash",displayName:"GLM-4.7 Flash",paramsLabel:"30B",tier:"advanced",minMemoryGB:32,downloadGB:19},{id:"llama3.3",displayName:"Llama 3.3",paramsLabel:"70B",tier:"max",minMemoryGB:64,downloadGB:43}];function a(e){return o.find(t=>t.id===e)}function r(e,t){return"number"==typeof t&&t>=e.minMemoryGB}function l(e){let t=o.filter(t=>r(t,e));return 0===t.length?null:(t.find(e=>"balanced"===e.tier)||t[t.length-1]).id}let i=[8,16,32,64],s=8,d="bash ~/.aideploy/uninstall.sh";function c(e,t){for(let n of[e,t]){let e=String(n||"").toLowerCase();if(e){if(e.includes("mac"))return"macos";if(e.includes("win"))return"windows-wsl";if(e.includes("linux")||e.includes("x11"))break}}return"linux"}let u={starter:4,growing:8,power:16},p={starter:8,growing:16,power:24};function m(e,t,n){var o;return"local"===e?null!=n?n:null:null!=(o=("scaleway"===e?p:u)[t||""])?o:null}},25246:(e,t,n)=>{n.d(t,{H$:()=>o,IV:()=>l,JB:()=>a,JU:()=>i,Nb:()=>s,de:()=>d});let o=1,a=16,r={starter:4,growing:8,power:16};function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;return Math.min(a,Math.max(o,Number.isFinite(e)?Math.round(e):t))}function i(e){let t=l(e);return t<=r.starter?"starter":t<=r.growing?"growing":"power"}function s(e,t){return l(t)<=r[e]}function d(e){let t=l(e),n=e=>Math.round(10*e)/10;return{vcpu:n(1+.25*t),memoryGb:n(2+.75*t)}}},43715:(e,t,n)=>{n.d(t,{A:()=>r});var o=n(95155),a=n(15239);function r(e){let{className:t,priority:n=!1,href:r,ariaLabel:l="Open Belong"}=e,i=(0,o.jsx)(a.default,{src:"/belong-logo-horizontal-white.svg",alt:"Belong",width:600,height:175,sizes:"(min-width: 640px) 132px, 112px",priority:n,className:t?"transition-[filter,opacity] duration-200 [filter:brightness(1.06)_saturate(0.88)] ".concat(t):"h-auto w-auto transition-[filter,opacity] duration-200 [filter:brightness(1.06)_saturate(0.88)]"});return r?(0,o.jsx)("a",{href:r,target:"_blank",rel:"noreferrer","aria-label":l,className:"inline-flex min-h-11 min-w-11 items-center justify-center rounded-full p-2 -m-2",children:i}):i}},64977:(e,t,n)=>{n.d(t,{Lm:()=>s,Mw:()=>m,Vh:()=>a,WL:()=>d,_r:()=>u,at:()=>p,f4:()=>i,kX:()=>r,oS:()=>l,sH:()=>g,uQ:()=>h});let o=[{id:"openclaw",family:"openclaw",name:"OpenClaw",statusKey:"beta",deployable:!0,dashboardType:"aideploy",chatGptDeviceOAuth:!0,managedUpdateStrategy:"pull",defaultAIProviderId:"openai",allowedAIProviderIds:["openai","anthropic","gemini","kimi","deepseek","ollama"],allowedChannelIds:["telegram","whatsapp","slack","discord","signal","imessage","googlechat","teams"]},{id:"hermes",family:"hermes",name:"Hermes Agent",statusKey:"beta",deployable:!0,dashboardType:"aideploy",chatGptDeviceOAuth:!1,managedUpdateStrategy:"push",defaultAIProviderId:"kimi",allowedAIProviderIds:["openai","anthropic","gemini","kimi","deepseek","ollama"],allowedChannelIds:["telegram","whatsapp"],handoffChannelIds:["belong"],channelDelivery:{telegram:"native",whatsapp:"bridge",belong:"bridge"},maxChannels:2,singleAgent:!0},{id:"openclaw-upstream",family:"openclaw",name:"Upstream OpenClaw",statusKey:"comingSoon",deployable:!1,publicCatalog:!1,dashboardType:"aideploy",chatGptDeviceOAuth:!1,managedUpdateStrategy:"none",defaultAIProviderId:"openai",allowedAIProviderIds:["openai"],allowedChannelIds:["telegram"]},{id:"deer-flow",family:"deer-flow",name:"Deer Flow",statusKey:"comingSoon",deployable:!1,dashboardType:"placeholder",chatGptDeviceOAuth:!1,managedUpdateStrategy:"none"}];function a(e){return o.some(t=>t.id===e)}function r(e){return o.find(t=>t.id===e)||o.find(e=>"hermes"===e.id)||o[0]}function l(e){return a(e)&&"openclaw"===r(e).family}function i(e){return r(e).dashboardType}function s(e){return a(e)&&r(e).chatGptDeviceOAuth}function d(e){return"none"!==(a(e)?r(e).managedUpdateStrategy:"none")}function c(e){return!1!==e.publicCatalog}function u(){return o.filter(c)}function p(e){return[...e.allowedChannelIds||[],...e.handoffChannelIds||[]]}function m(e,t){return!e.allowedChannelIds||0===e.allowedChannelIds.length||p(e).includes(t)}function g(e,t){var n;return(null==(n=e.channelDelivery)?void 0:n[t])||"native"}function h(e,t){if(!t.allowedChannelIds||0===t.allowedChannelIds.length)return{kept:[...e],dropped:[]};let n=new Set(t.allowedChannelIds),o=e.filter(e=>n.has(e.type)).slice(0,t.maxChannels||e.length),a=new Set(o);return{kept:o,dropped:e.filter(e=>!a.has(e))}}},68497:(e,t,n)=>{n.d(t,{GF:()=>v,c3:()=>w});var o=n(95988),a=n(89863),r=n(64977),l=n(80018),i=n(19844),s=n(77114),d=n(25246);function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"My Agent",n=(0,l.E3)(e)||(0,l.E3)("open
1ai");return n?{name:t,modelProvider:n.id,authMethod:n.authMethod,model:n.defaultModel,...n.defaultModelParams?{modelParams:n.defaultModelParams}:{},template:"general"}:{name:t,modelProvider:"openai",authMethod:"consumer",model:"gpt-5.5",template:"general"}}function u(e){let t=e[0];return t&&!t.profileId?t.name:"My Agent"}function p(e,t){if(!e.some(e=>"ollama"===e.modelProvider))return e;let n=(0,i.$7)(t.cloudProvider,t.serverSize,t.localMachineMemoryGB);return e.map(e=>{if("ollama"!==e.modelProvider)return e;let t=(0,i.jG)(e.model);return t&&(0,i.Fu)(t,n)?e:{...e,model:(0,i.Jd)(n)||i.yL[0].id,modelParams:void 0}})}let m="aideploy:wizard:v1";function g(e){return"".concat(e,":secrets")}let h=["cloudToken","cloudUserInfo","cloudVerified","billingAcknowledged","aiApiKeys","aiVerified","aiOauthTokens","tailscaleKey","tailscaleVerified","awsAccessKeyId","awsSecretKey","scalewayAccessKey","scalewaySecretKey","ovhApplicationKey","ovhApplicationSecret","ovhConsumerKey","ovhCloudProject","channels","deployResult","deployStreamToken","deployOwnerUserId","deployIdempotencyKey","belongHandoffId"],y={getItem:e=>{try{var t,n;let o=window.localStorage.getItem(e);if(!o)return null;let a=JSON.parse(o);if("number"!=typeof(null==a?void 0:a.savedAt)||"string"!=typeof(null==a?void 0:a.value)||Date.now()-a.savedAt>864e5)return window.localStorage.removeItem(e),window.sessionStorage.removeItem(g(e)),null;let r=JSON.parse(a.value),l={...null!=(t=r.state)?t:{}};for(let e of h)delete l[e];let i=window.sessionStorage.getItem(g(e));if(i){let e=null!=(n=JSON.parse(i).state)?n:{};for(let t of h)t in e&&(l[t]=e[t])}return JSON.stringify({...r,state:l})}catch(e){return null}},setItem:(e,t)=>{try{var n;let o=JSON.parse(t),{secret:a,nonSecret:r}=function(e){let t={},n={...e};for(let e of h)e in n&&(t[e]=n[e],delete n[e]);return{secret:t,nonSecret:n}}(null!=(n=o.state)?n:{});window.localStorage.setItem(e,JSON.stringify({savedAt:Date.now(),value:JSON.stringify({...o,state:r})})),window.sessionStorage.setItem(g(e),JSON.stringify({...o,state:a}))}catch(e){}},removeItem:e=>{try{window.localStorage.removeItem(e),window.sessionStorage.removeItem(g(e))}catch(e){}}},f={step:"landing",runtimeId:"hermes",cloudProvider:null,cloudToken:null,cloudRegion:"",serverSize:"starter",localMachineOs:null,localMachineMemoryGB:null,cloudUserInfo:null,contactEmail:"",cloudError:null,cloudErrorActionUrl:null,cloudErrorCode:null,cloudVerified:!1,billingAcknowledged:!1,secretProviderSelection:"automatic",selectedAIProviders:new Set(["openai"]),aiApiKeys:{},aiVerified:{},aiOauthTokens:{},agentCount:1,officeMode:"solo",officeBundleId:"starter",agents:[{name:"My Agent",modelProvider:"openai",authMethod:"consumer",model:"gpt-5.5",template:"general"}],channels:[],telegramBotUsername:"",tailscaleKey:"",tailscaleVerified:!1,deployId:null,deployOwnerUserId:null,deployStreamToken:null,deployIdempotencyKey:null,supportDiagnosticsEnabled:!0,deployResult:null,awsAccessKeyId:"",awsSecretKey:"",scalewayAccessKey:"",scalewaySecretKey:"",ovhApplicationKey:"",ovhApplicationSecret:"",ovhConsumerKey:"",ovhCloudProject:"",ovhApiEndpoint:"ovh-eu",belongHandoffId:""};function v(){let e=y.getItem(m);if("string"!=typeof e)return null;try{let t=JSON.parse(e);return t&&"object"==typeof t.state&&null!==t.state?t.state:null}catch(e){return null}}let w=(0,o.vt)()((0,a.Zr)((e,t)=>({...f,setStep:t=>e({step:t}),setBelongHandoffId:t=>e({belongHandoffId:t}),setRuntimeId:t=>e(e=>{var n;let o=(0,r.kX)(t),a=o.allowedAIProviderIds||[],l=null==(n=e.agents[0])?void 0:n.modelProvider,i=l&&a.includes(l)?l:o.defaultAIProviderId||"openai",m=(0,d.IV)(e.agentCount,s.vo[e.serverSize]),g="virtual_office"!==e.officeMode||o.singleAgent?[c(i,u(e.agents))]:(0,s.uf)(m,i),h=new Set([i]),y=(0,r.uQ)(e.channels,o).kept;return{runtimeId:t,agentCount:o.singleAgent?1:g.length,officeBundleId:o.singleAgent?e.officeBundleId:(0,s.q_)(g.length),agents:p(g,e),selectedAIProviders:h,channels:y}}),setCloudProvider:t=>e(e=>{let n="local"===t,o={cloudProvider:t,serverSize:e.serverSize,localMachineMemoryGB:e.localMachineMemoryGB};return{cloudProvider:t,cloudToken:null,cloudUserInfo:null,cloudError:null,cloudErrorActionUrl:null,cloudErrorC
1ode:null,cloudVerified:n,billingAcknowledged:n,...n?{cloudRegion:"local"}:{},agents:p(e.agents,o)}}),setLocalMachineOs:t=>e({localMachineOs:t}),setLocalMachineMemoryGB:t=>e(e=>{let n=null===e.localMachineMemoryGB&&null!==t?e.agents.map(e=>"ollama"===e.modelProvider?{...e,model:(0,i.Jd)(t)||i.yL[0].id,modelParams:void 0}:e):e.agents;return{localMachineMemoryGB:t,agents:p(n,{cloudProvider:e.cloudProvider,serverSize:e.serverSize,localMachineMemoryGB:t})}}),setCloudAuth:(t,n)=>e({cloudToken:t,cloudUserInfo:n,cloudError:null,cloudErrorActionUrl:null,cloudErrorCode:null,cloudVerified:!0,billingAcknowledged:!1}),setContactEmail:t=>e({contactEmail:t}),setCloudError:(t,n,o)=>e({cloudToken:null,cloudUserInfo:null,cloudError:t,cloudErrorActionUrl:null!=n?n:null,cloudErrorCode:null!=o?o:null,cloudVerified:!1,billingAcknowledged:!1}),setCloudRegion:t=>e({cloudRegion:t}),setServerSize:t=>e(e=>{let n=(0,r.kX)(e.runtimeId);return{serverSize:t,..."virtual_office"===e.officeMode&&n.singleAgent?{officeBundleId:t}:{},agents:p(e.agents,{cloudProvider:e.cloudProvider,serverSize:t,localMachineMemoryGB:e.localMachineMemoryGB})}}),setOfficeMode:t=>e(e=>{var n;let o=(0,r.kX)(e.runtimeId),a=(null==(n=e.agents[0])?void 0:n.modelProvider)||"openai";if("virtual_office"===t&&!o.singleAgent){let n=(0,d.IV)(e.agentCount>1?e.agentCount:s.vo[e.serverSize],s.vo[e.serverSize]),o=(0,s.uf)(n,a);return{officeMode:t,officeBundleId:(0,s.q_)(o.length),agentCount:o.length,agents:p(o,e)}}return{officeMode:t,agentCount:1,agents:p([c(a,u(e.agents))],e)}}),setAgentCount:t=>e(e=>{var n,o;let a=(0,r.kX)(e.runtimeId),l=(0,d.IV)(t);if(l<=1||a.singleAgent)return{officeMode:"solo",agentCount:1,agents:p([c((null==(o=e.agents[0])?void 0:o.modelProvider)||"openai",u(e.agents))],e)};let i=(null==(n=e.agents[0])?void 0:n.modelProvider)||"openai",m=(0,s.uf)(l,i);return{officeMode:"virtual_office",officeBundleId:(0,s.q_)(m.length),agentCount:m.length,agents:p(m,e)}}),setBillingAcknowledged:t=>e({billingAcknowledged:t}),setSecretProviderSelection:t=>e({secretProviderSelection:t}),setPrimaryAIProvider:t=>e(e=>{let n=(0,r.kX)(e.runtimeId),o=(0,d.IV)(e.agentCount,s.vo[e.serverSize]),a="virtual_office"!==e.officeMode||n.singleAgent?[c(t,u(e.agents))]:(0,s.uf)(o,t);return{selectedAIProviders:new Set([t]),officeBundleId:"virtual_office"!==e.officeMode||n.singleAgent?e.officeBundleId:(0,s.q_)(a.length),agentCount:a.length,agents:p(a,e)}}),setPrimaryModel:t=>e(e=>({agents:e.agents.map(e=>({...e,model:t,modelParams:void 0}))})),toggleAIProvider:t=>e(e=>{let n=(0,r.kX)(e.runtimeId),o=(0,d.IV)(e.agentCount,s.vo[e.serverSize]),a="virtual_office"!==e.officeMode||n.singleAgent?[c(t,u(e.agents))]:(0,s.uf)(o,t);return{selectedAIProviders:new Set([t]),officeBundleId:"virtual_office"!==e.officeMode||n.singleAgent?e.officeBundleId:(0,s.q_)(a.length),agentCount:a.length,agents:p(a,e)}}),setAIApiKey:(t,n)=>e(e=>({aiApiKeys:{...e.aiApiKeys,[t]:n},aiVerified:{...e.aiVerified,[t]:!1}})),setAIVerified:(t,n)=>e(e=>({aiVerified:{...e.aiVerified,[t]:n}})),setAIOauthTokens:(t,n)=>e(e=>({aiOauthTokens:{...e.aiOauthTokens,[t]:n}})),clearAIOauthTokens:t=>e(e=>{let n={...e.aiOauthTokens};return delete n[t],{aiOauthTokens:n}}),addChannel:t=>e(e=>({channels:[...e.channels,{...t,verified:!1}]})),removeChannel:t=>e(e=>({channels:e.channels.filter((e,n)=>n!==t)})),updateChannel:(t,n)=>e(e=>{let o=[...e.channels];return o[t]={...o[t],...n},{channels:o}}),setTelegramBotUsername:t=>e({telegramBotUsername:t}),setTailscaleKey:t=>e({tailscaleKey:t}),setTailscaleVerified:t=>e({tailscaleVerified:t}),setDeployId:t=>e({deployId:t}),setDeployOwnerUserId:t=>e({deployOwnerUserId:t}),setDeployStreamToken:t=>e({deployStreamToken:t}),setSupportDiagnosticsEnabled:t=>e({supportDiagnosticsEnabled:t}),setDeployResult:t=>e({deployResult:t}),ensureDeployIdempotencyKey:()=>{let n=t().deployIdempotencyKey;if(n)return n;let o=crypto.randomUUID();return e({deployIdempotencyKey:o}),o},clearDeployIdempotencyKey:()=>e({deployIdempotencyKey:null}),setAWSKeys:(t,n)=>e({awsAccessKeyId:t,awsSecretKey:n}),setScalewayKeys:(t,n)=>e({scalewayAccessKey:t,scalewaySecretKey:n}),setOVHCredentials:t=>{let{applicationKey:n,applicationSecret:o,consumerKey:a,cloudProject:r,apiEndpoint:l}=t;return e(e=>({ovhApplicationKey:n,ovhApplicationSecret:o,ovhConsumerKey:a,ovhCloudProject:r,ovhApiEndpoint:l||e.ovhApiEndpoint,cloudToken:null,cloudUserInfo:null,cloudVerified:!1,billingAcknowledged:!1}))},clearDeploymentSecrets:()=>e({cloudToken:null,aiApiKeys:{},aiOauthTokens:{},tailscaleKey:"",awsAccessKeyId:"",awsSecretKey:"",scalewayAccessKey:"",scalewaySecretKey:"",ovhApplicationKey:"",ovhApplicationSecret:"",ovhConsumerKey:"",ovhCloudProject:"",deployStreamToken:null,deployOwnerUserId:null,deployIdempotencyKey:null}),reset:()=>{e(f),y.removeItem(m)}}),{name:m,storage:(0,a.KU)(()=>y),version:1,partialize:function(e){return"success"===e.step?{...f,selectedAIProviders:Array.from(f.selectedAIProviders)}:{...e,selectedAIProviders:Array.from(e.selectedAIProviders)}},merge:function(e,t){if(!e||"object"!=typeof e)return t;let{selectedAIProviders:n,...o}=e;return{...t,...o,selectedAIProviders:new Set(Array.isArray(n)?n:Array.from(t.selectedAIProviders)),secretProviderSelection:(0,l.Y4)(e.secretProviderSelection)?e.secretProviderSelection:t.secretProviderSelection,..."local"===e.cloudProvider?{cloudVerified:!0,billingAcknowledged:!0}:{}}}}))}
1,77114:(e,t,n)=>{n.d(t,{Oz:()=>i,m2:()=>d,q_:()=>s,uf:()=>c,vo:()=>r});var o=n(80018),a=n(25246);let r={starter:4,growing:8,power:16},l=[{id:"chief-of-staff",name:"Chief of Staff (Coordinator)",department:"coordination",rolePrompt:"Coordinate priorities, handoffs, status, and routing."},{id:"revenue-lead",name:"Revenue Lead (Sales)",department:"sales",rolePrompt:"Handle prospects, sales follow-up, objections, and deals."},{id:"demand-builder",name:"Demand Builder (Marketing)",department:"marketing",rolePrompt:"Plan positioning, campaigns, launch copy, and content angles."},{id:"customer-advocate",name:"Customer Advocate (Support)",department:"support",rolePrompt:"Triage customer issues, replies, feedback, and escalation."},{id:"operations-manager",name:"Operations Manager (Ops)",department:"operations",rolePrompt:"Build processes, checklists, reporting, and internal handoffs."},{id:"product-strategist",name:"Product Strategist (Product)",department:"product",rolePrompt:"Turn user needs into product requirements and tradeoffs."},{id:"engineering-partner",name:"Engineering Partner (Engineering)",department:"engineering",rolePrompt:"Support technical planning, debugging, and release readiness."},{id:"finance-analyst",name:"Finance Analyst (Finance)",department:"finance",rolePrompt:"Analyze costs, pricing, budgets, margins, and forecasts."},{id:"research-analyst",name:"Research Analyst (Research)",department:"research",rolePrompt:"Research markets, competitors, users, and technical options."},{id:"security-steward",name:"Security Steward (Security)",department:"security",rolePrompt:"Review secrets, access, backup safety, and operational risk."},{id:"people-partner",name:"People Partner (People)",department:"people",rolePrompt:"Help with hiring, onboarding, scorecards, and team rituals."},{id:"data-analyst",name:"Data Analyst (Analytics)",department:"analytics",rolePrompt:"Define metrics, inspect trends, and turn data into decisions."},{id:"partnerships-lead",name:"Partnerships Lead (Partnerships)",department:"partnerships",rolePrompt:"Draft partner outreach and structure collaboration plans."},{id:"content-producer",name:"Content Producer (Content)",department:"content",rolePrompt:"Create briefs, outlines, posts, scripts, and repurposing plans."},{id:"implementation-specialist",name:"Implementation Specialist (Delivery)",department:"delivery",rolePrompt:"Turn plans into rollout tasks, setup steps, and checklists."},{id:"quality-lead",name:"Quality Lead (QA)",department:"quality",rolePrompt:"Test workflows, find edge cases, and verify fixes."}];function i(e){return l.slice(0,r[e])}function s(e){return(0,a.JU)(e)}function d(e){return l.slice(0,(0,a.IV)(e))}function c(e,t){let n=(0,o.E3)(t)||(0,o.E3)("openai"),a=(null==n?void 0:n.id)||"openai",r=(null==n?void 0:n.authMethod)||"consumer",l=(null==n?void 0:n.defaultModel)||"gpt-5.5",i=null==n?void 0:n.defaultModelParams;return d(e).map(e=>({name:e.name,modelProvider:a,authMethod:r,model:l,...i?{modelParams:i}:{},template:"general",profileId:e.id,department:e.department,rolePrompt:e.rolePrompt}))}},80018:(e,t,n)=>{n.d(t,{$9:()=>A,$U:()=>U,BX:()=>m,Dt:()=>i,E3:()=>C,Ik:()=>f,Jl:()=>s,N4:()=>p,Nf:()=>K,O:()=>l,P4:()=>b,PG:()=>w,Rt:()=>y,Y4:()=>c,ZZ:()=>h,b7:()=>d,bn:()=>M,eu:()=>u,gQ:()=>I,h1:()=>S,i3:()=>g,lt:()=>a,uX:()=>k,wn:()=>F,zi:()=>G});var o=n(64977);let a="af624a5e3198",r=[{id:"digitalocean",name:"DigitalOcean",authMethod:"oauth",logo:"digitalocean",color:"#0080FF",recommended:!0,deployable:!0,description:"Sign in and we'll set up your server automatically.",monthlyCost:24,badge:"Recommended — Fastest setup",signupUrl:"https://m.do.co/c/".concat(a),oauthScopes:["read","write"],regions:[{id:"nyc1",name:"New York (East US)",country:"US",lat:40.7,lng:-74},{id:"sfo3",name:"San Francisco (West US)",country:"US",lat:37.8,lng:-122.4},{id:"ams3",name:"Amsterdam",country:"NL",lat:52.4,lng:4.9},{id:"fra1",name:"Frankfurt",country:"DE",lat:50.1,lng:8.7},{id:"lon1",name:"London",country:"GB",lat:51.5,lng:-.1},{id:"sgp1",name:"Singapore",country:"SG",lat:1.3,lng:103.8},{id:"blr1",name:"Bangalore (India)",country:"IN",lat:12.97,lng:77.59},{id:"syd1",name:"Sydney",country:"AU",lat:-33.87,lng:151.21}],sizes:[{id:"starter",name:"Starter",description:"Great for solo use or a 4-agent starter office.",agentRange:"1–4 agents",technicalSpec:"2 vCPU, 4 GB RAM (s-2vcpu-4gb)",monthlyCost:24,recommended:!0},{id:"growing",name:"Growing",description:"For 5–8 agents or if you plan to add more features",agentRange:"5–8 agents",technicalSpec:"4 vCPU, 8 GB RAM (s-4vcpu-8gb)",monthlyCost:48,recommended:!1},{id:"power",name:"Power",description:"For 9–16 agents and demanding tasks",agentRange:"9–16 agents",technicalSpec:"8 vCPU, 16 GB RAM (s-8vcpu-16gb)",monthlyCost:96,recommended:!1}]},{id:"local",name:"Your own computer",authMethod:"none",logo:"localmachine",color:"#0EA5E9",recommended:!1,deployable:!0,description:"Run your agent on this computer for free — works on Mac, Linux, and Windows (WSL).",monthlyCost:0,badge:"Free — uses your hardware",regions:[{id:"local",name:"This computer",country:"",lat:0,lng:0}],sizes:[{id:"starter",name:"Your computer",description:"Uses the memory and processor your computer already has.",agentRange:"1–4 agents",technicalSpec:"Your own hardware — no server rental",monthlyCost:0,recommended:!0}]},{id:"scaleway",name:"Scaleway",authMethod:"api_key",logo:"scaleway",color:"#4F0599",recommended:!1,deployable:!0,description:"Deploy on Apple Mac Mini in Europe. Native macOS with VNC desktop access.",monthlyCost:115,badge:"Mac Mini available \uD83C\uDF4E",regions:[{id:"fr-par-1",name:"Paris 1",country:"FR",lat:48.86,lng:2.35},{id:"fr-par-3",name:"Paris 3",country:"FR",lat:48.86,lng:2.35}],sizes:[{id:"starter",name:"Mac Mini M2",description:"16 GB RAM, 256 GB SSD",agentRange:"1–4 agents",technicalSpec:"Apple M2, 16 GB RAM, 256 GB SSD",monthlyCost:115,recommended:!0},{id:"growing",name:"Mac Mini M2 Pro",description:"16 GB RAM, 512 GB SSD",agentRange:"5–8 agents",technicalSpec:"Apple M2 Pro, 16 GB RAM, 512 GB SSD",monthlyCost:139,recommended:!1},{id:"power",name:"Mac Mini M4 Pro",description:"64 GB RAM, 2 TB SSD",agentRange:"9–16 agents",technicalSpec:"Apple M4 Pro, 64 GB RAM, 2 TB SSD",monthlyCost:335,recommended:!1}]},{id:"ovh",name:"OVHcloud",authMethod:"api_key",logo:"ovh",color:"#123F6D",recommended:!1,deployable:!0,description:"Connect your OVHcloud Public Cloud project and we'll set up your server automatically.",monthlyCost:20,badge:"European cloud",signupUrl:"https://www.ovhcloud.com/en/public-cloud/",regions:[{id:"GRA11",name:"Gravelines",country:"FR",lat:50.99,lng:2.13},{id:"SBG5",name:"Strasbourg",country:"FR",lat:48.57,lng:7.75}
1,{id:"DE1",name:"Frankfurt",country:"DE",lat:50.11,lng:8.68},{id:"UK1",name:"London",country:"GB",lat:51.51,lng:-.13},{id:"WAW1",name:"Warsaw",country:"PL",lat:52.23,lng:21.01},{id:"BHS5",name:"Beauharnois",country:"CA",lat:45.32,lng:-73.87},{id:"SGP1",name:"Singapore",country:"SG",lat:1.35,lng:103.82},{id:"SYD1",name:"Sydney",country:"AU",lat:-33.87,lng:151.21}],sizes:[{id:"starter",name:"Starter",description:"Great for solo use or a 4-agent starter office.",agentRange:"1–4 agents",technicalSpec:"At least 2 vCPU and 4 GB RAM (live OVH flavor)",monthlyCost:20,recommended:!0},{id:"growing",name:"Growing",description:"For 5–8 agents or if you plan to add more features",agentRange:"5–8 agents",technicalSpec:"At least 4 vCPU and 8 GB RAM (live OVH flavor)",monthlyCost:40,recommended:!1},{id:"power",name:"Power",description:"For 9–16 agents and demanding tasks",agentRange:"9–16 agents",technicalSpec:"At least 8 vCPU and 16 GB RAM (live OVH flavor)",monthlyCost:80,recommended:!1}]},{id:"gcp",name:"Google Cloud",authMethod:"oauth",logo:"gcp",color:"#4285F4",recommended:!1,deployable:!0,description:"Sign in with Google and we'll set up your server automatically.",monthlyCost:27,badge:"One-click setup",oauthScopes:["https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/cloud-billing.readonly","https://www.googleapis.com/auth/service.management","https://www.googleapis.com/auth/compute","openid","email"],regions:[{id:"us-east1-b",name:"East US (South Carolina)",country:"US",lat:33.8,lng:-81.2},{id:"us-west1-b",name:"West US (Oregon)",country:"US",lat:45.6,lng:-122.7},{id:"europe-west1-b",name:"Belgium",country:"BE",lat:50.4,lng:3.8},{id:"europe-west2-a",name:"London",country:"GB",lat:51.5,lng:-.1},{id:"europe-west3-a",name:"Frankfurt",country:"DE",lat:50.1,lng:8.7},{id:"asia-southeast1-a",name:"Singapore",country:"SG",lat:1.3,lng:103.8},{id:"asia-south1-a",name:"Mumbai",country:"IN",lat:19.08,lng:72.88},{id:"australia-southeast1-a",name:"Sydney",country:"AU",lat:-33.87,lng:151.21}],sizes:[{id:"starter",name:"Starter",description:"Great for solo use or a 4-agent starter office.",agentRange:"1–4 agents",technicalSpec:"2 vCPU, 4 GB RAM (e2-medium)",monthlyCost:27,recommended:!0},{id:"growing",name:"Growing",description:"For 5–8 agents or if you plan to add more features",agentRange:"5–8 agents",technicalSpec:"2 vCPU, 8 GB RAM (e2-standard-2)",monthlyCost:49,recommended:!1},{id:"power",name:"Power",description:"For 9–16 agents and demanding tasks",agentRange:"9–16 agents",technicalSpec:"4 vCPU, 16 GB RAM (e2-standard-4)",monthlyCost:98,recommended:!1}]},{id:"aws",name:"Amazon Web Services",authMethod:"api_key",logo:"aws",color:"#FF9900",recommended:!1,deployable:!0,description:"Paste your access credentials and we'll set up your server automatically.",monthlyCost:30,badge:"Requires a few extra steps",regions:[{id:"us-east-1",name:"East US (Virginia)",country:"US",lat:39,lng:-77.5},{id:"us-west-2",name:"West US (Oregon)",country:"US",lat:46.2,lng:-120.8},{id:"eu-west-1",name:"Ireland",country:"IE",lat:53.3,lng:-6.3},{id:"eu-central-1",name:"Frankfurt",country:"DE",lat:50.1,lng:8.7},{id:"eu-west-2",name:"London",country:"GB",lat:51.5,lng:-.1},{id:"ap-southeast-1",name:"Singapore",country:"SG",lat:1.3,lng:103.8},{id:"ap-south-1",name:"Mumbai",country:"IN",lat:19.08,lng:72.88},{id:"ap-southeast-2",name:"Sydney",country:"AU",lat:-33.87,lng:151.21}],sizes:[{id:"starter",name:"Starter",description:"Great for solo use or a 4-agent starter office.",agentRange:"1–4 agents",technicalSpec:"2 vCPU, 4 GB RAM (t3.medium)",monthlyCost:30,recommended:!0},{id:"growing",name:"Growing",description:"For 5–8 agents or if you plan to add more features",agentRange:"5–8 agents",technicalSpec:"2 vCPU, 8 GB RAM (t3.large)",monthlyCost:60,recommended:!1},{id:"power",name:"Power",description:"For 9–16 agents and demanding tasks",agentRange:"9–16 agents",technicalSpec:"4 vCPU, 16 GB RAM (t3.xlarge)",monthlyCost:120,recommended:!1}]},{id:"azure",name:"Microsoft Azure",authMethod:"oauth",logo:"azure",color:"#0078D4",recommended:!1,deployable:!1,description:"Sign in with Microsoft and we'll set up your server automatically.",monthlyCost:29,badge:"One-click setup",oauthScopes:["https://management.azure.com/user_impersonation","offline_access","openid","profile","email"],regions:[{id:"eastus",name:"East US (Virginia)",country:"US",lat:37.4,lng:-79.5}
1,{id:"westus2",name:"West US (Washington)",country:"US",lat:47.2,lng:-119.9},{id:"northeurope",name:"Ireland",country:"IE",lat:53.3,lng:-6.3},{id:"westeurope",name:"Netherlands",country:"NL",lat:52.37,lng:4.9},{id:"uksouth",name:"London (UK South)",country:"GB",lat:51.5,lng:-.1},{id:"southeastasia",name:"Singapore",country:"SG",lat:1.3,lng:103.8},{id:"centralindia",name:"Pune (Central India)",country:"IN",lat:18.52,lng:73.86},{id:"australiaeast",name:"Sydney (Australia East)",country:"AU",lat:-33.87,lng:151.21}],sizes:[{id:"starter",name:"Starter",description:"Great for solo use or a 4-agent starter office.",agentRange:"1–4 agents",technicalSpec:"2 vCPU, 8 GB RAM (B2ms)",monthlyCost:29,recommended:!0},{id:"growing",name:"Growing",description:"For 5–8 agents or if you plan to add more features",agentRange:"5–8 agents",technicalSpec:"2 vCPU, 8 GB RAM (D2as v5)",monthlyCost:58,recommended:!1},{id:"power",name:"Power",description:"For 9–16 agents and demanding tasks",agentRange:"9–16 agents",technicalSpec:"4 vCPU, 16 GB RAM (D4as v5)",monthlyCost:116,recommended:!1}]}];function l(e){return e.deployable}function i(){return r.filter(l)}let s=[{id:"openai",name:"ChatGPT",authMethod:"consumer",consumerConnect:"device",logo:"openai",color:"#10A37F",recommended:!0,description:"Uses your ChatGPT Plus or Pro subscription",defaultModel:"gpt-5.5",modelDisplayName:"GPT-5.5"},{id:"anthropic",name:"Claude",authMethod:"consumer",logo:"anthropic",color:"#D4A574",recommended:!1,description:"Uses your Claude plan through Aideploy's built-in billing proxy",defaultModel:"claude-opus-4-8",defaultModelParams:{context1m:!0},modelDisplayName:"Claude Opus 4.8 (1M)"},{id:"gemini",name:"Gemini",authMethod:"api_key",logo:"gemini",color:"#4285F4",recommended:!1,description:"Free tier available, or paste API key for chat plus built-in image generation",defaultModel:"gemini-3-deep-think",modelDisplayName:"Gemini 3 Deep Think",apiKeyUrl:"https://aistudio.google.com/apikey"},{id:"kimi",name:"Kimi",authMethod:"api_key",logo:"kimi",color:"#6366F1",recommended:!1,description:"Paste API key",defaultModel:"kimi-k2.6",modelDisplayName:"Kimi K2.6",apiKeyUrl:"https://platform.moonshot.cn/console/api-keys"},{id:"deepseek",name:"DeepSeek",authMethod:"api_key",logo:"deepseek",color:"#06B6D4",recommended:!1,description:"Paste API key",defaultModel:"deepseek-chat",modelDisplayName:"DeepSeek Chat",apiKeyUrl:"https://platform.deepseek.com/api_keys"},{id:"ollama",name:"Local AI",authMethod:"local",logo:"ollama",color:"#0EA5E9",recommended:!1,description:"Free open models that run on your own hardware — no account needed",defaultModel:"qwen3",modelDisplayName:"Qwen 3 (8B)"}],d=[{id:"doppler",scheme:"doppler",name:"Doppler",logo:"doppler",color:"#1E63F0",description:"Keeps your passwords and keys safe and fills them in automatically where needed."},{id:"aws-secrets-manager",scheme:"aws-sm",name:"AWS Secrets Manager",logo:"aws",color:"#FF9900",description:"Pulls saved passwords from your Amazon account when needed."},{id:"gcp-secret-manager",scheme:"gcp-sm",name:"Google Secret Manager",logo:"gcp",color:"#4285F4",description:"Pulls saved passwords from your Google Cloud account when needed."},{id:"azure-key-vault",scheme:"azure-kv",name:"Azure Key Vault",logo:"azure",color:"#0078D4",description:"Pulls saved passwords from your Microsoft Azure account when needed."}];function c(e){return"automatic"===e||"env"===e||"doppler"===e||"aws-sm"===e||"gcp-sm"===e||"azure-kv"===e}function u(e,t){return"automatic"!==t?t:"local"===e?"env":function(e){switch(e){case"aws":return"aws-sm";case"gcp":return"gcp-sm";case"azure":return"azure-kv";default:return null}}(e)||"doppler"}function p(e){var t;return"env"===e?"Environment variables":(null==(t=d.find(t=>t.scheme===e))?void 0:t.name)||e}let m=[{id:"tailscale",name:"Tailscale",logo:"tailscale",color:"#1447E6",badge:"Private access",description:"Creates a private connection between your devices and your server, so only you can reach your dashboard."},{id:"docker",name:"Docker",logo:"docker",color:"#2496ED",badge:"Isolated environment",description:"Runs your agent and dashboard in separate, protected spaces on your server so they don't interfere with each other."},{id:"nginx",name:"NGINX",logo:"nginx",color:"#009639",badge:"Secure connections",description:"Handles incoming messages from your messaging apps securely while keeping everything else private."},{id:"kong",name:"Kong",logo:"kong",color:"#003459",badge:"Traffic manager",description:"Directs traffic between the different parts of your setup so everything talks to the right place."},{id:"supabase",name:"Supabase",logo:"supabase",color:"#3ECF8E",badge:"Your database",description:"Stores your agent's data, handles logins, and keeps files — all on your own server where you control it."}],g=[{id:"telegram",name:"Telegram",logo:"telegram",color:"#0088CC",recommended:!0,badge:"Fastest",description:"Fastest to set up from Telegram.",setupSteps:["Use the Telegram setup button above for the easiest path","Or open Telegram and search for @BotFather","Send /newbot and follow the steps","Copy the token BotFather gives you","Paste it below"],tokenPlaceholder:"Paste your bot token"},{id:"whatsapp",name:"WhatsApp",logo:"whatsapp",color:"#25D366",recommended:!1,badge:"Meta API",description:"Connect WhatsApp before launch with your Meta app details.",setupSteps:["In Meta for Developers, create or open a Business app and add the WhatsApp product","In WhatsApp → API Setup, copy the Phone Number ID and create or choose a Cloud API access token","In App settings → Basic, copy the App Secret for signed webhook checks","Choose a Verify Token you will paste into Meta after launch","After deploy, paste the generated Callback URL into WhatsApp → Configuration and subscribe the webhook to messages"],tokenPlaceholder:"Paste your Meta access token"}
1,{id:"discord",name:"Discord",logo:"discord",color:"#5865F2",recommended:!1,badge:"",description:"Add your agent to Discord servers.",setupSteps:["Go to discord.com/developers/applications and create a new app","Go to Bot section and click 'Add Bot'","Copy the Bot Token","Paste it below"],tokenPlaceholder:"Paste your bot token"},{id:"slack",name:"Slack",logo:"slack",color:"#4A154B",recommended:!1,badge:"",description:"Add your agent to Slack workspaces.",setupSteps:["Go to api.slack.com/apps and create a new app","Under Permissions, give the bot permission to send messages and read mentions","Install to your workspace","Copy the bot token and paste it below"],tokenPlaceholder:"Paste your bot token"},{id:"signal",name:"Signal",logo:"signal",color:"#3A76F0",recommended:!1,badge:"QR pairing",description:"Set up after your server is ready.",setupSteps:["After deploy, open your management dashboard","Go to Connect AI & Messengers","Choose Signal and follow the guided setup"],tokenPlaceholder:"",postDeploySetup:!0},{id:"imessage",name:"iMessage",logo:"imessage",color:"#34C759",recommended:!1,badge:"Mac only",description:"Requires Mac Mini deployment.",setupSteps:["Deploy on Scaleway Mac Mini (iMessage requires macOS)","After deploy, open your management dashboard","Follow the guided iMessage setup steps","Sign into your Apple ID in the Messages app"],tokenPlaceholder:"",postDeploySetup:!0},{id:"googlechat",name:"Google Chat",logo:"googlechat",color:"#00AC47",recommended:!1,badge:"",description:"Add your agent to Google Workspace.",setupSteps:["Go to console.cloud.google.com and create a Chat app","Set up the bot name and permissions","Copy your credentials","Paste them below"],tokenPlaceholder:"Paste your credentials"},{id:"teams",name:"Microsoft Teams",logo:"teams",color:"#6264A7",recommended:!1,badge:"",description:"Add your agent to Microsoft Teams.",setupSteps:["Go to dev.teams.microsoft.com and create a new bot","Set up your bot and get the password","Copy the bot password","Paste it below"],tokenPlaceholder:"Paste your bot password"}];function h(e){return g.map(t=>{var n;let o=e.channels.providers[t.id];return{...t,name:(null==o?void 0:o.name)||t.name,description:(null==o?void 0:o.desc)||t.description,badge:(null==o?void 0:o.badge)||t.badge,setupSteps:(null==o?void 0:o.setupSteps)||t.setupSteps,tokenPlaceholder:null!=(n=null==o?void 0:o.tokenPlaceholder)?n:t.tokenPlaceholder}})}function y(e,t){var n;if("belong"===e)return t.channels.belongChannelName;let o=t.channels.providers[e];return(null==o?void 0:o.name)||(null==(n=U(e))?void 0:n.name)||e}function f(e,t){let n=new Set(e.allowedChannelIds||[]);return(0,o.at)(e).map(a=>{let r=y(a,t);return"bridge"===(0,o.sH)(e,a)&&n.has(a)?t.channels.channelBetaBridgeLabel.replace("{channel}",r):r})}let v=new Set(["whatsapp","slack"]);function w(e){return e.some(e=>{var t;return t=e.type,v.has(t)})}function S(e){return"digitalocean"===e||"gcp"===e||"ovh"===e}function A(e){return r.find(t=>t.id===e)}function P(e){return"scaleway"===e||"ovh"===e?"EUR":"USD"}function b(e,t){let n=A(e),o=null==n?void 0:n.sizes.find(e=>e.id===t);return n&&o?{min:o.monthlyCost,max:o.monthlyCost,currency:P(n.id)}:null}function M(e){let t=A(e);if(!t||0===t.sizes.length)return null;let n=Math.min(...t.sizes.map(e=>e.monthlyCost));return{min:n,max:n,currency:P(t.id)}}function k(e,t){return"".concat("EUR"===t?"€":"$").concat(e)}function C(e){return s.find(t=>t.id===e)}function I(e){var t;return(null==(t=C(e))?void 0:t.consumerConnect)==="device"}let B=new Set(["openai"]);function G(e){var t;return!B.has(e)&&(null==(t=C(e))?void 0:t.authMethod)!=="local"}function U(e){return g.find(t=>t.id===e)}let D=null,R=!1;async function K(){if(R)return D;R=!0;try{let e=await fetch("/api/location",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(6e3)});if(e.ok){let t=await e.json();if("number"==typeof t.lat&&"number"==typeof t.lng)return D={lat:t.lat,lng:t.lng}}}catch(e){}return null}function E(e,t,n){let o=e.regions[0],a=1/0;for(let r of e.regions){let e=(r.lat-t)*Math.PI/180,l=(r.lng-n)*Math.PI/180,i=Math.sin(e/2)**2+Math.cos(t*Math.PI/180)*Math.cos(r.lat*Math.PI/180)*Math.sin(l/2)**2,s=2*Math.atan2(Math.sqrt(i),Math.sqrt(1-i));s<a&&(a=s,o=r)}return o}
1function F(e,t,n,o){let a=String(t||"").trim(),r=e?A(e):void 0;if(!r)return a;let l=Array.isArray(o)?o.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(Boolean):[];return"ovh"===r.id&&l.length>0?a&&l.includes(a)?a:l[0]:a&&r.regions.some(e=>e.id===a)?a:(n?E(r,n.lat,n.lng):function(e){if(D)return E(e,D.lat,D.lng);let t=-(15*(new Date().getTimezoneOffset()/60)),n=e.regions[0],o=1/0;for(let a of e.regions){let e=Math.abs(a.lng-t)+Math.abs(a.lat-40);e<o&&(o=e,n=a)}return n}(r)).id}}}]);

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.