@chainlit/react-client 0.1.2 → 0.2.1
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/index.d.mts +57 -42
- package/dist/index.d.ts +57 -42
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +304 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -6
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(e){if(Array.isArray(e))return e}function n(t){if(Array.isArray(t))return e(t)}function r(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function o(e,t,n,r,o,i,a){try{var u=e[i](a);var s=u.value}catch(e){n(e);return}if(u.done){t(s)}else{Promise.resolve(s).then(r,o)}}function i(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function u(e){o(a,r,i,u,s,"next",e)}function s(e){o(a,r,i,u,s,"throw",e)}u(undefined)})}}function a(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function u(e,t,n){if(j()){u=Reflect.construct}else{u=function e(e,t,n){var r=[null];r.push.apply(r,t);var o=Function.bind.apply(e,r);var i=new o;if(n)_(i,n.prototype);return i}}return u.apply(null,arguments)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}function c(e,t,n){if(t)s(e.prototype,t);if(n)s(e,n);return e}function l(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function d(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)_(e,t)}function p(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function v(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function h(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function y(e,t){var n=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(n==null)return;var r=[];var o=true;var i=false;var a,u;try{for(n=n.call(e);!(o=(a=n.next()).done);o=true){r.push(a.value);if(t&&r.length===t)break}}catch(e){i=true;u=e}finally{try{if(!o&&n["return"]!=null)n["return"]()}finally{if(i)throw u}}return r}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){l(e,t,n[t])})}return e}function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function S(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{k(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function w(e,t){if(e==null)return{};var n=R(e,t);var r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++){r=i[o];if(t.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;n[r]=e[r]}}return n}function R(e,t){if(e==null)return{};var n={};var r=Object.keys(e);var o,i;for(i=0;i<r.length;i++){o=r[i];if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}function x(e,t){if(t&&(T(t)==="object"||typeof t==="function")){return t}return r(e)}function _(e,t){_=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return _(e,t)}function C(e,n){return t(e)||y(e,n)||I(e,n)||g()}function O(e){return n(e)||h(e)||I(e)||m()}function T(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function I(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function E(e){var t=typeof Map==="function"?new Map:undefined;E=function e(e){if(e===null||!v(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof t!=="undefined"){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return u(e,arguments,f(this).constructor)}n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});return _(n,e)};return E(e)}function j(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function A(e){var t=j();return function n(){var n=f(e),r;if(t){var o=f(this).constructor;r=Reflect.construct(n,arguments,o)}else{r=n.apply(this,arguments)}return x(this,r)}}function P(e,t){var n,r,o,i,a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]};return(i={next:u(0),"throw":u(1),"return":u(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i);function u(e){return function(t){return s([e,t])}}function s(i){if(n)throw new TypeError("Generator is already executing.");while(a)try{if(n=1,r&&(o=i[0]&2?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;if(r=0,o)i=[i[0]&2,o.value];switch(i[0]){case 0:case 1:o=i;break;case 4:a.label++;return{value:i[1],done:false};case 5:a.label++;r=i[1];i=[0];continue;case 7:i=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(i[0]===6&&a.label<o[1]){a.label=o[1];o=i;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(i);break}if(o[2])a.ops.pop();a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e];r=0}finally{n=o=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}}var D=require("recoil");var V=require("lodash");var M=require("uuid");var q=require("react");var U=require("jwt-decode");var F=require("swr");var L=require("socket.io-client");function B(e){return e&&e.__esModule?e:{default:e}}var G=/*#__PURE__*/B(U);var H=/*#__PURE__*/B(F);var X=/*#__PURE__*/B(L);var z=function(e){var t={},n=new Date,r=new Date;r.setDate(n.getDate()-1);var o=new Date;o.setDate(n.getDate()-7);var i=new Date;return i.setDate(n.getDate()-30),e.forEach(function(e){var a=new Date(e.createdAt),u=a.toDateString()===n.toDateString(),s=a.toDateString()===r.toDateString(),c=a>=o,l=a>=i,f;u?f="Today":s?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=a.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var J=D.atom({key:"ThreadIdToResume",default:void 0}),N=D.atom({key:"ChatProfile",default:void 0}),W=D.atom({key:"SessionId",default:M.v4()}),K=D.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(W)},set:function(e,t){var n=e.set;return n(W,p(t,D.DefaultValue)?M.v4():t)}}),Y=D.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),$=D.atom({key:"Actions",default:[]}),Q=D.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),Z=D.atom({key:"TokenCount",default:0}),ee=D.atom({key:"Loading",default:!1}),et=D.atom({key:"AskUser",default:void 0}),en=D.atom({key:"CallFn",default:void 0}),er=D.atom({key:"ChatSettings",default:[]}),eo=D.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(er).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),ei=D.atom({key:"ChatSettingsValue",default:eo}),ea=D.atom({key:"DisplayElements",default:[]}),eu=D.atom({key:"TasklistElements",default:[]}),es=D.atom({key:"FirstUserInteraction",default:void 0}),ec=D.atom({key:"AccessToken",default:void 0}),el=D.atom({key:"User",default:null}),ef=D.atom({key:"ChainlitConfig",default:void 0}),ed=D.atom({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[function(e){var t=e.setSelf,n=e.onSet;n(function(e,n){var r=e===null||e===void 0?void 0:e.timeGroupedThreads;(e===null||e===void 0?void 0:e.threads)&&!V.isEqual(e.threads,n===null||n===void 0?void 0:n.timeGroupedThreads)&&(r=z(e.threads)),t(S(b({},e),{timeGroupedThreads:r}))})}]}),ep=D.atom({key:"SideView",default:void 0}),ev=D.atom({key:"CurrentThreadId",default:void 0});var eh=function(){var e=D.useRecoilValue(ee),t=D.useRecoilValue(ea),n=D.useRecoilValue(eu),r=D.useRecoilValue($),o=D.useRecoilValue(Y),i=D.useRecoilValue(et),a=D.useRecoilValue(en),u=D.useRecoilValue(er),s=D.useRecoilValue(ei),c=D.useRecoilValue(eo),l=(o===null||o===void 0?void 0:o.socket.connected)&&!(o===null||o===void 0?void 0:o.error),f=!l||e||(i===null||i===void 0?void 0:i.spec.type)==="file"||(i===null||i===void 0?void 0:i.spec.type)==="action";return{actions:r,askUser:i,callFn:a,chatSettingsDefaultValue:c,chatSettingsInputs:u,chatSettingsValue:s,connected:l,disabled:f,elements:t,error:o===null||o===void 0?void 0:o.error,loading:e,tasklists:n}};var ey=function(e){var t=[];var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;t=em(t,u)}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}return t},eg=function(e,t){if(e.length-1===t)return!0;for(var n=t+1;n<e.length;n++)if(!e[n].streaming)return!1;return!0},em=function(e,t){var n=["assistant_message","user_message"],r=O(n).concat(["tool"]),o=n.includes(t.type),i=r.includes(t.type),a=!t.parentId;if(a&&!i)return e;var u=a?void 0:eS(e,t.parentId),s=(a||(u===null||u===void 0?void 0:u.type)!=="assistant_message")&&t.type==="tool";if(ew(e,t.id))return eR(e,t.id,t);if(s){var c=e.length>0?e[e.length-1]:void 0,l=(c===null||c===void 0?void 0:c.type)==="assistant_message"&&(c===null||c===void 0?void 0:c.id.startsWith("wrap_"));return c&&l?O(e.slice(0,e.length-1)).concat([S(b({},c),{steps:O(c.steps||[]).concat([t])})]):O(e).concat([S(b({},t),{name:"",input:"",output:"",id:"wrap_"+t.id,type:"assistant_message",steps:[t]})])}else return!o&&"parentId"in t&&t.parentId?ek(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?eb(e,t.indent,t):O(e).concat([t])},eb=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var o=O(e);if(o.length===0)return O(o).concat([n]);{var i=o.length-1,a=o[i];return a.steps=a.steps||[],r+1===t?(a.steps=O(a.steps).concat([n]),o[i]=b({},a),o):(a.steps=eb(a.steps,t,n,r+1),o[i]=b({},a),o)}},ek=function(e,t,n){var r=O(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?(i.steps=i.steps?O(i.steps).concat([n]):[n],r[o]=b({},i)):ew(r,t)&&i.steps&&(i.steps=ek(i.steps,t,n),r[o]=b({},i))}return r},eS=function(e,t){var n=true,r=false,o=undefined;try{for(var i=e[Symbol.iterator](),a;!(n=(a=i.next()).done);n=true){var u=a.value;if(V.isEqual(u.id,t))return u;if(u.steps&&u.steps.length>0){var s=eS(u.steps,t);if(s)return s}}}catch(e){r=true;o=e}finally{try{if(!n&&i.return!=null){i.return()}}finally{if(r){throw o}}}},ew=function(e,t){return eS(e,t)!==void 0},eR=function(e,t,n){var r=O(e);for(var o=0;o<r.length;o++){var i=r[o];V.isEqual(i.id,t)?r[o]=b({steps:i.steps},n):ew(r,t)&&i.steps&&(i.steps=eR(i.steps,t,n),r[o]=b({},i))}return r},ex=function(e,t){var n=O(e);for(var r=0;r<n.length;r++){var o=n[r];o.id===t?n=O(n.slice(0,r)).concat(O(n.slice(r+1))):ew(n,t)&&o.steps&&(o.steps=ex(o.steps,t),n[r]=b({},o))}return n},e_=function(e,t,n,r,o){var i=O(e);for(var a=0;a<i.length;a++){var u=i[a];V.isEqual(u.id,t)?("content"in u&&u.content!==void 0?r?u.content=n:u.content+=n:o?"input"in u&&u.input!==void 0&&(r?u.input=n:u.input+=n):"output"in u&&u.output!==void 0&&(r?u.output=n:u.output+=n),i[a]=b({},u)):u.steps&&(u.steps=e_(u.steps,t,n,r,o),i[a]=b({},u))}return i};var eC="token";function eO(){try{return localStorage.getItem(eC)}catch(e){return}}function eT(e){try{return localStorage.setItem(eC,e)}catch(e){return}}function eI(){try{return localStorage.removeItem(eC)}catch(e){return}}var eE=function(){var e=i(function(e,t,n){var r;return P(this,function(o){switch(o.label){case 0:return[4,e.get(t,n)];case 1:return[2,(r=o.sent())===null||r===void 0?void 0:r.json()]}})});return function t(t,n,r){return e.apply(this,arguments)}}();function ej(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var n=t.token,r=w(t,["token"]);var o=q.useContext(eq),i=D.useRecoilValue(ec);i=n||i;var a=q.useMemo(function(){return function(e){var t=C(e,2),n=t[0],r=t[1];return eE(o,n,r)}},[o]),u=q.useMemo(function(){return e?[e,i]:null},[e,i]);return H.default(u,a,r)}var eA=function(){var e=q.useContext(eq),t=ej("/auth/config"),n=t.data,r=t.isLoading,o=C(D.useRecoilState(ec),2),a=o[0],u=o[1],s=D.useSetRecoilState(ed),c=C(D.useRecoilState(el),2),l=c[0],f=c[1],d=!!(!r&&n),p=function(){var t=i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.logout()];case 1:t.sent(),f(null),eI(),u(""),s(void 0);return[2]}})});return function e(){return t.apply(this,arguments)}}(),v=function(e){if(!e){p();return}try{var t=G.default(e),n=t.exp,r=w(t,["exp"]);eT(e),u("Bearer ".concat(e)),f(r)}catch(e){console.error("Invalid token, clearing token from local storage","error:",e),p()}};q.useEffect(function(){if(!l&&eO()){v(eO());return}},[]);var h=!!a;return n&&!n.requireLogin?{data:n,user:null,isReady:d,isAuthenticated:!0,accessToken:"",logout:function(){},setAccessToken:function(){}}:{data:n,user:l,isAuthenticated:h,isReady:d,accessToken:a,logout:p,setAccessToken:v}};var eP=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(e,r){a(this,n);var o;o=t.call(this,e);o.detail=r;return o}c(n,[{key:"toString",value:function e(){return this.detail?"".concat(this.message,": ").concat(this.detail):this.message}}]);return n}(E(Error)),eD=/*#__PURE__*/function(){function e(t,n,r,o){a(this,e);this.httpEndpoint=t;this.type=n;this.on401=r;this.onError=o}c(e,[{key:"buildEndpoint",value:function e(e){return this.httpEndpoint.endsWith("/")?"".concat(this.httpEndpoint.slice(0,-1)).concat(e):"".concat(this.httpEndpoint).concat(e)}},{key:"checkToken",value:function e(e){var t="Bearer ";return e.startsWith(t)?e:t+e}},{key:"fetch",value:function e(e,t,n,r,o){var a=this;return i(function(){var i,u,s,c,l;return P(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);i={};n&&(i.Authorization=a.checkToken(n));p(r,FormData)?u=r:(i["Content-Type"]="application/json",u=r?JSON.stringify(r):null);return[4,fetch(a.buildEndpoint(t),{method:e,headers:i,signal:o,body:u})];case 1:s=f.sent();if(!!s.ok)return[3,3];return[4,s.json()];case 2:c=f.sent();throw s.status===401&&a.on401&&(eI(),a.on401()),new eP(s.statusText,c.detail);case 3:return[2,s];case 4:l=f.sent();throw p(l,eP)&&a.onError&&a.onError(l),console.error(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.fetch("GET",e,t)];case 1:return[2,r.sent()]}})})()}},{key:"post",value:function e(e,t,n,r){var o=this;return i(function(){return P(this,function(i){switch(i.label){case 0:return[4,o.fetch("POST",e,n,t,r)];case 1:return[2,i.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("PUT",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"patch",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("PATCH",e,n,t)];case 1:return[2,o.sent()]}})})()}},{key:"delete",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,o.sent()]}})})()}}]);return e}(),eV=/*#__PURE__*/function(e){d(n,e);var t=A(n);function n(){a(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.post("/auth/header",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"passwordAuth",value:function e(e){var t=this;return i(function(){return P(this,function(n){switch(n.label){case 0:return[4,t.post("/login",e)];case 1:return[2,n.sent().json()]}})})()}},{key:"logout",value:function e(){var e=this;return i(function(){return P(this,function(t){switch(t.label){case 0:return[4,e.post("/logout",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"setFeedback",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.put("/feedback",{feedback:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"deleteFeedback",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.delete("/feedback",{feedbackId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"listThreads",value:function e(e,t,n){var r=this;return i(function(){return P(this,function(o){switch(o.label){case 0:return[4,r.post("/project/threads",{pagination:e,filter:t},n)];case 1:return[2,o.sent().json()]}})})()}},{key:"deleteThread",value:function e(e,t){var n=this;return i(function(){return P(this,function(r){switch(r.label){case 0:return[4,n.delete("/project/thread",{threadId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"uploadFile",value:function e(e,t,n,r){var o=this;var i=new XMLHttpRequest,a=new Promise(function(a,u){var s=new FormData;s.append("file",e),i.open("POST",o.buildEndpoint("/project/file?session_id=".concat(n)),!0),r&&i.setRequestHeader("Authorization",o.checkToken(r)),i.upload.onprogress=function(e){if(e.lengthComputable){var n=e.loaded/e.total*100;t(n)}},i.onload=function(){if(i.status===200){var e=JSON.parse(i.responseText);a(e)}else u("Upload failed")},i.onerror=function(){u("Upload error")},i.send(s)});return{xhr:i,promise:a}}},{key:"getElementUrl",value:function e(e,t){var n="?session_id=".concat(t);return this.buildEndpoint("/project/file/".concat(e).concat(n))}},{key:"getLogoEndpoint",value:function e(e){return this.buildEndpoint("/logo?theme=".concat(e))}},{key:"getOAuthEndpoint",value:function e(e){return this.buildEndpoint("/auth/oauth/".concat(e))}}]);return n}(eD);var eM=void 0,eq=q.createContext(new eV("http://localhost:8000","webapp"));var eU=function(){var e=q.useContext(eq),t=D.useRecoilValue(ec),n=D.useRecoilValue(Y),r=D.useRecoilValue(et),o=D.useRecoilValue(K),i=D.useResetRecoilState(er),a=D.useResetRecoilState(K),u=D.useResetRecoilState(ei),s=D.useSetRecoilState(es),c=D.useSetRecoilState(ee),l=D.useSetRecoilState(Q),f=D.useSetRecoilState(ea),d=D.useSetRecoilState(eu),p=D.useSetRecoilState($),v=D.useSetRecoilState(Z),h=D.useSetRecoilState(J),y=D.useSetRecoilState(ep),g=D.useSetRecoilState(ev),m=q.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("clear_session"),n===null||n===void 0?void 0:n.socket.disconnect(),h(void 0),a(),s(void 0),l([]),f([]),d([]),p([]),v(0),i(),u(),y(void 0),g(void 0)},[n]),b=q.useCallback(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.id||(e.id=M.v4()),e.createdAt||(e.createdAt=new Date().toISOString()),l(function(t){return em(t,e)}),n===null||n===void 0?void 0:n.socket.emit("client_message",{message:e,fileReferences:t})},[n===null||n===void 0?void 0:n.socket]),k=q.useCallback(function(e,t,r,o){n===null||n===void 0?void 0:n.socket.emit("audio_chunk",{isStart:e,mimeType:t,elapsedTime:r,data:o})},[n===null||n===void 0?void 0:n.socket]),S=q.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("audio_end",{fileReferences:e})},[n===null||n===void 0?void 0:n.socket]),w=q.useCallback(function(e){r&&(l(function(t){return em(t,e)}),r.callback(e))},[r]),R=q.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("chat_settings_change",e)},[n===null||n===void 0?void 0:n.socket]),x=q.useCallback(function(){l(function(e){return e.map(function(e){return e.streaming=!1,e})}),c(!1),n===null||n===void 0?void 0:n.socket.emit("stop")},[n===null||n===void 0?void 0:n.socket]),_=q.useCallback(function(e){var t=n===null||n===void 0?void 0:n.socket;if(!t)return;var r=new Promise(function(e,n){t.once("action_response",function(t){t.status?e(t):n(t)})});return t.emit("action_call",e),r},[n===null||n===void 0?void 0:n.socket]);return{uploadFile:q.useCallback(function(n,r){return e.uploadFile(n,r,o,t)},[o,t]),callAction:_,clear:m,replyMessage:w,sendMessage:b,sendAudioChunk:k,endAudioStream:S,stopTask:x,setIdToResume:h,updateChatSettings:R}};var eF=function(){var e=D.useRecoilValue(Q),t=D.useRecoilValue(es);return{threadId:D.useRecoilValue(ev),messages:e,firstInteraction:t}};var eL=function(){var e=q.useContext(eq),t=D.useRecoilValue(K),n=C(D.useRecoilState(Y),2),r=n[0],o=n[1],i=D.useResetRecoilState(ei),a=D.useSetRecoilState(es),u=D.useSetRecoilState(ee),s=D.useSetRecoilState(Q),c=D.useSetRecoilState(et),l=D.useSetRecoilState(en),f=D.useSetRecoilState(ea),d=D.useSetRecoilState(eu),p=D.useSetRecoilState($),v=D.useSetRecoilState(er),h=D.useSetRecoilState(Z),y=C(D.useRecoilState(N),2),g=y[0],m=y[1],k=D.useRecoilValue(J),w=D.useSetRecoilState(ev),R=q.useCallback(function(n){var r=n.userEnv,y=n.accessToken;var R=new URL(e.httpEndpoint),x=R.protocol,_=R.host,C=R.pathname,T="".concat(x,"//").concat(_),I=C&&C!=="/"?"".concat(C,"/ws/socket.io"):"/ws/socket.io",E=X.default(T,{path:I,extraHeaders:{Authorization:y||"","X-Chainlit-Client-Type":e.type,"X-Chainlit-Session-Id":t,"X-Chainlit-Thread-Id":k||"","user-env":JSON.stringify(r),"X-Chainlit-Chat-Profile":g?encodeURIComponent(g):""}});o(function(e){var t,n;return e===null||e===void 0?void 0:(t=e.socket)===null||t===void 0?void 0:t.removeAllListeners(),e===null||e===void 0?void 0:(n=e.socket)===null||n===void 0?void 0:n.close(),{socket:E}}),E.on("connect",function(){E.emit("connection_successful"),o(function(e){return S(b({},e),{error:!1})})}),E.on("connect_error",function(e){o(function(e){return S(b({},e),{error:!0})})}),E.on("task_start",function(){u(!0)}),E.on("task_end",function(){u(!1)}),E.on("reload",function(){E.emit("clear_session"),window.location.reload()}),E.on("resume_thread",function(e){var t,n;var r=[];var o=true,i=false,a=undefined;try{for(var u=e.steps[Symbol.iterator](),c;!(o=(c=u.next()).done);o=true){var l=c.value;r=em(r,l)}}catch(e){i=true;a=e}finally{try{if(!o&&u.return!=null){u.return()}}finally{if(i){throw a}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&m((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),s(r);var p=e.elements||[];d(p.filter(function(e){return e.type==="tasklist"})),f(p.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),E.on("new_message",function(e){s(function(t){return em(t,e)})}),E.on("first_interaction",function(e){a(e.interaction),w(e.thread_id)}),E.on("update_message",function(e){s(function(t){return eR(t,e.id,e)})}),E.on("delete_message",function(e){s(function(t){return ex(t,e.id)})}),E.on("stream_start",function(e){s(function(t){return em(t,e)})}),E.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence,o=e.isInput;s(function(e){return e_(e,t,n,r,o)})}),E.on("ask",function(e,t){var n=e.msg,r=e.spec;c({spec:r,callback:t}),s(function(e){return em(e,n)}),u(!1)}),E.on("ask_timeout",function(){c(void 0),u(!1)}),E.on("clear_ask",function(){c(void 0)}),E.on("call_fn",function(e,t){var n=e.name,r=e.args;l({name:n,args:r,callback:t})}),E.on("clear_call_fn",function(){l(void 0)}),E.on("call_fn_timeout",function(){l(void 0)}),E.on("chat_settings",function(e){v(e),i()}),E.on("element",function(n){!n.url&&n.chainlitKey&&(n.url=e.getElementUrl(n.chainlitKey,t)),n.type==="tasklist"?d(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?O(e).concat([n]):O(e.slice(0,t)).concat([n],O(e.slice(t+1)))}):f(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?O(e).concat([n]):O(e.slice(0,t)).concat([n],O(e.slice(t+1)))})}),E.on("remove_element",function(e){f(function(t){return t.filter(function(t){return t.id!==e.id})}),d(function(t){return t.filter(function(t){return t.id!==e.id})})}),E.on("action",function(e){p(function(t){return O(t).concat([e])})}),E.on("remove_action",function(e){p(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:O(t.slice(0,n)).concat(O(t.slice(n+1)))})}),E.on("token_usage",function(e){h(function(t){return t+e})})},[o,t,g]),x=q.useCallback(V.debounce(R,200),[R]),_=q.useCallback(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.removeAllListeners(),r.socket.close())},[r]);return{connect:x,disconnect:_,session:r,sessionId:t,chatProfile:g,idToResume:k,setChatProfile:m}};var eB={enabled:!0,min_decibels:-45,initial_silence_timeout:3e3,silence_timeout:1500,max_duration:15e3,chunk_duration:1e3},eG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:eB;var t=q.useRef(null),n=q.useRef(!1),r=eU(),o=r.sendAudioChunk,a=r.endAudioStream,u=C(q.useState(!1),2),s=u[0],c=u[1],l=C(q.useState(void 0),2),f=l[0],d=l[1],p=C(q.useState(!1),2),v=p[0],h=p[1],y=C(q.useState(void 0),2),g=y[0],m=y[1],b=C(q.useState(!1),2),k=b[0],S=b[1],w=q.useCallback(function(){!s||!t.current||(n.current=!0,t.current.stop())},[s]),R=q.useCallback(function(){!s||!t.current||t.current.stop()},[s]);return{startRecording:q.useCallback(function(r){if(s||!e)return;S(!1),m(void 0),clearTimeout(f),n.current=!1;var u=e.min_decibels,l=e.silence_timeout,p=e.initial_silence_timeout,v=e.chunk_duration,y=e.max_duration;navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){var s=!1,f=!1,g=!0,m=null,b=Date.now(),k=new MediaRecorder(e);t.current=k,k.addEventListener("start",function(){c(!0),b=Date.now()}),k.addEventListener("dataavailable",function(){var t=i(function(t){var n,r,i,a,u;return P(this,function(c){switch(c.label){case 0:if(s||(m?m=new Blob([m,t.data],{type:t.data.type}):m=new Blob([t.data],{type:t.data.type})),k.state==="inactive")return[2];n=Date.now()-b;if(n>=y){k.stop(),e.getTracks().forEach(function(e){return e.stop()});return[2]}h(f);r=C(k.mimeType.split(";"),2),i=r[0],a=r[1];if(!m)return[3,2];return[4,o(g,i,n,new Blob([m,t.data]))];case 1:u=(c.sent(),m=null);return[3,4];case 2:return[4,o(g,i,n,t.data)];case 3:u=c.sent();c.label=4;case 4:u,g&&(g=!1);return[2]}})});return function(e){return t.apply(this,arguments)}}()),k.addEventListener("stop",/*#__PURE__*/i(function(){var e;return P(this,function(t){switch(t.label){case 0:c(!1),h(!1);e=s&&!n.current;if(!e)return[3,2];S(!0);return[4,a(r)];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})}));var w=new AudioContext,R=w.createMediaStreamSource(e),x=w.createAnalyser();x.minDecibels=u,R.connect(x);var _=x.frequencyBinCount,O=new Uint8Array(_);k.start(v);var T=function(){if(k.state==="inactive")return;x.getByteFrequencyData(O);var e=O.some(function(e){return e>0});f||(f=e),!s&&e&&(h(f),s=!0),requestAnimationFrame(T)};T(),setTimeout(function(){s?d(setInterval(function(){f?f=!1:(k.stop(),e.getTracks().forEach(function(e){return e.stop()}))},l)):(k.stop(),e.getTracks().forEach(function(e){return e.stop()}))},p)}).catch(function(e){m(e.message)})},[f,s,e,o,a]),stopRecording:R,cancelRecording:w,isRecording:s,isSpeaking:v,isRecordingFinished:k,error:g}};var eH=function(e){var t=C(D.useRecoilState(ef),2),n=t[0],r=t[1],o=eA(),i=o.isAuthenticated,a=navigator.language||"en-US",u=ej(!n&&i?"/project/settings?language=".concat(a):null,{token:e}),s=u.data,c=u.error,l=u.isLoading;return q.useEffect(function(){s&&r(s)},[s,r]),{config:n,error:c,isLoading:l,language:a}};Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return L.Socket}});exports.APIBase=eD;exports.ChainlitAPI=eV;exports.ChainlitContext=eq;exports.ClientError=eP;exports.accessTokenState=ec;exports.actionState=$;exports.addMessage=em;exports.addMessageToParent=ek;exports.askUserState=et;exports.callFnState=en;exports.chatProfileState=N;exports.chatSettingsDefaultValueSelector=eo;exports.chatSettingsInputsState=er;exports.chatSettingsValueState=ei;exports.configState=ef;exports.currentThreadIdState=ev;exports.defaultChainlitContext=eM;exports.deleteMessageById=ex;exports.elementState=ea;exports.fetcher=eE;exports.firstUserInteraction=es;exports.hasMessageById=ew;exports.isLastMessage=eg;exports.loadingState=ee;exports.messagesState=Q;exports.nestMessages=ey;exports.sessionIdState=K;exports.sessionState=Y;exports.sideViewState=ep;exports.tasklistState=eu;exports.threadHistoryState=ed;exports.threadIdToResumeState=J;exports.tokenCountState=Z;exports.updateMessageById=eR;exports.updateMessageContentById=e_;exports.useApi=ej;exports.useAudio=eG;exports.useAuth=eA;exports.useChatData=eh;exports.useChatInteract=eU;exports.useChatMessages=eF;exports.useChatSession=eL;exports.useConfig=eH;exports.userState=el;//# sourceMappingURL=out.js.map
|
|
1
|
+
"use strict";function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(e){if(Array.isArray(e))return e}function n(t){if(Array.isArray(t))return e(t)}function r(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function a(e,t,n,r,a,o,i){try{var s=e[o](i);var u=s.value}catch(e){n(e);return}if(s.done){t(u)}else{Promise.resolve(u).then(r,a)}}function o(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function s(e){a(i,r,o,s,u,"next",e)}function u(e){a(i,r,o,s,u,"throw",e)}s(undefined)})}}function i(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function s(e,t,n){if(P()){s=Reflect.construct}else{s=function e(e,t,n){var r=[null];r.push.apply(r,t);var a=Function.bind.apply(e,r);var o=new a;if(n)C(o,n.prototype);return o}}return s.apply(null,arguments)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||false;r.configurable=true;if("value"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}function c(e,t,n){if(t)u(e.prototype,t);if(n)u(e,n);return e}function l(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function h(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)C(e,t)}function d(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function v(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function p(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function g(e,t){var n=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(n==null)return;var r=[];var a=true;var o=false;var i,s;try{for(n=n.call(e);!(a=(i=n.next()).done);a=true){r.push(i.value);if(t&&r.length===t)break}}catch(e){o=true;s=e}finally{try{if(!a&&n["return"]!=null)n["return"]()}finally{if(o)throw s}}return r}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};var r=Object.keys(n);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))}r.forEach(function(t){l(e,t,n[t])})}return e}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(t){r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}n.push.apply(n,r)}return n}function b(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{w(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function S(e,t){if(e==null)return{};var n=A(e,t);var r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++){r=o[a];if(t.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;n[r]=e[r]}}return n}function A(e,t){if(e==null)return{};var n={};var r=Object.keys(e);var a,o;for(o=0;o<r.length;o++){a=r[o];if(t.indexOf(a)>=0)continue;n[a]=e[a]}return n}function R(e,t){if(t&&(_(t)==="object"||typeof t==="function")){return t}return r(e)}function C(e,t){C=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return C(e,t)}function x(e,n){return t(e)||g(e,n)||T(e,n)||m()}function I(e){return n(e)||p(e)||T(e)||y()}function _(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function T(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}function E(e){var t=typeof Map==="function"?new Map:undefined;E=function e(e){if(e===null||!v(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof t!=="undefined"){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return s(e,arguments,f(this).constructor)}n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});return C(n,e)};return E(e)}function P(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true}catch(e){return false}}function D(e){var t=P();return function n(){var n=f(e),r;if(t){var a=f(this).constructor;r=Reflect.construct(n,arguments,a)}else{r=n.apply(this,arguments)}return R(this,r)}}function M(e,t){var n,r,a,o,i={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]};return(o={next:s(0),"throw":s(1),"return":s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o);function s(e){return function(t){return u([e,t])}}function u(o){if(n)throw new TypeError("Generator is already executing.");while(i)try{if(n=1,r&&(a=o[0]&2?r["return"]:o[0]?r["throw"]||((a=r["return"])&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;if(r=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:i.label++;return{value:o[1],done:false};case 5:i.label++;r=o[1];o=[0];continue;case 7:o=i.ops.pop();i.trys.pop();continue;default:if(!(a=i.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){i=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(o[0]===6&&i.label<a[1]){i.label=a[1];a=o;break}if(a&&i.label<a[2]){i.label=a[2];i.ops.push(o);break}if(a[2])i.ops.pop();i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e];r=0}finally{n=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}var O=require("recoil");var B=require("lodash");var j=require("uuid");var V=require("react");var L=require("swr");var F=require("socket.io-client");function q(e){return e&&e.__esModule?e:{default:e}}var U=/*#__PURE__*/q(L);var W=/*#__PURE__*/q(F);var N=function(e){var t={},n=new Date,r=new Date;r.setDate(n.getDate()-1);var a=new Date;a.setDate(n.getDate()-7);var o=new Date;return o.setDate(n.getDate()-30),e.forEach(function(e){var i=new Date(e.createdAt),s=i.toDateString()===n.toDateString(),u=i.toDateString()===r.toDateString(),c=i>=a,l=i>=o,f;s?f="Today":u?f="Yesterday":c?f="Previous 7 days":l?f="Previous 30 days":f=i.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[f]||(t[f]=[]),t[f].push(e)}),t};var z=[4186.01,4434.92,4698.63,4978.03,5274.04,5587.65,5919.91,6271.93,6644.88,7040,7458.62,7902.13],H=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],G=[],$=[];for(var J=1;J<=8;J++)for(var Y=0;Y<z.length;Y++){var K=z[Y];G.push(K/Math.pow(2,8-J)),$.push(H[Y]+J)}var X=[32,2e3],Q=G.filter(function(e,t){return G[t]>X[0]&&G[t]<X[1]}),Z=$.filter(function(e,t){return G[t]>X[0]&&G[t]<X[1]});var ee=/*#__PURE__*/function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var r=this;i(this,e);if(this.fftResults=[],n){var a=n.length,o=n.sampleRate,s=new OfflineAudioContext({length:a,sampleRate:o}),u=s.createBufferSource();u.buffer=n;var c=s.createAnalyser();c.fftSize=8192,c.smoothingTimeConstant=.1,u.connect(c);var l=1/60,f=a/o,h=function(e){var t=l*e;t<f&&s.suspend(t).then(function(){var t=new Float32Array(c.frequencyBinCount);c.getFloatFrequencyData(t),r.fftResults.push(t),h(e+1)}),e===1?s.startRendering():s.resume()};u.start(0),h(1),this.audio=t,this.context=s,this.analyser=c,this.sampleRate=o,this.audioBuffer=n}else{var d=new AudioContext,v=d.createMediaElementSource(t),p=d.createAnalyser();p.fftSize=8192,p.smoothingTimeConstant=.1,v.connect(p),p.connect(d.destination),this.audio=t,this.context=d,this.analyser=p,this.sampleRate=this.context.sampleRate,this.audioBuffer=null}}c(e,[{key:"getFrequencies",value:function t(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;var a=null;if(this.audioBuffer&&this.fftResults.length){var o=this.audio.currentTime/this.audio.duration,i=Math.min(o*this.fftResults.length|0,this.fftResults.length-1);a=this.fftResults[i]}return e.getFrequencies(this.analyser,this.sampleRate,a,t,n,r)}},{key:"resumeIfSuspended",value:function e(){var e=this;return o(function(){var t;return M(this,function(n){switch(n.label){case 0:t=e.context.state==="suspended";if(!t)return[3,2];return[4,e.context.resume()];case 1:t=n.sent();n.label=2;case 2:return[2,(t,!0)]}})})()}}],[{key:"getFrequencies",value:function e(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"frequency",a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-100,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:-30;n||(n=new Float32Array(e.frequencyBinCount),e.getFloatFrequencyData(n));var i=t/2,s=1/n.length*i,u,c,l;if(r==="music"||r==="voice"){var f=r==="voice"?Q:G,h=Array(f.length).fill(a);for(var d=0;d<n.length;d++){var v=d*s,p=n[d];for(var g=f.length-1;g>=0;g--)if(v>f[g]){h[g]=Math.max(h[g],p);break}}u=h,c=r==="voice"?Q:G,l=r==="voice"?Z:$}else u=Array.from(n),c=u.map(function(e,t){return s*t}),l=c.map(function(e){return"".concat(e.toFixed(2)," Hz")});var m=u.map(function(e){return Math.max(0,Math.min((e-a)/(o-a),1))});return{values:new Float32Array(m),frequencies:c,labels:l}}}]);return e}();globalThis.AudioAnalysis=ee;var et=/*#__PURE__*/function(){function e(){i(this,e)}c(e,[{key:"_packData",value:function e(e,t){return[new Uint8Array([t,t>>8]),new Uint8Array([t,t>>8,t>>16,t>>24])][e]}},{key:"pack",value:function e(e,t){if(t===null||t===void 0?void 0:t.bitsPerSample)if(t===null||t===void 0?void 0:t.channels){if(!(t===null||t===void 0?void 0:t.data))throw new Error('Missing "data"')}else throw new Error('Missing "channels"');else throw new Error('Missing "bitsPerSample"');var n=t.bitsPerSample,r=t.channels,a=t.data,o=["RIFF",this._packData(1,4+(8+24)+(8+8)),"WAVE","fmt ",this._packData(1,16),this._packData(0,1),this._packData(0,r.length),this._packData(1,e),this._packData(1,e*r.length*n/8),this._packData(0,r.length*n/8),this._packData(0,n),"data",this._packData(1,r[0].length*r.length*n/8),a],i=new Blob(o,{type:"audio/mpeg"}),s=URL.createObjectURL(i);return{blob:i,url:s,channelCount:r.length,sampleRate:e,duration:a.byteLength/(r.length*e*2)}}}],[{key:"floatTo16BitPCM",value:function e(e){var t=new ArrayBuffer(e.length*2),n=new DataView(t),r=0;for(var a=0;a<e.length;a++,r+=2){var o=Math.max(-1,Math.min(1,e[a]));n.setInt16(r,o<0?o*32768:o*32767,!0)}return t}},{key:"mergeBuffers",value:function e(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n.buffer}}]);return e}();globalThis.WavPacker=et;var en="\nclass AudioProcessor extends AudioWorkletProcessor {\n\n constructor() {\n super();\n this.port.onmessage = this.receive.bind(this);\n this.initialize();\n }\n\n initialize() {\n this.foundAudio = false;\n this.recording = false;\n this.chunks = [];\n }\n\n /**\n * Concatenates sampled chunks into channels\n * Format is chunk[Left[], Right[]]\n */\n readChannelData(chunks, channel = -1, maxChannels = 9) {\n let channelLimit;\n if (channel !== -1) {\n if (chunks[0] && chunks[0].length - 1 < channel) {\n throw new Error(\n `Channel ${channel} out of range: max ${chunks[0].length}`\n );\n }\n channelLimit = channel + 1;\n } else {\n channel = 0;\n channelLimit = Math.min(chunks[0] ? chunks[0].length : 1, maxChannels);\n }\n const channels = [];\n for (let n = channel; n < channelLimit; n++) {\n const length = chunks.reduce((sum, chunk) => {\n return sum + chunk[n].length;\n }, 0);\n const buffers = chunks.map((chunk) => chunk[n]);\n const result = new Float32Array(length);\n let offset = 0;\n for (let i = 0; i < buffers.length; i++) {\n result.set(buffers[i], offset);\n offset += buffers[i].length;\n }\n channels[n] = result;\n }\n return channels;\n }\n\n /**\n * Combines parallel audio data into correct format,\n * channels[Left[], Right[]] to float32Array[LRLRLRLR...]\n */\n formatAudioData(channels) {\n if (channels.length === 1) {\n // Simple case is only one channel\n const float32Array = channels[0].slice();\n const meanValues = channels[0].slice();\n return { float32Array, meanValues };\n } else {\n const float32Array = new Float32Array(\n channels[0].length * channels.length\n );\n const meanValues = new Float32Array(channels[0].length);\n for (let i = 0; i < channels[0].length; i++) {\n const offset = i * channels.length;\n let meanValue = 0;\n for (let n = 0; n < channels.length; n++) {\n float32Array[offset + n] = channels[n][i];\n meanValue += channels[n][i];\n }\n meanValues[i] = meanValue / channels.length;\n }\n return { float32Array, meanValues };\n }\n }\n\n /**\n * Converts 32-bit float data to 16-bit integers\n */\n floatTo16BitPCM(float32Array) {\n const buffer = new ArrayBuffer(float32Array.length * 2);\n const view = new DataView(buffer);\n let offset = 0;\n for (let i = 0; i < float32Array.length; i++, offset += 2) {\n let s = Math.max(-1, Math.min(1, float32Array[i]));\n view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n return buffer;\n }\n\n /**\n * Retrieves the most recent amplitude values from the audio stream\n * @param {number} channel\n */\n getValues(channel = -1) {\n const channels = this.readChannelData(this.chunks, channel);\n const { meanValues } = this.formatAudioData(channels);\n return { meanValues, channels };\n }\n\n /**\n * Exports chunks as an audio/wav file\n */\n export() {\n const channels = this.readChannelData(this.chunks);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const audioData = this.floatTo16BitPCM(float32Array);\n return {\n meanValues: meanValues,\n audio: {\n bitsPerSample: 16,\n channels: channels,\n data: audioData,\n },\n };\n }\n\n receive(e) {\n const { event, id } = e.data;\n let receiptData = {};\n switch (event) {\n case 'start':\n this.recording = true;\n break;\n case 'stop':\n this.recording = false;\n break;\n case 'clear':\n this.initialize();\n break;\n case 'export':\n receiptData = this.export();\n break;\n case 'read':\n receiptData = this.getValues();\n break;\n default:\n break;\n }\n // Always send back receipt\n this.port.postMessage({ event: 'receipt', id, data: receiptData });\n }\n\n sendChunk(chunk) {\n const channels = this.readChannelData([chunk]);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const rawAudioData = this.floatTo16BitPCM(float32Array);\n const monoAudioData = this.floatTo16BitPCM(meanValues);\n this.port.postMessage({\n event: 'chunk',\n data: {\n mono: monoAudioData,\n raw: rawAudioData,\n },\n });\n }\n\n process(inputList, outputList, parameters) {\n // Copy input to output (e.g. speakers)\n // Note that this creates choppy sounds with Mac products\n const sourceLimit = Math.min(inputList.length, outputList.length);\n for (let inputNum = 0; inputNum < sourceLimit; inputNum++) {\n const input = inputList[inputNum];\n const output = outputList[inputNum];\n const channelCount = Math.min(input.length, output.length);\n for (let channelNum = 0; channelNum < channelCount; channelNum++) {\n input[channelNum].forEach((sample, i) => {\n output[channelNum][i] = sample;\n });\n }\n }\n const inputs = inputList[0];\n // There's latency at the beginning of a stream before recording starts\n // Make sure we actually receive audio data before we start storing chunks\n let sliceIndex = 0;\n if (!this.foundAudio) {\n for (const channel of inputs) {\n sliceIndex = 0; // reset for each channel\n if (this.foundAudio) {\n break;\n }\n if (channel) {\n for (const value of channel) {\n if (value !== 0) {\n // find only one non-zero entry in any channel\n this.foundAudio = true;\n break;\n } else {\n sliceIndex++;\n }\n }\n }\n }\n }\n if (inputs && inputs[0] && this.foundAudio && this.recording) {\n // We need to copy the TypedArray, because the `process`\n // internals will reuse the same buffer to hold each input\n const chunk = inputs.map((input) => input.slice(sliceIndex));\n this.chunks.push(chunk);\n this.sendChunk(chunk);\n }\n return true;\n }\n}\n\nregisterProcessor('audio_processor', AudioProcessor);\n",er=new Blob([en],{type:"application/javascript"}),ea=URL.createObjectURL(er),eo=ea;var ei=/*#__PURE__*/function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.sampleRate,r=n===void 0?24e3:n,a=t.outputToSpeakers,o=a===void 0?!1:a,s=t.debug,u=s===void 0?!1:s;i(this,e);this.scriptSrc=eo,this.sampleRate=r,this.outputToSpeakers=o,this.debug=!!u,this._deviceChangeCallback=null,this._devices=[],this.stream=null,this.processor=null,this.source=null,this.node=null,this.recording=!1,this._lastEventId=0,this.eventReceipts={},this.eventTimeout=5e3,this._chunkProcessor=function(){},this._chunkProcessorSize=void 0,this._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)}}c(e,[{key:"log",value:function e(){return this.debug&&this.log.apply(this,arguments),!0}},{key:"getSampleRate",value:function e(){return this.sampleRate}},{key:"getStatus",value:function e(){return this.processor?this.recording?"recording":"paused":"ended"}},{key:"_event",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var r=this;return o(function(){var a,o,i;return M(this,function(s){switch(s.label){case 0:if(n=n||r.processor,!n)throw new Error("Can not send events without recording first");a={event:e,id:r._lastEventId++,data:t};n.port.postMessage(a);o=new Date().valueOf();s.label=1;case 1:if(!!r.eventReceipts[a.id])return[3,4];if(new Date().valueOf()-o>r.eventTimeout)throw new Error('Timeout waiting for "'.concat(e,'" event'));return[4,new Promise(function(e){return setTimeout(function(){return e(!0)},1)})];case 2:s.sent();s.label=3;case 3:return[3,1];case 4:i=r.eventReceipts[a.id];return[2,(delete r.eventReceipts[a.id],i)]}})})()}},{key:"listenForDeviceChange",value:function e(e){if(e===null&&this._deviceChangeCallback)navigator.mediaDevices.removeEventListener("devicechange",this._deviceChangeCallback),this._deviceChangeCallback=null;else if(e!==null){var t=this;var n=0,r=[],a=function(e){return e.map(function(e){return e.deviceId}).sort().join(",")},i=function(){var i=o(function(){var o,i;return M(this,function(s){switch(s.label){case 0:o=++n;return[4,t.listDevices()];case 1:i=s.sent();o===n&&a(r)!==a(i)&&(r=i,e(i.slice()));return[2]}})});return function e(){return i.apply(this,arguments)}}();navigator.mediaDevices.addEventListener("devicechange",i),i(),this._deviceChangeCallback=i}return!0}},{key:"requestPermission",value:function e(){return o(function(){var e,t;return M(this,function(n){switch(n.label){case 0:return[4,navigator.permissions.query({name:"microphone"})];case 1:e=n.sent();if(!(e.state==="denied"))return[3,2];window.alert("You must grant microphone access to use this feature.");return[3,6];case 2:if(!(e.state==="prompt"))return[3,6];n.label=3;case 3:n.trys.push([3,5,,6]);return[4,navigator.mediaDevices.getUserMedia({audio:!0})];case 4:n.sent().getTracks().forEach(function(e){return e.stop()});return[3,6];case 5:t=n.sent();window.alert("You must grant microphone access to use this feature.");return[3,6];case 6:return[2,!0]}})})()}},{key:"listDevices",value:function e(){var e=this;return o(function(){var t,n,r,a,o;return M(this,function(i){switch(i.label){case 0:if(!navigator.mediaDevices||!("enumerateDevices"in navigator.mediaDevices))throw new Error("Could not request user devices");return[4,e.requestPermission()];case 1:i.sent();return[4,navigator.mediaDevices.enumerateDevices()];case 2:t=i.sent().filter(function(e){return e.kind==="audioinput"}),n=t.findIndex(function(e){return e.deviceId==="default"}),r=[];if(n!==-1){a=t.splice(n,1)[0],o=t.findIndex(function(e){return e.groupId===a.groupId});o!==-1&&(a=t.splice(o,1)[0]),a.default=!0,r.push(a)}return[2,r.concat(t)]}})})()}},{key:"begin",value:function e(e){var t=this;return o(function(){var n,r,a,o,i,s,u,c;return M(this,function(l){switch(l.label){case 0:if(t.processor)throw new Error("Already connected: please call .end() to start a new session");if(!navigator.mediaDevices||!("getUserMedia"in navigator.mediaDevices))throw new Error("Could not request user media");l.label=1;case 1:l.trys.push([1,3,,4]);n={audio:!0};e&&(n.audio={deviceId:{exact:e}});return[4,navigator.mediaDevices.getUserMedia(n)];case 2:t.stream=l.sent();return[3,4];case 3:r=l.sent();throw new Error("Could not start media stream");case 4:a=new AudioContext({sampleRate:t.sampleRate}),o=a.createMediaStreamSource(t.stream);l.label=5;case 5:l.trys.push([5,7,,8]);return[4,a.audioWorklet.addModule(t.scriptSrc)];case 6:l.sent();return[3,8];case 7:i=l.sent();throw console.error(i),new Error("Could not add audioWorklet module: ".concat(t.scriptSrc));case 8:s=new AudioWorkletNode(a,"audio_processor");s.port.onmessage=function(e){var n=e.data,r=n.event,a=n.id,o=n.data;if(r==="receipt")t.eventReceipts[a]=o;else if(r==="chunk")if(t._chunkProcessorSize){var i=t._chunkProcessorBuffer;t._chunkProcessorBuffer={raw:et.mergeBuffers(i.raw,o.raw),mono:et.mergeBuffers(i.mono,o.mono)},t._chunkProcessorBuffer.mono.byteLength>=t._chunkProcessorSize&&(t._chunkProcessor(t._chunkProcessorBuffer),t._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)})}else t._chunkProcessor(o)};u=o.connect(s),c=a.createAnalyser();return[2,(c.fftSize=8192,c.smoothingTimeConstant=.1,u.connect(c),t.outputToSpeakers&&(console.warn("Warning: Output to speakers may affect sound quality,\nespecially due to system audio feedback preventative measures.\nuse only for debugging"),c.connect(a.destination)),t.source=o,t.node=u,t.analyser=c,t.processor=s,!0)]}})})()}},{key:"getFrequencies",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;if(!this.processor)throw new Error("Session ended: please call .begin() first");return ee.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}},{key:"pause",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(e.processor){if(!e.recording)throw new Error("Already paused: please call .record() first")}else throw new Error("Session ended: please call .begin() first");e._chunkProcessorBuffer.raw.byteLength&&e._chunkProcessor(e._chunkProcessorBuffer),e.log("Pausing ...");return[4,e._event("stop")];case 1:return[2,(t.sent(),e.recording=!1,!0)]}})})()}},{key:"record",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8192;var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:if(n.processor){if(n.recording)throw new Error("Already recording: please call .pause() first");if(typeof e!="function")throw new Error("chunkProcessor must be a function")}else throw new Error("Session ended: please call .begin() first");n._chunkProcessor=e,n._chunkProcessorSize=t,n._chunkProcessorBuffer={raw:new ArrayBuffer(0),mono:new ArrayBuffer(0)},n.log("Recording ...");return[4,n._event("start")];case 1:return[2,(r.sent(),n.recording=!0,!0)]}})})()}},{key:"clear",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");return[4,e._event("clear")];case 1:return[2,(t.sent(),!0)]}})})()}},{key:"read",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");e.log("Reading ...");return[4,e._event("read")];case 1:return[2,t.sent()]}})})()}},{key:"save",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;var t=this;return o(function(){var n;return M(this,function(r){switch(r.label){case 0:if(!t.processor)throw new Error("Session ended: please call .begin() first");if(!e&&t.recording)throw new Error("Currently recording: please call .pause() first, or call .save(true) to force");t.log("Exporting ...");return[4,t._event("export")];case 1:n=r.sent();return[2,new et().pack(t.sampleRate,n.audio)]}})})()}},{key:"end",value:function e(){var e=this;return o(function(){var t,n;return M(this,function(r){switch(r.label){case 0:if(!e.processor)throw new Error("Session ended: please call .begin() first");t=e.processor;e.log("Stopping ...");return[4,e._event("stop")];case 1:r.sent(),e.recording=!1,e.stream.getTracks().forEach(function(e){return e.stop()}),e.log("Exporting ...");return[4,e._event("export",{},t)];case 2:n=r.sent();return[2,(e.processor.disconnect(),e.source.disconnect(),e.node.disconnect(),e.analyser.disconnect(),e.stream=null,e.processor=null,e.source=null,e.node=null,new et().pack(e.sampleRate,n.audio))]}})})()}},{key:"quit",value:function e(){var e=this;return o(function(){var t;return M(this,function(n){switch(n.label){case 0:e.listenForDeviceChange(null);t=e.processor;if(!t)return[3,2];return[4,e.end()];case 1:t=n.sent();n.label=2;case 2:return[2,(t,!0)]}})})()}}],[{key:"decode",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:24e3,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;return o(function(){var r,a,o,i,s,u,c,l,f,h;return M(this,function(v){switch(v.label){case 0:r=new AudioContext({sampleRate:t});if(!d(e,Blob))return[3,2];if(n!==-1)throw new Error('Can not specify "fromSampleRate" when reading from Blob');o=e;return[4,o.arrayBuffer()];case 1:a=v.sent();return[3,5];case 2:if(!d(e,ArrayBuffer))return[3,3];if(n!==-1)throw new Error('Can not specify "fromSampleRate" when reading from ArrayBuffer');a=e,o=new Blob([a],{type:"audio/wav"});return[3,5];case 3:if(d(e,Int16Array)){s=e,i=new Float32Array(e.length);for(u=0;u<e.length;u++)i[u]=e[u]/32768}else if(d(e,Float32Array))i=e;else if(d(e,Array))i=new Float32Array(e);else throw new Error('"audioData" must be one of: Blob, Float32Arrray, Int16Array, ArrayBuffer, Array<number>');if(n===-1)throw new Error('Must specify "fromSampleRate" when reading from Float32Array, In16Array or Array');if(n<3e3)throw new Error('Minimum "fromSampleRate" is 3000 (3kHz)');s||(s=et.floatTo16BitPCM(i));c={bitsPerSample:16,channels:[i],data:s};o=new et().pack(n,c).blob;return[4,o.arrayBuffer()];case 4:a=v.sent();v.label=5;case 5:return[4,r.decodeAudioData(a)];case 6:l=v.sent(),f=l.getChannelData(0),h=URL.createObjectURL(o);return[2,{blob:o,url:h,values:f,audioBuffer:l}]}})})()}}]);return e}();globalThis.WavRecorder=ei;var es="\nclass StreamProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.hasStarted = false;\n this.hasInterrupted = false;\n this.outputBuffers = [];\n this.bufferLength = 128;\n this.write = { buffer: new Float32Array(this.bufferLength), trackId: null };\n this.writeOffset = 0;\n this.trackSampleOffsets = {};\n this.port.onmessage = (event) => {\n if (event.data) {\n const payload = event.data;\n if (payload.event === 'write') {\n const int16Array = payload.buffer;\n const float32Array = new Float32Array(int16Array.length);\n for (let i = 0; i < int16Array.length; i++) {\n float32Array[i] = int16Array[i] / 0x8000; // Convert Int16 to Float32\n }\n this.writeData(float32Array, payload.trackId);\n } else if (\n payload.event === 'offset' ||\n payload.event === 'interrupt'\n ) {\n const requestId = payload.requestId;\n const trackId = this.write.trackId;\n const offset = this.trackSampleOffsets[trackId] || 0;\n this.port.postMessage({\n event: 'offset',\n requestId,\n trackId,\n offset,\n });\n if (payload.event === 'interrupt') {\n this.hasInterrupted = true;\n }\n } else {\n throw new Error(`Unhandled event \"${payload.event}\"`);\n }\n }\n };\n }\n\n writeData(float32Array, trackId = null) {\n let { buffer } = this.write;\n let offset = this.writeOffset;\n for (let i = 0; i < float32Array.length; i++) {\n buffer[offset++] = float32Array[i];\n if (offset >= buffer.length) {\n this.outputBuffers.push(this.write);\n this.write = { buffer: new Float32Array(this.bufferLength), trackId };\n buffer = this.write.buffer;\n offset = 0;\n }\n }\n this.writeOffset = offset;\n return true;\n }\n\n process(inputs, outputs, parameters) {\n const output = outputs[0];\n const outputChannelData = output[0];\n const outputBuffers = this.outputBuffers;\n if (this.hasInterrupted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else if (outputBuffers.length) {\n this.hasStarted = true;\n const { buffer, trackId } = outputBuffers.shift();\n for (let i = 0; i < outputChannelData.length; i++) {\n outputChannelData[i] = buffer[i] || 0;\n }\n if (trackId) {\n this.trackSampleOffsets[trackId] =\n this.trackSampleOffsets[trackId] || 0;\n this.trackSampleOffsets[trackId] += buffer.length;\n }\n return true;\n } else if (this.hasStarted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else {\n return true;\n }\n }\n}\n\nregisterProcessor('stream_processor', StreamProcessor);\n",eu=new Blob([es],{type:"application/javascript"}),ec=URL.createObjectURL(eu),el=ec;var ef=/*#__PURE__*/function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.sampleRate,r=n===void 0?24e3:n,a=t.onStop;i(this,e);this.scriptSrc=el,this.onStop=a,this.sampleRate=r,this.context=null,this.stream=null,this.analyser=null,this.trackSampleOffsets={},this.interruptedTrackIds={}}c(e,[{key:"connect",value:function e(){var e=this;return o(function(){var t,n,r;return M(this,function(a){switch(a.label){case 0:e.context=new AudioContext({sampleRate:e.sampleRate});t=e.context.state==="suspended";if(!t)return[3,2];return[4,e.context.resume()];case 1:t=a.sent();a.label=2;case 2:t;a.label=3;case 3:a.trys.push([3,5,,6]);return[4,e.context.audioWorklet.addModule(e.scriptSrc)];case 4:a.sent();return[3,6];case 5:n=a.sent();throw console.error(n),new Error("Could not add audioWorklet module: ".concat(e.scriptSrc));case 6:r=e.context.createAnalyser();return[2,(r.fftSize=8192,r.smoothingTimeConstant=.1,e.analyser=r,!0)]}})})()}},{key:"getFrequencies",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"frequency",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-100,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-30;if(!this.analyser)throw new Error("Not connected, please call .connect() first");return ee.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}},{key:"_start",value:function e(){var e=this;var t=new AudioWorkletNode(this.context,"stream_processor");return t.connect(this.context.destination),t.port.onmessage=function(n){var r,a;var o=n.data,i=o.event;if(i==="stop")(r=(a=e).onStop)===null||r===void 0?void 0:r.call(a),t.disconnect(),e.stream=null;else if(i==="offset"){var s=n.data,u=s.requestId,c=s.trackId,l=s.offset,f=l/e.sampleRate;e.trackSampleOffsets[u]={trackId:c,offset:l,currentTime:f}}},this.analyser.disconnect(),t.connect(this.analyser),this.stream=t,!0}},{key:"add16BitPCM",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default";if(typeof t!="string")throw new Error("trackId must be a string");if(this.interruptedTrackIds[t])return;this.stream||this._start();var n;if(d(e,Int16Array))n=e;else if(d(e,ArrayBuffer))n=new Int16Array(e);else throw new Error("argument must be Int16Array or ArrayBuffer");return this.stream.port.postMessage({event:"write",buffer:n,trackId:t}),n}},{key:"getTrackSampleOffset",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;var t=this;return o(function(){var n,r,a;return M(this,function(o){switch(o.label){case 0:if(!t.stream)return[2,null];n=crypto.randomUUID();t.stream.port.postMessage({event:e?"interrupt":"offset",requestId:n});o.label=1;case 1:if(!!r)return[3,4];r=t.trackSampleOffsets[n];return[4,new Promise(function(e){return setTimeout(function(){return e()},1)})];case 2:o.sent();o.label=3;case 3:return[3,1];case 4:a=r.trackId;return[2,(e&&a&&(t.interruptedTrackIds[a]=!0),r)]}})})()}},{key:"interrupt",value:function e(){var e=this;return o(function(){return M(this,function(t){return[2,e.getTrackSampleOffset(!0)]})})()}}]);return e}();globalThis.WavStreamPlayer=ef;var eh=O.atom({key:"ThreadIdToResume",default:void 0}),ed=O.atom({key:"ChatProfile",default:void 0}),ev=O.atom({key:"SessionId",default:j.v4()}),ep=O.selector({key:"SessionIdSelector",get:function(e){var t=e.get;return t(ev)},set:function(e,t){var n=e.set;return n(ev,d(t,O.DefaultValue)?j.v4():t)}}),eg=O.atom({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),em=O.atom({key:"Actions",default:[]}),ey=O.atom({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),ek=O.atom({key:"TokenCount",default:0}),ew=O.atom({key:"Loading",default:!1}),eb=O.atom({key:"AskUser",default:void 0}),eS=O.atom({key:"WavRecorder",dangerouslyAllowMutability:!0,default:new ei}),eA=O.atom({key:"WavStreamPlayer",dangerouslyAllowMutability:!0,default:new ef}),eR=O.atom({key:"AudioConnection",default:"off"}),eC=O.atom({key:"isAiSpeaking",default:!1}),ex=O.atom({key:"CallFn",default:void 0}),eI=O.atom({key:"ChatSettings",default:[]}),e_=O.selector({key:"ChatSettingsValue/Default",get:function(e){var t=e.get;return t(eI).reduce(function(e,t){return e[t.id]=t.initial,e},{})}}),eT=O.atom({key:"ChatSettingsValue",default:e_}),eE=O.atom({key:"DisplayElements",default:[]}),eP=O.atom({key:"TasklistElements",default:[]}),eD=O.atom({key:"FirstUserInteraction",default:void 0}),eM=O.atom({key:"AccessToken",default:void 0}),eO=O.atom({key:"User",default:null}),eB=O.atom({key:"ChainlitConfig",default:void 0}),ej=O.atom({key:"AuthConfig",default:void 0}),eV=O.atom({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[function(e){var t=e.setSelf,n=e.onSet;n(function(e,n){var r=e===null||e===void 0?void 0:e.timeGroupedThreads;(e===null||e===void 0?void 0:e.threads)&&!B.isEqual(e.threads,n===null||n===void 0?void 0:n.timeGroupedThreads)&&(r=N(e.threads)),t(b(k({},e),{timeGroupedThreads:r}))})}]}),eL=O.atom({key:"SideView",default:void 0}),eF=O.atom({key:"CurrentThreadId",default:void 0});var eq=function(){var e=O.useRecoilValue(ew),t=O.useRecoilValue(eE),n=O.useRecoilValue(eP),r=O.useRecoilValue(em),a=O.useRecoilValue(eg),o=O.useRecoilValue(eb),i=O.useRecoilValue(ex),s=O.useRecoilValue(eI),u=O.useRecoilValue(eT),c=O.useRecoilValue(e_),l=(a===null||a===void 0?void 0:a.socket.connected)&&!(a===null||a===void 0?void 0:a.error),f=!l||e||(o===null||o===void 0?void 0:o.spec.type)==="file"||(o===null||o===void 0?void 0:o.spec.type)==="action";return{actions:r,askUser:o,callFn:i,chatSettingsDefaultValue:c,chatSettingsInputs:s,chatSettingsValue:u,connected:l,disabled:f,elements:t,error:a===null||a===void 0?void 0:a.error,loading:e,tasklists:n}};var eU=function(e){var t=[];var n=true,r=false,a=undefined;try{for(var o=e[Symbol.iterator](),i;!(n=(i=o.next()).done);n=true){var s=i.value;t=eN(t,s)}}catch(e){r=true;a=e}finally{try{if(!n&&o.return!=null){o.return()}}finally{if(r){throw a}}}return t},eW=function(e,t){if(e.length-1===t)return!0;for(var n=t+1;n<e.length;n++)if(!e[n].streaming)return!1;return!0},eN=function(e,t){return e$(e,t.id)?eJ(e,t.id,t):"parentId"in t&&t.parentId?eH(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?ez(e,t.indent,t):I(e).concat([t])},ez=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;var a=I(e);if(a.length===0)return I(a).concat([n]);{var o=a.length-1,i=a[o];return i.steps=i.steps||[],r+1===t?(i.steps=I(i.steps).concat([n]),a[o]=k({},i),a):(i.steps=ez(i.steps,t,n,r+1),a[o]=k({},i),a)}},eH=function(e,t,n){var r=I(e);for(var a=0;a<r.length;a++){var o=r[a];B.isEqual(o.id,t)?(o.steps=o.steps?I(o.steps).concat([n]):[n],r[a]=k({},o)):e$(r,t)&&o.steps&&(o.steps=eH(o.steps,t,n),r[a]=k({},o))}return r},eG=function(e,t){var n=true,r=false,a=undefined;try{for(var o=e[Symbol.iterator](),i;!(n=(i=o.next()).done);n=true){var s=i.value;if(B.isEqual(s.id,t))return s;if(s.steps&&s.steps.length>0){var u=eG(s.steps,t);if(u)return u}}}catch(e){r=true;a=e}finally{try{if(!n&&o.return!=null){o.return()}}finally{if(r){throw a}}}},e$=function(e,t){return eG(e,t)!==void 0},eJ=function(e,t,n){var r=I(e);for(var a=0;a<r.length;a++){var o=r[a];B.isEqual(o.id,t)?r[a]=k({steps:o.steps},n):e$(r,t)&&o.steps&&(o.steps=eJ(o.steps,t,n),r[a]=k({},o))}return r},eY=function(e,t){var n=I(e);for(var r=0;r<n.length;r++){var a=n[r];a.id===t?n=I(n.slice(0,r)).concat(I(n.slice(r+1))):e$(n,t)&&a.steps&&(a.steps=eY(a.steps,t),n[r]=k({},a))}return n},eK=function(e,t,n,r,a){var o=I(e);for(var i=0;i<o.length;i++){var s=o[i];B.isEqual(s.id,t)?("content"in s&&s.content!==void 0?r?s.content=n:s.content+=n:a?"input"in s&&s.input!==void 0&&(r?s.input=n:s.input+=n):"output"in s&&s.output!==void 0&&(r?s.output=n:s.output+=n),o[i]=k({},s)):s.steps&&(s.steps=eK(s.steps,t,n,r,a),o[i]=k({},s))}return o};var eX=function(){var e=x(O.useRecoilState(ej),2),t=e[0],n=e[1],r=x(O.useRecoilState(eO),2),a=r[0],o=r[1],i=x(O.useRecoilState(eM),2),s=i[0],u=i[1],c=O.useSetRecoilState(eV);return{authConfig:t,setAuthConfig:n,user:a,setUser:o,accessToken:s,setAccessToken:u,setThreadHistory:c,cookieAuth:(t===null||t===void 0?void 0:t.cookieAuth)!==!1&&(t===null||t===void 0?void 0:t.requireLogin)}};var eQ="token";function eZ(){try{return localStorage.removeItem(eQ)}catch(e){return}}function e0(e){var t="Bearer ";return e.startsWith(t)?e:t+e}var e1=function(){var e=eX(),t=e.setAccessToken,n=e.cookieAuth;return{handleSetAccessToken:function(e){n||(localStorage.setItem("accessToken",e),t(e))},removeToken:function(){localStorage.removeItem("accessToken")}}};var e2=function(){var e=o(function(e,t,n){var r;return M(this,function(a){switch(a.label){case 0:return[4,e.get(t,n)];case 1:return[2,(r=a.sent())===null||r===void 0?void 0:r.json()]}})});return function t(t,n,r){return e.apply(this,arguments)}}(),e3=function(e){var t=new tt("","webapp");return Object.assign(t,e),t};function e4(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var n=t.token,r=S(t,["token"]);var a=V.useContext(tr),o=O.useRecoilValue(eM);o=n||o;var i=V.useMemo(function(){return function(e){var t=x(e,2),n=t[0],o=t[1];r.onErrorRetry||(r.onErrorRetry=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++){t[n]=arguments[n]}var r;var a=x(t,1),o=a[0];if(o.status!==401)return(r=L.SWRConfig.defaultValue).onErrorRetry.apply(r,I(t))});var i=e3(a);return i.on401=i.onError=void 0,e2(i,n,o)}},[a]),s=V.useMemo(function(){return e?[e,o]:null},[e,o]);return U.default(s,i,r)}var e6=function(){var e=eX(),t=e.authConfig,n=e.setAuthConfig,r=e.cookieAuth,a=e4(t?null:"/auth/config"),o=a.data,i=a.isLoading;return V.useEffect(function(){o&&n(o)},[o,n]),{authConfig:t,isLoading:i,cookieAuth:r}};var e8=function(){var e=V.useContext(tr),t=eX(),n=t.setUser,r=t.setThreadHistory,a=t.cookieAuth,i=e1(),s=i.removeToken;return{logout:/*#__PURE__*/o(function(){var t;var o=arguments;return M(this,function(i){switch(i.label){case 0:t=o.length>0&&o[0]!==void 0?o[0]:!1;return[4,e.logout()];case 1:i.sent(),n(null),r(void 0),a||s(),t&&window.location.reload();return[2]}})})}};var e5=function(){var e=eX(),t=e.user,n=e.setUser,r=e.cookieAuth,a=e1(),o=a.handleSetAccessToken,i=e6(),s=i.isLoading,u=e4(r?"/user":null),c=u.data,l=u.mutate;return V.useEffect(function(){c&&n(c)},[c,n]),V.useEffect(function(){if(!(t&&s&&r)){var e=localStorage.getItem("accessToken");e&&o(e)}},[t,r,s]),{user:t,setUserFromAPI:l}};var e7=function(){var e=e6(),t=e.authConfig,n=e.cookieAuth,r=e8(),a=r.logout,o=e5(),i=o.user,s=o.setUserFromAPI,u=eX(),c=u.accessToken,l=e1(),f=l.handleSetAccessToken,h=!!t;return t&&!t.requireLogin?{data:t,user:null,isReady:h,isAuthenticated:!0,accessToken:"",logout:function(){return Promise.resolve()},setAccessToken:function(){},setUserFromAPI:function(){return Promise.resolve()},cookieAuth:n}:{data:t,user:i,isReady:h,isAuthenticated:!!i,accessToken:c,logout:a,setAccessToken:f,setUserFromAPI:s,cookieAuth:n}};var e9=/*#__PURE__*/function(e){h(n,e);var t=D(n);function n(e,r,a){i(this,n);var o;o=t.call(this,e);o.status=r,o.detail=a;return o}c(n,[{key:"toString",value:function e(){return this.detail?"".concat(this.message,": ").concat(this.detail):this.message}}]);return n}(E(Error)),te=/*#__PURE__*/function(){function e(t,n,r,a){i(this,e);this.httpEndpoint=t;this.type=n;this.on401=r;this.onError=a}c(e,[{key:"buildEndpoint",value:function e(e){return this.httpEndpoint.endsWith("/")?"".concat(this.httpEndpoint.slice(0,-1)).concat(e):"".concat(this.httpEndpoint).concat(e)}},{key:"getDetailFromErrorResponse",value:function e(e){return o(function(){var t,n;return M(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,e.json()];case 1:return[2,(t=r.sent())===null||t===void 0?void 0:t.detail];case 2:n=r.sent();console.error("Unable to parse error response",n);return[3,3];case 3:return[2]}})})()}},{key:"handleRequestError",value:function e(e){d(e,e9)&&(e.status===401&&this.on401&&(eZ(),this.on401()),this.onError&&this.onError(e)),console.error(e)}},{key:"fetch",value:function e(e,t,n,r,a){var i=this;return o(function(){var o,s,u,c,l;return M(this,function(f){switch(f.label){case 0:f.trys.push([0,4,,5]);o={};n&&(o.Authorization=e0(n));d(r,FormData)?s=r:(o["Content-Type"]="application/json",s=r?JSON.stringify(r):null);return[4,fetch(i.buildEndpoint(t),{method:e,headers:o,signal:a,body:s})];case 1:u=f.sent();if(!!u.ok)return[3,3];return[4,i.getDetailFromErrorResponse(u)];case 2:c=f.sent();throw new e9(u.statusText,u.status,c);case 3:return[2,u];case 4:l=f.sent();throw i.handleRequestError(l),l;case 5:return[2]}})})()}},{key:"get",value:function e(e,t){var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:return[4,n.fetch("GET",e,t)];case 1:return[2,r.sent()]}})})()}},{key:"post",value:function e(e,t,n,r){var a=this;return o(function(){return M(this,function(o){switch(o.label){case 0:return[4,a.fetch("POST",e,n,t,r)];case 1:return[2,o.sent()]}})})()}},{key:"put",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("PUT",e,n,t)];case 1:return[2,a.sent()]}})})()}},{key:"patch",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("PATCH",e,n,t)];case 1:return[2,a.sent()]}})})()}},{key:"delete",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.fetch("DELETE",e,n,t)];case 1:return[2,a.sent()]}})})()}}]);return e}(),tt=/*#__PURE__*/function(e){h(n,e);var t=D(n);function n(){i(this,n);return t.apply(this,arguments)}c(n,[{key:"headerAuth",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:return[4,e.post("/auth/header",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"passwordAuth",value:function e(e){var t=this;return o(function(){return M(this,function(n){switch(n.label){case 0:return[4,t.post("/login",e)];case 1:return[2,n.sent().json()]}})})()}},{key:"getUser",value:function e(e){var t=this;return o(function(){return M(this,function(n){switch(n.label){case 0:return[4,t.get("/user",e)];case 1:return[2,n.sent().json()]}})})()}},{key:"logout",value:function e(){var e=this;return o(function(){return M(this,function(t){switch(t.label){case 0:return[4,e.post("/logout",{})];case 1:return[2,t.sent().json()]}})})()}},{key:"setFeedback",value:function e(e,t){var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:return[4,n.put("/feedback",{feedback:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"deleteFeedback",value:function e(e,t){var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:return[4,n.delete("/feedback",{feedbackId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"listThreads",value:function e(e,t,n){var r=this;return o(function(){return M(this,function(a){switch(a.label){case 0:return[4,r.post("/project/threads",{pagination:e,filter:t},n)];case 1:return[2,a.sent().json()]}})})()}},{key:"deleteThread",value:function e(e,t){var n=this;return o(function(){return M(this,function(r){switch(r.label){case 0:return[4,n.delete("/project/thread",{threadId:e},t)];case 1:return[2,r.sent().json()]}})})()}},{key:"uploadFile",value:function e(e,t,n,r){var a=this;var o=new XMLHttpRequest,i=new Promise(function(i,s){var u=new FormData;u.append("file",e),o.open("POST",a.buildEndpoint("/project/file?session_id=".concat(n)),!0),r&&o.setRequestHeader("Authorization",e0(r)),o.upload.onprogress=function(e){if(e.lengthComputable){var n=e.loaded/e.total*100;t(n)}},o.onload=function(){if(o.status===200){var e=JSON.parse(o.responseText);i(e)}else s("Upload failed")},o.onerror=function(){s("Upload error")},o.send(u)});return{xhr:o,promise:i}}},{key:"getElementUrl",value:function e(e,t){var n="?session_id=".concat(t);return this.buildEndpoint("/project/file/".concat(e).concat(n))}},{key:"getLogoEndpoint",value:function e(e){return this.buildEndpoint("/logo?theme=".concat(e))}},{key:"getOAuthEndpoint",value:function e(e){return this.buildEndpoint("/auth/oauth/".concat(e))}}]);return n}(te);var tn=void 0,tr=V.createContext(new tt("http://localhost:8000","webapp"));var ta=function(){var e=V.useContext(tr),t=O.useRecoilValue(eM),n=O.useRecoilValue(eg),r=O.useRecoilValue(eb),a=O.useRecoilValue(ep),o=O.useResetRecoilState(eI),i=O.useResetRecoilState(ep),s=O.useResetRecoilState(eT),u=O.useSetRecoilState(eD),c=O.useSetRecoilState(ew),l=O.useSetRecoilState(ey),f=O.useSetRecoilState(eE),h=O.useSetRecoilState(eP),d=O.useSetRecoilState(em),v=O.useSetRecoilState(ek),p=O.useSetRecoilState(eh),g=O.useSetRecoilState(eL),m=O.useSetRecoilState(eF),y=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("clear_session"),n===null||n===void 0?void 0:n.socket.disconnect(),p(void 0),i(),u(void 0),l([]),f([]),h([]),d([]),v(0),o(),s(),g(void 0),m(void 0)},[n]),k=V.useCallback(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.id||(e.id=j.v4()),e.createdAt||(e.createdAt=new Date().toISOString()),l(function(t){return eN(t,e)}),n===null||n===void 0?void 0:n.socket.emit("client_message",{message:e,fileReferences:t})},[n===null||n===void 0?void 0:n.socket]),w=V.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("edit_message",{message:e})},[n===null||n===void 0?void 0:n.socket]),b=V.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("window_message",e)},[n===null||n===void 0?void 0:n.socket]),S=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("audio_start")},[n===null||n===void 0?void 0:n.socket]),A=V.useCallback(function(e,t,r,a){n===null||n===void 0?void 0:n.socket.emit("audio_chunk",{isStart:e,mimeType:t,elapsedTime:r,data:a})},[n===null||n===void 0?void 0:n.socket]),R=V.useCallback(function(){n===null||n===void 0?void 0:n.socket.emit("audio_end")},[n===null||n===void 0?void 0:n.socket]),C=V.useCallback(function(e){r&&(r.parentId&&(e.parentId=r.parentId),l(function(t){return eN(t,e)}),r.callback(e))},[r]),x=V.useCallback(function(e){n===null||n===void 0?void 0:n.socket.emit("chat_settings_change",e)},[n===null||n===void 0?void 0:n.socket]),I=V.useCallback(function(){l(function(e){return e.map(function(e){return e.streaming=!1,e})}),c(!1),n===null||n===void 0?void 0:n.socket.emit("stop")},[n===null||n===void 0?void 0:n.socket]),_=V.useCallback(function(e){var t=n===null||n===void 0?void 0:n.socket;if(!t)return;var r=new Promise(function(e,n){t.once("action_response",function(t){t.status?e(t):n(t)})});return t.emit("action_call",e),r},[n===null||n===void 0?void 0:n.socket]);return{uploadFile:V.useCallback(function(n,r){return e.uploadFile(n,r,a,t)},[a,t]),callAction:_,clear:y,replyMessage:C,sendMessage:k,editMessage:w,windowMessage:b,startAudioStream:S,sendAudioChunk:A,endAudioStream:R,stopTask:I,setIdToResume:p,updateChatSettings:x}};var to=function(){var e=O.useRecoilValue(ey),t=O.useRecoilValue(eD);return{threadId:O.useRecoilValue(eF),messages:e,firstInteraction:t}};var ti=function(){var e=V.useContext(tr),t=O.useRecoilValue(ep),n=x(O.useRecoilState(eg),2),r=n[0],a=n[1],i=O.useSetRecoilState(eC),s=O.useSetRecoilState(eR),u=O.useResetRecoilState(eT),c=O.useSetRecoilState(eD),l=O.useSetRecoilState(ew),f=O.useRecoilValue(eA),h=O.useRecoilValue(eS),d=O.useSetRecoilState(ey),v=O.useSetRecoilState(eb),p=O.useSetRecoilState(ex),g=O.useSetRecoilState(eE),m=O.useSetRecoilState(eP),y=O.useSetRecoilState(em),w=O.useSetRecoilState(eI),S=O.useSetRecoilState(ek),A=x(O.useRecoilState(ed),2),R=A[0],C=A[1],_=O.useRecoilValue(eh),T=x(O.useRecoilState(eF),2),E=T[0],P=T[1];V.useEffect(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.auth.threadId=E||"")},[E]);var D=V.useCallback(function(n){var r=n.transports,A=n.userEnv,x=n.accessToken;var T=new URL(e.httpEndpoint),E=T.protocol,D=T.host,O=T.pathname,B="".concat(E,"//").concat(D),j=O&&O!=="/"?"".concat(O,"/ws/socket.io"):"/ws/socket.io",V=W.default(B,{path:j,withCredentials:!0,transports:r,auth:{token:x,clientType:e.type,sessionId:t,threadId:_||"",userEnv:JSON.stringify(A),chatProfile:R?encodeURIComponent(R):""}});a(function(e){var t,n;return e===null||e===void 0?void 0:(t=e.socket)===null||t===void 0?void 0:t.removeAllListeners(),e===null||e===void 0?void 0:(n=e.socket)===null||n===void 0?void 0:n.close(),{socket:V}}),V.on("connect",function(){V.emit("connection_successful"),a(function(e){return b(k({},e),{error:!1})})}),V.on("connect_error",function(e){a(function(e){return b(k({},e),{error:!0})})}),V.on("task_start",function(){l(!0)}),V.on("task_end",function(){l(!1)}),V.on("reload",function(){V.emit("clear_session"),window.location.reload()}),V.on("audio_connection",function(){var e=o(function(e){var t,n,r;return M(this,function(a){switch(a.label){case 0:if(!(e==="on"))return[3,4];t=!0,n=Date.now(),r="pcm16";return[4,h.begin()];case 1:a.sent();return[4,f.connect()];case 2:a.sent();return[4,h.record(function(){var e=o(function(e){var a;return M(this,function(o){a=Date.now()-n;V.emit("audio_chunk",{isStart:t,mimeType:r,elapsedTime:a,data:e.mono}),t=!1;return[2]})});return function(t){return e.apply(this,arguments)}}())];case 3:a.sent(),f.onStop=function(){return i(!1)};return[3,7];case 4:return[4,h.end()];case 5:a.sent();return[4,f.interrupt()];case 6:a.sent();a.label=7;case 7:s(e);return[2]}})});return function(t){return e.apply(this,arguments)}}()),V.on("audio_chunk",function(e){f.add16BitPCM(e.data,e.track),i(!0)}),V.on("audio_interrupt",function(){f.interrupt()}),V.on("resume_thread",function(e){var t,n;var r=[];var a=true,o=false,i=undefined;try{for(var s=e.steps[Symbol.iterator](),u;!(a=(u=s.next()).done);a=true){var c=u.value;r=eN(r,c)}}catch(e){o=true;i=e}finally{try{if(!a&&s.return!=null){s.return()}}finally{if(o){throw i}}}((t=e.metadata)===null||t===void 0?void 0:t.chat_profile)&&C((n=e.metadata)===null||n===void 0?void 0:n.chat_profile),d(r);var l=e.elements||[];m(l.filter(function(e){return e.type==="tasklist"})),g(l.filter(function(e){return["avatar","tasklist"].indexOf(e.type)===-1}))}),V.on("new_message",function(e){d(function(t){return eN(t,e)})}),V.on("first_interaction",function(e){c(e.interaction),P(e.thread_id)}),V.on("update_message",function(e){d(function(t){return eJ(t,e.id,e)})}),V.on("delete_message",function(e){d(function(t){return eY(t,e.id)})}),V.on("stream_start",function(e){d(function(t){return eN(t,e)})}),V.on("stream_token",function(e){var t=e.id,n=e.token,r=e.isSequence,a=e.isInput;d(function(e){return eK(e,t,n,r,a)})}),V.on("ask",function(e,t){var n=e.msg,r=e.spec;v({spec:r,callback:t,parentId:n.parentId}),d(function(e){return eN(e,n)}),l(!1)}),V.on("ask_timeout",function(){v(void 0),l(!1)}),V.on("clear_ask",function(){v(void 0)}),V.on("call_fn",function(e,t){var n=e.name,r=e.args;p({name:n,args:r,callback:t})}),V.on("clear_call_fn",function(){p(void 0)}),V.on("call_fn_timeout",function(){p(void 0)}),V.on("chat_settings",function(e){w(e),u()}),V.on("element",function(n){!n.url&&n.chainlitKey&&(n.url=e.getElementUrl(n.chainlitKey,t)),n.type==="tasklist"?m(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?I(e).concat([n]):I(e.slice(0,t)).concat([n],I(e.slice(t+1)))}):g(function(e){var t=e.findIndex(function(e){return e.id===n.id});return t===-1?I(e).concat([n]):I(e.slice(0,t)).concat([n],I(e.slice(t+1)))})}),V.on("remove_element",function(e){g(function(t){return t.filter(function(t){return t.id!==e.id})}),m(function(t){return t.filter(function(t){return t.id!==e.id})})}),V.on("action",function(e){y(function(t){return I(t).concat([e])})}),V.on("remove_action",function(e){y(function(t){var n=t.findIndex(function(t){return t.id===e.id});return n===-1?t:I(t.slice(0,n)).concat(I(t.slice(n+1)))})}),V.on("token_usage",function(e){S(function(t){return t+e})}),V.on("window_message",function(e){window.parent&&window.parent.postMessage(e,"*")})},[a,t,R]),j=V.useCallback(B.debounce(D,200),[D]),L=V.useCallback(function(){(r===null||r===void 0?void 0:r.socket)&&(r.socket.removeAllListeners(),r.socket.close())},[r]);return{connect:j,disconnect:L,session:r,sessionId:t,chatProfile:R,idToResume:_,setChatProfile:C}};var ts=function(){var e=x(O.useRecoilState(eR),2),t=e[0],n=e[1],r=O.useRecoilValue(eS),a=O.useRecoilValue(eA),i=O.useRecoilValue(eC),s=ta(),u=s.startAudioStream,c=s.endAudioStream,l=V.useCallback(/*#__PURE__*/o(function(){return M(this,function(e){switch(e.label){case 0:n("connecting");return[4,u()];case 1:e.sent();return[2]}})}),[u]),f=V.useCallback(/*#__PURE__*/o(function(){return M(this,function(e){switch(e.label){case 0:n("off");return[4,r.end()];case 1:e.sent();return[4,a.interrupt()];case 2:e.sent();return[4,c()];case 3:e.sent();return[2]}})}),[c,r,a]);return{startConversation:l,endConversation:f,audioConnection:t,isAiSpeaking:i,wavRecorder:r,wavStreamPlayer:a}};var tu=function(e){var t=x(O.useRecoilState(eB),2),n=t[0],r=t[1],a=e7(),o=a.isAuthenticated,i=navigator.language||"en-US",s=e4(!n&&o?"/project/settings?language=".concat(i):null,{token:e}),u=s.data,c=s.error,l=s.isLoading;return V.useEffect(function(){u&&r(u)},[u,r]),{config:n,error:c,isLoading:l,language:i}};var tc=new WeakMap,tl=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;var a,o,i;if(r&&(o=t.toString(),i=n.toString(),a=tc.has(e)?tc.get(e):{},tc.set(e,a),a[o]=a[o]||{},a[o][i]))return a[o][i];var s=e.length,u=new Array(t);if(t<=s){u.fill(0);var c=new Array(t).fill(0);for(var l=0;l<s;l++){var f=Math.floor(l*(t/s));n?u[f]=Math.max(u[f],Math.abs(e[l])):u[f]+=Math.abs(e[l]),c[f]++}if(!n)for(var h=0;h<u.length;h++)u[h]=u[h]/c[h]}else for(var d=0;d<t;d++){var v=d*(s-1)/(t-1),p=Math.floor(v),g=Math.ceil(v),m=v-p;g>=s?u[d]=e[s-1]:u[d]=e[p]*(1-m)+e[g]*m}return r&&(a[o][i]=u),u},tf={drawBars:function(e,t,n,r,a){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,i=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0,s=arguments.length>7&&arguments[7]!==void 0?arguments[7]:0,u=arguments.length>8&&arguments[8]!==void 0?arguments[8]:!1;o=Math.floor(Math.min(o,(n-s)/(Math.max(i,1)+s))),o||(o=Math.floor((n-s)/(Math.max(i,1)+s))),i||(i=(n-s)/o-s);var c=tl(t,o,!0);for(var l=0;l<o;l++){var f=Math.abs(c[l]),h=Math.max(1,f*r),d=s+l*(i+s),v=u?(r-h)/2:r-h,p=Math.min(i/2,h/2);e.fillStyle=a,e.beginPath(),e.moveTo(d+p,v),e.lineTo(d+i-p,v),e.arcTo(d+i,v,d+i,v+p,p),e.lineTo(d+i,v+h-p),e.arcTo(d+i,v+h,d+i-p,v+h,p),e.lineTo(d+p,v+h),e.arcTo(d,v+h,d,v+h-p,p),e.lineTo(d,v+p),e.arcTo(d,v,d+p,v,p),e.closePath(),e.fill()}}};Object.defineProperty(exports,"Socket",{enumerable:true,get:function e(){return F.Socket}});exports.APIBase=te;exports.ChainlitAPI=tt;exports.ChainlitContext=tr;exports.ClientError=e9;exports.WavRenderer=tf;exports.accessTokenState=eM;exports.actionState=em;exports.addMessage=eN;exports.addMessageToParent=eH;exports.askUserState=eb;exports.audioConnectionState=eR;exports.authState=ej;exports.callFnState=ex;exports.chatProfileState=ed;exports.chatSettingsDefaultValueSelector=e_;exports.chatSettingsInputsState=eI;exports.chatSettingsValueState=eT;exports.configState=eB;exports.currentThreadIdState=eF;exports.defaultChainlitContext=tn;exports.deleteMessageById=eY;exports.elementState=eE;exports.fetcher=e2;exports.firstUserInteraction=eD;exports.hasMessageById=e$;exports.isAiSpeakingState=eC;exports.isLastMessage=eW;exports.loadingState=ew;exports.messagesState=ey;exports.nestMessages=eU;exports.sessionIdState=ep;exports.sessionState=eg;exports.sideViewState=eL;exports.tasklistState=eP;exports.threadHistoryState=eV;exports.threadIdToResumeState=eh;exports.tokenCountState=ek;exports.updateMessageById=eJ;exports.updateMessageContentById=eK;exports.useApi=e4;exports.useAudio=ts;exports.useAuth=e7;exports.useChatData=eq;exports.useChatInteract=ta;exports.useChatMessages=to;exports.useChatSession=ti;exports.useConfig=tu;exports.userState=eO;exports.wavRecorderState=eS;exports.wavStreamPlayerState=eA;//# sourceMappingURL=out.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|