1import{n as e,t}from"./B-pABUHm2.js";async function n(e,t){let n=e.getReader(),r;for(;!(r=await n.read()).done;)t(r.value)}function r(e){let t,n,r,i=!1;return function(o){t===void 0?(t=o,n=0,r=-1):t=a(t,o);let s=t.length,c=0;for(;n<s;){i&&=(t[n]===10&&(c=++n),!1);let a=-1;for(;n<s&&a===-1;++n)switch(t[n]){case 58:r===-1&&(r=n-c);break;case 13:i=!0;case 10:a=n}if(a===-1)break;e(t.subarray(c,a),r),c=n,r=-1}c===s?t=void 0:c!==0&&(t=t.subarray(c),n-=c)}}function i(e,t,n){let r=o(),i=new TextDecoder;return function(a,s){if(a.length===0)n?.(r),r=o();else if(s>0){let n=i.decode(a.subarray(0,s)),o=s+(a[s+1]===32?2:1),c=i.decode(a.subarray(o));switch(n){case`data`:r.data=r.data?r.data+` 2`+c:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:let n=parseInt(c,10);isNaN(n)||t(r.retry=n)}}}}function a(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function o(){return{data:``,event:``,id:``,retry:void 0}}var s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},c=`text/event-stream`,l=1e3,u=`last-event-id`;function d(e,t){var{signal:a,headers:o,onopen:d,onmessage:p,onclose:m,onerror:h,openWhenHidden:g,fetch:_}=t,v=s(t,[`signal`,`headers`,`onopen`,`onmessage`,`onclose`,`onerror`,`openWhenHidden`,`fetch`]);return new Promise((t,s)=>{let y=Object.assign({},o);y.accept||=c;let b;function x(){b.abort(),document.hidden||D()}g||document.addEventListener(`visibilitychange`,x);let S=l,C=0;function w(){document.removeEventListener(`visibilitychange`,x),window.clearTimeout(C),b.abort()}a?.addEventListener(`abort`,()=>{w(),t()});let T=_??window.fetch,E=d??f;async function D(){b=new AbortController;try{let a=await T(e,Object.assign(Object.assign({},v),{headers:y,signal:b.signal}));await E(a),await n(a.body,r(i(e=>{e?y[u]=e:delete y[u]},e=>{S=e},p))),m?.(),w(),t()}catch(e){if(!b.signal.aborted)try{let t=h?.(e)??S;window.clearTimeout(C),C=window.setTimeout(D,t)}catch(e){w(),s(e)}}}D()})}function f(e){let t=e.headers.get(`content-type`);if(!t?.startsWith(`text/event-stream`))throw Error(`Expected content-type to be ${c}, Actual: ${t}`)}var p=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,m=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function h(e){if(e.length!==26)return null;let t=0n;for(let n of e.toUpperCase()){let e=p.indexOf(n);if(e===-1)return null;t=t<<5n|BigInt(e)}if(t>(1n<<128n)-1n)return null;let n=t.toString(16).padStart(32,`0`);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}function g(e){return typeof e==`string`?m.test(e)?e.toLowerCase():h(e):null}var _=async(e,t)=>{let n=await fetch(e,t);if(!n.ok){let e=Error(`Eros API ${n.status}: ${n.statusText}`);throw e.statusCode=n.status,e.body=await n.text().catch(()=>``),e}return n.json()};function v(e){if(!e.baseUrl)return null;let t=e.fetcher??_,n=e.baseUrl.replace(/\/+$/,``);async function r(){let t=await e.getToken(),n={"Content-Type":`application/json`};return t&&(n.Authorization=`Bearer ${t}`),n}return{async bootstrapChat(e,i){let a=await r(),o={genome_id:e};return i?.isDemo&&(o.is_demo=!0),i?.historyLimit!=null&&(o.history_limit=i.historyLimit),await t(`${n}/bff/v1/comp/chat/start`,{method:`POST`,headers:a,body:JSON.stringify(o)})},async getAffinityDelta(e,i){let a=await r(),o=new URLSearchParams;i?.after!=null&&o.set(`after`,i.after),i?.waitMs!=null&&o.set(`wait`,String(i.waitMs));let s=o.toString()?`?${o.toString()}`:``;return await t(`${n}/bff/v1/comp/affinity/${e}/event${s}`,{method:`GET`,headers:a})},async getAffinityValue(e){let i=await r();return await t(`${n}/bff/v1/comp/affinity/${e}`,{method:`GET`,headers:i})},async listAffinities(e,i){let a=await r(),o=i?.limit==null?``:`?limit=${i.limit}`;return await t(`${n}/bff/v1/comp/affinities/${e}${o}
2`,{method:`GET`,headers:a})},async getHistory(e,i){let a=await r(),o=new URLSearchParams;i?.limit!=null&&o.set(`limit`,String(i.limit)),i?.offset!=null&&o.set(`offset`,String(i.offset));let s=o.toString()?`?${o.toString()}`:``;return await t(`${n}/bff/v1/comp/chat/${e}/history${s}`,{method:`GET`,headers:a})},async markSessionRead(e){let i=await r();return await t(`${n}/comp/chat/${e}/read`,{method:`POST`,headers:i})},async getImageRequest(e,i){let a=await r();try{return await t(`${n}/comp/chat/${e}/messages/${i}/image-request`,{method:`GET`,headers:a})}catch(e){if(e?.statusCode===404)return null;throw e}},async archiveSessions(e){let i=await r();return await t(`${n}/comp/instance/${e}/sessions`,{method:`DELETE`,headers:i})}}}var y=class extends Error{reason;retryable;originalUserMessageId;limit;used;constructor(e,n={}){super(`turn_failed:${e}`),this.reason=e,this.name=`TurnFailedError`,this.retryable=t(e),this.originalUserMessageId=n.originalUserMessageId,this.limit=n.limit,this.used=n.used}};async function b(t,n,r,i){let a=i.sseFetcher??d,o=`dropped`,s=i.baseUrl.replace(/\/+$/,``),c=await i.getToken(),l={"Content-Type":`application/json`,Accept:`text/event-stream`};c&&(l.Authorization=`Bearer ${c}`);let u=!1,f=()=>a(`${s}/comp/chat/${t}/message/stream`,{method:`POST`,headers:l,body:JSON.stringify({content:n,client_msg_id:i.clientMsgId,...i.paymentIntentId?{payment_intent_id:i.paymentIntentId}:{},...i.hasImage?{has_image:!0}:{},...i.replyToMessageId?{reply_to_message_id:i.replyToMessageId}:{}}),signal:i.signal,openWhenHidden:!0,onopen:async t=>{if(t.ok){u=!0;return}let n=await t.json().catch(()=>null);throw new y(e(n?.reason)?n.reason:`unavailable`,{originalUserMessageId:n?.original_user_message_id??null,limit:n?.limit,used:n?.used})},onmessage:t=>{if(!t?.data)return;let n;try{n=JSON.parse(t.data)}catch{return}if(!(`type`in n))return;let i=n;switch((i.type===`meta`||i.type===`delta`||i.type===`done`||i.type===`image_request`)&&(i.message_id=g(i.message_id)??i.message_id),i.type===`meta`&&i.continues_from&&(i.continues_from=g(i.continues_from)??i.continues_from),i.type===`error`&&!e(i.reason)&&(i.reason=`unavailable`),i.type){case`meta`:r.onMeta(i);break;case`delta`:r.onDelta(i);break;case`done`:r.onDone(i);break;case`image_request`:r.onImageRequest?.(i);break;case`final`:r.onFinal(i),o=`final`;break;case`error`:r.onError(i),o=`error`}},onerror:e=>{throw e}});try{try{await f()}catch(e){let t=!u&&!(e instanceof y)&&e?.name!==`AbortError`;if(!i.retryConnect||!t||i.signal?.aborted)throw e;try{await f()}catch(e){throw e instanceof y&&e.reason===`duplicate`?new y(`unavailable`,{originalUserMessageId:e.originalUserMessageId}):e}}}catch(e){throw e?.name===`AbortError`&&(o=`aborted`),e}finally{i.signal?.aborted&&(o=`aborted`),r.onClose(o)}}export{d as i,v as n,b as r,y as t};
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.