@hanzo/team 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/404.html +24 -3
- package/dist/admin/index.html +24 -3
- package/dist/agents/algo/index.html +24 -3
- package/dist/agents/art/index.html +24 -3
- package/dist/agents/biz/index.html +24 -3
- package/dist/agents/cal/index.html +24 -3
- package/dist/agents/core/index.html +24 -3
- package/dist/agents/cyber/index.html +24 -3
- package/dist/agents/data/index.html +24 -3
- package/dist/agents/db/index.html +24 -3
- package/dist/agents/des/index.html +24 -3
- package/dist/agents/dev/index.html +24 -3
- package/dist/agents/doc/index.html +24 -3
- package/dist/agents/ed/index.html +24 -3
- package/dist/agents/fin/index.html +24 -3
- package/dist/agents/gov/index.html +24 -3
- package/dist/agents/huma/index.html +24 -3
- package/dist/agents/index.html +24 -3
- package/dist/agents/lang/index.html +24 -3
- package/dist/agents/law/index.html +24 -3
- package/dist/agents/mana/index.html +24 -3
- package/dist/agents/mark/index.html +24 -3
- package/dist/agents/mo/index.html +24 -3
- package/dist/agents/mu/index.html +24 -3
- package/dist/agents/opera/index.html +24 -3
- package/dist/agents/rev/index.html +24 -3
- package/dist/agents/sal/index.html +24 -3
- package/dist/agents/sci/index.html +24 -3
- package/dist/agents/sec/index.html +24 -3
- package/dist/agents/su/index.html +24 -3
- package/dist/agents/vi/index.html +24 -3
- package/dist/apps/ads/index.html +24 -3
- package/dist/apps/ai-chat/index.html +24 -3
- package/dist/apps/analytics/index.html +24 -3
- package/dist/apps/billing/index.html +24 -3
- package/dist/apps/bots/index.html +24 -3
- package/dist/apps/cal/index.html +24 -3
- package/dist/apps/chat/index.html +24 -3
- package/dist/apps/cms/index.html +24 -3
- package/dist/apps/commerce/index.html +24 -3
- package/dist/apps/console/index.html +24 -3
- package/dist/apps/crm/index.html +24 -3
- package/dist/apps/dataroom/index.html +24 -3
- package/dist/apps/dev/index.html +24 -3
- package/dist/apps/email/index.html +24 -3
- package/dist/apps/index.html +24 -3
- package/dist/apps/meet/index.html +24 -3
- package/dist/apps/platform/index.html +24 -3
- package/dist/apps/sign/index.html +24 -3
- package/dist/apps/social/index.html +24 -3
- package/dist/apps/tracker/index.html +24 -3
- package/dist/assets/{Bots-DU1hNVB7.js → Bots-B8ku2Lx_.js} +2 -2
- package/dist/assets/{Bots-DU1hNVB7.js.map → Bots-B8ku2Lx_.js.map} +1 -1
- package/dist/assets/{ThemeToggleNext-D0-PyTrG.js → ThemeToggleNext-Ch0Z0z5a.js} +2 -2
- package/dist/assets/{ThemeToggleNext-D0-PyTrG.js.map → ThemeToggleNext-Ch0Z0z5a.js.map} +1 -1
- package/dist/assets/index-DVi69rnL.css +1 -0
- package/dist/assets/index-x1c3_XFq.js +186 -0
- package/dist/assets/index-x1c3_XFq.js.map +1 -0
- package/dist/auth/callback/index.html +24 -3
- package/dist/auth/index.html +24 -3
- package/dist/bots/index.html +24 -3
- package/dist/cal/index.html +24 -3
- package/dist/calendar/index.html +24 -3
- package/dist/chat/c-design/index.html +24 -3
- package/dist/chat/c-general/index.html +24 -3
- package/dist/chat/c-lux-bank/index.html +24 -3
- package/dist/chat/c-lux-bridge/index.html +24 -3
- package/dist/chat/c-revenue/index.html +24 -3
- package/dist/chat/c-support/index.html +24 -3
- package/dist/chat/c-tracker/index.html +24 -3
- package/dist/chat/c-ui/index.html +24 -3
- package/dist/chat/c-video/index.html +24 -3
- package/dist/chat/dm-algo/index.html +24 -3
- package/dist/chat/dm-art/index.html +24 -3
- package/dist/chat/dm-biz/index.html +24 -3
- package/dist/chat/dm-cal/index.html +24 -3
- package/dist/chat/dm-core/index.html +24 -3
- package/dist/chat/dm-cyber/index.html +24 -3
- package/dist/chat/dm-data/index.html +24 -3
- package/dist/chat/dm-db/index.html +24 -3
- package/dist/chat/dm-des/index.html +24 -3
- package/dist/chat/dm-dev/index.html +24 -3
- package/dist/chat/dm-doc/index.html +24 -3
- package/dist/chat/dm-ed/index.html +24 -3
- package/dist/chat/dm-fin/index.html +24 -3
- package/dist/chat/dm-gov/index.html +24 -3
- package/dist/chat/dm-huma/index.html +24 -3
- package/dist/chat/dm-lang/index.html +24 -3
- package/dist/chat/dm-law/index.html +24 -3
- package/dist/chat/dm-mana/index.html +24 -3
- package/dist/chat/dm-mark/index.html +24 -3
- package/dist/chat/dm-mo/index.html +24 -3
- package/dist/chat/dm-mu/index.html +24 -3
- package/dist/chat/dm-opera/index.html +24 -3
- package/dist/chat/dm-rev/index.html +24 -3
- package/dist/chat/dm-sal/index.html +24 -3
- package/dist/chat/dm-sci/index.html +24 -3
- package/dist/chat/dm-sec/index.html +24 -3
- package/dist/chat/dm-su/index.html +24 -3
- package/dist/chat/dm-vi/index.html +24 -3
- package/dist/chat/index.html +24 -3
- package/dist/crm/analytics/index.html +24 -3
- package/dist/crm/automations/index.html +24 -3
- package/dist/crm/campaigns/index.html +24 -3
- package/dist/crm/companies/index.html +24 -3
- package/dist/crm/contacts/index.html +24 -3
- package/dist/crm/customers/index.html +24 -3
- package/dist/crm/deliverability/index.html +24 -3
- package/dist/crm/forms/index.html +24 -3
- package/dist/crm/funds/index.html +24 -3
- package/dist/crm/index.html +24 -3
- package/dist/crm/investors/index.html +24 -3
- package/dist/crm/journeys/index.html +24 -3
- package/dist/crm/leads/index.html +24 -3
- package/dist/crm/lists/index.html +24 -3
- package/dist/crm/opportunities/index.html +24 -3
- package/dist/crm/segments/index.html +24 -3
- package/dist/crm/settings/index.html +24 -3
- package/dist/crm/templates/index.html +24 -3
- package/dist/crm/webhooks/index.html +24 -3
- package/dist/docs/index.html +24 -3
- package/dist/files/index.html +24 -3
- package/dist/inbox/index.html +24 -3
- package/dist/index.html +24 -3
- package/dist/issues/index.html +24 -3
- package/dist/issues/kanban/index.html +24 -3
- package/dist/issues/list/index.html +24 -3
- package/dist/login/index.html +24 -3
- package/dist/mail/index.html +24 -3
- package/dist/meet/index.html +24 -3
- package/dist/mine/index.html +24 -3
- package/dist/people/index.html +24 -3
- package/dist/projects/index.html +24 -3
- package/dist/projects/proj-crm/components/index.html +24 -3
- package/dist/projects/proj-crm/index.html +24 -3
- package/dist/projects/proj-crm/issues/index.html +24 -3
- package/dist/projects/proj-crm/issues/kanban/index.html +24 -3
- package/dist/projects/proj-crm/issues/list/index.html +24 -3
- package/dist/projects/proj-crm/milestones/index.html +24 -3
- package/dist/projects/proj-crm/templates/index.html +24 -3
- package/dist/projects/proj-dev/components/index.html +24 -3
- package/dist/projects/proj-dev/index.html +24 -3
- package/dist/projects/proj-dev/issues/index.html +24 -3
- package/dist/projects/proj-dev/issues/kanban/index.html +24 -3
- package/dist/projects/proj-dev/issues/list/index.html +24 -3
- package/dist/projects/proj-dev/milestones/index.html +24 -3
- package/dist/projects/proj-dev/templates/index.html +24 -3
- package/dist/projects/proj-mkt/components/index.html +24 -3
- package/dist/projects/proj-mkt/index.html +24 -3
- package/dist/projects/proj-mkt/issues/index.html +24 -3
- package/dist/projects/proj-mkt/issues/kanban/index.html +24 -3
- package/dist/projects/proj-mkt/issues/list/index.html +24 -3
- package/dist/projects/proj-mkt/milestones/index.html +24 -3
- package/dist/projects/proj-mkt/templates/index.html +24 -3
- package/dist/projects/proj-next/components/index.html +24 -3
- package/dist/projects/proj-next/index.html +24 -3
- package/dist/projects/proj-next/issues/index.html +24 -3
- package/dist/projects/proj-next/issues/kanban/index.html +24 -3
- package/dist/projects/proj-next/issues/list/index.html +24 -3
- package/dist/projects/proj-next/milestones/index.html +24 -3
- package/dist/projects/proj-next/templates/index.html +24 -3
- package/dist/settings/index.html +24 -3
- package/dist/time/index.html +24 -3
- package/package.json +1 -1
- package/dist/assets/index-C6xlLqXz.js +0 -186
- package/dist/assets/index-C6xlLqXz.js.map +0 -1
- package/dist/assets/index-Cs7y8nyH.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{$t as t,A as n,B as r,Ft as i,I as a,X as o,Xt as s,Z as c,a as l,dt as u,n as d,r as f,tt as p}from"./instrument-D2ByLhpL.js";import{C as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as ee,h as C,l as w,m as te,n as T,o as E,p as D,r as O,s as k,t as A,u as j,v as M,w as N,x as ne,y as P}from"./index-C6xlLqXz.js";var re=e(n()),ie=a?window.location.href:``,ae=class{constructor(){this._eventCallbacks={}}_dispatchEvent(e){var t=[...arguments].slice(1),n=this._eventCallbacks[e];n!=null&&Array.isArray(n)&&n.map(e=>{e(...t)})}addEventListener(e,t){var n=this;return n._eventCallbacks[e]||(n._eventCallbacks[e]=[t]),n._eventCallbacks[e].push(t),{remove(){var r=n._eventCallbacks[e].filter(e=>e.toString()!==t.toString());n._eventCallbacks[e]=r}}}removeEventListener(e,t){console.error(`Linking.removeEventListener('`+e+"', ...): Method has been deprecated. Please instead use `remove()` on the subscription returned by `Linking.addEventListener`.");var n=this._eventCallbacks[e].filter(e=>e.toString()!==t.toString());this._eventCallbacks[e]=n}canOpenURL(){return Promise.resolve(!0)}getInitialURL(){return Promise.resolve(ie)}openURL(e,t){arguments.length===1&&(t=`_blank`);try{return oe(e,t),this._dispatchEvent(`onOpen`,e),Promise.resolve()}catch(e){return Promise.reject(e)}}_validateURL(e){(0,re.default)(typeof e==`string`,`Invalid URL: should be a string. Was: `+e),(0,re.default)(e,`Invalid URL: cannot be empty`)}},oe=(e,t)=>{if(a){var n=new URL(e,window.location).toString();n.indexOf(`tel:`)===0?window.location=n:window.open(n,t,`noopener`)}};new ae;var F=i(),se=u(r,{name:`Anchor`,render:`a`,role:`link`}),ce=se.styleable(({href:e,target:t,rel:n,...r},i)=>(0,F.jsx)(se,{...r,href:e,target:t,rel:n,ref:i})),I=e(t(),1),le=[{id:`crm`,label:`CRM`,productTitle:`Hanzo CRM`,description:`Pipeline, contacts, investors & deals`,href:`https://crm.hanzo.ai`,supportsFreshAuth:!0},{id:`team`,label:`Work`,productTitle:`Hanzo Team`,description:`Shared workspace, docs, tasks & drive`,href:`https://hanzo.team`,supportsFreshAuth:!1},{id:`cms`,label:`CMS`,productTitle:`Hanzo CMS`,description:`Content, pages, collections & media`,href:`https://cms.hanzo.ai/admin`,supportsFreshAuth:!1},{id:`email`,label:`Email`,productTitle:`Hanzo Email`,description:`Campaigns, journeys & broadcasts`,href:`https://marketing.hanzo.ai`,supportsFreshAuth:!0},{id:`ads`,label:`Ads`,productTitle:`Hanzo Ads`,description:`Ad spend, ROAS & attribution`,href:`https://ads.hanzo.ai`,supportsFreshAuth:!0},{id:`cal`,label:`Cal`,productTitle:`Hanzo Cal`,description:`Scheduling, bookings & availability`,href:`https://hanzo.team/cal`,supportsFreshAuth:!1},{id:`bots`,label:`Bots`,productTitle:`Hanzo Bots`,description:`Autonomous AI agents & workflows`,href:`https://hanzo.bot`,supportsFreshAuth:!1},{id:`social`,label:`Social`,productTitle:`Hanzo Publish`,description:`Social scheduling, inbox & listening`,href:`https://social.hanzo.ai`,supportsFreshAuth:!0},{id:`chat`,label:`Chat`,productTitle:`Hanzo Chat`,description:`AI assistant, models & playground`,href:`https://hanzo.ai/chat`,supportsFreshAuth:!1},{id:`dev`,label:`Dev`,productTitle:`Hanzo Dev`,description:`Coding agents & cloud workspaces`,href:`https://hanzo.ai/dev`,supportsFreshAuth:!1},{id:`commerce`,label:`Commerce`,productTitle:`Hanzo Commerce`,description:`Store, products, orders & subscriptions`,href:`https://commerce-admin.hanzo.ai/admin/`,supportsFreshAuth:!1},{id:`analytics`,label:`Analytics`,productTitle:`Hanzo Analytics`,description:`Web traffic, funnels & retention`,href:`https://analytics.hanzo.ai`,supportsFreshAuth:!1},{id:`dataroom`,label:`Data Room`,productTitle:`Hanzo Data Room`,description:`Secure investor & deal data rooms`,href:`https://dataroom.hanzo.ai`,supportsFreshAuth:!1},{id:`sign`,label:`Sign`,productTitle:`Hanzo Sign`,description:`Document e-signatures & agreements`,href:`https://esign.hanzo.ai`,supportsFreshAuth:!1},{id:`billing`,label:`Billing`,productTitle:`Hanzo Billing`,description:`Usage, balance, invoices & payment methods`,href:`https://billing.hanzo.ai`,supportsFreshAuth:!1},{id:`console`,label:`Console`,productTitle:`Hanzo Console`,description:`Cloud, AI infrastructure & IAM`,href:`https://console.hanzo.ai`,supportsFreshAuth:!0},{id:`platform`,label:`Platform`,productTitle:`Hanzo Platform`,description:`PaaS deployments, clusters & containers`,href:`https://platform.hanzo.ai`,supportsFreshAuth:!0}],ue=2e3;function de({value:e,children:t,label:n,size:r=24,id:i,props:a}){let[s,c]=(0,I.useState)(!1),l=(0,I.useRef)(void 0),u=d(),{t:p}=f();(0,I.useEffect)(()=>()=>clearTimeout(l.current),[]);let m=()=>{navigator?.clipboard?.writeText(e).then(()=>{u({component:`CopyButton`,action:`click`,id:i,value:e.length}),c(!0),clearTimeout(l.current),l.current=setTimeout(()=>c(!1),ue)}).catch(()=>{u({component:`CopyButton`,action:`error`,id:i})})},g=n??(typeof t==`string`?t:p(`Copy`)),_=Math.round(r*.58);return(0,F.jsxs)(o,{width:t==null?r:void 0,height:r,px:t==null?void 0:`$2`,gap:t==null?void 0:`$1.5`,items:`center`,justify:`center`,rounded:`$2`,cursor:`pointer`,opacity:.7,onPress:m,role:`button`,tabIndex:0,"aria-label":s?p(`Copied`):g,...P(s?p(`Copied`):g),hoverStyle:{bg:`$edge`,opacity:1},pressStyle:{bg:`$raised`},...a,children:[s?(0,F.jsx)(ne,{size:_}):(0,F.jsx)(y,{size:_}),t==null?null:(0,F.jsx)(h,{fontSize:`$2`,color:`$ink`,numberOfLines:1,children:s?p(`Copied`):t})]})}var fe=e=>(e.kind===`upgrade`||e.kind===`topup`)&&!!e.url,pe=[`premium`,`ours`,`free`],me=[`ok`,`near`,`limited`],he=[`plan`,`credits`,`free`,`none`],ge=[`upgrade`,`topup`,`credits`,`switch`],_e={upgrade:`Upgrade`,topup:`Add prepaid credit`,credits:`Continue with credits`,switch:`Switch model`,later:`Try again later`},ve=e=>typeof e==`string`?e:null,ye=(e,t)=>typeof t==`string`&&e.includes(t)?t:null,be=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null;function xe(e){return Array.isArray(e)?e.flatMap(e=>{let t=be(e),n=ye(ge,t?.kind);if(!n)return[];let r=ve(t?.url)??void 0,i=ve(t?.model)??void 0,a=ve(t?.plan)??void 0;return(n===`upgrade`||n===`topup`)&&!r||n===`switch`&&!i?[]:[{kind:n,label:ve(t?.label)||_e[n],...r?{url:r}:{},...i?{model:i}:{},...a?{plan:a}:{}}]}):[]}function Se(e){let t=ye(me,e.get(`x-hanzo-usage`)),n=e.get(`x-hanzo-fallback`)||null,r=n&&(e.get(`x-hanzo-served`)||n);return!t&&!r?null:{state:t??`limited`,class:ye(pe,e.get(`x-hanzo-usage-class`)),paidBy:ye(he,e.get(`x-hanzo-paid-by`)),fallback:r,reason:e.get(`x-hanzo-usage-reason`)||null}}var Ce=new Map([[`free_plan_cap`,`rate_limit_error`],[`usage_cap_exceeded`,`rate_limit_error`],[`allowance_spent`,`insufficient_quota`]]),we=86400;function Te(e,t,n){let r=be(be(e)?.error);if(!r)return null;let i=ve(r.code)??``;if(r.type!==`billing_error`&&(!Ce.has(i)||Ce.get(i)!==r.type))return null;let a=n?Number(n):NaN;return{status:t,code:i,message:ve(r.message)??``,class:ye(pe,r.class),resets_at:ve(r.resets_at),actions:xe(r.actions),retry:a>=0&&a<=we?a:null}}var Ee={served:null,refusal:null,at:0},De=new Set,Oe=e=>{Ee=e;for(let e of De)e()};function ke(e){let t=Se(e.headers);if(e.ok){(t||Ee.served||Ee.refusal)&&Oe({served:t,refusal:null,at:Date.now()});return}if(e.status!==402&&e.status!==429)return;let n=e.headers.get(`retry-after`);e.clone().json().then(r=>{let i=Te(r,e.status,n);i&&Oe({served:t??Ee.served,refusal:i,at:Date.now()})}).catch(()=>{})}var Ae={site:``,home:`/home`,signUp:`/signup`};function je(e){Ae={...Ae,...e}}var Me=()=>Ae,Ne=`admin`;function Pe(e){if(!e||e.type===`application`)return!1;let t=e.orgs;return!Array.isArray(t)||t.length===0?!1:t[0]?.org===Ne}var Fe=[`/board`,`/bots`,`/cal`,`/chat`,`/chat/shared`,`/contacts`,`/dev`,`/drive`,`/home`,`/inbox`,`/meet`,`/settings`,`/settings/organization`,`/settings/organization/billing`,`/settings/organization/members`,`/settings/organization/usage`,`/work`],Ie=`https://hanzo.team`;`${Ie}`,`${Ie}`;var Le=`/settings/organization`;`${Le}`,`${Le}`,`${Le}`,`${Le}`;var Re=new Set([`/chat`,`/chat/shared`,`/dev`]);Fe.filter(e=>!Re.has(e)&&e!==`/settings`&&!e.startsWith(`/settings/`));var ze=[`hanzo.app`],Be=e=>ze.includes(e),Ve=e=>e===`hanzo.team`||e===`www.hanzo.team`,He=`https://hanzo.ai`,Ue=`https://hanzo.app`;`${Ue}`,`${Ue}`;var We=e=>e.endsWith(`.hanzo.app`)||e===`hanzo.chat`,Ge=`-dev.hanzo.ai`;function Ke(e){let t=e.endsWith(`.`)?e.slice(0,-1):e;if(!t.endsWith(Ge))return!1;let n=t.slice(0,-9);return n.length>4&&!n.includes(`.`)}[...ze],[...ze];var qe=`https://api-dev.hanzo.ai`,Je=()=>typeof window<`u`&&Ke(window.location.hostname);function Ye(){if(Je())return qe;let e=Me().api;if(e)return e.replace(/\/+$/,``);if(typeof window<`u`){let e=window.location.hostname;return Be(e)||e===`hanzo.ai`||e.endsWith(`.hanzo.ai`)||Ve(e)||e===`hanzo.bot`||We(e)?`https://api.hanzo.ai`:window.location.origin}return`https://api.hanzo.ai`}var Xe=`hanzo_iam_`,Ze=`${Xe}access_token`;`${Xe}`;var Qe=`${Xe}expires_at`;`${Xe}`;function $e(){return Me().session??window.localStorage}function et(){if(typeof window>`u`)return null;try{return $e().getItem(Ze)}catch{return null}}`${Ze}${Qe}`;function tt(){if(typeof window>`u`)return!1;try{return!!(et()||rt()||window.localStorage.getItem(`hanzo_access_token`)||window.localStorage.getItem(nt)||window.sessionStorage?.getItem(Ze))}catch{return!1}}var nt=`hanzo:who`;`${Xe}`,`${Xe}`;function rt(){let e=et();if(e)try{let t=e.split(`.`)[1],n=JSON.parse(atob(t.replace(/-/g,`+`).replace(/_/g,`/`)));return typeof n.sub==`string`&&n.sub?n.sub:void 0}catch{return}}function it(e){if(!e)return null;try{let t=e.split(`.`)[1];return JSON.parse(atob(t.replace(/-/g,`+`).replace(/_/g,`/`)))}catch{return null}}var at=[`hanzo-id`,`lux-id`,`zoo-id`,`pars-id`],ot=[`hanzo`,`lux`,`zoo`,`pars`,`platform`,`hanzoai`,`luxfi`,`zooai`,`hanzo-inc`,`hanzo-apps`,`hanzo-community`];function st(e){let t=it(e),n=Pe(t),r=t?.orgs,i=[];for(let e of Array.isArray(r)?r:[]){let t=e,r=t?.org;if(typeof r!=`string`||!r||i.includes(r)||at.includes(r))continue;let a=typeof t?.role==`string`&&[`owner`,`admin`].includes(t.role.trim().toLowerCase());(r===`admin`?n:!ot.includes(r)||n||a)&&i.push(r)}return i}function ct(){return st(et())}function lt(){try{let e=ct(),t=window.localStorage.getItem(`${Xe}current_org`);return t&&e.includes(t)?t:e.length===1?e[0]:null}catch{return null}}var ut=`hanzo:org`;function dt(e){ft(e),window.dispatchEvent(new Event(ut))}function ft(e){try{window.localStorage.setItem(`${Xe}current_org`,e)}catch{}}var pt=()=>()=>{};function mt(){return(0,I.useSyncExternalStore)(pt,()=>!0,()=>!1)}var ht=class{constructor(e){this.http=e}http;get(e){return this.http.enveloped({method:`GET`,path:`/v1/ai/account`,...e?.signal?{signal:e.signal}:{}})}},gt=class extends Error{constructor(e){super(e),this.name=`HanzoAIError`}},_t=class extends gt{status;body;constructor(e,t,n){super(e),this.name=`APIError`,this.status=t,this.body=n}},vt=class extends gt{constructor(e="No auth token available. Pass `token` or `getToken` to createAiClient."){super(e),this.name=`AuthError`}},yt=`/v1/agents`,bt=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,xt=131072;function St(e,t=``){if(!bt.test(e))throw new gt(`Not a valid agent ref: ${JSON.stringify(e)}`);return`${yt}/${e}${t}`}var Ct=class{constructor(e){this.http=e}http;list(e){return this.http.collection(`agents`,{method:`GET`,path:yt,...e?.signal?{signal:e.signal}:{}})}create(e,t){return this.http.json({method:`POST`,path:yt,body:e,...t?.signal?{signal:t.signal}:{}})}async get(e,t){return this.http.json({method:`GET`,path:St(e),...t?.signal?{signal:t.signal}:{}})}async update(e,t,n){return this.http.json({method:`PATCH`,path:St(e),body:t,...n?.signal?{signal:n.signal}:{}})}async delete(e,t){await this.http.raw({method:`DELETE`,path:St(e),...t?.signal?{signal:t.signal}:{}})}async run(e,t,n){let r=St(e,`/run`);if(new TextEncoder().encode(t).length>xt)throw new gt(`Input exceeds ${xt} bytes.`);return this.http.json({method:`POST`,path:r,body:{input:t},...n?.signal?{signal:n.signal}:{}})}runs(e={},t){let{agent:n,...r}=e;return this.http.collection(`runs`,{method:`GET`,path:n?St(n,`/runs`):`${yt}/runs`,...Object.keys(r).length?{query:r}:{},...t?.signal?{signal:t.signal}:{}})}metrics(e,t){return this.http.json({method:`GET`,path:`${yt}/metrics`,...e?.range?{query:{range:e.range}}:{},...t?.signal?{signal:t.signal}:{}})}activity(e){return this.http.collection(`activity`,{method:`GET`,path:`${yt}/activity`,...e?.signal?{signal:e.signal}:{}})}};function wt(e){let t=e??{};return{status:`held`,id:typeof t.id==`string`?t.id:``,clause:typeof t.clause==`string`?t.clause:``,reason:typeof t.reason==`string`?t.reason:``}}var Tt=`https://api.hanzo.ai`;function Et(e,t){return e.replace(/\/+$/,``)+(t.startsWith(`/`)?t:`/${t}`)}function Dt(e){if(!e)return``;let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}function Ot(e){return typeof FormData<`u`&&e instanceof FormData}var kt=class{baseUrl;issuer;auth;token;getToken;fetchImpl;extraHeaders;constructor(e){this.baseUrl=e.baseUrl??Tt,this.issuer=e.issuer,this.auth=e.auth,this.token=e.token??e.secretKey??e.publishableKey,this.getToken=e.getToken,this.extraHeaders=e.headers??{};let t=e.fetch??globalThis.fetch;if(typeof t!=`function`)throw new _t("No fetch implementation available; pass `fetch` in the client config.",0);this.fetchImpl=t.bind(globalThis)}async resolveToken(){if(this.auth){let e=this.auth.getValidAccessToken?await this.auth.getValidAccessToken():this.auth.getAccessToken?.()??null;if(e)return e;if(!this.getToken&&!this.token)throw new vt}if(this.getToken)return await this.getToken();if(this.token)return this.token;throw new vt}async buildHeaders(e){let t=new Headers(this.extraHeaders);for(let[n,r]of Object.entries(e.headers??{}))t.set(n,r);return e.body!==void 0&&!Ot(e.body)&&!t.has(`Content-Type`)&&t.set(`Content-Type`,`application/json`),!e.anonymous&&!t.has(`Authorization`)&&t.set(`Authorization`,`Bearer ${await this.resolveToken()}`),t}async send(e,t){let n=await this.buildHeaders(t),r={method:t.method??`GET`,headers:n};return t.body!==void 0&&(r.body=Ot(t.body)?t.body:JSON.stringify(t.body)),t.signal&&(r.signal=t.signal),this.fetchImpl(e,r)}async raw(e){let t=Et(e.baseUrl??this.baseUrl,e.path)+Dt(e.query),n=await this.send(t,e);return!e.anonymous&&this.auth?.invalidate&&await At(n)&&(this.auth.invalidate(),n=await this.send(t,e)),n.ok||await Mt(n),n}async result(e){let t=await this.raw(e),n=await t.json().catch(()=>({}));return t.status===202&&n.status===`held`?wt(n):{status:`done`,value:n}}scoped(e){return{baseUrl:this.baseUrl,issuer:this.issuer,auth:e,fetch:this.fetchImpl,headers:this.extraHeaders}}async json(e){return await(await this.raw(e)).json()}async collection(e,t){let n=(await this.json(t))?.[e];return Array.isArray(n)?n:[]}async bearer(){try{return await this.resolveToken()}catch{return}}async enveloped(e){let t=await this.json(e);if(t.status!==`ok`)throw new _t(t.msg||`Request failed`,200,t);return t.data}};async function At(e){if(e.status===401)return!0;if(e.status!==403)return!1;let t=(await e.clone().json().catch(()=>void 0))?.detail;return typeof t==`string`&&t.includes(`validated principal`)}var jt={502:`The service did not answer. Nothing was run; try again.`,503:`The service is not running right now.`,504:`The service took too long to answer.`};async function Mt(e){let t=await e.text().catch(()=>``),n=t,r=jt[e.status]??`HTTP ${e.status}`;if(t)try{n=JSON.parse(t),r=Nt(n)??r}catch{n=t}throw new _t(r,e.status,n)}function Nt(e){if(e&&typeof e==`object`){let t=e;if(typeof t.msg==`string`&&t.msg)return t.msg;let n=t.error;if(typeof n==`string`)return n;if(n&&typeof n==`object`){let e=n.message;if(typeof e==`string`)return e}if(typeof t.detail==`string`&&t.detail)return t.detail;if(typeof t.title==`string`&&t.title)return t.title}}async function*Pt(e){let t=e.getReader(),n=new TextDecoder,r=``;try{for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a;for(;(a=Ft(r))!==-1;){let e=r.slice(0,a);r=r.slice(It(r,a));let t=Lt(e);t&&(yield t)}}let e=r.trim();if(e){let t=Lt(e);t&&(yield t)}}finally{t.releaseLock()}}function Ft(e){let t=e.indexOf(`
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{$t as t,A as n,B as r,Ft as i,I as a,X as o,Xt as s,Z as c,a as l,dt as u,n as d,r as f,tt as p}from"./instrument-D2ByLhpL.js";import{C as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as ee,h as C,l as w,m as te,n as T,o as E,p as D,r as O,s as k,t as A,u as j,v as M,w as N,x as ne,y as P}from"./index-x1c3_XFq.js";var re=e(n()),ie=a?window.location.href:``,ae=class{constructor(){this._eventCallbacks={}}_dispatchEvent(e){var t=[...arguments].slice(1),n=this._eventCallbacks[e];n!=null&&Array.isArray(n)&&n.map(e=>{e(...t)})}addEventListener(e,t){var n=this;return n._eventCallbacks[e]||(n._eventCallbacks[e]=[t]),n._eventCallbacks[e].push(t),{remove(){var r=n._eventCallbacks[e].filter(e=>e.toString()!==t.toString());n._eventCallbacks[e]=r}}}removeEventListener(e,t){console.error(`Linking.removeEventListener('`+e+"', ...): Method has been deprecated. Please instead use `remove()` on the subscription returned by `Linking.addEventListener`.");var n=this._eventCallbacks[e].filter(e=>e.toString()!==t.toString());this._eventCallbacks[e]=n}canOpenURL(){return Promise.resolve(!0)}getInitialURL(){return Promise.resolve(ie)}openURL(e,t){arguments.length===1&&(t=`_blank`);try{return oe(e,t),this._dispatchEvent(`onOpen`,e),Promise.resolve()}catch(e){return Promise.reject(e)}}_validateURL(e){(0,re.default)(typeof e==`string`,`Invalid URL: should be a string. Was: `+e),(0,re.default)(e,`Invalid URL: cannot be empty`)}},oe=(e,t)=>{if(a){var n=new URL(e,window.location).toString();n.indexOf(`tel:`)===0?window.location=n:window.open(n,t,`noopener`)}};new ae;var F=i(),se=u(r,{name:`Anchor`,render:`a`,role:`link`}),ce=se.styleable(({href:e,target:t,rel:n,...r},i)=>(0,F.jsx)(se,{...r,href:e,target:t,rel:n,ref:i})),I=e(t(),1),le=[{id:`crm`,label:`CRM`,productTitle:`Hanzo CRM`,description:`Pipeline, contacts, investors & deals`,href:`https://crm.hanzo.ai`,supportsFreshAuth:!0},{id:`team`,label:`Work`,productTitle:`Hanzo Team`,description:`Shared workspace, docs, tasks & drive`,href:`https://hanzo.team`,supportsFreshAuth:!1},{id:`cms`,label:`CMS`,productTitle:`Hanzo CMS`,description:`Content, pages, collections & media`,href:`https://cms.hanzo.ai/admin`,supportsFreshAuth:!1},{id:`email`,label:`Email`,productTitle:`Hanzo Email`,description:`Campaigns, journeys & broadcasts`,href:`https://marketing.hanzo.ai`,supportsFreshAuth:!0},{id:`ads`,label:`Ads`,productTitle:`Hanzo Ads`,description:`Ad spend, ROAS & attribution`,href:`https://ads.hanzo.ai`,supportsFreshAuth:!0},{id:`cal`,label:`Cal`,productTitle:`Hanzo Cal`,description:`Scheduling, bookings & availability`,href:`https://hanzo.team/cal`,supportsFreshAuth:!1},{id:`bots`,label:`Bots`,productTitle:`Hanzo Bots`,description:`Autonomous AI agents & workflows`,href:`https://hanzo.bot`,supportsFreshAuth:!1},{id:`social`,label:`Social`,productTitle:`Hanzo Publish`,description:`Social scheduling, inbox & listening`,href:`https://social.hanzo.ai`,supportsFreshAuth:!0},{id:`chat`,label:`Chat`,productTitle:`Hanzo Chat`,description:`AI assistant, models & playground`,href:`https://hanzo.ai/chat`,supportsFreshAuth:!1},{id:`dev`,label:`Dev`,productTitle:`Hanzo Dev`,description:`Coding agents & cloud workspaces`,href:`https://hanzo.ai/dev`,supportsFreshAuth:!1},{id:`commerce`,label:`Commerce`,productTitle:`Hanzo Commerce`,description:`Store, products, orders & subscriptions`,href:`https://commerce-admin.hanzo.ai/admin/`,supportsFreshAuth:!1},{id:`analytics`,label:`Analytics`,productTitle:`Hanzo Analytics`,description:`Web traffic, funnels & retention`,href:`https://analytics.hanzo.ai`,supportsFreshAuth:!1},{id:`dataroom`,label:`Data Room`,productTitle:`Hanzo Data Room`,description:`Secure investor & deal data rooms`,href:`https://dataroom.hanzo.ai`,supportsFreshAuth:!1},{id:`sign`,label:`Sign`,productTitle:`Hanzo Sign`,description:`Document e-signatures & agreements`,href:`https://esign.hanzo.ai`,supportsFreshAuth:!1},{id:`billing`,label:`Billing`,productTitle:`Hanzo Billing`,description:`Usage, balance, invoices & payment methods`,href:`https://billing.hanzo.ai`,supportsFreshAuth:!1},{id:`console`,label:`Console`,productTitle:`Hanzo Console`,description:`Cloud, AI infrastructure & IAM`,href:`https://console.hanzo.ai`,supportsFreshAuth:!0},{id:`platform`,label:`Platform`,productTitle:`Hanzo Platform`,description:`PaaS deployments, clusters & containers`,href:`https://platform.hanzo.ai`,supportsFreshAuth:!0}],ue=2e3;function de({value:e,children:t,label:n,size:r=24,id:i,props:a}){let[s,c]=(0,I.useState)(!1),l=(0,I.useRef)(void 0),u=d(),{t:p}=f();(0,I.useEffect)(()=>()=>clearTimeout(l.current),[]);let m=()=>{navigator?.clipboard?.writeText(e).then(()=>{u({component:`CopyButton`,action:`click`,id:i,value:e.length}),c(!0),clearTimeout(l.current),l.current=setTimeout(()=>c(!1),ue)}).catch(()=>{u({component:`CopyButton`,action:`error`,id:i})})},g=n??(typeof t==`string`?t:p(`Copy`)),_=Math.round(r*.58);return(0,F.jsxs)(o,{width:t==null?r:void 0,height:r,px:t==null?void 0:`$2`,gap:t==null?void 0:`$1.5`,items:`center`,justify:`center`,rounded:`$2`,cursor:`pointer`,opacity:.7,onPress:m,role:`button`,tabIndex:0,"aria-label":s?p(`Copied`):g,...P(s?p(`Copied`):g),hoverStyle:{bg:`$edge`,opacity:1},pressStyle:{bg:`$raised`},...a,children:[s?(0,F.jsx)(ne,{size:_}):(0,F.jsx)(y,{size:_}),t==null?null:(0,F.jsx)(h,{fontSize:`$2`,color:`$ink`,numberOfLines:1,children:s?p(`Copied`):t})]})}var fe=e=>(e.kind===`upgrade`||e.kind===`topup`)&&!!e.url,pe=[`premium`,`ours`,`free`],me=[`ok`,`near`,`limited`],he=[`plan`,`credits`,`free`,`none`],ge=[`upgrade`,`topup`,`credits`,`switch`],_e={upgrade:`Upgrade`,topup:`Add prepaid credit`,credits:`Continue with credits`,switch:`Switch model`,later:`Try again later`},ve=e=>typeof e==`string`?e:null,ye=(e,t)=>typeof t==`string`&&e.includes(t)?t:null,be=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null;function xe(e){return Array.isArray(e)?e.flatMap(e=>{let t=be(e),n=ye(ge,t?.kind);if(!n)return[];let r=ve(t?.url)??void 0,i=ve(t?.model)??void 0,a=ve(t?.plan)??void 0;return(n===`upgrade`||n===`topup`)&&!r||n===`switch`&&!i?[]:[{kind:n,label:ve(t?.label)||_e[n],...r?{url:r}:{},...i?{model:i}:{},...a?{plan:a}:{}}]}):[]}function Se(e){let t=ye(me,e.get(`x-hanzo-usage`)),n=e.get(`x-hanzo-fallback`)||null,r=n&&(e.get(`x-hanzo-served`)||n);return!t&&!r?null:{state:t??`limited`,class:ye(pe,e.get(`x-hanzo-usage-class`)),paidBy:ye(he,e.get(`x-hanzo-paid-by`)),fallback:r,reason:e.get(`x-hanzo-usage-reason`)||null}}var Ce=new Map([[`free_plan_cap`,`rate_limit_error`],[`usage_cap_exceeded`,`rate_limit_error`],[`allowance_spent`,`insufficient_quota`]]),we=86400;function Te(e,t,n){let r=be(be(e)?.error);if(!r)return null;let i=ve(r.code)??``;if(r.type!==`billing_error`&&(!Ce.has(i)||Ce.get(i)!==r.type))return null;let a=n?Number(n):NaN;return{status:t,code:i,message:ve(r.message)??``,class:ye(pe,r.class),resets_at:ve(r.resets_at),actions:xe(r.actions),retry:a>=0&&a<=we?a:null}}var Ee={served:null,refusal:null,at:0},De=new Set,Oe=e=>{Ee=e;for(let e of De)e()};function ke(e){let t=Se(e.headers);if(e.ok){(t||Ee.served||Ee.refusal)&&Oe({served:t,refusal:null,at:Date.now()});return}if(e.status!==402&&e.status!==429)return;let n=e.headers.get(`retry-after`);e.clone().json().then(r=>{let i=Te(r,e.status,n);i&&Oe({served:t??Ee.served,refusal:i,at:Date.now()})}).catch(()=>{})}var Ae={site:``,home:`/home`,signUp:`/signup`};function je(e){Ae={...Ae,...e}}var Me=()=>Ae,Ne=`admin`;function Pe(e){if(!e||e.type===`application`)return!1;let t=e.orgs;return!Array.isArray(t)||t.length===0?!1:t[0]?.org===Ne}var Fe=[`/board`,`/bots`,`/cal`,`/chat`,`/chat/shared`,`/contacts`,`/dev`,`/drive`,`/home`,`/inbox`,`/meet`,`/settings`,`/settings/organization`,`/settings/organization/billing`,`/settings/organization/members`,`/settings/organization/usage`,`/work`],Ie=`https://hanzo.team`;`${Ie}`,`${Ie}`;var Le=`/settings/organization`;`${Le}`,`${Le}`,`${Le}`,`${Le}`;var Re=new Set([`/chat`,`/chat/shared`,`/dev`]);Fe.filter(e=>!Re.has(e)&&e!==`/settings`&&!e.startsWith(`/settings/`));var ze=[`hanzo.app`],Be=e=>ze.includes(e),Ve=e=>e===`hanzo.team`||e===`www.hanzo.team`,He=`https://hanzo.ai`,Ue=`https://hanzo.app`;`${Ue}`,`${Ue}`;var We=e=>e.endsWith(`.hanzo.app`)||e===`hanzo.chat`,Ge=`-dev.hanzo.ai`;function Ke(e){let t=e.endsWith(`.`)?e.slice(0,-1):e;if(!t.endsWith(Ge))return!1;let n=t.slice(0,-9);return n.length>4&&!n.includes(`.`)}[...ze],[...ze];var qe=`https://api-dev.hanzo.ai`,Je=()=>typeof window<`u`&&Ke(window.location.hostname);function Ye(){if(Je())return qe;let e=Me().api;if(e)return e.replace(/\/+$/,``);if(typeof window<`u`){let e=window.location.hostname;return Be(e)||e===`hanzo.ai`||e.endsWith(`.hanzo.ai`)||Ve(e)||e===`hanzo.bot`||We(e)?`https://api.hanzo.ai`:window.location.origin}return`https://api.hanzo.ai`}var Xe=`hanzo_iam_`,Ze=`${Xe}access_token`;`${Xe}`;var Qe=`${Xe}expires_at`;`${Xe}`;function $e(){return Me().session??window.localStorage}function et(){if(typeof window>`u`)return null;try{return $e().getItem(Ze)}catch{return null}}`${Ze}${Qe}`;function tt(){if(typeof window>`u`)return!1;try{return!!(et()||rt()||window.localStorage.getItem(`hanzo_access_token`)||window.localStorage.getItem(nt)||window.sessionStorage?.getItem(Ze))}catch{return!1}}var nt=`hanzo:who`;`${Xe}`,`${Xe}`;function rt(){let e=et();if(e)try{let t=e.split(`.`)[1],n=JSON.parse(atob(t.replace(/-/g,`+`).replace(/_/g,`/`)));return typeof n.sub==`string`&&n.sub?n.sub:void 0}catch{return}}function it(e){if(!e)return null;try{let t=e.split(`.`)[1];return JSON.parse(atob(t.replace(/-/g,`+`).replace(/_/g,`/`)))}catch{return null}}var at=[`hanzo-id`,`lux-id`,`zoo-id`,`pars-id`],ot=[`hanzo`,`lux`,`zoo`,`pars`,`platform`,`hanzoai`,`luxfi`,`zooai`,`hanzo-inc`,`hanzo-apps`,`hanzo-community`];function st(e){let t=it(e),n=Pe(t),r=t?.orgs,i=[];for(let e of Array.isArray(r)?r:[]){let t=e,r=t?.org;if(typeof r!=`string`||!r||i.includes(r)||at.includes(r))continue;let a=typeof t?.role==`string`&&[`owner`,`admin`].includes(t.role.trim().toLowerCase());(r===`admin`?n:!ot.includes(r)||n||a)&&i.push(r)}return i}function ct(){return st(et())}function lt(){try{let e=ct(),t=window.localStorage.getItem(`${Xe}current_org`);return t&&e.includes(t)?t:e.length===1?e[0]:null}catch{return null}}var ut=`hanzo:org`;function dt(e){ft(e),window.dispatchEvent(new Event(ut))}function ft(e){try{window.localStorage.setItem(`${Xe}current_org`,e)}catch{}}var pt=()=>()=>{};function mt(){return(0,I.useSyncExternalStore)(pt,()=>!0,()=>!1)}var ht=class{constructor(e){this.http=e}http;get(e){return this.http.enveloped({method:`GET`,path:`/v1/ai/account`,...e?.signal?{signal:e.signal}:{}})}},gt=class extends Error{constructor(e){super(e),this.name=`HanzoAIError`}},_t=class extends gt{status;body;constructor(e,t,n){super(e),this.name=`APIError`,this.status=t,this.body=n}},vt=class extends gt{constructor(e="No auth token available. Pass `token` or `getToken` to createAiClient."){super(e),this.name=`AuthError`}},yt=`/v1/agents`,bt=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,xt=131072;function St(e,t=``){if(!bt.test(e))throw new gt(`Not a valid agent ref: ${JSON.stringify(e)}`);return`${yt}/${e}${t}`}var Ct=class{constructor(e){this.http=e}http;list(e){return this.http.collection(`agents`,{method:`GET`,path:yt,...e?.signal?{signal:e.signal}:{}})}create(e,t){return this.http.json({method:`POST`,path:yt,body:e,...t?.signal?{signal:t.signal}:{}})}async get(e,t){return this.http.json({method:`GET`,path:St(e),...t?.signal?{signal:t.signal}:{}})}async update(e,t,n){return this.http.json({method:`PATCH`,path:St(e),body:t,...n?.signal?{signal:n.signal}:{}})}async delete(e,t){await this.http.raw({method:`DELETE`,path:St(e),...t?.signal?{signal:t.signal}:{}})}async run(e,t,n){let r=St(e,`/run`);if(new TextEncoder().encode(t).length>xt)throw new gt(`Input exceeds ${xt} bytes.`);return this.http.json({method:`POST`,path:r,body:{input:t},...n?.signal?{signal:n.signal}:{}})}runs(e={},t){let{agent:n,...r}=e;return this.http.collection(`runs`,{method:`GET`,path:n?St(n,`/runs`):`${yt}/runs`,...Object.keys(r).length?{query:r}:{},...t?.signal?{signal:t.signal}:{}})}metrics(e,t){return this.http.json({method:`GET`,path:`${yt}/metrics`,...e?.range?{query:{range:e.range}}:{},...t?.signal?{signal:t.signal}:{}})}activity(e){return this.http.collection(`activity`,{method:`GET`,path:`${yt}/activity`,...e?.signal?{signal:e.signal}:{}})}};function wt(e){let t=e??{};return{status:`held`,id:typeof t.id==`string`?t.id:``,clause:typeof t.clause==`string`?t.clause:``,reason:typeof t.reason==`string`?t.reason:``}}var Tt=`https://api.hanzo.ai`;function Et(e,t){return e.replace(/\/+$/,``)+(t.startsWith(`/`)?t:`/${t}`)}function Dt(e){if(!e)return``;let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}function Ot(e){return typeof FormData<`u`&&e instanceof FormData}var kt=class{baseUrl;issuer;auth;token;getToken;fetchImpl;extraHeaders;constructor(e){this.baseUrl=e.baseUrl??Tt,this.issuer=e.issuer,this.auth=e.auth,this.token=e.token??e.secretKey??e.publishableKey,this.getToken=e.getToken,this.extraHeaders=e.headers??{};let t=e.fetch??globalThis.fetch;if(typeof t!=`function`)throw new _t("No fetch implementation available; pass `fetch` in the client config.",0);this.fetchImpl=t.bind(globalThis)}async resolveToken(){if(this.auth){let e=this.auth.getValidAccessToken?await this.auth.getValidAccessToken():this.auth.getAccessToken?.()??null;if(e)return e;if(!this.getToken&&!this.token)throw new vt}if(this.getToken)return await this.getToken();if(this.token)return this.token;throw new vt}async buildHeaders(e){let t=new Headers(this.extraHeaders);for(let[n,r]of Object.entries(e.headers??{}))t.set(n,r);return e.body!==void 0&&!Ot(e.body)&&!t.has(`Content-Type`)&&t.set(`Content-Type`,`application/json`),!e.anonymous&&!t.has(`Authorization`)&&t.set(`Authorization`,`Bearer ${await this.resolveToken()}`),t}async send(e,t){let n=await this.buildHeaders(t),r={method:t.method??`GET`,headers:n};return t.body!==void 0&&(r.body=Ot(t.body)?t.body:JSON.stringify(t.body)),t.signal&&(r.signal=t.signal),this.fetchImpl(e,r)}async raw(e){let t=Et(e.baseUrl??this.baseUrl,e.path)+Dt(e.query),n=await this.send(t,e);return!e.anonymous&&this.auth?.invalidate&&await At(n)&&(this.auth.invalidate(),n=await this.send(t,e)),n.ok||await Mt(n),n}async result(e){let t=await this.raw(e),n=await t.json().catch(()=>({}));return t.status===202&&n.status===`held`?wt(n):{status:`done`,value:n}}scoped(e){return{baseUrl:this.baseUrl,issuer:this.issuer,auth:e,fetch:this.fetchImpl,headers:this.extraHeaders}}async json(e){return await(await this.raw(e)).json()}async collection(e,t){let n=(await this.json(t))?.[e];return Array.isArray(n)?n:[]}async bearer(){try{return await this.resolveToken()}catch{return}}async enveloped(e){let t=await this.json(e);if(t.status!==`ok`)throw new _t(t.msg||`Request failed`,200,t);return t.data}};async function At(e){if(e.status===401)return!0;if(e.status!==403)return!1;let t=(await e.clone().json().catch(()=>void 0))?.detail;return typeof t==`string`&&t.includes(`validated principal`)}var jt={502:`The service did not answer. Nothing was run; try again.`,503:`The service is not running right now.`,504:`The service took too long to answer.`};async function Mt(e){let t=await e.text().catch(()=>``),n=t,r=jt[e.status]??`HTTP ${e.status}`;if(t)try{n=JSON.parse(t),r=Nt(n)??r}catch{n=t}throw new _t(r,e.status,n)}function Nt(e){if(e&&typeof e==`object`){let t=e;if(typeof t.msg==`string`&&t.msg)return t.msg;let n=t.error;if(typeof n==`string`)return n;if(n&&typeof n==`object`){let e=n.message;if(typeof e==`string`)return e}if(typeof t.detail==`string`&&t.detail)return t.detail;if(typeof t.title==`string`&&t.title)return t.title}}async function*Pt(e){let t=e.getReader(),n=new TextDecoder,r=``;try{for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a;for(;(a=Ft(r))!==-1;){let e=r.slice(0,a);r=r.slice(It(r,a));let t=Lt(e);t&&(yield t)}}let e=r.trim();if(e){let t=Lt(e);t&&(yield t)}}finally{t.releaseLock()}}function Ft(e){let t=e.indexOf(`
|
|
2
2
|
|
|
3
3
|
`),n=e.indexOf(`\r
|
|
4
4
|
\r
|
|
@@ -171,4 +171,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
171
171
|
</defs>
|
|
172
172
|
</svg>`,Ql=`var(--neutral-600)`,$l={gmail:{name:`Gmail`,hex:`#${Ll.hex}`,path:Ll.path},icloud:{name:`iCloud`,hex:`#${Rl.hex}`,path:Rl.path},discord:{name:`Discord`,hex:`#${Fl.hex}`,path:Fl.path},telegram:{name:`Telegram`,hex:`#${Ul.hex}`,path:Ul.path},facebook:{name:`Facebook`,hex:`#${Il.hex}`,path:Il.path},messenger:{name:`Messenger`,hex:`#${Bl.hex}`,path:Bl.path},instagram:{name:`Instagram`,hex:`#${zl.hex}`,path:zl.path},tiktok:{name:`TikTok`,hex:`#${Wl.hex}`,path:Wl.path},whatsapp:{name:`WhatsApp`,hex:`#${Gl.hex}`,path:Gl.path},signal:{name:`Signal`,hex:`#${Hl.hex}`,path:Hl.path},reddit:{name:`Reddit`,hex:`#${Vl.hex}`,path:Vl.path},zoom:{name:`Zoom`,hex:`#${ql.hex}`,path:ql.path},x:{name:`X`,hex:`#${Kl.hex}`,path:Kl.path},outlook:{name:`Outlook`,art:Jl},hotmail:{name:`Hotmail`,art:Jl},microsoft365:{name:`Microsoft 365`,art:Yl},teams:{name:`Teams`,art:Xl},slack:{name:`Slack`,art:Zl},calls:{name:`Calls`,glyph:Yi},video:{name:`Video`,glyph:ra},webchat:{name:`WebChat`,glyph:Gi},imap:{name:`IMAP`,glyph:ta},yahoo:{name:`Yahoo`},linkedin:{name:`LinkedIn`}};function eu(e){return $l[(e||``).trim().toLowerCase()]??{name:e||`Network`}}function tu({transport:e,size:t=16}){let n=eu(e);if(n.glyph){let e=n.glyph;return(0,F.jsx)(c,{width:t,height:t,items:`center`,justify:`center`,shrink:0,"aria-label":n.name,children:(0,F.jsx)(e,{size:Math.round(t*.72),color:`var(--soft, var(--muted-foreground))`,strokeWidth:1.75})})}return n.art?(0,F.jsx)(p,{render:(0,F.jsx)(`img`,{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(n.art)}`,alt:n.name,width:t,height:t}),width:t,height:t,display:`block`}):(0,F.jsx)(c,{width:t,height:t,rounded:Math.round(t/3),items:`center`,justify:`center`,shrink:0,bg:n.hex??Ql,"aria-label":n.name,children:n.path?(0,F.jsx)(`svg`,{role:`presentation`,width:Math.round(t*.62),height:Math.round(t*.62),viewBox:`0 0 24 24`,fill:`#fff`,children:(0,F.jsx)(`path`,{d:n.path})}):(0,F.jsx)(h,{fontSize:Math.round(t*.5),fontWeight:`700`,color:`var(--pure-white)`,children:n.name.slice(0,1).toUpperCase()})})}function nu({mark:e,title:t,line:n,children:r,last:i}){return(0,F.jsxs)(o,{minH:48,px:12,py:8,gap:10,items:`center`,borderBottomWidth:+!i,borderColor:H,children:[e,(0,F.jsxs)(c,{flex:1,minW:0,children:[(0,F.jsx)(h,{...U,fontSize:13,lineHeight:18,color:B,children:t}),n?(0,F.jsx)(h,{...U,fontSize:13,lineHeight:18,color:V,children:n}):null]}),r]})}function ru(e,t){return e?e.status===`running`?t(`Awake`):e.status===`pending`?t(`Waking`):e.error||t(`Stopped`):t(`Asleep`)}var iu=e=>e.find(e=>e.status===`running`)??e.find(e=>e.status===`pending`)??e[0]??null,au=5e3;function ou({bot:e,onClose:t,kept:n,onSchedule:r,onDelete:i,focus:a=!1}){let{t:s,locale:l}=f(),{client:u}=fi(),[d,p]=(0,I.useState)(``),[m,g]=(0,I.useState)([]),[v,y]=(0,I.useState)(null),[b,x]=(0,I.useState)(!1),[S,w]=(0,I.useState)(!1),[T,E]=(0,I.useState)(!1),[D,O]=(0,I.useState)(null),[A,j]=(0,I.useState)(!1),M=e.schedule||n,N=(0,I.useCallback)(async t=>{if(!u)return;let n=t?{signal:t}:void 0,[r,i,a]=await Promise.allSettled([u.agents.get(e.name,n),u.transports.list(n),u.sandboxes.list({project:Tl(e.name)},n)]);if(!t?.aborted&&(r.status===`fulfilled`&&p(r.value.instructions??``),a.status===`fulfilled`&&(y(iu(a.value)),x(!0)),i.status===`fulfilled`)){let n=i.value.filter(e=>e.connected),r=await Promise.allSettled(n.map(e=>El(u,e.id,t)));if(t?.aborted)return;g(n.filter((t,n)=>{let i=r[n];return i.status===`fulfilled`&&i.value.default===e.name}).map(e=>e.id))}},[u,e.name]);(0,I.useEffect)(()=>{let e=new AbortController;return N(e.signal),()=>e.abort()},[N]),(0,I.useEffect)(()=>{if(!u||v?.status!==`pending`)return;let t=new AbortController,n=window.setInterval(()=>{u.sandboxes.list({project:Tl(e.name)},{signal:t.signal}).then(e=>y(iu(e))).catch(()=>void 0)},au);return()=>{window.clearInterval(n),t.abort()}},[u,v?.status,e.name]);let ne=async()=>{if(!u||S)return;w(!0),O(null);let t=v?.status===`running`?window.open(``,`_blank`):null;try{if(v?.status===`running`){let e=await Dl(u,v.id,v.class===`desktop`?`screen`:`terminal`);if(!t)return O(s(`The browser kept the new tab from opening.`));if(!e.url?.startsWith(`https://`))return t.close(),O(s(`The platform opened no window onto it.`));t.opener=null,t.location.href=e.url}else(!v||v.status===`error`)&&(await u.sandboxes.lease({class:`desktop`,project:Tl(e.name)}),await N())}catch(n){t?.close(),O(L(n,s(`{name}’s computer`,{name:e.name}),`save`,s))}finally{w(!1)}},P=M?d.split(`
|
|
173
173
|
`)[0].trim()||e.description||e.name:``;return(0,F.jsxs)(c,{flex:1,minH:0,overflowY:`auto`,overflowX:`hidden`,"aria-label":e.name,render:`aside`,children:[(0,F.jsx)(o,{height:58,shrink:0,px:13,items:`center`,justify:`flex-end`,children:(0,F.jsx)(o,{...Ma,"aria-label":s(`Close`),onClick:t,autoFocus:a,children:(0,F.jsx)(aa,{size:16,color:B,"aria-hidden":!0})})}),(0,F.jsxs)(c,{items:`center`,gap:20,pt:8,pb:24,px:15,children:[(0,F.jsx)(ja,{bot:e,size:64}),(0,F.jsx)(h,{...U,maxW:`100%`,fontSize:17,lineHeight:22,fontWeight:`500`,color:B,children:e.name})]}),(0,F.jsxs)(c,{px:15,pb:24,gap:20,children:[M?(0,F.jsxs)(c,{gap:10,"data-parity-key":`bots.panel.upcoming`,children:[(0,F.jsx)(h,{...Fa,px:12,children:s(`Upcoming`)}),(0,F.jsx)(c,{...Ia,children:(0,F.jsx)(nu,{mark:(0,F.jsx)(zi,{size:16,color:V,"aria-hidden":!0}),title:P,line:Ga(M,l,s),last:!0,children:(0,F.jsx)(k,{"aria-label":s(`Run {name} on its schedule`,{name:e.name}),checked:e.executionMode===`long-running`&&!!e.schedule,disabled:T,onCheckedChange:t=>{O(null),E(!0),r(t,M).catch(t=>O(L(t,s(`{name}’s schedule`,{name:e.name}),`save`,s))).finally(()=>E(!1))}})})})]}):null,m.length?(0,F.jsx)(c,{...Ia,"data-parity-key":`bots.panel.networks`,children:m.map((e,t)=>(0,F.jsx)(nu,{mark:(0,F.jsx)(tu,{transport:e,size:18}),title:eu(e).name,line:s(`Connected`),last:t===m.length-1},e))}):null,b?(0,F.jsxs)(c,{gap:10,"data-parity-key":`bots.panel.computer`,children:[(0,F.jsx)(h,{...Fa,px:12,children:s(`Computer`)}),(0,F.jsx)(o,{...Ia,render:`button`,type:`button`,onClick:ne,disabled:S||v?.status===`pending`,"aria-label":s(v?.status===`running`?`Open {name}’s computer`:`Wake {name}’s computer`,{name:e.name}),minH:60,px:12,items:`center`,gap:10,cursor:`pointer`,hoverStyle:{bg:`var(--secondary)`},children:(0,F.jsxs)(c,{flex:1,minW:0,items:`flex-start`,children:[(0,F.jsx)(h,{...U,fontSize:13,lineHeight:18,color:B,children:s(`{name}’s computer`,{name:e.name})}),(0,F.jsx)(h,{...U,fontSize:13,lineHeight:18,color:V,children:S?s(`Waking`):ru(v,s)})]})})]}):null,D?(0,F.jsx)(h,{render:`p`,role:`alert`,px:12,m:0,fontSize:13,lineHeight:18,color:V,children:D}):null,(0,F.jsx)(o,{px:12,pt:8,children:(0,F.jsx)(h,{render:`button`,type:`button`,onClick:()=>j(!0),bg:`transparent`,borderWidth:0,p:0,cursor:`pointer`,fontSize:13,lineHeight:18,color:V,hoverStyle:{color:B},children:s(`Delete {name}`,{name:e.name})})})]}),(0,F.jsx)(C,{open:A,onOpenChange:j,children:(0,F.jsxs)(ee,{maxW:440,rounded:20,gap:14,children:[(0,F.jsx)(_,{children:s(`Delete {name}?`,{name:e.name})}),(0,F.jsx)(h,{fontSize:15,lineHeight:22,color:V,children:s(`{name} and every message it was sent are deleted for good.`,{name:e.name})}),(0,F.jsxs)(o,{gap:8,justify:`flex-end`,children:[(0,F.jsx)(te,{size:`sm`,variant:`outline`,rounded:999,onPress:()=>j(!1),children:s(`Cancel`)}),(0,F.jsx)(o,{...Na,height:34,bg:B,borderColor:B,hoverStyle:{bg:B,opacity:.9},onClick:()=>{A&&(j(!1),i().catch(t=>O(L(t,e.name,`save`,s))))},children:(0,F.jsx)(h,{...Pa,color:`var(--background)`,children:s(`Delete`)})})]})]})})]})}var su={unstyled:!0,width:`100%`,px:14,py:10,rounded:12,bg:z,borderWidth:1,borderColor:H,color:B,fontSize:15,placeholderTextColor:`$placeholderColor`};function cu({onDone:e,onCancel:t}){let{t:n}=f(),{client:r}=fi(),[i,a]=(0,I.useState)(``),[s,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(`10`),[p,g]=(0,I.useState)(!1),[v,y]=(0,I.useState)(null),b=Number(u),x=Sl.test(i.trim()),S=x&&Number.isInteger(b)&&b>0&&b<=1e4&&!p;return(0,F.jsx)(C,{open:!0,onOpenChange:e=>e?void 0:t(),children:(0,F.jsxs)(ee,{"data-parity-key":`bots.make`,width:`calc(100vw - 32px)`,maxW:440,bg:`var(--popover)`,rounded:20,p:20,gap:14,borderWidth:1,borderColor:H,children:[(0,F.jsx)(_,{fontSize:18,lineHeight:24,fontWeight:`500`,color:`$ink`,children:n(`New bot`)}),(0,F.jsxs)(c,{render:`form`,onSubmit:async t=>{if(t.preventDefault(),r&&S){g(!0),y(null);try{await e(await wl(r,{name:i.trim(),instructions:s.trim(),model:ui,weekly:b}))}catch(e){y(vi(e,n(`this bot`),n))}finally{g(!1)}}},gap:12,children:[(0,F.jsx)(m,{...su,autoFocus:!0,value:i,onChange:e=>a(e.target.value),placeholder:n(`Name`),"aria-label":n(`Bot name`)}),i.trim()&&!x?(0,F.jsx)(h,{fontSize:13,lineHeight:18,color:V,px:4,children:n(`Letters, digits, dot, dash and underscore; it starts with a letter or a digit.`)}):null,(0,F.jsx)(m,{...su,render:`textarea`,rows:4,value:s,onChange:e=>l(e.target.value),placeholder:n(`What it does`),"aria-label":n(`What it does`)}),(0,F.jsxs)(o,{items:`center`,gap:10,px:4,children:[(0,F.jsx)(h,{fontSize:15,lineHeight:20,color:V,children:n(`Spend up to $`)}),(0,F.jsx)(m,{...su,width:88,py:8,inputMode:`numeric`,value:u,onChange:e=>d(e.target.value.replace(/[^\d]/g,``)),"aria-label":n(`Weekly budget in US dollars`)}),(0,F.jsx)(h,{fontSize:15,lineHeight:20,color:V,children:n(`a week`)})]}),v?(0,F.jsx)(h,{role:`alert`,fontSize:13,lineHeight:18,color:V,px:4,children:v}):null,(0,F.jsxs)(o,{justify:`flex-end`,gap:8,pt:4,children:[(0,F.jsx)(o,{...Na,onClick:t,children:(0,F.jsx)(h,{...Pa,children:n(`Cancel`)})}),(0,F.jsx)(o,{...Na,type:`submit`,disabled:!S,opacity:S?1:.5,bg:B,borderColor:B,hoverStyle:{bg:B,opacity:.9},children:(0,F.jsx)(h,{...Pa,color:`var(--background)`,children:n(p?`Making…`:`Make bot`)})})]})]})]})})}var lu=()=>typeof window>`u`?null:new URLSearchParams(window.location.search).get(`bot`);function uu(e,t){let n=new URL(window.location.href);e?n.searchParams.set(`bot`,e):n.searchParams.delete(`bot`);let r=`${n.pathname}${n.search}${n.hash}`;t?window.history.pushState(null,``,r):window.history.replaceState(null,``,r)}function du(e){let t=new Map;for(let n of e)n.agent&&!t.has(n.agent)&&t.set(n.agent,n);return t}function fu(e,t){let n=new Map;for(let r of[...e,...t])n.set(r.id,r);return[...n.values()].sort((e,t)=>(Ba(e.createdAt)??0)-(Ba(t.createdAt)??0))}function pu(e){let[t,n]=(0,I.useState)(!1);return(0,I.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function mu({foot:e=!0,bot:t,onBot:n}={}){let{t:r}=f(),{client:i,ready:a}=fi(),{user:s,isAuthenticated:l}=T(),u=!!(i&&l&&a),d=t!==void 0,[p,m]=(0,I.useState)(null),[h,g]=(0,I.useState)(!1),[_,v]=(0,I.useState)([]),[y,b]=(0,I.useState)(null),[x,S]=(0,I.useState)(null),[ee,C]=(0,I.useState)(!1),[w,te]=pi(`hanzo.bots.side`,!0),[E,D]=(0,I.useState)(!1),O=pu(`(min-width: 768px)`),k=pu(`(min-width: 1280px)`);(0,I.useEffect)(()=>{if(d)return;let e=()=>S(lu());return e(),window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[d]);let A=d?t??null:x,j=(0,I.useCallback)((e,t)=>{if(d)return n?.(e,t);S(e),uu(e,t)},[d,n]),M=(0,I.useRef)(0),N=(0,I.useCallback)(async()=>{if(!i)return;let e=++M.current,[t,n]=await Promise.allSettled([i.agents.list(),i.agents.runs({limit:200})]);e===M.current&&(t.status===`fulfilled`?(m(t.value),g(!0),b(null)):(m(e=>e??[]),b(L(t.reason,r(`your bots`),`read`,r))),n.status===`fulfilled`&&v(n.value))},[i,r]);(0,I.useEffect)(()=>{u&&N()},[u,N]);let ne=(0,I.useMemo)(()=>du(_),[_]),P=(0,I.useMemo)(()=>A&&p?.find(e=>e.name===A)||null,[p,A]);(0,I.useEffect)(()=>{if(!p||P)return;if(A){h&&!p.some(e=>e.name===A)&&j(null,!1);return}if(!O||!p.length)return;let e=_.find(e=>e.agent&&p.some(t=>t.name===e.agent))?.agent;j(e??p[0].name,!1)},[p,P,A,h,O,_,j]);let re=(0,I.useRef)(!1),ie=(0,I.useCallback)(e=>{D(!1);let t=!O&&!A;t&&(re.current=!0),j(e,t)},[j,O,A]),ae=(0,I.useCallback)(()=>{D(!1),re.current?(re.current=!1,window.history.back()):j(null,!1)},[j]),[oe,se]=(0,I.useState)(null),[ce,le]=(0,I.useState)(null),[ue,de]=(0,I.useState)(null),[fe,pe]=(0,I.useState)(null),me=P?.name??null,he=(0,I.useRef)(0),ge=(0,I.useCallback)(async(e,t)=>{if(!i)return;let n=await i.agents.runs({agent:e,limit:200},t?{signal:t}:void 0);t?.aborted||se(e=>fu(e??[],n))},[i]);(0,I.useEffect)(()=>{if(he.current+=1,se(null),le(null),de(null),pe(null),!i||!me)return;let e=new AbortController;return ge(me,e.signal).catch(t=>{e.signal.aborted||(se([]),pe(L(t,r(`this conversation`),`read`,r)))}),()=>e.abort()},[i,me,ge,r]);let _e=(0,I.useCallback)(async e=>{if(!i||!P)return!1;let t=P.name,n=++he.current,a=()=>n===he.current;de(null),pe(null),le({input:e,at:Date.now()});try{let n=await i.agents.run(t,e);return a()&&se(e=>fu(e??[],[n])),!0}catch(e){if(!a())return!0;let n=Nl(e,t,Date.now(),r,P.period);if(n)return de(n),!1;let i=Pl(e);return i?(se(e=>fu(e??[],[i])),!0):(pe(L(e,r(`your message to {name}`,{name:t}),`save`,r)),!1)}finally{a()&&le(null),N()}},[i,P,N,r]),[ve,ye]=(0,I.useState)({}),be=(0,I.useCallback)(async(e,t)=>{if(!i||!P)return;ye(e=>({...e,[P.name]:t}));let n=await i.agents.update(P.name,e?{executionMode:bl,schedule:t}:{executionMode:xl});m(e=>(e??[]).map(e=>e.name===n.name?{...e,...n,schedule:n.schedule}:e))},[i,P]),xe=(0,I.useCallback)(async()=>{i&&P&&(await i.agents.delete(P.name),m(e=>(e??[]).filter(e=>e.name!==P.name)),D(!1),re.current=!1,j(null,!1),await N())},[i,P,j,N]),Se=(0,I.useCallback)(async e=>{C(!1),m(t=>[...(t??[]).filter(t=>t.name!==e.name),e]);let t=!O&&!A;t&&(re.current=!0),j(e.name,t),await N()},[j,N,O,A]);(0,I.useEffect)(()=>{if(!E)return;let e=e=>e.key===`Escape`&&D(!1);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[E]);let Ce=P?(0,F.jsx)(ou,{bot:P,kept:ve[P.name]??``,onClose:()=>{k&&te(!1),D(!1)},onSchedule:be,onDelete:xe,focus:E&&!k},P.name):null,we=k?w:E;return(0,F.jsxs)(o,{"data-parity-key":`bots.window`,width:`100%`,height:`100%`,overflow:`hidden`,bg:Ea,position:`relative`,children:[(0,F.jsx)(c,{"data-parity-key":`bots.roster`,width:279,shrink:0,height:`100%`,bg:Ea,borderRightWidth:1,borderColor:H,"$max-md":{width:`100%`,borderRightWidth:0,display:P?`none`:`flex`},children:(0,F.jsx)(Ja,{bots:p,last:ne,open:me,unread:y,me:e?s:null,onPick:ie,onMake:()=>C(!0),disabled:!u})}),(0,F.jsx)(c,{"data-parity-key":`bots.center`,flex:1,minW:0,height:`100%`,bg:Da,"$max-md":{display:P?`flex`:`none`},children:(0,F.jsx)(kl,{bot:P,bots:p??[],runs:oe,pending:ce,notice:ue,wrong:fe,side:we,live:u,loaded:p!==null,onSend:_e,onDismiss:()=>de(null),onSide:()=>k?te(!w):D(!E),onBack:ae,onMake:()=>C(!0)})}),k&&w&&Ce?(0,F.jsx)(c,{"data-parity-key":`bots.panel`,width:319,shrink:0,height:`100%`,bg:Da,borderLeftWidth:1,borderColor:H,"$max-xl":{display:`none`},children:Ce}):null,E&&Ce&&!k?(0,F.jsx)(c,{"data-parity-key":`bots.panel.over`,role:`dialog`,"aria-modal":!0,"aria-label":P?.name,position:`absolute`,t:0,r:0,b:0,width:319,maxW:`100%`,z:10,bg:Da,borderLeftWidth:1,borderColor:H,boxShadow:`var(--shadow-floating)`,children:Ce}):null,ee?(0,F.jsx)(cu,{onDone:Se,onCancel:()=>C(!1)}):null]})}je({site:`https://hanzo.ai`,home:`/`,brand:`Hanzo Team`,signUp:`/start`});function hu(){let e=(0,I.useMemo)(()=>E(),[]),[t,n]=g(),{current:r}=v();return(0,I.useEffect)(()=>{r?.org&&dt(r.org)},[r?.org]),(0,F.jsx)(A,{config:e,children:(0,F.jsx)(mu,{foot:!1,bot:t.get(`bot`),onBot:(e,t)=>n(t=>{let n=new URLSearchParams(t);return e?n.set(`bot`,e):n.delete(`bot`),n},{replace:!t})})})}export{hu as Bots};
|
|
174
|
-
//# sourceMappingURL=Bots-
|
|
174
|
+
//# sourceMappingURL=Bots-B8ku2Lx_.js.map
|